Versões comparadas

Chave

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

...

Línea de producto: Microsiga Protheus.
Segmento:Servicios - Mercado Internacional.
Módulo:SIGAFIN - Financiero.
Función:
RutinaNombre Técnico
FISA815Generación del XML de CFDI con complemento para recepción de pagos.
Ticket:7468740 | 7468740.
Issue:DMINA-7857 | DMINA-8126.
Versiones12.1.17 | 12.1.23 | 12.1.25

...

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][14] = Información del documento relacionado.
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 deberá retornar una variable tipo carácter, valor que será visualizado en el atributo NumOperacion del XML de complemento de recepción de pago.

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á el campo de usuario Número Operación usuario Número Operación (EL_NUMOP) . Cabe mencionar que al momento de la ejecución del punto de entrada se 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 campos nuevos que sean agregados y definir la regla para el armado del tributo NumOperacion


¡IMPORTANTE!

*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.

...