/*GPER884.INI V1.2 - Modelo 2017 - 20/03/2017*/ [XXX POSICIONAMENTOS] [XXX INICIALIZACION] (PRE) SRVPD->(DbSetOrder(1)) (PRE) _aTotal[072] := SRA->RA_FILIAL (PRE) _aTotal[073] := SRA->RA_MAT (PRE) _aTotal[074] := "" (PRE) _aTotal[075] := CFDCarEsp(Alltrim(SM0->M0_NOMECOM)) (PRE) _aTotal[076] := StrZero(Year(Date()),4) + "-" + StrZero(Month(Date()),2) + "-" + StrZero(Day(Date()),2) + "T" + Time() (PRE) _aTotal[077] := Alltrim(MV_PAR01)+Alltrim(MV_PAR02)+Alltrim(MV_PAR03)+Alltrim(MV_PAR04) (PRE) _aTotal[078] := Alltrim(SRA->RA_MAT)+Alltrim(SRA->RA_FILIAL) (PRE) _aTotal[098] := "|" (PRE) _aTotal[099] := "||" (PRE) _aTotal[100] := "" //CADENA ORIGINAL [SRA CADENAORIGINAL_SELLO] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" //Cadena Original (PRE) cCadOrig := _aTotal[099] //Version (PRE) cCadOrig += "4.0" + _aTotal[098] //Serie:Nombre (PRE) cCadOrig += _aTotal[078] Alltrim(SM0->M0_NOMECOM) + _aTotal[098] //Folio:Regimen (PRE) cCadOrig += _aTotal[077] cTipoReg + _aTotal[098] ///FechaCOMPROBANTE:RECEPTOR //:RFC (PRE) cCadOrig += Alltrim(_aTotal[076]CFDCarEsp(AllTrim(SRA->RA_CIC)) + _aTotal[098] //Num Certificado:Nombre (PRE) cCadOrig += SuperGetMv("MV_CFDI_CS",,""Alltrim(SRA->RA_NOME) + _aTotal[098] //Subtotal:DomicilioFiscalReceptor (PRE) cCadOrig += Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP), 2), "99999999.99"cCadOrig += CFDCarEsp(Alltrim(SRA->RA_CEP)) + _aTotal[098] //Descuento:RegimenFiscalReceptor (PRE) cCadOrig += CFDCarEsp(Alltrim(Transform(Round(nOtroDedu+nImpReten,2), "99999999.99"Iif(SRA->(ColumnPos("RA_FISCALI")) > 0,SRA->RA_FISCALI,""))) + _aTotal[098] //Moneda:UsoCFDI (PRE) cCadOrig += Alltrim("MXNCN01") + _aTotal[098] //TotalCOMPROBANTE:CONCEPTOS //Clave Servicio (PRE) cCadOrig += Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP) - (nOtroDedu + nImpReten), 2), "99999999.99")AllTrim("84111505")+ _aTotal[098] //Tipo Comprobante:Cantidad (PRE) cCadOrig += Alltrim("N1")+ _aTotal[098] //Exportacion:Unidad de medida (PRE) cCadOrig += Alltrim("01ACT")+ _aTotal[098] //Metodo Pago:Descripcion (PRE) cCadOrig += AlltrimDECODEUTF8(AllTrim("PUEPago de nómina")) + _aTotal[098] //Lugar de expedición:valorUnitario (PRE) cCadOrig += CFDCarEsp(AllTrim(RGC->RGC_CODPOSAllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + _aTotal[098] //Tipo RelacionadosImporte (PRE) cCadOrig += NodoRelacc(3) //UUIDS Relacionados (PRE) cCadOrig += NodoRelacc(1)//COMPROBANTE:EMISOR //:RFCAllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + _aTotal[098] //TotalDeducciones (PRE) cCadOrig += CFDCarEspAlltrim(Transform(Alltrim(SM0->M0_CGCRound(nTotDGrav+nTotDExen,2), "99999999.99")) + _aTotal[098] //:NombreObjetoImp (PRE) cCadOrig += Alltrim(SM0->M0_NOMECOM"01")+ _aTotal[098] //:RegimenNOMINA //version (PRE) cCadOrig += cTipoReg "1.2" + _aTotal[098] //COMPROBANTE:RECEPTOR //:RFCTipoNomina (PRE) cCadOrig += CFDCarEspIIf(AllTrim(SRASRY->RA_CIC)>RY_TIPO == "1" .And. !lImprIndem, "O", "E") + _aTotal[098] //:NombreFechaPago (PRE) cCadOrig += CFDCarEsp(Alltrim(SRA->RA_NOME)Alltrim(STR(YEAR(dFchPag)))+"-"+ STRZERO(MONTH(dFchPag),2) +"-"+STRZERO(DAY(dFchPag),2) + _aTotal[098] //:DomicilioFiscalReceptorFechaInicialPago (PRE) cCadOrig += CFDCarEsp(Alltrim(SRA->RA_CEP)Alltrim(STR(YEAR(dFchInPag)))+"-"+ STRZERO(MONTH(dFchInPag),2) +"-"+STRZERO(DAY(dFchInPag),2) + _aTotal[098] //:RegimenFiscalReceptorFechaFinalPago (PRE) cCadOrig += CFDCarEspAlltrim(AlltrimSTR(Iif(SRA->(ColumnPos("RA_FISCALI")) > 0,SRA->RA_FISCALI,""))YEAR(dFchFiPag)))+"-"+ STRZERO(MONTH(dFchFiPag),2) +"-"+STRZERO(DAY(dFchFiPag),2) + _aTotal[098] //:UsoCFDINumDiasPagados (PRE) cCadOrig += Alltrim(IIf(nDiasPag == 0, "1", Transform(nDiasPag, "CN0199999.999"))) + _aTotal[098] //COMPROBANTE:CONCEPTOS //Clave ServicioTotalPercepciones (PRE) cCadOrig += AllTrim("84111505"IIf(nTotPGrav+nTotPExen <> 0, Alltrim(Transform(Round(nTotPGrav+nTotPExen,2), "99999999.99")) + _aTotal[098], "") //:CantidadTotalDeducciones (PRE) cCadOrig += Alltrim("1") cCadOrig += IIf(nTotDGrav+nTotDExen <> 0, Alltrim(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99")) + _aTotal[098], "") //:Unidad de medidaTotalOtrosPagos (PRE) cCadOrig += Alltrim("ACT"IIf(nTotOtroP <> 0 .And. !lRegAsimil, AllTrim(Transform(Round(nTotOtroP,2), "99999999.99")) + _aTotal[098], "") //EMISOR //:DescripcionRegistroPatronal (PRE) cCadOrig += DECODEUTF8(AllTrim("Pago de nómina")IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, AllTrim(cRegPatr) + _aTotal[098], "") //:valorUnitarioRfcPatronOrigen (PRE) cCadOrig += AllTrimCFDCarEsp(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99"Alltrim(SM0->M0_CGC)) + _aTotal[098] //ImporteEntidadSNCF (PRE) IIf(!Empty(cOrigRecur), cCadOrig += AllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) Alltrim(cOrigRecur) + _aTotal[098] //TotalDeducciones (PRE) , "") (PRE) IIf(!Empty(cOrigRecur), cCadOrig += Alltrim(Transform(Round(nTotDGravnTotPGrav+nTotDExennTotPExen,2), "99999999.99")) + _aTotal[098] //ObjetoImp (PRE) cCadOrig += Alltrim("01")+ _aTotal[098], "") //NOMINARECEPTOR //versionCurp (PRE) cCadOrig += "1.2" Alltrim(SRA->RA_CURP) + _aTotal[098] //TipoNominaNumSeguridadSocial (PRE) cCadOrig += IIf(SRYSRA->RY_TIPO == "1" >RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, "O", "E"lImprIndem, cCadOrig += AllTrim(SRA->RA_RG) + _aTotal[098], "") //FechaPagoFechaInicioRelLaboral (PRE) IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, cCadOrig += AlltrimAllTrim(STRStr(YEARYear(dFchPagdFchInLab))) + "-" + STRZEROStrZero(MONTHMonth(dFchPagdFchInLab),2) + "-" + STRZEROStrZero(DAYDay(dFchPagdFchInLab),2) + _aTotal[098], "") //FechaInicialPagoAntigüedad (PRE) cCadOrig += Alltrim(STR(YEAR(dFchInPag)))+"-"+ STRZERO(MONTH(dFchInPag),2) +"-"+STRZERO(DAY(dFchInPag),2) IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, cCadOrig += 'P' + AllTrim(Str(nAntigue)) + 'W' + _aTotal[098], "") //FechaFinalPagoTipoContrato (PRE) cCadOrig += Alltrim(STR(YEAR(dFchFiPag)))+"-"+ STRZERO(MONTH(dFchFiPag),2) +"-"+STRZERO(DAY(dFchFiPag),2IIf(lImprIndem,"99", Alltrim(SRA->RA_TIPCON)) + _aTotal[098] //NumDiasPagadosSindicalizado (PRE) IIf(SRA->RA_CATFUNC <> 'A', cCadOrig += AlltrimIIf(Str(IIf(nDiasPag == 0, 1, nDiasPag))!Empty(SRA->RA_SINDICA) .And. !lRegAsimil, "SÃ", "No") + _aTotal[098], "") //TotalPercepcionesTipoJornada (PRE) cCadOrig += IIf(nTotPGrav+nTotPExen <> 0, Alltrim(Transform(Round(nTotPGrav+nTotPExen,2), "99999999.99")SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil, cCadOrig += AllTrim(cTipJorn) + _aTotal[098], "") //TotalDeduccionesTipoRegimen (PRE) cCadOrig += IIf(nTotDGrav+nTotDExen <> 0, Alltrim(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99"lImprIndem,"13",AllTrim(SRA->RA_TIPREG)) + _aTotal[098], "") //NumEmpleado (PRE) cCadOrig += AllTrim(SRA->RA_MAT) + _aTotal[098] //TotalOtrosPagosDepartamento //MOD (PRE) cCadOrig += IIf(nTotOtroP <> 0 .And. !lRegAsimil!Empty(cDeptoIm), AllTrim(Transform(Round(nTotOtroP,2cDeptoIm), "99999999.99")) + _aTotal[098], "") //EMISOR //RegistroPatronal (PRE) cCadOrig += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem!Empty(cDeptoIm), AllTrim(cRegPatrcDeptoIm) + _aTotal[098], "") //RfcPatronOrigenPuesto (PRE) cCadOrig += CFDCarEspIIf(Alltrim(SM0->M0_CGC)!Empty(cPuesCfdi), AllTrim(cPuesCfdi) + _aTotal[098], "") //EntidadSNCFRiesgoPuesto (PRE) cCadOrig += IIf(!Empty(cOrigRecur), cCadOrig += Alltrim(cOrigRecur) !lRegAsimil .AND. !lImprIndem, IIf(SRA->RA_CATFUNC <> 'A', AllTrim(cRiegCFDi), AllTrim("99")) + _aTotal[098], "") //PeriodicidadPago (PRE) IIf(!Empty(cOrigRecur), cCadOrig += CFDCarEsp(Alltrim(Transform(Round(nTotPGrav+nTotPExen,2), "99999999.IIf(SRY->RY_TIPO == "1",cPerCFDi, "99"))) + _aTotal[098], "") //RECEPTORBanco //Curp (PRE) IIf(!Empty(SRA->RA_CLABE),,cCadOrig += IIf(!Empty(cBcoCfdi), Alltrim(SRA->RA_CURPcBcoCfdi) + _aTotal[098], "")) //NumSeguridadSocialCLABE (PRE) cCadOrig += IIf(!Empty(SRA->RA_CLABE), Alltrim(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, cCadOrig += AllTrimCLABE), Alltrim(SRA->RA_RGCTDEPSA)) + _aTotal[098], "") //FechaInicioRelLaboralSalarioBaseCotApor (PRE) IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, cCadOrig += AllTrimAlltrim(StrTransform(Year(dFchInLab))) + "-" + StrZero(Month(dFchInLab)Round(nSalBasAp,2) + , "-" + StrZero(Day(dFchInLab),299999999.99")) + _aTotal[098], "") //AntigüedadSalarioDiarioIntegrado (PRE) IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, cCadOrig += 'P' + AllTrim(Transform(Str(nAntigue)) + 'W' Round(SRA->RA_SALINT,2), "99999999.99")) + _aTotal[098], "") //TipoContratoClaveEntFed (PRE) cCadOrig += IIf(lImprIndem,"99", Alltrim(SRA->RA_TIPCON)cEntFed) + _aTotal[098] //SUBCONTRATACION //SindicalizadoRfcLabora (PRE) cCadOrig += IIf(SRA->RA_CATFUNC PORSUB <> 'A', cCadOrig += IIf(!Empty0, Alltrim(SRA->RA_SINDICA) .And. !lRegAsimil, "SÃ", "No") RFCLAB) + _aTotal[098], "") //TipoJornadaPorcentajeTiempo (PRE) cCadOrig += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil, cCadOrig += AllTrim(cTipJornPORSUB <> 0, Alltrim(Str(SRA->RA_PORSUB)) + _aTotal[098], "") //PERCEPCIONES //TipoRegimenTotalSueldos (PRE) IIf(nTotSueld <> 0, cCadOrig += IIf(lImprIndem,"13",AllTrim(SRA->RA_TIPREG)) + _aTotal[098] //NumEmpleado (PRE) cCadOrig += AllTrim(SRA->RA_MATAlltrim(Transform(Round(nTotSueld,2), "99999999.99")) + _aTotal[098], "") //DepartamentoTotalSeparacionIndemnizacion //MOD (PRE) IIf(nTotIndem <> 0, cCadOrig += IIf(!Empty(cDeptoIm), AllTrim(cDeptoImAlltrim(Transform(Round(nTotIndem,2), "99999999.99")) + _aTotal[098], "") //TotalJubilacionPensionRetiro (PRE) IIf(nTotJubil <> 0, cCadOrig += IIf(!Empty(cDeptoIm), AllTrim(cDeptoImAlltrim(Transform(Round(nTotJubil,2), "99999999.99")) + _aTotal[098], "") //PuestoTotalGravado (PRE) cCadOrig += IIf(!Empty(cPuesCfdi), AllTrim(cPuesCfdiAlltrim(Transform(Round(nTotPGrav,2), "99999999.99")) + _aTotal[098], "") //RiesgoPuestoTotalExento (PRE) cCadOrig += IIf(!lRegAsimil .AND. !lImprIndem, IIf(SRA->RA_CATFUNC <> 'A', AllTrim(cRiegCFDi), AllTrim("Alltrim(Transform(Round(nTotPExen,2), "99999999.99")) + _aTotal[098], " //PERCEPCION (AccionesOTitulos y/o Horas Extras) (PRE) VldCad884("1") //PeriodicidadPagoJubilacionPensionRetiro //TotalUnaExhibicion (PRE) IIf(nTotUnaEx <> 0, cCadOrig += CFDCarEspAlltrim(AlltrimTransform(IIf(SRY->RY_TIPO == "1",cPerCFDi, "Round(nTotUnaEx,2), "99999999.99")) ) + _aTotal[098], "") //BancoTotalParcialidad (PRE) IIf(!Empty(SRA->RA_CLABE),nTotParci <> 0, cCadOrig += IIf(!Empty(cBcoCfdi), Alltrim(cBcoCfdiAlltrim(Transform(Round(nTotParci,2), "99999999.99")) + _aTotal[098], "")) //CLABEMontoDiario (PRE) IIf(nTotParci <> 0, cCadOrig += IIf(!Empty(SRA->RA_CLABE), Alltrim(SRA->RA_CLABE), Alltrim(SRA->RA_CTDEPSAAlltrim(Transform(Round(nTotDiari,2), "99999999.99")) + _aTotal[098], "") //SalarioBaseCotAporIngresoAcumulable (PRE) IIf(SRA->RA_CATFUNC <> 'A'nTotUnaEx+nTotParci <> 0, cCadOrig += Alltrim(Transform(Round(nSalBasApnTotIAcum,2), "99999999.99")) + _aTotal[098], "") //SalarioDiarioIntegradoIngresoNoAcumulable (PRE) IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndemnTotUnaEx+nTotParci <> 0, cCadOrig += AllTrimAlltrim(Transform(Round(SRA->RA_SALINTNTotNAcum,2), "99999999.99")) + _aTotal[098], "") //ClaveEntFedSeparacionIndemnizacion //TotalPagado (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(cEntFed(Transform(Round(nTotPagad,2), "99999999.99")) + _aTotal[098], "") //SUBCONTRATACIONNumAñosServicio //RfcLabora (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Str(IIf(SRA->RA_PORSUB <> 0, Alltrim(SRA->RA_RFCLABnNumAnios==0, 1, nNumAnios))) + _aTotal[098], "") //PorcentajeTiempoUltimoSueldoMensOrd (PRE) cCadOrig += IIf(SRA->RA_PORSUB nTotPagad <> 0, cCadOrig += Alltrim(Transform(Str(SRA->RA_PORSUBRound(nUltSuelM,2), "99999999.99")) + _aTotal[098], "") //PERCEPCIONES //TotalSueldosIngresoAcumulable (PRE) IIf(nTotSueld nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nTotSueldnIngrAcum,2), "99999999.99")) + _aTotal[098], "") //TotalSeparacionIndemnizacionIngresoNoAcumulable (PRE) IIf(nTotIndem nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nTotIndemnIngrNAcu,2), "99999999.99")) + _aTotal[098], "") //DEDUCCIONES //TotalJubilacionPensionRetiroTotalOtrasDeducciones (PRE) IIf(nTotJubil nOtroDedu <> 0, cCadOrig += Alltrim(Transform(Round(nTotJubilnOtroDedu,2), "99999999.99")) + _aTotal[098], "") //TotalGravadoTotalImpuestosRetenidos (PRE) IIf(nImpReten <> 0, cCadOrig += Alltrim(Transform(Round(nTotPGravnImpReten,2), "99999999.99")) + _aTotal[098], "") //DEDUCCION (PRE) VldCad884("2") //OtroPago //TotalExentoTipoOtroPago (SubsidioAlEmpleo - CompensacionSaldosAFavor) (PRE) cCadOrig += Alltrim(Transform(Round(nTotPExen,2), "99999999.99")) + IIf(!lRegAsimil, VldCad884("3"), .T.) //Incapacidad (PRE) VldCad884("4") (PRE) cCadOrig += _aTotal[098] //PERCEPCION (AccionesOTitulos y/o Horas Extras(POS) _aTotal[074] := ENCODEUTF8(cCadOrig) (PRE) VldCad884("1"POS) cCadOrig := ENCODEUTF8(cCadOrig) //JubilacionPensionRetiro //TotalUnaExhibicionSello (PRE) IIf(nTotUnaEx <> 0, cCadOrig += Alltrim(Transform(Round(nTotUnaEx,2), "99999999.99")) + _aTotal[098], "") //TotalParcialidad (PRE) IIf(nTotParci <> 0, cCadOrig += Alltrim(Transform(Round(nTotParci,2), "99999999.99")) + _aTotal[098], "") //MontoDiario (PRE) IIf(nTotParci <> 0, cCadOrig += Alltrim(Transform(Round(nTotDiari,2), "99999999.99")) + _aTotal[098], "") //IngresoAcumulable (PRE) IIf(nTotUnaEx+nTotParci <> 0, cCadOrig += Alltrim(Transform(Round(nTotIAcum,2), "99999999.99")) + _aTotal[098], "") //IngresoNoAcumulable (PRE) IIf(nTotUnaEx+nTotParci <> 0, cCadOrig += Alltrim(Transform(Round(NTotNAcum,2), "99999999.99")) + _aTotal[098], "") //SeparacionIndemnizacion //TotalPagado (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nTotPagad,2), "99999999.99")) + _aTotal[098], "") //NumAñosServicio (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Str(IIf(nNumAnios==0, 1, nNumAnios))) + _aTotal[098], "") //UltimoSueldoMensOrd (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nUltSuelM,2), "99999999.99")) + _aTotal[098], "") //IngresoAcumulable (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nIngrAcum,2), "99999999.99")) + _aTotal[098], "") //IngresoNoAcumulable (PRE) IIf(nTotPagad <> 0, cCadOrig += Alltrim(Transform(Round(nIngrNAcu,2), "99999999.99")) + _aTotal[098], "") //DEDUCCIONES //TotalOtrasDeducciones (PRE) IIf(nOtroDedu <> 0, cCadOrig += Alltrim(Transform(Round(nOtroDedu,2), "99999999.99")) + _aTotal[098], "") //TotalImpuestosRetenidos (PRE) IIf(nImpReten <> 0, cCadOrig += Alltrim(Transform(Round(nImpReten,2), "99999999.99")) + _aTotal[098], "") //DEDUCCION (PRE) VldCad884("2") //OtroPago //TipoOtroPago (SubsidioAlEmpleo - CompensacionSaldosAFavor) (PRE) IIf(!lRegAsimil, VldCad884("3"), .T.) //Incapacidad (PRE) VldCad884("4") (PRE) cCadOrig += _aTotal[098] (POS) _aTotal[074] := ENCODEUTF8(cCadOrig) (POS) cCadOrig := ENCODEUTF8(cCadOrig) //Sello (POS) _aTotal[100] := LjHex2Asc(SHA256(cCadOrig,2)) (POS) _aTotal[100] := PrivSignRSA(&(SuperGetMv("MV_CFDDIRS",,""))+SuperGetMv("MV_CFDI_KP",,""),_aTotal[100],6,"assinatura") (POS) _aTotal[100] := ENCODE64(_aTotal[100]) // C O N F I G U R A C I O N D E L A R C H I V O : R E C N O M . INI [XXX CABECERA] Linha1 C 041 0 Chr(239) + Chr(187) + Chr(191) + '<?xml version="1.0" encoding="UTF-8"?>' //CFDI: CFDI:COMPROBANTE [XXX CFDI] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" //Certificado //CSD_XIA190128J61c.pem XIA190128J61 - pruebas SAT (PRE) cCert01 := "MIIFyDCCA7CgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDMwDQYJKoZIhvcNAQEL" (PRE) cCert01 += "BQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFE" (PRE) cCert01 += "TUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9y" (PRE) cCert01 += "aXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0w" (PRE) cCert01 += "GwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJ" (PRE) cCert01 += "BgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhD" (PRE) cCert01 += "T1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3Bv" (PRE) cCert01 += "bnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjA0MDUxWhcNMjMwNjE3MjA0MDUx" (PRE) cCert01 += "WjCB7zEqMCgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENW" (PRE) cCert01 += "MSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAo" (PRE) cCert01 += "BgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UE" (PRE) cCert01 += "LRMcWElBMTkwMTI4SjYxIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FI" (PRE) cCert01 += "TzY0MTEwMUhOVExLUzA2MSIwIAYDVQQLExlYZW5vbiBJbmR1c3RyaWFsIEFydGlj" (PRE) cCert01 += "bGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiJQ5YcSgjwsGf29+" (PRE) cCert01 += "3go7VGdtMZCcH9wUpn46ZMAlFwUojnCPTvwJ3+cSwjqJnw8ahr3DuRwekvGR4BJA" (PRE) cCert01 += "b5b9Xi8kyoiWtwcGOSWxO38Bp9J1e/BO9HMbQBPAtLDuG47oqnH8zWLOeaoYRJDp" (PRE) cCert01 += "ARw4RX1ko2+9tbj0ntBtM7Vk1E8EWiA/h2Meq0LIv1+ySGTUrEW46FM01J5pzELv" (PRE) cCert01 += "5XupBghuJxR5DG9fiOW7u3dR5s3tZoVLwA1KdjJtY0mmnfCwxg6i5AqhvY+FAI5D" (PRE) cCert01 += "6CF6/lHA8PWg63WasvrhuIv70xCLjgPT/j00ZcPrLvBf1DefGVic980Ch/SDvC+M" (PRE) cCert01 += "dJ1F5wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG" (PRE) cCert01 += "9w0BAQsFAAOCAgEACjfTPoKY2N5MxjmAMltd5XZCV1vgAwEtrIRYTodhE8R0Tp1Q" (PRE) cCert01 += "anAXb0luPyBv5hIXWK4VqAI4fcTtP+n7kkrwfha6ErkPWFNJWJm8ZsMmby/3WgVo" (PRE) cCert01 += "JkOFyRYQqr5Il3N6wMa5kiDBtDRbqB3iEXmvtrvjWSHyxAER+zo3jWGFlhBZ0nQN" (PRE) cCert01 += "Rtjx8sPFihVc5TUH682HJiU4oWvT63Dnra8ncqiW/uCuY86crnUq0fW7Lw/3+PY5" (PRE) cCert01 += "xXjNxR/Hh3sUPITfJrGaLWurD1J9npr9yGAJ6t9zrhhZnepIC0DUMc5+j4pg1DrO" (PRE) cCert01 += "32jzwUOLQqErDizh84NoJCWwbg+US8wi3zD0ZKiDv7XsTNWAW2Ap2JkzykKHjFTZ" (PRE) cCert01 += "iEm3uZOkJNfcu3o+kefr5HfXFT+iN9K5FUEhaQwgUeZBRJ8V5F6gmhz3d6ixVbiZ" (PRE) cCert01 += "oFNhYR8e2k8gF9gGrVMrEbJGQrl+6+ZYQLFiauXeG7fu1svk19PuyredRJGnseJq" (PRE) cCert01 += "yV4RzcRGhJA+cLnmpdDOTEhignnvnhEuY6HVRYYXhOTyeeluET7KRCxbJGqO7TdW" (PRE) cCert01 += "gjrHL3HRbNE4NY5GAdOZuLaWxElG5ZVCHqtG0Nh7UQAhcz+EKyZBAewv5XuH0Oom" (PRE) cCert01 += "ZXw6mM2mY2soL6z1224NusM8/BbJcYTQUlAEKblEChhGK1XlxiVOU2nc9KE=" (PRE) if (SM0->M0_CODIGO == '01', cCert := cCert01,cCert := cCert01) POS) _aTotal[100] := LjHex2Asc(SHA256(cCadOrig,2)) (POS) _aTotal[100] := PrivSignRSA(&(SuperGetMv("MV_CFDDIRS",,""))+SuperGetMv("MV_CFDI_KP",,""),_aTotal[100],6,"assinatura") (POS) _aTotal[100] := ENCODE64(_aTotal[100]) // C O N F I G U R A C I O N D E L A R C H I V O : R E C N O M . INI [XXX CABECERA] Linha1 C 041 0 Chr(239) + Chr(187) + Chr(191) + '<?xml version="1.0" encoding="UTF-8"?>' //CFDI: CFDI:COMPROBANTE [XXX CFDI] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" //Certificado //CSD_XIA190128J61c.pem XIA190128J61 - pruebas SAT (PRE) cCert01 := "MIIFyDCCA7CgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDMwDQYJKoZIhvcNAQEL" (PRE) cCert01 += "BQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFE" (PRE) cCert01 += "TUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9y" (PRE) cCert01 += "aXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0w" (PRE) cCert01 += "GwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJ" (PRE) cCert01 += "BgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhD" (PRE) cCert01 += "T1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3Bv" (PRE) cCert01 += "bnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjA0MDUxWhcNMjMwNjE3MjA0MDUx" (PRE) cCert01 += "WjCB7zEqMCgGA1UEAxMhWEVOT04gSU5EVVNUUklBTCBBUlRJQ0xFUyBTIERFIENW" (PRE) cCert01 += "MSowKAYDVQQpEyFYRU5PTiBJTkRVU1RSSUFMIEFSVElDTEVTIFMgREUgQ1YxKjAo" (PRE) cCert01 += "BgNVBAoTIVhFTk9OIElORFVTVFJJQUwgQVJUSUNMRVMgUyBERSBDVjElMCMGA1UE" (PRE) cCert01 += "LRMcWElBMTkwMTI4SjYxIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FI" (PRE) cCert01 += "TzY0MTEwMUhOVExLUzA2MSIwIAYDVQQLExlYZW5vbiBJbmR1c3RyaWFsIEFydGlj" (PRE) cCert01 += "bGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiJQ5YcSgjwsGf29+" (PRE) cCert01 += "3go7VGdtMZCcH9wUpn46ZMAlFwUojnCPTvwJ3+cSwjqJnw8ahr3DuRwekvGR4BJA" (PRE) cCert01 += "b5b9Xi8kyoiWtwcGOSWxO38Bp9J1e/BO9HMbQBPAtLDuG47oqnH8zWLOeaoYRJDp" (PRE) cCert01 += "ARw4RX1ko2+9tbj0ntBtM7Vk1E8EWiA/h2Meq0LIv1+ySGTUrEW46FM01J5pzELv" (PRE) cCert01 += "5XupBghuJxR5DG9fiOW7u3dR5s3tZoVLwA1KdjJtY0mmnfCwxg6i5AqhvY+FAI5D" (PRE) cCert01 += "6CF6/lHA8PWg63WasvrhuIv70xCLjgPT/j00ZcPrLvBf1DefGVic980Ch/SDvC+M" (PRE) cCert01 += "dJ1F5wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG" (PRE) cCert01 += "9w0BAQsFAAOCAgEACjfTPoKY2N5MxjmAMltd5XZCV1vgAwEtrIRYTodhE8R0Tp1Q" (PRE) cCert01 += "anAXb0luPyBv5hIXWK4VqAI4fcTtP+n7kkrwfha6ErkPWFNJWJm8ZsMmby/3WgVo" (PRE) cCert01 += "JkOFyRYQqr5Il3N6wMa5kiDBtDRbqB3iEXmvtrvjWSHyxAER+zo3jWGFlhBZ0nQN" (PRE) cCert01 += "Rtjx8sPFihVc5TUH682HJiU4oWvT63Dnra8ncqiW/uCuY86crnUq0fW7Lw/3+PY5" (PRE) cCert01 += "xXjNxR/Hh3sUPITfJrGaLWurD1J9npr9yGAJ6t9zrhhZnepIC0DUMc5+j4pg1DrO" (PRE) cCert01 += "32jzwUOLQqErDizh84NoJCWwbg+US8wi3zD0ZKiDv7XsTNWAW2Ap2JkzykKHjFTZ" (PRE) cCert01 += "iEm3uZOkJNfcu3o+kefr5HfXFT+iN9K5FUEhaQwgUeZBRJ8V5F6gmhz3d6ixVbiZ" (PRE) cCert01 += "oFNhYR8e2k8gF9gGrVMrEbJGQrl+6+ZYQLFiauXeG7fu1svk19PuyredRJGnseJq" (PRE) cCert01 += "yV4RzcRGhJA+cLnmpdDOTEhignnvnhEuY6HVRYYXhOTyeeluET7KRCxbJGqO7TdW" (PRE) cCert01 += "gjrHL3HRbNE4NY5GAdOZuLaWxElG5ZVCHqtG0Nh7UQAhcz+EKyZBAewv5XuH0Oom" (PRE) cCert01 += "ZXw6mM2mY2soL6z1224NusM8/BbJcYTQUlAEKblEChhGK1XlxiVOU2nc9KE=" (PRE) if (SM0->M0_CODIGO == '01', cCert := cCert01,cCert := cCert01) (PRE) _aTotal[001] := '<cfdi:Comprobante' (PRE) _aTotal[001] += ' xmlns:cfdi="http://www.sat.gob.mx/cfd/4"' (PRE) _aTotal[001] += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' (PRE) _aTotal[001] += ' xmlns:nomina12="http://www.sat.gob.mx/nomina12"' (PRE) _aTotal[001] += ' xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd"' (PRE) _aTotal[001] += ' Version="4.0"' (PRE) _aTotal[001] += ' Serie="' + _aTotal[078] + '"' (PRE) _aTotal[001] += ' Folio="' + _aTotal[077] + '"' (PRE) _aTotal[001] += ' Fecha="' + _aTotal[076]+ '"' (PRE) _aTotal[001] += ' Sello="' + Alltrim(_aTotal[100]) + '"' (PRE) _aTotal[001] += ' NoCertificado="' + SuperGetMv("MV_CFDI_CS",,"") + '"' (PRE) _aTotal[001] += ' Certificado="' + cCert + '"' (PRE) _aTotal[001] += ' SubTotal="' + AllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP), 2), "99999999.99")) + '"' (PRE) _aTotal[001] += ' Descuento="' + Alltrim(Transform(Round(nOtroDedu+nImpReten,2), "99999999.99")) + '"' (PRE) _aTotal[001] += ' Moneda="' + Alltrim("MXN") + '"' (PRE) _aTotal[001] += ' Total="' + AllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP) - (nOtroDedu + nImpReten), 2), "99999999.99")) + '"' (PRE) _aTotal[001] += ' TipoDeComprobante="' + AllTrim("N") + '"' (PRE) _aTotal[001] += ' Exportacion="' + Alltrim("01") + '"' (PRE) _aTotal[001] += ' MetodoPago="' + Alltrim("PUE") + '"' (PRE) _aTotal[001] += ' LugarExpedicion="' + CFDCarEsp(AllTrim(RGC->RGC_CODPOS)) + '"' (PRE) _aTotal[001] += '>(PRE) _aTotal[001] := '<cfdi:Comprobante' (PRE) _aTotal[001] += ' xmlns :cfdi="http://www.sat.gob.mx/cfd/4"' (PRE= ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' //COMPROBANTE: CFDI:CfdiRelacionado [XXX CfdiRelacionados] (PRE) _aTotal[001] += ' xmlns :nomina12="http://www.sat.gob.mx/nomina12"'= NodoRelacc(2) (PRE) _aTotal[001] += ' xsi := ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:EMISOR [XXX EMISOR]schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd"' (PRE) _aTotal[001] +:= ' Version="4.0" <cfdi:Emisor' (PRE) _aTotal[001] += ' SerieRfc="' + _aTotal[078] CFDCarEsp(Alltrim(SM0->M0_CGC)) + '"' (PRE) _aTotal[001] += ' FolioNombre="' + _aTotal[077075] + '"' (PRE) _aTotal[001] += ' FechaRegimenFiscal="' + cTipoReg + '"' (PRE) _aTotal[076001] += '"/>' (PRE) _aTotal[001] += ' Sello="' + Alltrim:= ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:RECEPTOR [XXX RECEPTOR] (PREREG) (_aTotal[100001] ) + '"' (PRE) := ' <cfdi:Receptor' , .T.) (PREREG) (_aTotal[001] += ' NoCertificadoRfc="' + SuperGetMv("MV_CFDI_CS",,""CFDCarEsp(AllTrim(SRA->RA_CIC)) + '"' , .T.) (PREPREREG) (_aTotal[001] += ' CertificadoNombre="' + cCert Alltrim(SRA->RA_NOME) + '"' , .T.) (PREPREREG) (_aTotal[001] += ' SubTotalDomicilioFiscalReceptor="' + AllTrimCFDCarEsp(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP), 2), "99999999.99"Alltrim(SRA->RA_CEP)) + '"' , .T.) (PREPREREG) (_aTotal[001] += ' DescuentoRegimenFiscalReceptor="' + CFDCarEsp(Alltrim(Iif(TransformSRA->(Round(nOtroDedu+nImpReten,2), "99999999.99"ColumnPos("RA_FISCALI")) > 0,SRA->RA_FISCALI,""))) + '"' , .T.) (PREPREREG) (_aTotal[001] += ' MonedaUsoCFDI="' + AlltrimCFDCarEsp( "MXNCN01") + '"' , .T.) (PREPREREG) (_aTotal[001] += ' Total="' + AllTrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP) - (nOtroDedu + nImpReten), 2), "99999999.99")) + '"' (PRE) _aTotal[001] += ' TipoDeComprobante="' + AllTrim("N") + '"' (PRE) _aTotal[001] += ' Exportacion="' + Alltrim("01") + '"' (PRE) _aTotal[001] += ' MetodoPago="' + Alltrim("PUE") + '"' (PRE) _aTotal[001] += ' LugarExpedicion="' + CFDCarEsp(AllTrim(RGC->RGC_CODPOS)) + '"' (PRE) _aTotal[001] += '>' (PRE) _aTotal[001] := ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:CfdiRelacionado [XXX CfdiRelacionados] (PRE) _aTotal[001] := NodoRelacc(2) (PRE) _aTotal[001] := ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:EMISOR [XXX EMISOR] (PRE) _aTotal[001] := ' <cfdi:Emisor' (PRE) _aTotal[001] += ' Rfc="' + CFDCarEsp(Alltrim(SM0->M0_CGC)) + '"' (PRE) _aTotal[001] += ' Nombre="' + _aTotal[075] + '"' (PRE) _aTotal[001] += ' RegimenFiscal="' + cTipoReg + '"' (PRE) _aTotal[001] += '/>' (PRE) _aTotal[001] := ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] />' ,.T.) (PREREG) (_aTotal[001] := ENCODEUTF8(_aTotal[001]) , .T.) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:COCEPTOS [XXX CONCEPTOS] CONCEPTOS C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Conceptos",.T.,.F.,4)) [XXX CONCEPTO] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) (_aTotal[002] := ' <cfdi:Concepto',.T.) (PREREG) (_aTotal[002] += ' ClaveProdServ="'+AllTrim("84111505")+'"',.T.) (PREREG) (_aTotal[002] += ' Cantidad="' + Alltrim("1") + '"',.T.) (PREREG) (_aTotal[002] += ' ClaveUnidad="' + Alltrim("ACT") + '"',.T.) (PREREG) (_aTotal[002] += ' Descripcion="' + DECODEUTF8(AllTrim("Pago de nómina")) + '"',.T.) (PREREG) (_aTotal[002] += ' ValorUnitario="' + Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002] += ' Importe="' + Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002] += ' Descuento="' + Alltrim(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002] += ' ObjetoImp="' + Alltrim("01") + '"',.T.) (PREREG) (_aTotal[002] += '/>',.T.) (PREREG) (_aTotal[078] ++,.T.) (PREREG) ENCODEUTF8(_aTotal[002]) [XXX CONCEPTOS] CONCEPTOS C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Conceptos",.F.,.T.,4)) //COMPLEMENTO: CFDI:COMPLEMENTO [XXX COMPLEM] COMPLEM C 023 0 ENCODEUTF8(XMLConv("",,,"cfdi:Complemento",.T.,.F.,4)) //COMPLEMENTO: NOMINA:NOMINA [XXX NOMINA] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PRE) //COMPROBANTE: CFDI:RECEPTOR [XXX RECEPTOR] (PREREG) ( _aTotal[001] := ' <cfdi <nomina12:ReceptorNomina' , .T.) (PREREGPRE) ( _aTotal[001] += ' Rfc="' + CFDCarEsp(AllTrim(SRA->RA_CIC)) + '"' , .T.) (PREREG) (Version="1.2"' (PRE) _aTotal[001] += ' NombreTipoNomina="' + CFDCarEspIIf(Alltrim(SRASRY->RA_NOME)) + '"' , .T.) (PREREG) (_aTotal[001] += ' DomicilioFiscalReceptor="' + CFDCarEsp(Alltrim(SRA->RA_CEP)>RY_TIPO == "1" .And. !lImprIndem, "O", "E") + '"' , .T.) (PREREGPRE) ( _aTotal[001] += ' RegimenFiscalReceptorFechaPago="' + CFDCarEspAlltrim(AlltrimSTR(Iif(SRA->(ColumnPos("RA_FISCALI")) > 0,SRA->RA_FISCALI,""))) + '"' , .T.) (PREREG) (YEAR(dFchPag)))+"-"+ STRZERO(MONTH(dFchPag),2) +"-"+STRZERO(DAY(dFchPag),2)+ '"' (PRE) _aTotal[001] += ' UsoCFDIFechaInicialPago="' + CFDCarEsp( "CN01") + '"' , .T.) (PREREG) (_aTotal[001] += '/>' ,.T.) (PREREG) (_aTotal[001] := ENCODEUTF8(_aTotal[001]) , .T.) (PREREG) _aTotal[001] //COMPROBANTE: CFDI:COCEPTOS [XXX CONCEPTOS] CONCEPTOS C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Conceptos",.T.,.F.,4)) [XXX CONCEPTO] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) (_aTotal[002] := ' <cfdi:Concepto',.T.) (PREREG) (_aTotal[002] += ' ClaveProdServ="'+AllTrim("84111505")+'"',.T.) (PREREG) (_aTotal[002] += ' Cantidad="' + Alltrim("1") + '"',.T.) (PREREG) (_aTotal[002] += ' ClaveUnidad="' + Alltrim("ACT") + '"',.T.) (PREREG) (_aTotal[002] += ' Descripcion="' + DECODEUTF8(AllTrim("Pago de nóminaAlltrim(STR(YEAR(dFchInPag)))+"-"+ STRZERO(MONTH(dFchInPag),2) +"-"+STRZERO(DAY(dFchInPag),2)+ '"' (PRE) _aTotal[001] += ' FechaFinalPago="' + Alltrim(STR(YEAR(dFchFiPag)))+"-"+ STRZERO(MONTH(dFchFiPag),2) +"-"+STRZERO(DAY(dFchFiPag),2)+ '"' (PRE) _aTotal[001] += ' NumDiasPagados="' + Alltrim(IIf(nDiasPag == 0, "1", Transform(nDiasPag, "99999.999"))) + '"' (PRE) _aTotal[001] += IIf(nTotPGrav+nTotPExen <> 0, ' TotalPercepciones="' + Alltrim(Transform(Round(nTotPGrav+nTotPExen,2), "99999999.99")) + '"', "") (PRE) _aTotal[001] += IIf(nTotDGrav+nTotDExen <> 0, ' TotalDeducciones="' + Alltrim(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99")) + '"', "") (PRE) _aTotal[001] += IIf(nTotOtroP <> 0 .And. !lRegAsimil, ' TotalOtrosPagos="' + Alltrim(Transform(Round(nTotOtroP,2), "99999999.99")) + '" ', .T."") (PREREGPRE) ( _aTotal[002001] += ' ValorUnitario="' + Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + '"'>' (PRE) _aTotal[001] := ENCODEUTF8(_aTotal[001]) (PREREG) _aTotal[001] [XXX EMISOR] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) (NodOpcion(6),.T.) (PREREGPRE) ( _aTotal[002001] += ' Importe="' + Alltrim(Transform(Round(nTotPGrav + nTotPExen + IIf(lRegAsimil, 0, nTotOtroP),2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002] += ' Descuento="' + Alltrim(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99"):= ' <nomina12:Emisor' (PRE) _aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' RegistroPatronal="' + Alltrim(cRegPatr) +'"', .T."") (PREREGPRE) ( _aTotal[002001] += ' ObjetoImpRfcPatronOrigen="' + CFDCarEsp(Alltrim("01"SM0->M0_CGC)) + '"',.T.) (PREREG) (_aTotal[002001] += IIf(Alltrim(cOrigRecur) == "", '/>', '>'),.T.) (PREREG) (_aTotal[078001] += IIf(Alltrim(cOrigRecur) == "", "", cCRLF + cNodoSNCF),.T.) (PREREG) ENCODEUTF8(_aTotal[002001])
[XXX CONCEPTOS] CONCEPTOS C 021 0 ENCODEUTF8(XMLConv("",,,"cfdi:Conceptos",.F.,.T.,4)) //COMPLEMENTO: CFDI:COMPLEMENTO [XXX COMPLEM] COMPLEM C 023 (PREREG) ( Iif ((cOrigRecur <> ""),.T.,.F.)) EMISOR C 026 0 ENCODEUTF8(XMLConv("",,,"cfdinomina12:ComplementoEmisor",.TF.,.FT.,48)) //COMPLEMENTOCOMPROBANTE: NOMINA CFDI:NOMINARECEPTOR [XXX NOMINARECEPTOR] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) (NodOpcion(5),.T.) (PRE) _aTotal[001] := ' <nomina12:NominaReceptor' (PRE) _aTotal[001] += ' VersionCurp="1.2' + Alltrim(SRA->RA_CURP) + '"' (PRE) _aTotal[001] += ' TipoNomina= "' + IIf(SRYSRA->RY_TIPO == "1" >RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, "O", "E") + '"' (PRE) _aTotal[001] += ' FechaPago="' + Alltrim(STR(YEAR(dFchPag)))+"-"+ STRZERO(MONTH(dFchPag),2) +"-"+STRZERO(DAY(dFchPag),2' NumSeguridadSocial="' + AllTrim(SRA->RA_RG) +'"' , "") (PRE) _aTotal[001] += ' FechaInicialPagoIIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' FechaInicioRelLaboral="' + AlltrimAllTrim(STRStr(YEARYear(dFchInPagdFchInLab))) + "-" + STRZEROStrZero(MONTHMonth(dFchInPagdFchInLab),2) + "-" + STRZEROStrZero(DAYDay(dFchInPagdFchInLab),2) + '"', "") (PRE) _aTotal[001] += ' FechaFinalPago="' + Alltrim(STR(YEAR(dFchFiPag)))+"-"+ STRZERO(MONTH(dFchFiPag),2) +"-"+STRZERO(DAY(dFchFiPag),2)+ '"' (PRE) _aTotal[001] += ' NumDiasPagados="' + Alltrim(Str(IIf(nDiasPag == 0, 1, nDiasPag))) + '"'IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, DecodeUTF8(' Antigüedad="') + 'P' + AllTrim(Str(nAntigue)) + 'W' + '" ', "") (PRE) _aTotal[001] += IIf(nTotPGrav+nTotPExen <> 0, ' TotalPercepciones' TipoContrato="' + Alltrim(Transform(Round(nTotPGrav+nTotPExen,2)Iif(lImprIndem,"99999999.99",Alltrim(SRA->RA_TIPCON)) + '"', "") (PRE) _aTotal[001] += IIf(nTotDGrav+nTotDExen <> 0SRA->RA_CATFUNC <> 'A', ' TotalDeduccionesSindicalizado="' + AlltrimIIf(Transform(Round(nTotDGrav+nTotDExen,2), "99999999.99")!Empty(SRA->RA_SINDICA) .And. !lRegAsimil, "S�", "No") + '"', "") (PRE) _aTotal[001] += IIf(nTotOtroP <> 0 SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil, ' TotalOtrosPagosTipoJornada="' + Alltrim(Transform(Round(nTotOtroP,2), "99999999.99")) AllTrim(cTipJorn) + '"', "") (PRE) _aTotal[001] += ' TipoRegimen= '>"' + Iif(lImprIndem,"13",Alltrim(SRA->RA_TIPREG)) + '"' (PRE) _aTotal[001] := ENCODEUTF8(_aTotal[001]) (PREREG+= ' NumEmpleado="' + Alltrim(SRA->RA_MAT) +'"' (PRE) _aTotal[001] [XXX EMISOR] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" += ' Departamento="' + Alltrim(cDeptoIm) + '"'(PREREG) (NodOpcion(6),.T.) (PRE) _aTotal[001] :+= ' Puesto= ' <nomina12:Emisor"' + Alltrim(cPuesCfdi) + '"' (PRE) IIf(!lRegAsimil .AND. !lImprIndem, _aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' RegistroPatronalRiesgoPuesto="' + AlltrimAllTrim(cRegPatrcRiegCFDi) + '"', ' RiesgoPuesto="' + AllTrim("99") + '"'), .T.) (PRE) _aTotal[001] += ' RfcPatronOrigenPeriodicidadPago="' + CFDCarEsp(Alltrim(SM0IIf(SRY->M0_CGC>RY_TIPO == "1",cPerCFDi, "99"))) + '"' (PREREG) (_aTotal[001] += PRE) IIf(Alltrim(cOrigRecur) == "", '/>', '>'),.T.) (PREREG) (!Empty(SRA->RA_CLABE), ,_aTotal[001] += IIf(' Banco="' + Alltrim(cOrigRecurcBcoCfdi) == "", "", cCRLF + cNodoSNCF),.T.+ '"') (PREREGPRE) ENCODEUTF8( _aTotal[001] ) (PREREG) ( Iif ((cOrigRecur <> ""),.T.,.F.)) EMISOR C 026 0 ENCODEUTF8(XMLConv("",,,"nomina12:Emisor",.F.,.T.,8)) //COMPROBANTE: CFDI:RECEPTOR [XXX RECEPTOR] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) (NodOpcion(5),.T.+= ' CuentaBancaria="' + IIf(!Empty(SRA->RA_CLABE), Alltrim(SRA->RA_CLABE), Alltrim(SRA->RA_CTDEPSA)) + '"' (PRE) _aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A', ' SalarioBaseCotApor="' + Alltrim(Transform(Round(nSalBasAp,2), "99999999.99")) + '"', "") (PRE) _aTotal[001] := ' <nomina12:Receptor'+= IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' SalarioDiarioIntegrado="' + Alltrim(Transform(Round(SRA->RA_SALINT,2), "99999999.99")) + '"', "") (PRE) _aTotal[001] += ' CurpClaveEntFed="' + Alltrim(SRA->RA_CURPcEntFed) + '"' (PREPREREG) (_aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' NumSeguridadSocial="' + AllTrim(SRA->RA_RG) +'"', "") (PRE) _aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' FechaInicioRelLaboral="' + AllTrim(Str(Year(dFchInLab))) + "-" + StrZero(Month(dFchInLab),2) + "-" + StrZero(Day(dFchInLab),2) + '"', "")cNodoSubC <> "", '>', '/>'),.T.) (PREREG) (_aTotal[001] += IIf(cNodoSubC == "", "", cCRLF + cNodoSubC),.T.) (PREREG) ENCODEUTF8(_aTotal[001]) (PREREG) ( Iif ((cNodoSubC <> ""),.T.,.F.)) RECEPTOR C 028 0 ENCODEUTF8(XMLConv("",,,"nomina12:Receptor",.F.,.T.,8)) //COMPLEMENTO: NOMINA:PERCEPCIONES [XXX PERCEPCION] (PRE) DBSELECTAREA("SRVPD") (PRE) SRVPD->(DbGotop()) (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="1"),.T.,.F.)) (PRE) _aTotal[002] := ' <nomina12:Percepciones' (PRE) _aTotal[001002] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, DecodeUTF8(' AntigüedadnTotSueld<>0, ' TotalSueldos="' ) + 'P' + AllTrim(Str(nAntigue)) + 'W' + Alltrim(Transform(Round(nTotSueld,2), "99999999.99")) + '"', "") (PRE) _aTotal[001002] += IIf(nTotIndem<>0, ' TipoContratoTotalSeparacionIndemnizacion="' + Iif(lImprIndemAlltrim(Transform(Round(nTotIndem,2), "99999999.99",Alltrim(SRA->RA_TIPCON)) + '"', "") (PRE) _aTotal[001002] += IIf(SRA->RA_CATFUNC <> 'A'nTotJubil<>0, ' SindicalizadoTotalJubilacionPensionRetiro="' + IIf(!Empty(SRA->RA_SINDICA) .And. !lRegAsimil, "S�", "No") Alltrim(Transform(Round(nTotJubil,2), "99999999.99")) + '"', "") (PRE) _aTotal[001002] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil, ' TipoJornada' TotalGravado="' + AllTrim(cTipJornAlltrim(Transform(Round(nTotPGrav,2), "99999999.99")) + '"', "") (PRE) _aTotal[001002] += ' TipoRegimenTotalExento="' + Iif(lImprIndem,"13",Alltrim(SRA->RA_TIPREGAlltrim(Transform(Round(nTotPExen,2), "99999999.99")) + '"' (PRE) _aTotal[001002] += '>' (PRE) _aTotal[002] := ENCODEUTF8(_aTotal[002]) (PREREG) _aTotal[002] [SRVPD PERCEPCION] (PRE) SRVPD->(DbGotop()) (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="1"),.T.,.F.)) (PREREG) NodOpcion(1) (PREREG) NodOpcion(2) (PREREG) (_aTotal[002] := ' <nomina12:Percepcion' ' NumEmpleado="' + Alltrim(SRA->RA_MAT) +'"' (PRE) _aTotal[001] += ' Departamento="' + Alltrim(cDeptoIm) + '"' (PRE) _aTotal[001] += ' Puesto="' + Alltrim(cPuesCfdi) + '"' (PRE) IIf(!lRegAsimil .AND. !lImprIndem, _aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A', ' RiesgoPuesto="' + AllTrim(cRiegCFDi) + '"', ' RiesgoPuesto="' + AllTrim("99") + '"'),.T.) (PREPREREG) (_aTotal[001002] += ' PeriodicidadPagoTipoPercepcion="' + CFDCarEsp( Alltrim(IIfSubstr(SRYSRVPD->RY_TIPO == "1",cPerCFDi, "99"))) >RV_TIPSAT,1,3)) + '"',.T.) (PREPREREG) IIf(!Empty (SRA->RA_CLABE), ,_aTotal[001002] += ' BancoClave="' + Alltrim(cBcoCfdiSRVPD->RV_COD) + '"',.T.) (PREPREREG) (_aTotal[001002] += ' CuentaBancariaConcepto="' + IIf(!Empty(SRA->RA_CLABE), Alltrim(SRASRVPD->RA>RV_CLABE), Alltrim(SRA->RA_CTDEPSA)) DESCDET) + '"',.T.) (PREPREREG) (_aTotal[001] += IIf(SRA->RA_CATFUNC <> 'A', ' SalarioBaseCotApor002] += ' ImporteGravado="' + Alltrim(Transform(Round(nSalBasApSRVPD->RC_VALORGV,2), "99999999.99")) + '"', "".T.) (PREPREREG) (_aTotal[001002] += IIf(SRA->RA_CATFUNC <> 'A' .And. !lRegAsimil .And. !lImprIndem, ' SalarioDiarioIntegrado' ImporteExento="' + Alltrim(Transform(Round(SRASRVPD->RA>RC_SALINTVALOREX,2), "99999999.99")) + '"', "".T.) (PREPREREG) (_aTotal[001002] += ' ClaveEntFed="' + Alltrim(cEntFed) + '"'IIf(cNodoAccT <> "" .Or. cNodoHExt <> "", '>', '/>'),.T.) (PREREG) (_aTotal[001002] += IIf(cNodoSubC <> cNodoAccT == "", '>', '/>'"", cCRLF + cNodoAccT),.T.) (PREREG) (_aTotal[001002] += IIf(cNodoSubC cNodoHExt == "", "", cCRLF + cNodoSubCcNodoHExt),.T.) (PREREG) ENCODEUTF8(_aTotal[001002]) (PREREG) ( Iif ((cNodoSubC ((cNodoAccT <> "" .Or. cNodoHExt <> ""),.T.,.F.)) RECEPTOR PERCEPCION C 028 036 0 ENCODEUTF8(XMLConv("",,,"nomina12:ReceptorPercepcion",.F.,.T.,812)) //COMPLEMENTO: NOMINA:PERCEPCIONES [XXX PERCEPCION] (PRE) DBSELECTAREA("SRVPD") (PRE) SRVPD->(DbGotop()) (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="1")[SRVPD JUBILACION] (PREREG) Iif((nTotUnaEx+nTotParci+nTotDiari+nTotIAcum+NTotNAcum<>0),.T.,.F. ) ) (PRE) _aTotal[002] := ' <nomina12:PercepcionesJubilacionPensionRetiro' (PRE) _aTotal[002] += IIf(nTotSueld<>0nTotUnaEx <> 0, ' TotalSueldosTotalUnaExhibicion="' + Alltrim(Transform(Round(nTotSueldnTotUnaEx,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotIndem<>0nTotParci <> 0, ' TotalSeparacionIndemnizacionTotalParcialidad="' + Alltrim(Transform(Round(nTotIndemnTotParci,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotJubil<>0nTotParci <> 0, ' TotalJubilacionPensionRetiroMontoDiario="' + Alltrim(Transform(Round(nTotJubilnTotDiari,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += ' TotalGravadoIIf(nTotUnaEx+nTotParci <> 0, ' IngresoAcumulable="' + Alltrim(Transform(Round(nTotPGravnTotIAcum,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += ' TotalExentoIIf(nTotUnaEx+nTotParci <> 0, ' IngresoNoAcumulable="' + Alltrim(Transform(Round(nTotPExenNTotNAcum,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += '/>' (PRE) _aTotal[002] := PREREG) ENCODEUTF8(_aTotal[002]) (PREREG) _aTotal[002]) VldNodJub() [SRVPD PERCEPCION] (PRE) SRVPD->(DbGotop())INDEMNIZACION] (PREREG) ( Iif((Alltrim(SRVPD->RV_TIPO) =="1"nTotPagad+nNumAnios+nUltSuelM+nIngrAcum+nIngrNAcu<>0),.T.,.F. ) ) (PREREG) NodOpcion(1) (PREREG) NodOpcion(2) (PREREG) (PRE) _aTotal[002] := ' <nomina12:PercepcionSeparacionIndemnizacion',.T.) (PREREGPRE) ( _aTotal[002] += ' TipoPercepcionTotalPagado="' + Alltrim(Transform(Substr(SRVPD->RV_TIPSAT,1,3)) + '"',.T.) (PREREG) (_aTotal[002] += ' Clave="' + Alltrim(SRVPD->RV_CODRound(nTotPagad,2), "99999999.99")) + '"',.T.) (PREREGPRE) ( _aTotal[002] += ' ConceptoNumAñosServicio="' + Alltrim(SRVPD->RV_DESCDET(Str(IIf(nNumAnios==0, 1, nNumAnios))) + '"',.T.) (PREREGPRE) ( _aTotal[002] += ' ImporteGravadoUltimoSueldoMensOrd="' + Alltrim(Transform(Round(SRVPD->RC_VALORGVnUltSuelM,2), "99999999.99")) + '"',.T.) (PREREGPRE) ( _aTotal[002] += ' ImporteExentoIngresoAcumulable="' + Alltrim(Transform(Round(SRVPD->RC_VALOREXnIngrAcum,2), "99999999.99")) + '"',.T.) (PREREGPRE) ( _aTotal[002] += IIf(cNodoAccT <> "" .Or. cNodoHExt <> "", '>', '/>'),.T.) (PREREG) (_aTotal[002] += IIf(cNodoAccT == "", "", cCRLF + cNodoAccT),.T.) (PREREG) (= ' IngresoNoAcumulable="' + Alltrim(Transform(Round(nIngrNAcu,2), "99999999.99")) + '"' (PRE) _aTotal[002] += IIf(cNodoHExt == "", "", cCRLF + cNodoHExt),.T.)'/>' (PREREG) ENCODEUTF8(_aTotal[002]) (PREREG) VldNodInde() [XXX PERCEPCION] (PRE) SRVPD->(DbGotop()) (PREREG) ( Iif ((cNodoAccT <> "" .Or. cNodoHExt <> ""Alltrim(SRVPD->RV_TIPO) =="1"),.T.,.F.)) PERCEPCION C 036 032 0 ENCODEUTF8(XMLConv("",,,"nomina12:Percepcion",.F.,.T("",,,"nomina12:Percepciones",.F.,.T.,8)) //COMPLEMENTO: NOMINA:DEDUCCIONES [XXX DEDUCCIONS] (PRE) DBSELECTAREA("SRVPD") (PRE) SRVPD->(DbGotop()) (PRE) DbSeek(_aTotal[072]+_aTotal[073]+"2") (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) (PRE) _aTotal[002] := ' <nomina12:Deducciones'.,12))[SRVPD JUBILACION] (PREREG) Iif((nTotUnaEx+nTotParci+nTotDiari+nTotIAcum+NTotNAcum<>0),.T.,.F. ) (PRE) _aTotal[002] := ' <nomina12:JubilacionPensionRetiro' (PRE) _aTotal[002] += IIf(nTotUnaEx <> 0, ' TotalUnaExhibicion="' + Alltrim(Transform(Round(nTotUnaEx,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotParci <> 0, ' TotalParcialidad="' + Alltrim(Transform(Round(nTotParci,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotParci <> 0, ' MontoDiario="' + Alltrim(Transform(Round(nTotDiari,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotUnaEx+nTotParci nOtroDedu <> 0, ' IngresoAcumulableTotalOtrasDeducciones="' + Alltrim(Transform(Round(nTotIAcumnOtroDedu,2), "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nTotUnaEx+nTotParci nImpReten <> 0, ' IngresoNoAcumulableTotalImpuestosRetenidos="' + Alltrim(Transform(Round(NTotNAcumnImpReten,2), "99999999.99")) + '" ', "") (PRE) _aTotal[002] += '/>' (PREREG) ENCODEUTF8(_aTotal[002])(PREREG) VldNodJub() [SRVPD INDEMNIZACIONDEDUCCION] (PREREG) ( Iif (((nTotPagad+nNumAnios+nUltSuelM+nIngrAcum+nIngrNAcu<>0Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) (PREPREREG) (_aTotal[002] := ' <nomina12:SeparacionIndemnizacion' (PRE) _aTotal[002] += ' TotalPagado="' + Alltrim(Transform(Round(nTotPagad,2), "99999999.99")) + '"' (PRE) Deduccion',.T.) (PREREG) (_aTotal[002] += ' NumAñosServicioTipoDeduccion="' + Alltrim(Str(IIf(nNumAnios==0Substr(SRVPD->RV_TIPSAT,1, nNumAnios)3)) + '"',.T.) (PREPREREG) (_aTotal[002] += ' UltimoSueldoMensOrdClave="' + Alltrim(Transform(Round(nUltSuelM,2), "99999999.99")) SRVPD->RV_COD) + '"',.T.) (PREPREREG) (_aTotal[002] += ' IngresoAcumulable="' + Alltrim(Transform(Round(nIngrAcum,2), "99999999.99")) Concepto="' + Alltrim(SRVPD->RV_DESCDET) + '"',.T.) (PREPREREG) (_aTotal[002] += ' IngresoNoAcumulableImporte="' + Alltrim(Transform(Round(nIngrNAcuSRVPD->RC_VALORGV + SRVPD->RC_VALOREX,2), "99999999.99")) + '"',.T.) (PREPREREG) (_aTotal[002] += '/>' (PREREG) ENCODEUTF8(_aTotal[002]) (PREREG) VldNodInde()[XXX PERCEPCION] (PRE) SRVPD->(DbGotop()) (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="1"),.T.,.F.)) PERCEPCION C 032 0 ENCODEUTF8(XMLConv("",,,"nomina12:Percepciones",.F.>',.T.,8) (PREREG) ENCODEUTF8(_aTotal[002]) //COMPLEMENTO: NOMINA:DEDUCCIONES [XXX DEDUCCIONS] (PRE) DBSELECTAREA("SRVPD") (PRE) SRVPD->(DbGotop()) (PRE) DbSeek(_aTotal[072]+_aTotal[073]+"2") (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) (PRE) _aTotal[002] := ' <nomina12:Deducciones' (PRE) _aTotal[002] += IIf(nOtroDedu <> 0, ' TotalOtrasDeducciones="' + Alltrim(Transform(Round(nOtroDedu,2) , "99999999.99")) + '"', "") (PRE) _aTotal[002] += IIf(nImpReten <> 0, ' TotalImpuestosRetenidos="' + Alltrim(Transform(Round(nImpReten,2), "99999999.99")) + '" ', "") (PRE) _aTotal[002] += '>' (PREREG) ENCODEUTF8(_aTotal[002])( Iif ((Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) DEDUCCIONS C 032 0 ENCODEUTF8(XMLConv("",,,"nomina12:Deducciones",.F.,.T.,8)) //COMPLEMENTO: NOMINA:OTROSPAGOS [XXX OTROSPAGOS] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) !lRegAsimil (PREREG) [SRVPD DEDUCCION] (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) (PREREG) ( _aTotal[002] := ' <nomina12:Deduccion',.T.) (PREREG) ( _aTotal[002] += ' TipoDeduccion="' + Alltrim(Substr(SRVPD->RV_TIPSAT,1,3)) + '"',.T.):= fOtrosPag() (PREREG) ENCODEUTF8(_aTotal[002] += ' Clave="' + Alltrim(SRVPD->RV_COD) + '"',.T.) (PREREG) (_aTotal[002] += ' Concepto="' + Alltrim(SRVPD->RV_DESCDET) + '"',.T.)) [XXX INCAPACIDS] (PRE) SRCIN->(DbGotop()) (PREREG) (_aTotal[002] += ' Importe="' + Alltrim(Transform(Round(SRVPD->RC_VALORGV + SRVPD->RC_VALOREX,2), "99999999.99")) + '"',.TIif(!SRCIN->(Eof()),.T.,.F. ) (PREREGPRE) ( _aTotal[002001] +:= ' />',.T.) <nomina12:Incapacidades>' (PREREG) ENCODEUTF8(_aTotal[002001]) //COMPLEMENTO: NOMINA:INCAPACIDAD [XXX DEDUCCIONSSRCIN INCAPACIDAD] (PRE) DBSELECTAREA("SRVPD"SRCIN->(DbGotop()) (PRE) SRVPD->(DbGotop()) (PRE) DbSeekPREREG) (_aTotal[002] := ' <nomina12:Incapacidad',.T.) (PREREG) (_aTotal[072002] +_aTotal[073]+"2") (PREREG) ( Iif ((Alltrim(SRVPD->RV_TIPO) =="2"),.T.,.F.)) DEDUCCIONS C 032 0 ENCODEUTF8(XMLConv("",,,"nomina12:Deducciones",.F.,.T.,8)) //COMPLEMENTO: NOMINA:OTROSPAGOS [XXX OTROSPAGOS] //Variable utilizada para validar si es Regimen Asimilado (PRE) lRegAsimil := SRA->RA_TIPREG $ "05|06|07|08|09|10|11" (PREREG) !lRegAsimil (PREREG) _aTotal[002] := '' (PREREG) _aTotal[002] := fOtrosPag(= ' DiasIncapacidad="' + Alltrim(Str(SRCIN->RC_HORAS)) + '"',.T.) (PREREG) (_aTotal[002] += ' TipoIncapacidad="' + Alltrim(SRCIN->RCM_TIPSAT) + '"',.T.) (PREREG) (_aTotal[002] += ' ImporteMonetario="' + Alltrim(Transform(Round(SRCIN->RC_VALOR,2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002] += '/>',.T.) (PREREG) ENCODEUTF8(_aTotal[002]) [XXX INCAPACIDSINCAPACIDAD] (PRE) SRCIN->(DbGotop()) (PREREG) Iif(!SRCIN->(Eof()),.T.,.F. ) (PRE) _aTotal[001] := ' <nomina12:Incapacidades>' (PREREG) ENCODEUTF8(_aTotal[001])//COMPLEMENTOINCAPACIDAD C 030 0 ENCODEUTF8(XMLConv("",,,"nomina12:Incapacidad",.F.,.T.,8)) [XXX INCAPACIDS] : NOMINA:INCAPACIDAD [SRCIN INCAPACIDAD] (PRE) SRCIN->(DbGotop()) (PREREG) (_aTotal[002] := ' <nomina12:Incapacidad'Iif(!SRCIN->(Eof()),.T.,.F. ) (PREREG) (_aTotal[002] += ' DiasIncapacidad="' + Alltrim(Str(SRCIN->RC_HORAS)) + '"',.T.) (PREREG) (_aTotal[002] += ' TipoIncapacidad="' + Alltrim(SRCIN->RCM_TIPSAT) + '"',.T.) (INCAPACIDS C 033 0 ENCODEUTF8(XMLConv("",,,"nomina12:Incapacidades",.F.,.T.,8)) [XXX NOMINA] NOMINA C 023 0 ENCODEUTF8(XMLConv("",,,"nomina12:Nomina",.F.,.T.,4)) //COMPLEMENTO: CFDI:COMPLEMENTO [XXX COMPLEM] COMPLEM C 023 0 ENCODEUTF8(XMLConv("",,,"cfdi:Complemento",.F.,.T.,4)) [XXX ADDENDA] ADDENDA C 019 0 ENCODEUTF8(XMLConv("",,,"cfdi:Addenda",.T.,.F.,4)) [XXX ADDENDA1]PREREG) (_aTotal[002] += ' ImporteMonetario="' + Alltrim(Transform(Round(SRCIN->RC_VALOR,2), "99999999.99")) + '"',.T.) (PREREG) (_aTotal[002003] +:= ' /> <cfdi:t_obs',.T.) (PREREG) ENCODEUTF8 (_aTotal[002])[XXX INCAPACIDAD] (PRE) SRCIN->(DbGotop()) (PREREG) Iif(!SRCIN->(Eof())003] += ' CadenaOrig="' + Alltrim(_aTotal[074]) + '"',.T.,.F. ) INCAPACIDAD C 030 0 ENCODEUTF8(XMLConv("",,,"nomina12:Incapacidad",.F.,.T.,8))[XXX INCAPACIDS] (PRE) SRCIN->(DbGotop()) (PREREG) (_aTotal[003] += ' Sucursal="' + SRA->RA_FILIAL + '"',.T.) (PREREG) Iif(!SRCIN->(Eof())(_aTotal[003] += '/>',.T.,.F.) INCAPACIDS C 033 0 ENCODEUTF8(XMLConv("",,,"nomina12:Incapacidades",.F.,.T.,8)(PREREG) _aTotal[003] (POS) DelATbr884() [XXX NOMINAADDENDA] NOMINA C 023 ADDENDA C 019 0 ENCODEUTF8(XMLConv("",,,"nomina12cfdi:NominaAddenda",.F.,.T.,4))/ /COMPLEMENTO: CFDI:COMPLEMENTO [XXX COMPLEMCFDI] CFDI COMPLEM C 023 C 019 0 ENCODEUTF8(XMLConv("",,,"cfdi:ComplementoComprobante",.F.,.T.,40)) |