Files
MBS/PROYECTOS/otrodir/generafilexml.4gl
T

808 lines
26 KiB
Plaintext

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