Fórum
Ver pergunta

Erro de estadoorigem da linha na inserção de documento via integração   

163 visualizações
1
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
.ArredFConv = 1

.Localizacao = linhas.Fields(“armazem”).Value

.Artigo = Trim(linhas.Fields(“art_cod”).Value)

If linhacab.Fields(“pais”) Is “PT” Then

.CodIva = “23”
.RegimeIva = 0
.TaxaIva = 23
Else
.CodIva = “02”
.RegimeIVA = 0
.TaxaIva = 0
End If

 

.Descricao = Trim(linhas.Fields(“art_descr”).Value)
.DataEntrega = Documento.DataDoc
.DataStock = Documento.DataDoc
.Desconto1 = 0
.Desconto2 = 0
.Desconto3 = 0
.DescontoComercial = 0
.Estado = 0
.FactorConv = 1
.IDLinha = vbNullString
.IDLinhaOriginal = vbNullString
If linhas.Fields(“move_stock”).Value = True Then
.MovStock = “S”
If linhas.Fields(“trata_lotes”).Value = True Then
.Lote = linhas.Fields(“lote_serie”).Value
End If
Else
.MovStock = “N”

End If

.NumLinDocOriginal = 0
‘.NumLinhaStkGerada = 0
.Quantidade = linhas.Fields(“quantidade”).Value
.QuantReservada = 0
.QuantSatisfeita = 0
‘.RegimeIVA = 0
‘.TaxaIva = 0
.TipoLinha = 10
.Unidade = “UN”
.PrecoLiquido = Trim(linhas.Fields(“valor_liq”).Value)
.PrecUnit = Trim(linhas.Fields(“preco_unit”).Value)
.TotalIva = Trim(linhas.Fields(“iva_linha”).Value)
.Vendedor = linhas.Fields(“comercial”).Value
.EstadoOrigem = 1

End With

Documento.Linhas.Insere(objLinhaVenda)

linhas.MoveNext
End While

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

 

Faça login para poder traduzir
Integração
V10
Marcado como spam
Criado há 5 anos e 1 mês paulobelchior
p
paulobelchior paulo belchior Iniciante
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.
5 anos e 1 mês
paulorodrigues-2
    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)
    5 anos e 1 mês
    paulobelchior
      1 respostas
      0
      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#

      Faça login para poder traduzir
      Marcado como spam
      Criado há 3 anos e 6 meses rosindobandeira
      r
      rosindobandeira Rosindo Bandeira Responsiveness Member