01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:SIGAWMS
Função:WMSV083 - Gerar Pedido Cross Docking
País:Brasil
Ticket:10941078
Requisito/Story/Issue (informe o requisito relacionado) :DLOGWMSMSP-11826


02. SITUAÇÃO/REQUISITO

Este Ponto de Entrada permite a manipulação das informações do pedido de venda (cabeçalho e itens) antes da inclusão feita 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 do programa MATA410 para inclusão do registro.

04. PARÂMETROS


NomeTipoDescrição
aPedidoArrayCabeçalho do pedido
aItensArrayItens 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á usado para criação do registro na tabela SC5 e o array aItens será usado para gravar os registros na tabela SC6.


NomeTipoDescrição
aPedidoArrayCabeçalho do pedido
aItensArrayItens do pedido

VERSÕES

12.1.23 ou superiores.

07. EXEMPLO


#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}





<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>