| ♥ 0 | Boa tarde Ao tentar inserir uma linha num documento de venda uso o seguinte código: While linhas.EOF = False objLinhaVenda = New VndBE100.VndBELinhaDocumentoVenda With objLinhaVenda .Armazem = linhas.Fields(“armazem”).Value .Localizacao = linhas.Fields(“armazem”).Value .Artigo = Trim(linhas.Fields(“art_cod”).Value) If linhacab.Fields(“pais”) Is “PT” Then .CodIva = “23”
.Descricao = Trim(linhas.Fields(“art_descr”).Value) End If .NumLinDocOriginal = 0 End With Documento.Linhas.Insere(objLinhaVenda) linhas.MoveNext Obtenho o erro “o estadoorigem da linha 1 não está preenchido” Informo que a linha movimenta stocks e tem o lote atribuido. O lote está ativo. Eu estou a passar estadoorigem=1 não sei se estou a fazer bem. Já fiz uma fatura manual e o campo no linhasdoc estadoorigem é “DISP”- Alguém me pode dar alguma ideia do que possa ser?
Obrigado
Marcado como spam |
Comentários Tenho o mesmo erro a criar um documento, não consigo perceber a que se refere este estadoorigem.
Infelizmente o forum, na minha opiniao, é um pouco demorado a dar reposta. Olá Eu resolvi usando uma outra função "AdicionaLinha" deixo o código abaixo para quem precisar: 'Insere Linhas no documento linhasdo.Open("select * from v_linhas where doc_numero=" & linhacab.Fields("doc_numero").Value & " order by linha", ligacao) For x = 1 To linhasdo.RecordCount objLinhaVenda = New VndBE100.VndBELinhasDocumentoVenda
ivass = "23"
txiva = 23
precounit = Convert.ToDecimal(Trim(linhasdo.Fields("preco_unit").Value))
qtd = Convert.ToInt16(Trim(linhasdo.Fields("quantidade").Value))
Prod = Trim(linhasdo.Fields("art_cod").Value)
Arm = Trim(linhasdo.Fields("armazem").Value)
lote = linhasdo.Fields("lote_serie").Value If linhasdo.Fields("taxa_iva").Value = 0 Then
ivass = "00"
txiva = 0
End If If linhasdo.Fields("taxa_iva").Value = 23 Then
ivass = "23"
txiva = 23
End If
If linhasdo.Fields("taxa_iva").Value = 6 Then
ivass = "06"
txiva = 6
End If 'ivass = linhasdo.Fields("taxa_iva").Value motor.Vendas.Documentos.AdicionaLinha(Documento, prod, qtd, arm, arm, precounit, 0, lote, 0, 0, 0, 0, 0, 2, 2, 0, 0) objLinhaVenda = Documento.Linhas
objLinhaVenda.GetEdita(x).CodIva = ivass
objLinhaVenda.GetEdita(x).TaxaIva = txiva linhasdo.MoveNext() Next motor.Vendas.Documentos.CalculaValoresTotais(Documento) motor.Vendas.Documentos.Actualiza(Documento) |
| Resposta privada Obrigado Paulo Belchior. Passado mais de um ano ainda ocorre este problema, mas é bastante aleatório. O erro acontecia no meu ambiente de desenvolvimento mas no cliente não. Resolvi usando a sua solução! Em C# Marcado como spam |