PE: MP_ITEMPV

📌 Documentação do Ponto de Entrada MP_ITEMPV

🧩 Identificação

  • Nome do Ponto de Entrada: MP_ITEMPV
  • Objetivo: Montar e retornar a estrutura de itens (aItens) para execução da rotina EXCAUTO, com base nos dados recebidos da integração "Mercos".
  • Programa: U_JobMped2 ( sincronização de Entidades de Entrada )
  • Localização: Apos a Montagem de cada item do aItens de envio no Execautou Mata410 

📥 Parâmetros Recebidos (PARAMIXB)

  • PARAMIXB[1]: Filial da conta "MERCOS".
  • PARAMIXB[2]: Código da conta "MERCOS".
  • PARAMIXB[3]: Array que representa o ITENS do pedido e será preenchido pela função.
  • PARAMIXB[4]: Objeto JSON contendo os dados dos pedidos recebidos.
  • PARAMIXB[5]: Tipo de operação (ex: venda, bonificação, etc)

🏗️ Estrutura Padrao Montada (aItens)

Dependendo da Opção de integração Orcamento ou Pedido de vendas a Variavel CPrefTe pode ser alterada para Ck ou C6.

Campo               Valor Atribuído Nil
cPrefIte+"_ITEM"    cItens           Nil
cPrefIte+"_PRODUTO" cProd            Nil
cPrefIte+"_QTDVEN"  nQuant           Nil
cPrefIte+"_PRCVEN"  nPrcVen          Nil
cPrefIte+"_VALOR"   nTotal           Nil
cPrefIte+"_PRUNIT"  nPrcTab          Nil
cPrefIte+"_TES"     cTes             Nil
cPrefIte+"_LOCAL"   cLocal           Nil
cPrefIte+"_NUMPCOM" cNPedCli         Nil
cPrefIte+"_XMPTAB"  cIdTab           Nil
cPrefIte+"_XMPOBS"  cObser           Nil
cPrefIte+"_XMPESP"  cOpEsp           Nil
cPrefIte+"_XIDMP"   cIdItem          Nil
C6_ITEMPC           StrZero(y,2)     Nil
cPrefIte+"_DESCONT" nDesc            Nil

🔁 Retorno

  • A função retorna o array aItens já preenchido com os dados necessários para a criação do pedido via EXCAUTO.

Exemplo:

User Function MP_ITEMPV
    local cFilMp    := PARAMIXB[1]  // FILIAL DA CONTA MERCOS
    local cCtaMp    := PARAMIXB[2]  // CODIGO DA CONTA MERCOS
    local aLinha    := PARAMIXB[3]  // ARRAY INTENS COM ESTRTURA PARA EXECUÇÃO DO EXCAUTO
    local aPedido   := PARAMIXB[4]  // OBJETO RETORNO GET JSON MEUS PEDIDOS
    local cTipVen   := PARAMIXB[5]  // TIPO DE OPERAÇÃO

    local   nPosProd := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_PRODUTO"})
    local   nPosDesc := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_DESCONT"})
    local   nPosVlr  := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_VALOR"})
    local   nPosPrc  := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_PRCVEN"})
    local   nPosQtd  := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_QTDVEN"})
    local   nPosPrun := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_PRUNIT"})
    local   nPosLoca := aScan(aLinha,{|x|AllTrim(x[1]) == "C6_LOCAL"})
    local   nDescont := 0  
    local   nPrcVen
    local   nQtdVen
    local   nValor  

    local cLocPad   := POSICIONE("SB1",1,XFILIAL("SB1")+aLinha[nPosProd,2],"B1_LOCPAD")


    aLinha[nPosLoca,2] := cLocPad //ALTERA LOCAL DE ESTOQUE DE ACORDO COM LOCAL PADRAO DO PRODUTO


Return(aLinha)

Você achou esse artigo útil?

  • PE: MP_CABECPV

    📌 Documentação do Ponto de Entrada MP_CABECPV 🧩 Identificação ...
  • PE: MP_AITEMS

    📌 Documentação do Ponto de Entrada MP_AITEMS 🧩 Identificação N...
  • PE: MP_CATPGRV

    📌 Documentação do Ponto de Entrada MP_CATPGRV 🧩 Identificação ...
  • PE: MP_CATPSQL

    📌 Documentação do Ponto de Entrada MP_CATPSQL 🧩 Identificação ...
  • MP_CNFMAIL

    📌 Documentação do Ponto de Entrada MP_CNFMAIL 🧩 Identificação ...