Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||||||||||
Segmento: |
| ||||||||||||||||
Módulo: | SIGAWMS - Gestão de Armazenagem | ||||||||||||||||
Função: | WMSV083 - Gerar Pedido Cross Docking | ||||||||||||||||
País: | Todos Países | ||||||||||||||||
Ticket: | - | ||||||||||||||||
Requisito/Story/Issue (informe o requisito relacionado) : | - |
02. DESCRIÇÃO
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.
03. LOCALIZAÇÃO
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.
04. PARÂMETROS
Nome | Tipo | Descrição |
---|---|---|
aPedido | Array | Cabeçalho do pedido |
aItens | Array | Itens do pedido |
05. RETORNO
Serão retornados os mesmos arrays enviados como parâmetro, com os valores manipulados pelo Ponto de Entrada.
O array aPedido será utilizado para criação do registro na tabela SC5 e o array aItens será usado para gravar os registros na tabela SC6.
Nome | Tipo | Descrição |
---|---|---|
aPedido | Array | Cabeçalho do pedido |
aItens | Array | Itens do pedido |
06. VERSÕES
Protheus 12.1.23 ou superiores.
07. EXEMPLO
...
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}
...
------
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |