01. DADOS GERAIS

Produto:

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


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

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

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