LJ7107 - Permite a customização de proposição de valor e porcentagem de desconto para serem carregados ao se clicar no botão "Desconto no Total".
Descrição: | Disponibilizar P.E para atuar na proposição de valor e porcentagem de desconto para serem carregados ao se clicar no botão "Desconto no Total". |
Eventos: | O ponto de entrada é executado assim que acionada a rotina de Desconto no Total(CRTL +B), tanto na tela de venda assistida e venda direta, dando a opção de calculo do percentual e valor de desconto que sera carregado para a tela de Desconto no Total. |
Programa Fonte: | LOJA701A.PRW |
Parâmetros: | Nome | Tipo | Descrição |
---|
ParamIxb[1] | Numerico | | ParamIxb[2] | Array | | ParamIxb[3] | Array | |
|
Retorno: | Nome | Tipo | Descrição |
---|
aRet | Array | Array de duas posições, contendo na primeira posição o percentual de desconto e na segunda posição o valor do desconto, a serem assumidos ta tela de "Desconto no Total"(CTRL + B), podendo ainda ser alterados conforme desejo do usuário. Obs: O percentual do desconto referente a primeira posição do retorno é obrigatória, pois o valor do desconto é calculado posteriormente conforme o percentual. Sendo assim a segunda posição do retorno referente ao valor de desconto, auxiliara internamente no ponto de entrada para a definição do valor de desconto desejado. |
|
Exemplo:
#INCLUDE "TOTVS.CH"
User Function LJ7107()
Local aArea := GetArea()
Local nTotMerc := Paramixb[1] //Total de Mercadorias
Local aArrayPgts := Paramixb[2] //Array de pagamentos da venda SL4
Local aArrayDesc := Paramixb[3] //Array de variavel aDesconto, contendo os descontos aplicados
Local nTotVend := 0 //Total da venda + Acrescimo
Local cCondAcr := Posicione("SE4",1,xFilial("SE4")+M->LQ_CONDPG,"E4_ACRSFIN") //Acrescimo Financeiro da condição de pagamento
Local cPerg := "Venda já possui acréscimo financeiro, deseja utilizar desconto para arredondar valor?"
Local cTitulo := "Venda já possui acréscimo financeiro."
Local cTitTela := "Defina o valor total da venda desejado"
Local oDlg, oButton1
Local nValAlvo := 0
Local nFator := 0
Local nNewTotMe := 0
Local nValNewDes := 0
Local nTotMerAcr := 0
Local nNewTotPar := 0
Local nNewPerDes := 0
Local aRet := {0 , 0}
aEval( aArrayPgts, {|x| nTotVend += x[2]} ) //Guardo o total da venda
If aArrayDesc[2] == 0 .And. cCondAcr > 0 .And. !( cCondAcr > 0 .And. (nTotVend < nTotMerc) ) .And. MSGYESNO(cPerg, cTitulo )
DEFINE MSDIALOG oDlg TITLE cTitTela FROM 000, 000 TO 150, 270 COLORS 0, 16777215 PIXEL //Defina o valor total da venda desejado
@ 010,010 SAY "Valor Alvo:" SIZE 55, 08 OF oDlg PIXEL
@ 10,45 MSGET nValAlvo SIZE 55, 08 OF oDlg PIXEL PICTURE "@R 999999999.99"
@ 40, 70 BUTTON oButton1 PROMPT "&Sair" ACTION(oDlg:End()) SIZE 037, 012 OF oDlg PIXEL
ACTIVATE MSDIALOG oDlg CENTERED
If nValAlvo > 0
nFator := nValAlvo / nTotVend
nNewTotMe := nTotMerc * nFator
nValNewDes := nTotMerc - nNewTotMe
nTotMerAcr := nNewTotMe * (cCondAcr / 100)
nNewTotPar := nNewTotMe - nTotMerAcr
nNewPerDes := ( nValNewDes * 100) / nTotMerc
aRet := {nNewPerDes, nValNewDes}
EndIf
EndIf
RestArea(aArea)
Return aRet