Árvore de páginas

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"


User Function LJ7046()

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              := { {/*campos do cabeçalho*/}, {/*campos dos itens*/} }
Local 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 := 1 to Len( aCposSL2 )

    //armazena as posicoes dos campos que serao adicionados nos itens do pedido de venda
    nCONTPED := aScan(aCposSL2[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 := aScan(aCposSL2[nI], {|x| x[1] == "L2_CAMPO02"})
    nCAMPO02 := aScan(aCposSL2[nI], {|x| x[1] == "L2_CAMPO02"})
   
    //resetamos o array que armazena os campos dos itens
    aSize(aItemAux,0)

    //adicionamos os dados do campo de controle (nome[1] e seu respectivo valor[2])
    Aadd( aItemAux, aCposSL2[nI][nCONTPED] )

    //adicionamos o campo que sera adicionado ao item do pedido de venda
    Aadd( aItemAux, {"C6_CAMPO01", aCposSL2[nI][nCAMPO01][2]} )
    Aadd( aItemAux, {"C6_CAMPO02", aCposSL2[nI][nCAMPO02][2]} )
   
    //adicionamos o item com os campos que serao adicionados ao array de retorno
    aAdd( aRet[2], aClone(aItemAux) )
   
Next

Return aRet