Árvore de páginas

Versões comparadas

Chave

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

...

Portuguese

Pagetitle
LJ7009 - Validação de Alteração de Pagamento
LJ7009 - Validação de Alteração de Pagamento

Ponto-de-Entrada: LJ7009 - Validação de Alteração de Pagamento
Abrangências: Microsiga Protheus 10 , Microsiga Protheus 11
Versões: Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10 , Microsiga Protheus 11
Idiomas: Português (Brasil) , Espanhol , Inglês


Descrição:

Esse

ponto de entrada é chamado na confirmação da tela de alteração das parcelas na rotina Venda

Ponto de Entrada é chamado na confirmação da tela de alteração das parcelas na rotina Venda Assistida.

Deve

retornar

um

boleano

ou

um

vetor.
Se

retornar

falso,

não

permite

que

os

dados

informados

sejam

confirmados.

Se

retornar

um

vetor,

a

parcela

atual

será

atualizada

com

os

dados

do

vetor.

A

estrutura

do

vetor

retornado

é:
[1]

Data

(data)
[2]

Valor

(numérico)
[3]

Descrição

da

forma

de

pagamento

(

3

x caracteres)
[4]

Checkbox

"Utiliza

nas

próximas

parcelas"

(lógico)
[5]

Identificação

seqüencial

sequencial do

cartão

(1

caracter

carácter)
[6] Código da forma de pagamento (3 caracteres)


Programa Fonte
LOJA701B.PRW
Sintaxe

LJ7009 - Validação de Alteração de Pagamento ( < Array> ) --> xRet

Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

Array

Array of Record

Descrição abaixo (em Observações).




X




Retorno
xRet
    (qualquer)
  • 2 Tipos de RetornoLógico = False (.F.) para não continuar com o processoArray = Parcelas para considerar na Alteração
Observações


Descrição do parâmetro:


Array contendo as informações originais e as que foram alteradas:

1º Array

1º Array com informações originais

e 2º

e 2º Array com as informações alteradas pelo usuário, ambos conforme as posições indicadas na "descrição".
Importante: A edição é realizada por linha e as informações recebidas correspondem a linha que

está sendo

está sendo editada, quando é realizada uma

inserção 

inserção (escolha de um pagamento pela ação dos botões DINHEIRO, CHEQUE,

CARTAO DE CREDITO

CARTAO DE CREDITO, etc),

 o valor correspondente

o valor correspondente ao "original" é o valor sugerido na tela de edição.

Exemplos /*** Exemplo do PE LJ7009, validação de forma de pagamento */User Function LJ7009()// variáveis com os valores alterados // e com os valores originais Local aParams := iIf( PARAMIXB<>nil, aClone(PARAMIXB), {} )Local aParcResul := iIf( Len(aParams) > 0, aParams[1], {} ) // dados originais do pagamentoLocal aParcAlter := iIf( Len(aParams) > 1, aParams[2], {} ) // novos dados para o pagamentoLocal xRet := .T.Local nQtdParcs := Len(aParcAlter)Local nI := 0Local aAuxRet := {}// verifica se possui informaçãoIf ( nQtdParcs > 0 ) If (Alltrim(aParcAlter[3])== 'Cartao de Credito' ) // avalia qual o tipo de pagamento xRet := .F. // sendo cartão de crédito aborta a operação, mantendo a informação antiga Else xRet := .T. // do contrário efetua o processamento EndIfEndIf If( xRet ) // quando o processo pode continuar, é preciso retornar um vetor com os novos dados xRet := aParcAlterEndIfReturn xRet

Disponibilizado o sexto parâmetro como código da forma de pagamento, como alternativa ao parâmetro de entrada 3 (descrição da forma de pagamento).
Este parâmetro dispensa colocar no Ponto de Entrada a descrição de sua forma idêntica ao que está na tabela SX5/24, evitando forçar, dentro do ponto de entrada, a substituição do parâmetro 3 da descrição pelo código.

O exemplo abaixo de ponto de entrada altera a data da primeira parcela para Cartão de Crédito para 70 dias após a data da emissão, o Cartão de Débito sem processamento (bloqueio), e o restante das condições de pagamento, finalizados normalmente sem alterações.


User Function LJ7009()
// variáveis com os valores alterados
// e com os valores originais
Local aParams := iIf( PARAMIXB<>nil, aClone(PARAMIXB), {} )
Local aParcResul := iIf( Len(aParams) > 0, aParams[1], {} )// dados originais do pagamento
Local aParcAlter := iIf( Len(aParams) > 1, aParams[2], {} ) // novos dados para o pagamento
Local xRet := .T.
Local nQtdParcs := Len(aParcAlter)
Local nI := 0
Local aAuxRet := {} // verifica se possui informação

If ( nQtdParcs > 0 )
    If (Alltrim(aParcAlter[6]) == 'CC' ) // avalia qual o tipo de pagamento CC-Cartão de Crédito
        xRet := .T. //se cartão de credito, efetua a alteração
        aParcAlter[1] := ( dDataBase +70 )  //Altera em 70 dias a primeira parcela
        aParcAlter[4] := .T.
    ElseIf (Alltrim(aParcAlter[6]) == 'CD' ) // avalia qual o tipo de pagamento CD-Cartão de Débito
        xRet := .F. // do contrário aborta o processamento
    Else
        xRet := .T. // As demais condições de pagamento irão finalizar normalmente
    EndIf
EndIf

If( xRet ) // quando o processo pode continuar, é preciso retornar um vetor com os novos dados
    xRet := aParcAlter
EndIf

Return xRet


OBS: Para alterações específicas na validação da condição de pagamento, sugerimos utilizar o ponto de entrada LJ7063 - Parcelas de pagamento.