Boa Noite pessoal!
Importante: Estou executando o ExecAuto no WebService e antes tem um Prepare Environment com a filial e empresa, por dentro do Protheus esse ExecAuto funciona normalmente porém no WebService não.
Estou executando o MsExecAuto no Mata140 no modo de Inclusão (3) porém o mesmo não salva os dados relacionados ao ICMS-ST. Colocarei um exemplo abaixo. Estou rodando no IXBLOG=NORUN para ter certeza que não é nenhum ponto de entrada.
// Filial ( 1 )
aadd(aItem,{"D1_FILIAL", cFilia ,NIL})
// Linha do Documento de Entrada ( 2 )
aadd(aItem,{"D1_ITEM", StrZero(oInvoiceItem:nitem,4) ,NIL})
// SKU do Produto( 3 )
aadd(aItem,{"D1_COD", ALLTRIM(SB1Temp->B1_COD) , NIL})
// Quantidade do Produto ( 7 )
aadd(aItem,{"D1_QUANT" , oInvoiceItem:erp_quantity , NIL})
// Valor Unitário ( 8 )
aadd(aItem,{"D1_VUNIT" , oInvoiceItem:erp_unit_price ,NIL})
// Valor IPI ( 10 )
aadd(aItem,{"D1_VALIPI" , oInvoiceItem:erp_ipi_value ,NIL})
// Valor ICMS ( 12 )
aadd(aItem,{"D1_VALICM" , oInvoiceItem:erp_icms_value ,NIL})
// Alíquota IPI ( 16 )
aadd(aItem,{"D1_IPI" , oInvoiceItem:erp_ipi_tax_rate ,NIL})
// Alíquota ICMS ( 17 )
aadd(aItem,{"D1_PICM" , oInvoiceItem:erp_icms_tax_rate ,NIL})
// Tipo da Nota ( 33 )
aadd(aItem,{"D1_TIPO" , 'N' ,NIL})
// Valor ICMS ST ( 48 )
aadd(aItem,{"D1_ICMSRET" , oInvoiceItem:erp_icms_st_value,NIL})
// Base ICMS ST ( 50 )
aadd(aItem,{"D1_BRICMS" , oInvoiceItem:erp_icms_st_base_value ,NIL})
// Base ICMS ( 52 )
aadd(aItem,{"D1_BASEICM" , oInvoiceItem:erp_icms_base_value ,NIL})
// Desconto do Produto ( 54 )
aadd(aItem, {"D1_VALDESC", U_ZeroEmpty(oInvoiceItem:discount_value), NIL})
// Base IPI ( 58 )
aadd(aItem,{"D1_BASEIPI" , oInvoiceItem:erp_ipi_base_value ,NIL})
// Classificação ( 82 )
aadd(aItem,{"D1_CLASFIS" , '' ,NIL})
// Alíquota ICMS ST ( 189 )
aadd(aItem,{"D1_ALIQSOL" , oInvoiceItem:erp_icms_st_tax_rate,NIL})
// Número do Pedido
// aadd(aItem,{"D1_PEDIDO" , U_BlankEmpty(oInvoiceItem:purchase_order),NIL})
// Número do Pedido
// aadd(aItem,{"D1_ITEMPC" , U_BlankEmpty(oInvoiceItem:line_number),NIL})
Depois de montar todo o cabeçalho e os itens como mostrei acima, simplesmente faço:
MsExecAuto({ |x, y, z| MATA140(x, y, z) }, aInvoice, aInvoiceItems, 3)
A operação conclui com sucesso porém o D1_ICMSRET, D1_BRICMS e D1_ALIQSOL não atualizam os valores para o que eu informei no vetor, tudo é preenchido com o valor 0.
Se alguém conseguir dar alguma luz eu agradeço!
Obrigado, Igor Morse