Árvore de páginas

Versões comparadas

Chave

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

...

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}



...