IMPORT util IMPORT security SCHEMA smarmotech DEFINE montoFactura DECIMAL(18,2) DEFINE a om.SaxAttributes DEFINE out om.SaxDocumentHandler, i INT, ruta_originales STRING, fechaFirma DATETIME YEAR TO SECOND DEFINE r_documento_encabezado RECORD tipoEcf,eNcf,indicadorMontoGravado,tipoPago,fechaLimitePago,FormadePAgo,montoPago,FechaVencimientoSecuencia, indicadorNotaCredito, rncEmisor,razonSocialEmisor,direccionEmisor,Municipio,Provincia,telefonoEmisor, correoEmisor,webSite,codigoVendedor,numeroFacturaInterna,numeroPedidoInterno, fechaEmision,rncComprador,razonSocialComprador,montoGravadoTotal,montoGravadoI1, montoGravadoI2,montoGravadoI3,montoExento,itbis1,itbis2,itbis3,totalItbis,totalItbis1, totalItbis2,totalItbis3,montoTotal,tipoIngreso,terminoPago,TipoCuentaPago,NumeroCuentaPago,IdentificadorExtranjero, contactoComprador,CorreoComprador,DireccionComprador,MunicipioComprador,ProvinciaComprador,FechaEntrega,FechaOrdenCompra, NumeroOrdenCompra,CodigoInternoComprador, NCFmodificado, fechaNCFmodificado, codigoModificacion, nombreFile STRING END RECORD, comando STRING DEFINE r_documento_Detalle DYNAMIC ARRAY OF RECORD indicadorFacturacion,nombreItem,indicadorBienoServicio,cantidadItem,precioUnitarioItem, montoItem STRING, DescripcionItem VARCHAR(1000), NumeroLinea int END RECORD FUNCTION generafile(documento_encabezado,documento_Detalle) DEFINE documento_encabezado RECORD tipoEcf,eNcf,indicadorMontoGravado,tipoPago,fechaLimitePago,FormadePAgo,montoPago,FechaVencimientoSecuencia, indicadorNotaCredito, rncEmisor,razonSocialEmisor,direccionEmisor,Municipio,Provincia,telefonoEmisor, correoEmisor,webSite,codigoVendedor,numeroFacturaInterna,numeroPedidoInterno, fechaEmision,rncComprador,razonSocialComprador,montoGravadoTotal,montoGravadoI1, montoGravadoI2,montoGravadoI3,montoExento,itbis1,itbis2,itbis3,totalItbis,totalItbis1, totalItbis2,totalItbis3,montoTotal,tipoIngreso,terminoPago,TipoCuentaPago,NumeroCuentaPago,IdentificadorExtranjero, contactoComprador,CorreoComprador,DireccionComprador,MunicipioComprador,ProvinciaComprador,FechaEntrega,FechaOrdenCompra, NumeroOrdenCompra,CodigoInternoComprador, NCFmodificado, fechaNCFmodificado, codigoModificacion, nombreFile STRING END RECORD, chFechaFirma VARCHAR(19), tipoRecepcion VARCHAR(50) DEFINE documento_Detalle DYNAMIC ARRAY OF RECORD indicadorFacturacion,nombreItem,indicadorBienoServicio,cantidadItem,precioUnitarioItem, montoItem STRING, DescripcionItem VARCHAR(1000), NumeroLinea int END RECORD, nombreFile STRING LET ruta_originales= fgl_getenv("RUTA_XML_ORIGINALES") #LET ruta_originales = '.\\filesXML\\ncf31\\' # LET documento_encabezado.nombreFile ='130337391E310000000001.XML' LET nombreFile = ruta_originales,documento_encabezado.nombreFile CLIPPED LET r_documento_encabezado.* = documento_encabezado.* LET r_documento_Detalle = documento_detalle LET montoFactura = r_documento_encabezado.montoTotal LET out=om.XmlWriter.createFileWriter(nombreFile) LET a=om.SaxAttributes.create() CALL out.startDocument() CALL a.addAttribute("xmlns:xs","http://www.w3.org/2001/XMLSchema") IF r_documento_encabezado.tipoEcf <> '32' THEN LET tipoRecepcion = "normal" CALL out.startElement("ECF",a) CALL a.clear() CALL encabezado() CALL detalle() END IF IF r_documento_encabezado.tipoEcf = '32' AND montoFactura > 250000 THEN LET tipoRecepcion = "normal" CALL out.startElement("ECF",a) CALL a.clear() CALL encabezado() CALL detalle() END IF IF r_documento_encabezado.tipoEcf = '32' AND montoFactura < 250000 THEN LET tipoRecepcion = "consumo" CALL out.startElement("ECF",a) CALL a.clear() CALL encabezado32() CALL detalle() END IF --Funcion NC IF r_documento_encabezado.tipoEcf = '34' AND montoFactura > 250000 THEN LET tipoRecepcion = "normal" CALL out.startElement("ECF",a) CALL a.clear() CALL encabezado() CALL detalle() END IF IF r_documento_encabezado.tipoEcf = '34' AND montoFactura < 250000 THEN LET tipoRecepcion = "consumo" CALL out.startElement("ECF",a) CALL a.clear() CALL encabezado32() CALL detalle() END IF LET fechaFirma = CURRENT UPDATE vetb00002 SET fechafirmadigital = getdate() WHERE factura = r_documento_encabezado.numeroFacturaInterna LET chFechaFirma = util.Datetime.format(fechaFirma, "%d-%m-%Y %H:%M:%S" ) CALL out.startElement("FechaHoraFirma",null) CALL out.characters(chFechaFirma) CALL out.endElement("FechaHoraFirma") IF r_documento_encabezado.tipoEcf <> '32' THEN CALL out.endElement("ECF") END IF IF r_documento_encabezado.tipoEcf = '32' AND montoFactura > 250000 THEN LET tipoRecepcion = "normal" CALL out.endElement("ECF") END IF IF r_documento_encabezado.tipoEcf = '32' AND montoFactura < 250000 THEN LET tipoRecepcion = "consumo" CALL out.endElement("ECF") END IF #NC IF r_documento_encabezado.tipoEcf <> '34' THEN CALL out.endElement("ECF") END IF IF r_documento_encabezado.tipoEcf = '34' AND montoFactura > 250000 THEN LET tipoRecepcion = "normal" CALL out.endElement("ECF") END IF IF r_documento_encabezado.tipoEcf = '34' AND montoFactura < 250000 THEN LET tipoRecepcion = "consumo" CALL out.endElement("ECF") END IF CALL out.endDocument() CALL procesoEncf(nombrefile,"test",tipoRecepcion) IF r_documento_encabezado.tipoEcf = '32' AND montoFactura < 250000 THEN LET comando = "copy ",nombrefile CLIPPED," ",ruta_originales CLIPPED,"\\FC" RUN comando LET nombreFile = ruta_originales,documento_encabezado.nombreFile CLIPPED LET tipoRecepcion = "consumo" LET out=om.XmlWriter.createFileWriter(nombreFile) LET a=om.SaxAttributes.create() CALL out.startDocument() CALL a.addAttribute("xmlns:xs","http://www.w3.org/2001/XMLSchema") CALL resumen32() CALL out.endDocument() END IF CALL procesoEncf(nombrefile,"test",tipoRecepcion) END FUNCTION FUNCTION encabezado() CALL out.startElement("Encabezado",a) CALL out.startElement("Version",null) CALL out.characters("1.0") CALL out.endElement("Version") CALL a.clear() CALL out.startElement("IdDoc",NULL) CALL out.startElement("TipoeCF",null) CALL out.characters(r_documento_encabezado.tipoEcf CLIPPED) CALL out.endElement("TipoeCF") CALL out.startElement("eNCF",NULL) LET r_documento_encabezado.eNcf = r_documento_encabezado.eNcf CALL out.characters(r_documento_encabezado.eNcf) CALL out.endElement("eNCF") IF r_documento_encabezado.tipoEcf <> '32' THEN CALL out.startElement("FechaVencimientoSecuencia",null) CALL out.characters(r_documento_encabezado.FechaVencimientoSecuencia) CALL out.endElement("FechaVencimientoSecuencia") END IF #NC IF r_documento_encabezado.tipoEcf = '34' THEN CALL out.startElement("IndicadorNotaCredito>",null) CALL out.characters(r_documento_encabezado.indicadorNotaCredito) CALL out.endElement("IndicadorNotaCredito>") END IF IF r_documento_encabezado.tipoEcf = '34' THEN CALL out.startElement("NCFmodificado",NULL) CALL out.characters(r_documento_encabezado.NCFmodificado) CALL out.endElement("NCFmodificado") CALL out.startElement("fechaNCFmodificado",NULL) CALL out.characters(r_documento_encabezado.fechaNCFmodificado) CALL out.endElement("fechaNCFmodificado") CALL out.startElement("codigoModificacion",NULL) CALL out.characters(r_documento_encabezado.codigoModificacion) CALL out.endElement("codigoModificacion") END IF IF r_documento_encabezado.indicadorMontoGravado IS NOT NULL THEN CALL out.startElement("IndicadorMontoGravado",null) CALL out.characters(r_documento_encabezado.indicadorMontoGravado) CALL out.endElement("IndicadorMontoGravado") END IF IF r_documento_encabezado.tipoEcf = '32' AND montoFactura < 250000 THEN LET r_Documento_encabezado.tipoIngreso = '02' END IF #NC IF r_documento_encabezado.tipoEcf = '34' AND montoFactura < 250000 THEN LET r_Documento_encabezado.tipoIngreso = '02' END IF CALL out.startElement("TipoIngresos",NULL) CALL out.characters(r_documento_encabezado.tipoIngreso) CALL out.endElement("TipoIngresos") CALL out.startElement("TipoPago",null) CALL out.characters(r_documento_encabezado.tipoPago) CALL out.endElement("TipoPago") IF r_documento_encabezado.fechaLimitePago IS NOT NULL THEN CALL out.startElement("FechaLimitePago",null) CALL out.characters(r_documento_encabezado.fechaLimitePago) CALL out.endElement("FechaLimitePago") END IF IF r_documento_encabezado.terminoPago IS NOT NULL THEN CALL out.startElement("TerminoPago",null) CALL out.characters(r_documento_encabezado.terminoPago) CALL out.endElement("TerminoPago") END IF # AQUI VA LA TABLA FORMA DE PAGO, ESTO NO ES OBLIGATORIO #Esto no va en la nota credito IF r_documento_encabezado.tipoEcf <> '32' THEN CALL out.startElement("TablaFormasPago",NULL) CALL out.startElement("FormaDePago",NULL) CALL out.startElement("FormaPago",null) CALL out.characters(r_documento_encabezado.tipoPago) CALL out.endElement("FormaPago") CALL out.startElement("MontoPago",null) CALL out.characters(r_documento_encabezado.montoPago) CALL out.endElement("MontoPago") CALL out.endElement("FormaDePago") CALL out.endElement("TablaFormasPago") END IF {IF r_documento_encabezado.tipoEcf <> '32' THEN CALL out.startElement("TipoCuentaPago",null) CALL out.characters(r_documento_encabezado.TipoCuentaPago) CALL out.endElement("TipoCuentaPago") END IF } CALL out.endElement("IdDoc") CALL out.startElement("Emisor",NULL) CALL out.startElement("RNCEmisor",NULL) CALL out.characters(r_documento_encabezado.rncEmisor) CALL out.endElement("RNCEmisor") CALL out.startElement("RazonSocialEmisor",NULL) CALL out.characters(r_documento_encabezado.razonSocialEmisor) CALL out.endElement("RazonSocialEmisor") CALL out.startElement("NombreComercial",NULL) CALL out.characters(r_documento_encabezado.razonSocialEmisor) CALL out.endElement("NombreComercial") CALL out.startElement("DireccionEmisor",NULL) CALL out.characters(r_documento_encabezado.direccionEmisor) CALL out.endElement("DireccionEmisor") #IF NOT NULL en caso de que sea NC IF r_documento_encabezado.municipio IS NOT NULL THEN CALL out.startElement("Municipio",NULL) CALL out.characters(r_documento_encabezado.Municipio) CALL out.endElement("Municipio") END IF IF r_documento_encabezado.provincia IS NOT NULL THEN CALL out.startElement("Provincia",NULL) CALL out.characters(r_documento_encabezado.Provincia) CALL out.endElement("Provincia") END IF IF r_documento_encabezado.correoEmisor IS NOT NULL THEN CALL out.startElement("CorreoEmisor",NULL) CALL out.characters(r_documento_encabezado.correoEmisor) CALL out.endElement("CorreoEmisor") END IF IF r_documento_encabezado.CodigoVendedor IS NOT NULL THEN CALL out.startElement("CodigoVendedor",NULL) CALL out.characters(r_documento_encabezado.codigoVendedor) CALL out.endElement("CodigoVendedor") END IF IF r_documento_encabezado.numeroFacturaInterna IS NOT NULL THEN CALL out.startElement("NumeroFacturaInterna",NULL) CALL out.characters(r_documento_encabezado.numeroFacturaInterna) CALL out.endElement("NumeroFacturaInterna") END IF IF r_documento_encabezado.numeroPedidoInterno IS NOT NULL THEN CALL out.startElement("NumeroPedidoInterno",NULL) CALL out.characters(r_documento_encabezado.numeroPedidoInterno) CALL out.endElement("NumeroPedidoInterno") END IF CALL out.startElement("FechaEmision",NULL) CALL out.characters(r_documento_encabezado.fechaEmision) CALL out.endElement("FechaEmision") CALL out.endElement("Emisor") CALL out.startElement("Comprador",NULL) CALL out.startElement("RNCComprador",NULL) CALL out.characters(r_documento_encabezado.rncComprador) CALL out.endElement("RNCComprador") CALL out.startElement("RazonSocialComprador",NULL) CALL out.characters(r_documento_encabezado.razonSocialComprador) CALL out.endElement("RazonSocialComprador") {CALL out.startElement("ContactoComprador",NULL) CALL out.characters(r_documento_encabezado.contactoComprador) CALL out.endElement("ContactoComprador") } IF r_documento_encabezado.CorreoComprador IS NOT NULL THEN CALL out.startElement("CorreoComprador",NULL) CALL out.characters(r_documento_encabezado.CorreoComprador CLIPPED) CALL out.endElement("CorreoComprador") CALL out.startElement("DireccionComprador",NULL) CALL out.characters(r_documento_encabezado.DireccionComprador CLIPPED) CALL out.endElement("DireccionComprador") CALL out.startElement("MunicipioComprador",NULL) CALL out.characters(r_documento_encabezado.MunicipioComprador) CALL out.endElement("MunicipioComprador") CALL out.startElement("ProvinciaComprador",NULL) CALL out.characters(r_documento_encabezado.ProvinciaComprador) CALL out.endElement("ProvinciaComprador") END IF CALL out.endElement("Comprador") CALL out.startElement("Totales",NULL) IF r_documento_encabezado.tipoEcf <> '44' THEN CALL out.startElement("MontoGravadoTotal",NULL) CALL out.characters(r_documento_encabezado.montoGravadoTotal) CALL out.endElement("MontoGravadoTotal") IF r_documento_encabezado.montoGravadoI1 <> '0' THEN CALL out.startElement("MontoGravadoI1",NULL) CALL out.characters(r_documento_encabezado.montoGravadoI1) CALL out.endElement("MontoGravadoI1") IF r_documento_encabezado.montoGravadoI2 <> '0' THEN CALL out.startElement("MontoGravadoI2",NULL) CALL out.characters(r_documento_encabezado.montoGravadoI2) CALL out.endElement("MontoGravadoI2") END IF END IF IF r_documento_encabezado.montoGravadoI3 IS NOT NULL THEN CALL out.startElement("MontoGravadoI3",NULL) CALL out.characters(r_documento_encabezado.montoGravadoI3) CALL out.endElement("MontoGravadoI3") END IF IF r_documento_encabezado.itbis1 IS NOT NULL THEN CALL out.startElement("ITBIS1",NULL) CALL out.characters(r_documento_encabezado.itbis1) CALL out.endElement("ITBIS1") END IF IF r_documento_encabezado.itbis2 <> '0' THEN CALL out.startElement("ITBIS2",NULL) CALL out.characters(r_documento_encabezado.itbis2) CALL out.endElement("ITBIS2") END IF IF r_documento_encabezado.montoGravadoI3 IS NOT NULL THEN CALL out.startElement("ITBIS3",NULL) CALL out.characters(r_documento_encabezado.itbis3) CALL out.endElement("ITBIS3") END IF CALL out.startElement("TotalITBIS",NULL) CALL out.characters(r_documento_encabezado.totalItbis) CALL out.endElement("TotalITBIS") IF r_documento_encabezado.itbis1 IS NOT NULL THEN CALL out.startElement("TotalITBIS1",NULL) CALL out.characters(r_documento_encabezado.totalItbis1) CALL out.endElement("TotalITBIS1") END IF IF r_documento_encabezado.totalItbis2 <> '0' THEN CALL out.startElement("TotalITBIS2",NULL) CALL out.characters(r_documento_encabezado.totalItbis2) CALL out.endElement("TotalITBIS2") END IF IF r_documento_encabezado.montoGravadoI3 IS NOT NULL THEN CALL out.startElement("TotalITBIS3",NULL) CALL out.characters(r_documento_encabezado.totalItbis3) CALL out.endElement("TotalITBIS3") END IF END IF IF r_documento_encabezado.tipoEcf = '44' THEN CALL out.startElement("MontoExento",NULL) CALL out.characters(r_documento_encabezado.montoExento) CALL out.endElement("MontoExento") END IF CALL out.startElement("MontoTotal",NULL) CALL out.characters(r_documento_encabezado.montoTotal) CALL out.endElement("MontoTotal") CALL out.endElement("Totales") CALL out.endElement("Encabezado") END FUNCTION FUNCTION detalle() CALL out.startElement("DetallesItems",NULL) FOR i =1 TO r_documento_detalle.getLength() CALL out.startElement("Item",NULL) CALL out.startElement("NumeroLinea",NULL) CALL out.characters(i USING "<<<") CALL out.endElement("NumeroLinea") CALL out.startElement("IndicadorFacturacion",NULL) CALL out.characters(r_documento_detalle[i].indicadorFacturacion) CALL out.endElement("IndicadorFacturacion") IF r_documento_detalle[i].nombreItem IS NULL THEN LET r_documento_detalle[i].nombreItem = 'NO TIENE' END IF CALL out.startElement("NombreItem",NULL) CALL out.characters(r_documento_detalle[i].nombreItem) CALL out.endElement("NombreItem") IF r_documento_detalle[i].indicadorBienoServicio IS NULL THEN LET r_documento_detalle[i].indicadorBienoServicio = 2 END IF CALL out.startElement("IndicadorBienoServicio",NULL) CALL out.characters(r_documento_detalle[i].indicadorBienoServicio) CALL out.endElement("IndicadorBienoServicio") CALL out.startElement("CantidadItem",NULL) CALL out.characters(r_documento_detalle[i].cantidadItem) CALL out.endElement("CantidadItem") CALL out.startElement("PrecioUnitarioItem",NULL) CALL out.characters(r_documento_detalle[i].precioUnitarioItem) CALL out.endElement("PrecioUnitarioItem") CALL out.startElement("MontoItem",NULL) CALL out.characters(r_documento_detalle[i].montoItem) CALL out.endElement("MontoItem") CALL out.endElement("Item") END FOR CALL out.endElement("DetallesItems") END FUNCTION FUNCTION encabezado32() CALL out.startElement("Encabezado",a) CALL out.startElement("Version",null) CALL out.characters("1.0") CALL out.endElement("Version") CALL out.startElement("IdDoc",NULL) CALL out.startElement("TipoeCF",null) CALL out.characters(r_documento_encabezado.tipoEcf CLIPPED) CALL out.endElement("TipoeCF") CALL out.startElement("eNCF",NULL) LET r_documento_encabezado.eNcf = r_documento_encabezado.eNcf CALL out.characters(r_documento_encabezado.eNcf) CALL out.endElement("eNCF") CALL out.startElement("TipoIngresos",null) CALL out.characters(r_documento_encabezado.tipoIngreso) CALL out.endElement("TipoIngresos") CALL out.startElement("TipoPago",null) CALL out.characters(r_documento_encabezado.tipoPago) CALL out.endElement("TipoPago") IF r_documento_encabezado.terminoPago IS NOT NULL THEN CALL out.startElement("TerminoPago",null) CALL out.characters(r_documento_encabezado.terminoPago) CALL out.endElement("TerminoPago") END IF CALL out.endElement("IdDoc") CALL out.startElement("Emisor",NULL) CALL out.startElement("RNCEmisor",NULL) CALL out.characters(r_documento_encabezado.rncEmisor) CALL out.endElement("RNCEmisor") CALL out.startElement("RazonSocialEmisor",NULL) CALL out.characters(r_documento_encabezado.razonSocialEmisor) CALL out.endElement("RazonSocialEmisor") CALL out.startElement("NombreComercial",NULL) CALL out.characters(r_documento_encabezado.razonSocialEmisor) CALL out.endElement("NombreComercial") CALL out.startElement("DireccionEmisor",NULL) CALL out.characters(r_documento_encabezado.direccionEmisor) CALL out.endElement("DireccionEmisor") IF r_documento_encabezado.municipio IS NOT NULL THEN CALL out.startElement("Municipio",NULL) CALL out.characters(r_documento_encabezado.Municipio) CALL out.endElement("Municipio") CALL out.startElement("Provincia",NULL) CALL out.characters(r_documento_encabezado.Provincia) CALL out.endElement("Provincia") CALL out.startElement("CorreoEmisor",NULL) CALL out.characters(r_documento_encabezado.correoEmisor) CALL out.endElement("CorreoEmisor") END IF CALL out.startElement("CodigoVendedor",NULL) CALL out.characters(r_documento_encabezado.codigoVendedor) CALL out.endElement("CodigoVendedor") CALL out.startElement("NumeroFacturaInterna",NULL) CALL out.characters(r_documento_encabezado.numeroFacturaInterna) CALL out.endElement("NumeroFacturaInterna") CALL out.startElement("FechaEmision",NULL) CALL out.characters(r_documento_encabezado.fechaEmision) CALL out.endElement("FechaEmision") CALL out.endElement("Emisor") CALL out.startElement("Comprador",NULL) CALL out.startElement("RNCComprador",NULL) CALL out.characters(r_documento_encabezado.rncComprador) CALL out.endElement("RNCComprador") CALL out.startElement("RazonSocialComprador",NULL) CALL out.characters(r_documento_encabezado.razonSocialComprador) CALL out.endElement("RazonSocialComprador") CALL out.endElement("Comprador") CALL out.startElement("Totales",NULL) CALL out.startElement("MontoGravadoTotal",NULL) CALL out.characters(r_documento_encabezado.montoGravadoTotal) CALL out.endElement("MontoGravadoTotal") CALL out.startElement("MontoGravadoI1",NULL) CALL out.characters(r_documento_encabezado.montoGravadoTotal) CALL out.endElement("MontoGravadoI1") CALL out.startElement("MontoExento",NULL) CALL out.characters(r_documento_encabezado.montoExento) CALL out.endElement("MontoExento") CALL out.startElement("TotalITBIS",NULL) CALL out.characters(r_documento_encabezado.totalItbis) CALL out.endElement("TotalITBIS") CALL out.startElement("TotalITBIS1",NULL) CALL out.characters(r_documento_encabezado.totalItbis1) CALL out.endElement("TotalITBIS1") CALL out.startElement("MontoTotal",NULL) CALL out.characters(r_documento_encabezado.montoTotal) CALL out.endElement("MontoTotal") CALL out.endElement("Totales") #NC IF r_documento_encabezado.tipoEcf = '34' THEN CALL out.startElement("NCFmodificado",NULL) CALL out.characters(r_documento_encabezado.NCFmodificado) CALL out.endElement("NCFmodificado") CALL out.startElement("fechaNCFmodificado",NULL) CALL out.characters(r_documento_encabezado.fechaNCFmodificado) CALL out.endElement("fechaNCFmodificado") CALL out.startElement("codigoModificacion",NULL) CALL out.characters(r_documento_encabezado.codigoModificacion) CALL out.endElement("codigoModificacion") END IF CALL out.endElement("Encabezado") END FUNCTION FUNCTION resumen32() DEFINE fchash VARCHAR(6) CALL out.startElement("RFCE",a) CALL out.startElement("Encabezado",a) CALL out.startElement("Version",null) CALL out.characters("1.0") CALL out.endElement("Version") CALL a.clear() CALL out.startElement("IdDoc",NULL) CALL out.startElement("TipoeCF",null) CALL out.characters(r_documento_encabezado.tipoEcf CLIPPED) CALL out.endElement("TipoeCF") CALL out.startElement("eNCF",NULL) LET r_documento_encabezado.eNcf = r_documento_encabezado.eNcf CALL out.characters(r_documento_encabezado.eNcf) CALL out.endElement("eNCF") CALL out.startElement("TipoIngresos",null) CALL out.characters(r_documento_encabezado.tipoIngreso) CALL out.endElement("TipoIngresos") CALL out.startElement("TipoPago",null) CALL out.characters(r_documento_encabezado.tipoPago) CALL out.endElement("TipoPago") IF r_documento_encabezado.terminoPago IS NOT NULL THEN CALL out.startElement("TerminoPago",null) CALL out.characters(r_documento_encabezado.terminoPago) CALL out.endElement("TerminoPago") END IF CALL out.endElement("IdDoc") CALL out.startElement("Emisor",NULL) CALL out.startElement("RNCEmisor",NULL) CALL out.characters(r_documento_encabezado.rncEmisor) CALL out.endElement("RNCEmisor") CALL out.startElement("RazonSocialEmisor",NULL) CALL out.characters(r_documento_encabezado.razonSocialEmisor) CALL out.endElement("RazonSocialEmisor") CALL out.startElement("FechaEmision",NULL) CALL out.characters(r_documento_encabezado.fechaEmision) CALL out.endElement("FechaEmision") CALL out.endElement("Emisor") CALL out.startElement("Comprador",NULL) CALL out.startElement("RNCComprador",NULL) CALL out.characters(r_documento_encabezado.rncComprador) CALL out.endElement("RNCComprador") CALL out.startElement("RazonSocialComprador",NULL) CALL out.characters(r_documento_encabezado.razonSocialComprador) CALL out.endElement("RazonSocialComprador") CALL out.endElement("Comprador") CALL out.startElement("Totales",NULL) CALL out.startElement("MontoGravadoTotal",NULL) CALL out.characters(r_documento_encabezado.montoGravadoTotal) CALL out.endElement("MontoGravadoTotal") CALL out.startElement("MontoGravadoI1",NULL) CALL out.characters(r_documento_encabezado.montoGravadoTotal) CALL out.endElement("MontoGravadoI1") CALL out.startElement("MontoExento",NULL) CALL out.characters(r_documento_encabezado.montoExento) CALL out.endElement("MontoExento") CALL out.startElement("TotalITBIS",NULL) CALL out.characters(r_documento_encabezado.totalItbis) CALL out.endElement("TotalITBIS") CALL out.startElement("TotalITBIS1",NULL) CALL out.characters(r_documento_encabezado.totalItbis1) CALL out.endElement("TotalITBIS1") CALL out.startElement("MontoTotal",NULL) CALL out.characters(r_documento_encabezado.montoTotal) CALL out.endElement("MontoTotal") CALL out.endElement("Totales") # BUSCA EL CODIGO DE SEGURIDAD SELECT hash INTO fchash FROM vetb00002 WHERE factura = r_documento_encabezado.numeroFacturaInterna CALL out.startElement("CodigoSeguridadeCF",NULL) CALL out.characters(fchash) CALL out.endElement("CodigoSeguridadeCF") CALL out.endElement("Encabezado") CALL out.endElement("RFCE") END FUNCTION