Árvore de páginas

Versões comparadas

Chave

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

LJ7115LJ7015

Descrição:

Este ponto de entrada permite selecionar a TES conforme regra definida pelo Cliente. 
A chamada do ponto de entrada ocorre no momento em que o Código Produto é informadoas Formas de Pagamentos, que não devem permitir com a continuação da finalização da venda.

Programa Fonte:LOJA701ALOJA701B.PRW
Parâmetros:

lRecebe:

Sem parâmetros

Recebimento de Títulos;
cCondicao: Forma de Pagamento selecioda; 

Retorno:TES definida pela regra do Cliente"Inválido"
Exemplo:

#INCLUDE"PROTHEUS.CH"
//------------------------------------------------------------------------------
/*/{Protheus.doc} Lj7015
Bloquear selecionar e Condições de Pagamentos para não permitir finalizar venda
@type    User Function
@author  Developer
@since   26/06/2024
@param   PARAMIXB[1],   Logic  
@param   PARAMIXB[1],   Character  
@version P12
@return  .T. ou .F.,    Logic
/*/
User Function LJ7115//------------------------------------------------------------------------------
UserFunctionLJ7015()
Local cTESRet   cFormaRet:=""           // Forma de Pagamento retornada pelo P.E.
LocalnPos      :=0            // Posição da Forma de Pagamento no array aArray    
LocalaArray    := {}
LocallRecebe   :=PARAMIXB[1]  // Recebimento de Títulos
LocalcCondicao:=PARAMIXB[2]  // Forma de Pagamento (SX5->X5_CHAVE)



/*
- Exemplos de Formas de Pagamentos:
    - BOL       BOLETO BANCARIO                                        
    - CH        CHEQUE                                                
    - CO        CONVENIO                 // Atribiu a TES que será retornada
Local nPosProd    := Ascan(aPosCpo,{|x| Alltrim(Upper(x[1])) == "LR_PRODUTO"})  // Posicao da codigo do produto
Local nPosClEntr:= Ascan(aPosCpo,{|x| Alltrim(Upper(x[1])) == "LR_CLIENT"})         // Cliente de entrega
Local nPosLjEntr:= Ascan(aPosCpo,{|x| Alltrim(Upper(x[1])) == "LR_CLILOJA"})        // Filial do cliente de entrega

Local cProduto  := aCols[n,nPosProd]
Local cCliente  := aCols[n,nPosClEntr]
Local cLojaCli  := aCols[n,nPosLjEntr]

Local cTipOper  := "01"

If Empty(cCliente)
    cCliente  := M->LQ_CLIENTE
    cLojaCli  := M->LQ_LOJA 
EndIf
// Executa a função MatesInt para buscar TES Inteligente;
// Chamada de função MaTesInt é opcional, sendo possível definir de outra forma, conforme regra do Cliente.
cTESRet := MaTesInt( 2, cTipOper, cCliente, cLojaCli, "C", cProduto, NIL)

Return(cTESRet                             
    - CR        CREDITO                                                
    - DB        DEPOSITO BANCARIO                                      
    - VA        VALES                                                  
    - VP        VALE PRESENTE                                          
*/
// aArray - Contém as Formas de Pagamentos inválidas para finalizar a venda
aArray:=Aadd(aArray,{"BOL","CH","CO","FP","DC","CR","VA","VP"})

// lRecebe - Recebimennto de Títulos
If !lRecebe
    nPos:=Ascan(aArray,{|x| AllTrim(Upper(x)) ==Alltrim(cCondicao)})

    IfnPos>0
        MsgAlert("Forma de Pagamento "+cCondicao+" bloqueada pelo P.E. LJ7015 !!!")
        cFormaRet:="XX"   // Informar um retorno inválido
    EndIf  

EndIf  

Return(cFormaRet)