UNPKG

nodefact

Version:

Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.

216 lines (202 loc) 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatch2022 = void 0; /** * Plantilla para Guía de Remisión 2022 (Dispatch Advice 2022) */ const namespaces_1 = require("./namespaces"); exports.dispatch2022 = `<?xml version="1.0" encoding="UTF-8"?> <DespatchAdvice xmlns="urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2" xmlns:cac="${namespaces_1.namespaces.cac}" xmlns:cbc="${namespaces_1.namespaces.cbc}" xmlns:ccts="${namespaces_1.namespaces.ccts}" xmlns:ds="${namespaces_1.namespaces.ds}" xmlns:ext="${namespaces_1.namespaces.ext}" xmlns:qdt="${namespaces_1.namespaces.qdt}" xmlns:sac="${namespaces_1.namespaces.sac}" xmlns:udt="${namespaces_1.namespaces.udt}" xmlns:xsi="${namespaces_1.namespaces.xsi}"> <ext:UBLExtensions> <ext:UBLExtension> <ext:ExtensionContent/> </ext:UBLExtension> </ext:UBLExtensions> <!-- Versión del UBL --> <cbc:UBLVersionID>2.1</cbc:UBLVersionID> <!-- Versión de la estructura del documento --> <cbc:CustomizationID>2.0</cbc:CustomizationID> <!-- Número de guía: Serie-Correlativo --> <cbc:ID>{{serie}}-{{correlativo}}</cbc:ID> <!-- Fecha de emisión --> <cbc:IssueDate>{{fechaEmision}}</cbc:IssueDate> <!-- Hora de emisión --> <cbc:IssueTime>{{horaEmision}}</cbc:IssueTime> <!-- Tipo de documento --> <cbc:DespatchAdviceTypeCode listAgencyName="PE:SUNAT" listName="Tipo de Documento" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo01">{{tipoDocumento}}</cbc:DespatchAdviceTypeCode> <!-- Observaciones --> {{#if observaciones}} <cbc:Note>{{observaciones}}</cbc:Note> {{/if}} <!-- Documento de referencia (Factura/Boleta relacionada) --> {{#if documentoReferencia}} <cac:AdditionalDocumentReference> <cbc:ID>{{documentoReferencia.serie}}-{{documentoReferencia.correlativo}}</cbc:ID> <cbc:DocumentTypeCode listAgencyName="PE:SUNAT" listName="Tipo de Documento" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo01">{{documentoReferencia.tipoDocumento}}</cbc:DocumentTypeCode> <cbc:IssueDate>{{documentoReferencia.fechaEmision}}</cbc:IssueDate> </cac:AdditionalDocumentReference> {{/if}} <!-- 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 Remitente --> <cac:DespatchSupplierParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="6" schemeAgencyName="PE:SUNAT" schemeURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06">{{emisor.ruc}}</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>{{emisor.nombreComercial}}</cbc:Name> </cac:PartyName> <cac:PartyLegalEntity> <cbc:RegistrationName>{{emisor.razonSocial}}</cbc:RegistrationName> <cac:RegistrationAddress> <cbc:ID schemeAgencyName="PE:INEI" schemeName="Ubigeos">{{emisor.direccion.ubigeo}}</cbc:ID> <cbc:AddressTypeCode>0001</cbc:AddressTypeCode> <cbc:CityName>{{emisor.direccion.provincia}}</cbc:CityName> <cbc:CountrySubentity>{{emisor.direccion.departamento}}</cbc:CountrySubentity> <cbc:District>{{emisor.direccion.distrito}}</cbc:District> <cac:AddressLine> <cbc:Line>{{emisor.direccion.direccion}}</cbc:Line> </cac:AddressLine> <cac:Country> <cbc:IdentificationCode>PE</cbc:IdentificationCode> </cac:Country> </cac:RegistrationAddress> </cac:PartyLegalEntity> </cac:Party> </cac:DespatchSupplierParty> <!-- Datos del Destinatario --> <cac:DeliveryCustomerParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="{{destinatario.tipoDocumento}}" schemeAgencyName="PE:SUNAT" schemeURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06">{{destinatario.numeroDocumento}}</cbc:ID> </cac:PartyIdentification> <cac:PartyLegalEntity> <cbc:RegistrationName>{{destinatario.razonSocial}}</cbc:RegistrationName> </cac:PartyLegalEntity> </cac:Party> </cac:DeliveryCustomerParty> <!-- Datos del Transportista --> {{#if transportista}} <cac:ShipperParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="{{transportista.tipoDocumento}}" schemeAgencyName="PE:SUNAT" schemeURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06">{{transportista.numeroDocumento}}</cbc:ID> </cac:PartyIdentification> <cac:PartyLegalEntity> <cbc:RegistrationName>{{transportista.razonSocial}}</cbc:RegistrationName> </cac:PartyLegalEntity> </cac:Party> </cac:ShipperParty> {{/if}} <!-- Datos del Envío --> <cac:Shipment> <cbc:ID>1</cbc:ID> <cbc:HandlingCode listAgencyName="PE:SUNAT" listName="Motivo de traslado" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo20">{{motivoTraslado}}</cbc:HandlingCode> <cbc:Information>{{descripcionTraslado}}</cbc:Information> <cbc:GrossWeightMeasure unitCode="KGM">{{pesoBruto}}</cbc:GrossWeightMeasure> <cbc:TotalTransportHandlingUnitQuantity>{{numeroBultos}}</cbc:TotalTransportHandlingUnitQuantity> <!-- Fecha de inicio de traslado --> <cac:ShipmentStage> <cbc:TransportModeCode listAgencyName="PE:SUNAT" listName="Modalidad de traslado" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo18">{{modalidadTraslado}}</cbc:TransportModeCode> <cac:TransitPeriod> <cbc:StartDate>{{fechaInicioTraslado}}</cbc:StartDate> </cac:TransitPeriod> <!-- Datos del conductor --> {{#if conductor}} <cac:DriverPerson> <cbc:ID schemeID="{{conductor.tipoDocumento}}" schemeAgencyName="PE:SUNAT" schemeURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06">{{conductor.numeroDocumento}}</cbc:ID> <cbc:FirstName>{{conductor.nombres}}</cbc:FirstName> <cbc:FamilyName>{{conductor.apellidos}}</cbc:FamilyName> <cbc:JobTitle>Principal</cbc:JobTitle> {{#if conductor.licencia}} <cac:IdentityDocumentReference> <cbc:ID>{{conductor.licencia}}</cbc:ID> <cbc:DocumentTypeCode listAgencyName="PE:SUNAT" listName="Tipo de documento de identidad" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06">3</cbc:DocumentTypeCode> </cac:IdentityDocumentReference> {{/if}} </cac:DriverPerson> {{/if}} </cac:ShipmentStage> <!-- Dirección de partida --> <cac:OriginAddress> <cbc:ID schemeAgencyName="PE:INEI" schemeName="Ubigeos">{{origen.ubigeo}}</cbc:ID> <cbc:StreetName>{{origen.direccion}}</cbc:StreetName> <cbc:CityName>{{origen.provincia}}</cbc:CityName> <cbc:CountrySubentity>{{origen.departamento}}</cbc:CountrySubentity> <cbc:District>{{origen.distrito}}</cbc:District> <cac:Country> <cbc:IdentificationCode listID="ISO 3166-1" listAgencyName="United Nations Economic Commission for Europe" listName="Country">PE</cbc:IdentificationCode> </cac:Country> </cac:OriginAddress> <!-- Dirección de llegada --> <cac:DeliveryAddress> <cbc:ID schemeAgencyName="PE:INEI" schemeName="Ubigeos">{{destino.ubigeo}}</cbc:ID> <cbc:StreetName>{{destino.direccion}}</cbc:StreetName> <cbc:CityName>{{destino.provincia}}</cbc:CityName> <cbc:CountrySubentity>{{destino.departamento}}</cbc:CountrySubentity> <cbc:District>{{destino.distrito}}</cbc:District> <cac:Country> <cbc:IdentificationCode listID="ISO 3166-1" listAgencyName="United Nations Economic Commission for Europe" listName="Country">PE</cbc:IdentificationCode> </cac:Country> </cac:DeliveryAddress> <!-- Datos del vehículo --> {{#if vehiculo}} <cac:TransportHandlingUnit> <cbc:ID>{{vehiculo.placa}}</cbc:ID> <cac:TransportEquipment> <cbc:ID>{{vehiculo.placa}}</cbc:ID> {{#if vehiculo.tarjetaCirculacion}} <cac:ApplicableTransportMeans> <cbc:RegistrationNationalityID>PE</cbc:RegistrationNationalityID> <cbc:RegistrationID>{{vehiculo.tarjetaCirculacion}}</cbc:RegistrationID> </cac:ApplicableTransportMeans> {{/if}} </cac:TransportEquipment> </cac:TransportHandlingUnit> {{/if}} </cac:Shipment> <!-- Detalle de ítems --> {{#each items}} <cac:DespatchLine> <cbc:ID>{{@index}}</cbc:ID> <cbc:DeliveredQuantity unitCode="{{unidadMedida}}">{{cantidad}}</cbc:DeliveredQuantity> <!-- Descripción del ítem --> <cac:Item> <cbc:Name>{{descripcion}}</cbc:Name> <cac:SellersItemIdentification> <cbc:ID>{{codigo}}</cbc:ID> </cac:SellersItemIdentification> {{#if codigoSunat}} <cac:CommodityClassification> <cbc:ItemClassificationCode listID="UNSPSC" listAgencyName="GS1 US" listName="Item Classification">{{codigoSunat}}</cbc:ItemClassificationCode> </cac:CommodityClassification> {{/if}} </cac:Item> </cac:DespatchLine> {{/each}} </DespatchAdvice>`;