Árvore de páginas

LJ7114 - Permite alterar a tela padrão de digitação do NSU e do Código de Autorização na rotina Venda Assistida



Atenção

A versão anterior deste ponto de entrada retornava um conteúdo do tipo caractere (código do NSU). Porém, devido a necessidade de evolução e adequação do produto o mesmo agora passa a esperar o retorno do tipo array conforme especificado abaixo na documentação. Essa mudança passa a valer quando a data do fonte LOJXREC.PRW for maior ou igual à 15/12/2021.

Descrição:

Ponto de Entrada para permitir a substituição da tela padrão para digitação do NSU e do Código de Autorização da transação manual de Cartão (POS) na rotina Venda Assistida.

Eventos:

O ponto de entrada é executado na finalização da venda, substituindo a tela padrão de digitação do NSU e do Código de Autorização.

Disponível a partir do release 12.1.25 

Programa Fonte:

LOJXREC

Parâmetros:

NomeTipoDescrição
ParamIxb[1]Carácter

Tipo da forma de pagamento (CC, CD, Etc..)

ParamIxb[2]CarácterId da parcela do cartão
ParamIxb[3]NuméricoValor da parcela

Retorno:

Deve ser retornado um array com 2 posições, conforme abaixo:

PosiçãoTipoDescrição
01Caractere

NSU (Número Sequencial Único) da transação de Cartão realizado na maquininha (POS).

02CaractereCódigo de Autorização da transação de Cartão realizado na maquininha (POS).
Exemplo:
#INCLUDE "protheus.ch"

//--------------------*** E X E M P L O ***------------------------------------------------
/*/{Protheus.doc} LJ7114()
Ponto de Entrada - Possibilita a troca da tela padrão para digitação do NSU e Código de Autorização no momento da venda.
Usado no Venda Assistida LOJA701

@type       Ponto de Entrada
@param      PARAMIXB[1], Caractere, Recebe o tipo da forma de pagamento ( CC, CD, Etc..)
@param      PARAMIXB[2], Caractere, Recebe o Id da parcela do cartão
@param      PARAMIXB[3], Numérico, Valor da parcela
@version    P12
@since      07/12/2021
@autor      Varejo
@return     aRet , Array , Retorna um array com as informações de NSU e Código de Autorização da transação manual de cartão via POS
/*/
//------------------------------------------------------------------------------------------
User Function LJ7114()
Local oDlg			:= Nil
Local aRet 			:= {}
Local cNSU			:= Space(TamSx3("E1_DOCTEF")[1])
Local cAUTORIZ		:= Space(TamSx3("E1_CARTAUT")[1])
Local cTipoCart		:= ""
Local lTemInfo		:= .F.
Local oGroup 		:= Nil
Local oFontBold 	:= TFont():New(, , -11, .T., .T.)
Local cIdCard 		:= ""
Local cValorCard	:= ""
Local aParams       := PARAMIXB

If Len(aParams) > 0
    If AllTrim(aParams[1]) == "CC"
        cTipoCart := "Cartao de Crédito"
    ElseIf AllTrim(aParams[1]) == "CD"
        cTipoCart := "Cartao de Débito"
    EndIf
    
    If !Empty(AllTrim(aParams[2]))
        cIdCard := " ID: " + aParams[2] 
    EndIf
    
    If aParams[3] > 0
        cValorCard := AllTrim(Transform(aParams[3],PesqPict("SL1","L1_VLRTOT")))
    EndIf
    
    lTemInfo := .T.
EndIf

oDlg 	:= MSDialog():New(0,0,200,450,"Informações da Transação Manual (POS)",,,,,,,,,.T.)
oGroup 	:= TGroup():New(002, 002, 098, 226,"",oDlg,,,.T.)

If lTemInfo
    //Tipo de Cartão 
    TSay():New(005,005,{||cTipoCart},oDlg,,oFontBold,,,,.T.,,,230,16)
    //ID do Cartão
    TSay():New(005,075,{||cIdCard},oDlg,,oFontBold,,,,.T.,CLR_HRED,,230,16)
    
    //Valor
    TSay():New(015,005,{||"Valor:"},oDlg,,oFontBold,,,,.T.,,,230,16)
    TSay():New(015,025,{||cValorCard},oDlg,,oFontBold,,,,.T.,CLR_HRED,,230,16)
EndIf

//"Código da Transação (NSU):"
TSay():New(035,005,{||"Código da Transação (NSU):"},oDlg,,,,,,.T.,CLR_BLACK,,230,16)
oGetNSU := TGet():New(033,077,bSetGet(cNSU),oDlg,065,009,"@!",,,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cNSU,,,, )
oGetNSU:cSx1Hlp:="L4_NSUTEF"

//"Código de Autorização:"
TSay():New(048,005,{||"Código de Autorização:"},oDlg,,,,,,.T.,CLR_BLACK,,230,16)
oGetAutori := TGet():New(046,077,bSetGet(cAUTORIZ),oDlg,065,009,"@!",,,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cAUTORIZ,,,,,,,,,,,)
oGetAutori:cSx1Hlp:="L4_AUTORIZ"

//Botão "OK"
TButton():New( 080, 091, "OK", oDlg, {||oDlg:End()}, 045, 015,,,.F.,.T.,.F.,,.F.,,,.F. )

oDlg:lEscClose := .F.
oDlg:Activate()

cNsu 	 := AllTrim(cNsu)
cAUTORIZ := AllTrim(cAUTORIZ)

If lTemInfo
	aParams[4] := cNSU
	If Len(aParams) >= 5
		aParams[5] := cAUTORIZ
	EndIf
EndIf

aRet := {cNSU, cAUTORIZ}

Return aRet