UNPKG

nodefact

Version:

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

185 lines (171 loc) 7.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatch = void 0; /** * Plantilla para Guía de Remisión (Dispatch Advice) */ const namespaces_1 = require("./namespaces"); exports.dispatch = `<?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>1.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> <!-- Tipo de documento --> <cbc:DespatchAdviceTypeCode>{{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>{{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> <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:DespatchSupplierParty> <!-- Datos del Destinatario --> <cac:DeliveryCustomerParty> <cbc:CustomerAssignedAccountID>{{destinatario.numeroDocumento}}</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>{{destinatario.tipoDocumento}}</cbc:AdditionalAccountID> <cac:Party> <cac:PartyLegalEntity> <cbc:RegistrationName>{{destinatario.razonSocial}}</cbc:RegistrationName> </cac:PartyLegalEntity> </cac:Party> </cac:DeliveryCustomerParty> <!-- Datos del Transportista --> {{#if transportista}} <cac:ShipperParty> <cbc:CustomerAssignedAccountID>{{transportista.numeroDocumento}}</cbc:CustomerAssignedAccountID> <cbc:AdditionalAccountID>{{transportista.tipoDocumento}}</cbc:AdditionalAccountID> <cac:Party> <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>{{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>{{modalidadTraslado}}</cbc:TransportModeCode> <cac:TransitPeriod> <cbc:StartDate>{{fechaInicioTraslado}}</cbc:StartDate> </cac:TransitPeriod> <!-- Datos del conductor --> {{#if conductor}} <cac:DriverPerson> <cbc:ID schemeID="{{conductor.tipoDocumento}}">{{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> </cac:IdentityDocumentReference> {{/if}} </cac:DriverPerson> {{/if}} </cac:ShipmentStage> <!-- Dirección de partida --> <cac:OriginAddress> <cbc:ID>{{origen.ubigeo}}</cbc:ID> <cbc:StreetName>{{origen.direccion}}</cbc:StreetName> <cbc:CitySubdivisionName>-</cbc:CitySubdivisionName> <cbc:CityName>{{origen.provincia}}</cbc:CityName> <cbc:CountrySubentity>{{origen.departamento}}</cbc:CountrySubentity> <cbc:District>{{origen.distrito}}</cbc:District> <cac:Country> <cbc:IdentificationCode>PE</cbc:IdentificationCode> </cac:Country> </cac:OriginAddress> <!-- Dirección de llegada --> <cac:DeliveryAddress> <cbc:ID>{{destino.ubigeo}}</cbc:ID> <cbc:StreetName>{{destino.direccion}}</cbc:StreetName> <cbc:CitySubdivisionName>-</cbc:CitySubdivisionName> <cbc:CityName>{{destino.provincia}}</cbc:CityName> <cbc:CountrySubentity>{{destino.departamento}}</cbc:CountrySubentity> <cbc:District>{{destino.distrito}}</cbc:District> <cac:Country> <cbc:IdentificationCode>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> </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> </cac:Item> </cac:DespatchLine> {{/each}} </DespatchAdvice>`;