...
El Punto de Entrada F087ANUMOP se reciben 2 parámetros, se recibe un arreglo aPagosRec que contiene todos los pagos que se efectuaron en el recibo de cobro y nNumPago que es el número de pago de 1 a n pagos que servirá como indice para buscar el pago correspondiente en el arreglo aPagosRec.
El array aPagosRec contiene la siguiente información:
aPagosRec [nNumPago][14][1][18] = Código del cliente.
aPagosRec [nNumPago][14][1][19] = Tienda.
aPagosRec [nNumPago][03] := Número del recibo de cobro
aPagosRec [nNumPago][25] := Serie del recibo
aPagosRec [nNumPago][04] := Prefijo
aPagosRec [nNumPago][05] := Parcialidad
aPagosRec [nNumPago][06] := Tipo
aPagosRec [nNumPago][11] := Moneda
aPagosRec [nNumPago][_VALOR] := Monto del Pago
aPagosRec [nNumPago][17] := Banco
aPagosRec[nNumPago][18] := Agencia
aPagosRec[nNumPago][19] := Cuenta
aPagosRec[nNumPago][20] := Banco Ch
aPagosRec[nNumPago][21] := Agencia Ch
aPagosRec[nNumPago][22] := Cuenta Ch
aPagosRec[nNumPago][25] := Forma de Pago SAT = Compensación
aPagosRec[nNumPago][27] := Cta Ord
aPagosRec[nNumPago][28] := Tipo CEP
aPagosRec[nNumPago][29] := Certificado CEP
aPagosRec[nNumPago][30] := Cadena CEP
aPagosRec[nNumPago][31] := Sello CEP
aPagosRec[nNumPago][32] := Cta Ben
Se no recibe ningún parámetro, y se deberá retornar una variable tipo carácter, valor que será visualizado en el atributo NumOperacion del XML de complemento de recepción de pagoEjemplo del Punto de Entrada F087ANUMOP *:.
El siguiente ejemplo esta hecho utilizando la tabla SEL en donde se agrego un nuevo campo.
#include 'protheus.ch'
User function F087ANUMOP()
...
Local cNumOp := ""
...
Local aPagosRec := PARAMIXB[1] // Pagos del recibo de cobro
Local nNumPago := PARAMIXB[2] // Numero de
...
pago
DbSelectArea("SEL") //Selección de la tabla de la cual se quiere buscar el campo de usuario.
SEL->(DBGoTop())
SEL->(DbSetOrder(8))//EL_FILIAL+EL_SERIE+EL_RECIBO+EL_TIPODOC+EL_PREFIXO+EL_NUMERO+EL_PARCELA+EL_TIPO
SEL->(DbSeek(xFilial("SEL") + aPagosRec[nNumPago][24] + aPagosRec[nNumPago][2]+ aPagosRec[nNumPago][7]+aPagosRec[nNumPago][4]+aPagosRec[nNumPago][3]+aPagosRec[nNumPago][5]+aPagosRec[nNumPago][6])) //Posicionamiento en el registro usando un indice único
cNumOp := AllTrim(SEL→EL_NUMOP) //Se obtiene el valor del campo de usuario
Return cNumOp
NOTA: En el Punto de Entrada de ejemplo se indica que la cadena que se retornará será la concatenación del campo Número del título (SEL->EL_NUMERO) con el campo Número de Recibo (SEL->EL_RECIBO)el campo de usuario Número Operación (EL_NUMOP) . Cabe mencionar que al momento de la ejecución del punto de entrada se tienen abiertas las tablas puede posicionar en algunas tablas como de Clientes(SA1) y de Recibos de cobro (SEL), por lo que se podrán utilizar campos que ya existen de estas tablas o tablas o campos nuevos que sean agregados y definir la regla para el armado del tributo NumOperacion.
...
*En el Punto de Entrada F087ANUMOP la variable de tipo carácter que se retorna debe cumplir con lo establecido en la Guía de Llenado del SAT pagina 23, referente al atributo NumOperacion donde se indica que el tamaño máximo deber ser 100 caracteres, tomando a consideración que dicha guía puede ser modificada en cualquier momento.
...