Produto: | Solucoes_totvs |
---|
Solucao | TOTVS Logística WMS |
---|
|
Solucoes_totvs_parceirosexptotvs |
---|
|
|
---|
Linha de Produto: | |
---|
Segmento: | |
---|
Módulo: | SIGAWMS |
---|
Função: | WMSV083 - Gerar Pedido Cross Docking |
---|
País: | Todos Países |
---|
Ticket: | - |
---|
Requisito/Story/Issue (informe o requisito relacionado) : | - |
---|
Este Ponto de Entrada permite manipular as informações do Pedido de Venda (cabeçalho e itens), antes da inclusão efetuada via Cross Docking.
Após a pergunta "Confirma geração do pedido de venda a partir da seleção de volumes?" e antes da execução automática da rotina MATA410, para inclusão do registro.
Nome | Tipo | Descrição |
---|
aPedido | Array | Cabeçalho do pedido |
aItens | Array | Itens do pedido |
Serão retornados os mesmos arrays enviados como parâmetro, com os valores manipulados pelo Ponto de Entrada.
...
Nome | Tipo | Descrição |
---|
aPedido | Array | Cabeçalho do pedido |
aItens | Array | Itens do pedido |
06. VERSÕES
12.1.23 ou superiores.
07. EXEMPLO
Bloco de código |
---|
language | cpp |
---|
title | Exemplo |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOTVS.CH"
User Function WMV83PED()
Local aCabec := paramixb[1]
Local aItens := paramixb[2]
Local cCli := ''
Local cLojCli := ''
Local nX := 0
Local nInd := 0
/*
Informações do pedido enviadas no array aCabec
Índice / Campo / Valor
1 / "C5_TIPO" / "N"
2 / "C5_CLIENTE" / SA1->A1_COD
3 / "C5_LOJACLI" / SA1->A1_LOJA
4 / "C5_TIPOCLI" / SA1->A1_TIPO
5 / "C5_CLIENT" / SA1->A1_COD
6 / "C5_LOJAENT" / SA1->A1_LOJA
7 / "C5_CONDPAG" / SA1->A1_COND
8 / "C5_TPCARGA" / "2"
9 / "C5_GERAWMS" / "1"
Informações do pedido enviadas no array aItens
Índice / Campo / Valor
1 / "C6_ITEM" / Sequencial
2 / "C6_PRODUTO" / Código do produto
3 / "C6_LOTECTL" / Lote, se existir
4 / "C6_NUMLOTE" / Sublote, se existir
5 / "C6_QTDVEN" / Quantidade
6 / "C6_PRCVEN" / Valor unitário
7 / "C6_VALOR" / Valor total
8 / "C6_TES" / TES
9 / "C6_SERVIC" / Serviço de separação
10 / "C6_ENDPAD" / Endereço de destino da separação
11 / "C6_LOCAL" / Armazém
12 / "C6_LOCALIZ" / Endereço de origem da separação
*/
cCli := aCabec[2,2]
cLojCli := aCabec[3,2]
//Se for cliente 000002/02, adiciona informações do cliente de entrega do pedido
If cCli = '000002' .And. cLojCli = '01'
aAdd(aCabec,{"C5_CLIENT" ,"900002" ,Nil})
aAdd(aCabec,{"C5_LOJAENT" ,"02" ,Nil})
EndIf
//Se a quantidade vendida for maior que 10 e o total do item ultrapassar 1000 reais, aplica 3% de desconto.
For nX := 1 To Len(aItens)
If aItens[nX,3,1] = "C6_LOTECTL"
nInd := 5
Else
nInd := 3
EndIf
If aItens[nX,nInd,2] >= 10 .And. aItens[nX,nInd+2,2] >= 1000
aItens[nX,nInd+1,2] := aItens[nX,nInd+1,2] * 0.97
aItens[nX,nInd+2,2] := aItens[nX,nInd,2] * aItens[nX,nInd+1,2]
EndIf
Next nX
Return {aCabec, aItens}
|
...