Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Produto:

Solucoes_totvs
SolucaoTOTVS Logística WMS

Solucoes_totvs_cross
SolucaoCross

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoLogística

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.

...

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

06. VERSÕES

12.1.23 ou superiores.

07. EXEMPLO

Bloco de código
languagecpp
titleExemplo
linenumberstrue
collapsetrue
#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}



...