Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

LJ7046 - Adição de Campos no Cabeçalho e Itens no Pedido de Venda Gerado pelo SIGALOJA

Descrição:

Esse Ponto de Entrada permite incluir campos customizados na geração do Pedido de Venda que é gerado pelo SIGALOJA quando a venda for Entrega Futura.

Eventos:

O Ponto de Entrada é executado no momento que o sistema está gerando o Pedido de Venda durante a finalização a venda.

Programa Fonte:LOJA701C.PRW

Parâmetros:

NomeTipoDescrição
ParamIXB[1]CaracterPreenchido com o código da Filial
ParamIXB[2]Array
Array com os campos da tabela SL1.
ParamIXB[3]Array

Array com os campos da tabela SL2. Sendo que a ultima posição do array contém o campo "CONTADOR_PED" e seu respectivo valor. Essa posição deverá ser retornada juntamente com os campos que serão retornados na segunda posição do retorno, pois através dela, identificaremos o item do pedido os quais os campos serão inseridos.

Retorno:
NomeTipoDescrição
aRet[1]ArrayArray com os campos que serão adicionados no cabeçalho do pedido de venda (SC5). Cada posição deverá conter o nome e seu respectivo valor.
aRet[2]ArrayArray com os campos que serão adicionados nos itens do pedido de venda (SC6). Lembrando que além dos campos customizados, cada item deverá retornar o nome e valor do campo de controle (CONTADOR_PED).
Observação:O campo de controle somente foi implementado na versão 12.1.17 ou superior.

Exemplo:

Adicionando um campo na SC5 e dois campos na SC6


#INCLUDE"TOTVS.CH"


UserFunction LJ7046()
Local nI

Local cCodFil        := PARAMIXB[1] // Código da Filial
Local aCposSL1    := PARAMIXB[2] // Array com os campos da tabela SL1
Local aCposSL2    := PARAMIXB[3] // Array com os campos da tabela SL2
Local nI                 := 0
Local nCONTPED  := 0
Local nCAMPO01  := 0
Local nCAMPO02  := 0
Local aRet aRet              := { {/*campos do cabecalhocabeçalho*/}, {/*campos dos itens*/} }
Local aItemAux := {} aCabAux       := {}
Local aItemAux      := {}

//busca pelos campos que serao adicionados cabeçalho do pedido de venda
nC5CAMPO01 := aScan(aCposSL1, {|x| x[1] == "L1_CAMPO01"})

Aadd( aCabAux, {"C5_CAMPO02", aCposSL1[nC5CAMPO01][2], NIL} )

//adiciona os campos do cabeçalho ao array de retorno
aRet[1] := aCabAux

// loop em todos os itens da venda
For nI := 1to Len( PARAMIXB[3] aCposSL2 )
    
    //armazena as posicoes dos campos que serao adicionados nos itens do pedido de venda
    nCONTPED     nCONTPED := aScan(PARAMIXBaCposSL2[3][nI], {|x| x[1] == "CONTADOR_PED"})        //busca pelo campo de controle (Obrigatório)
       
        //busca pelos campos que serao adicionados no item do pedido de venda
    nCAMPO01     nCAMPO01 := aScan(PARAMIXBaCposSL2[3][nI], {|x| x[1] == "L2_CAMPO01CAMPO02"})
    nCAMPO02     nCAMPO02 := aScan(PARAMIXBaCposSL2[3][nI], {|x| x[1] == "L2_CAMPO02"})
       
        //resetamos o array que armazena os campos dos itens
    aSize    aSize(aItemAux,0)
    
    //adicionamos os dados do campo de controle (nome[1] e seu respectivo valor[2])
    Aadd    Aadd( aItemAux, PARAMIXBaCposSL2[3][nI][nCONTPED] )
    
    //adicionamos o campo que sera adicionado ao item do pedido de venda
    Aadd    Aadd( aItemAux, {"C6_CAMPO01", PARAMIXB[3]aCposSL2[nI][nCAMPO01][2]} )
    Aadd    Aadd( aItemAux, {"C6_CAMPO02", PARAMIXB[3]aCposSL2[nI][nCAMPO02][2]} )
       
        //adicionamos o item com os campos que serao adicionados ao array de retorno do array
    aAdd    aAdd( aRet[2], aClone(aItemAux) )
       
Next

Return aRet