nodefact
Version:
Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.
123 lines (113 loc) • 4.78 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.summary = void 0;
/**
* Plantilla para Resumen Diario (Summary Documents)
*/
const namespaces_1 = require("./namespaces");
exports.summary = `
<SummaryDocuments xmlns="urn:sunat:names:specification:ubl:peru:schema:xsd:SummaryDocuments-1"
xmlns:cac="${namespaces_1.namespaces.cac}"
xmlns:cbc="${namespaces_1.namespaces.cbc}"
xmlns:ds="${namespaces_1.namespaces.ds}"
xmlns:ext="${namespaces_1.namespaces.ext}"
xmlns:sac="${namespaces_1.namespaces.sac}"
xmlns:xsi="${namespaces_1.namespaces.xsi}">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent/>
</ext:UBLExtension>
</ext:UBLExtensions>
<!-- Versión del UBL -->
<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
<!-- Versión de la estructura del documento -->
<cbc:CustomizationID>1.1</cbc:CustomizationID>
<!-- Identificador del resumen -->
<cbc:ID>RC-{{fechaEmision}}-{{correlativo}}</cbc:ID>
<!-- Fecha de emisión del resumen -->
<cbc:ReferenceDate>{{fechaReferencia}}</cbc:ReferenceDate>
<!-- Fecha de generación del resumen -->
<cbc:IssueDate>{{fechaEmision}}</cbc:IssueDate>
<!-- Firma Digital -->
<cac:Signature>
<cbc:ID>{{signatureID}}</cbc:ID>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>{{emisor.ruc}}</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>{{emisor.razonSocial}}</cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>{{signatureURI}}</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<!-- Datos del Emisor -->
<cac:AccountingSupplierParty>
<cbc:CustomerAssignedAccountID>{{emisor.ruc}}</cbc:CustomerAssignedAccountID>
<cbc:AdditionalAccountID>6</cbc:AdditionalAccountID>
<cac:Party>
<cac:PartyLegalEntity>
<cbc:RegistrationName>{{emisor.razonSocial}}</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<!-- Detalle de comprobantes -->
{{#each comprobantes}}
<sac:SummaryDocumentsLine>
<cbc:LineID>{{@index}}</cbc:LineID>
<cbc:DocumentTypeCode>{{tipoDocumento}}</cbc:DocumentTypeCode>
<cbc:ID>{{serie}}-{{correlativoInicio}}</cbc:ID>
<cac:Status>
<cbc:ConditionCode>{{estado}}</cbc:ConditionCode>
</cac:Status>
<!-- Totales -->
<sac:TotalAmount currencyID="{{moneda}}">{{total}}</sac:TotalAmount>
{{#if gravadas}}
<!-- Gravadas -->
<sac:BillingPayment>
<cbc:PaidAmount currencyID="{{moneda}}">{{gravadas}}</cbc:PaidAmount>
<cbc:InstructionID>01</cbc:InstructionID>
</sac:BillingPayment>
{{/if}}
{{#if exoneradas}}
<!-- Exoneradas -->
<sac:BillingPayment>
<cbc:PaidAmount currencyID="{{moneda}}">{{exoneradas}}</cbc:PaidAmount>
<cbc:InstructionID>02</cbc:InstructionID>
</sac:BillingPayment>
{{/if}}
{{#if inafectas}}
<!-- Inafectas -->
<sac:BillingPayment>
<cbc:PaidAmount currencyID="{{moneda}}">{{inafectas}}</cbc:PaidAmount>
<cbc:InstructionID>03</cbc:InstructionID>
</sac:BillingPayment>
{{/if}}
{{#if gratuitas}}
<!-- Gratuitas -->
<sac:BillingPayment>
<cbc:PaidAmount currencyID="{{moneda}}">{{gratuitas}}</cbc:PaidAmount>
<cbc:InstructionID>05</cbc:InstructionID>
</sac:BillingPayment>
{{/if}}
<!-- Impuestos -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="{{moneda}}">{{igv}}</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="{{moneda}}">{{igv}}</cbc:TaxAmount>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
</sac:SummaryDocumentsLine>
{{/each}}
</SummaryDocuments>`;