Histórico da Página
Ponto de Entrada
Descrição: | Permite customizar o valor do desconto no Item | ||||||||||||||||
Localização: | Totvs PDV | ||||||||||||||||
Eventos: | Este Ponto de Entrada é acionado no momento do registro do item, permite customizar o valor do desconto no item. Obs.: o PE não anula a execução da regra cadastrada no padrão, ou seja, acumula o desconto se for o caso. | ||||||||||||||||
Programa Fonte: | STBRULESDISCOUNTITEM.PRW | ||||||||||||||||
Função: | STBItemRlDi() | ||||||||||||||||
Parâmetros |
| ||||||||||||||||
Retorno: |
|
|
Exemplo:
#Include 'Protheus.ch'
//Exemplo fictício do uso do ponto de entrada, no exemplo sera aplicado o desconto de 5,00 para produtos com codigo = 1 e quantidade maior ou igual a 10
User function STItRlDisc()
//Recebe valores: Codigo do Item, Valor e desconto
Local cItemCode := PARAMIXB[1]
Local nValueItem := PARAMIXB[2]
Local nAmount := PARAMIXB[3]
Local aRet := {}
//Valida desconto para item com Codigo 1 e quantidade maior ou igual a 2
If AllTrim(cItemCode) == "1" .AND. nAmount >= 10
Aadd(aRet,.T.) //Define se aplica o desconto
Aadd(aRet,nValueItem-5) //Define o novo valor do item
Aadd(aRet,5) //Para validacoes de consistencias, informa qual o valor do desconto aplicado
EndIf
Return aRet
Exemplos de cenários:
1- Exemplo de valor válido:
Total do Item antes do Ponto de Entrada : 100,00
Novo valor total do Item (após o Ponto de Entrada) : 95,00
Novo valor de desconto (após Ponto de Entrada) : 5,00
Cenário acima o valor confere.
2 - Exemplo de valor inválido:
Total do Item antes do Ponto de Entrada : 100,00
Novo valor total do Item (após o Ponto de Entrada) : 95,00
Novo valor de desconto (após Ponto de Entrada) : 2,00 //valor do desconto deveria ser 5,00
Cenário acima o valor não confere, existe uma diferença de 3,00 no novo valor de desconto.
Importante:
- PE não anula a execução da regra cadastrada no padrão, ou seja, acumula o desconto.
- É realizado consistência do retorno do PE, desconto só será aplicado se o total do item antes da execução do ponto de entrada for igual a soma do novo valor com o desconto aplicado
- Processo possui logs, para habilitar logs do varejo verifique: http://tdn.totvs.com.br/pages/viewpage.action?pageId=203764807
- Exemplo de Logs:
18:29:27 [6128] Function STBITEMRLDI Line 111
[Regra de Desconto] Antes da Chamada do Ponto de Entrada:STItRlDisc -> ARRAY ( 3) [...]
[1] -> C ( 15) [1 ]
[2] -> N ( 15) [ 100.0000]
[3] -> N ( 15) [ 10.0000]
18:29:27 [6128] Function STBITEMRLDI Line 113
[Regra de Desconto] Apos a Chamada do Ponto de Entrada:LJ7083 -> ARRAY ( 2) [...]
[1] -> N ( 15) [ 95.0000]
[2] -> N ( 15) [ 2.0000]
18:29:27 [6128] Function STBITEMRLDI Line 123
- Exemplo de Logs: