UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

Genera el contenido del archivo XML del Documento electrónico exigido por la SET

85 lines (84 loc) 3.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SalidaYEntregaSchema = void 0; const zod_1 = require("zod"); const departments_table_1 = require("../../data/departments.table"); const db_service_1 = __importDefault(require("../../services/db.service")); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /** * E10.1. Campos que identifican el local de salida de las mercaderías (E920-E939) * E10.2. Campos que identifican el local de entrega de las mercaderías (E940-E959) * * @SALIDA * @field E921 = direccion * @field E922 = numeroCasa * @field E923 = complementoDireccion1 * @field E924 = complementoDireccion2 * @field E925 = departamento * @field E926 = departamentoDescripcion * @field E927 = distrito * @field E928 = distritoDescripccion * @field E929 = ciudad * @field E930 = ciudadDescripcion * @field E931 = telefonoContacto * * @ENTREGA * @field E941 = direccion * @field E942 = numeroCasa * @field E943 = complementoDireccion1 * @field E944 = complementoDireccion2 * @field E945 = departamento * @field E946 = departamentoDescripcion * @field E947 = distrito * @field E948 = distritoDescripccion * @field E949 = ciudad * @field E950 = ciudadDescripcion * @field E951 = telefonoContacto * * @field ???? = pais * @field ???? = paisDescripcion */ exports.SalidaYEntregaSchema = zod_1.z .object({ direccion: CommonValidators_1.default.address().describe(SDParser_1.default.stringify('E921 o E941')), numeroCasa: CommonValidators_1.default.houseNumber().describe(SDParser_1.default.stringify('E922 o E942')), complementoDireccion1: CommonValidators_1.default.address() .optional() .describe(SDParser_1.default.stringify('E923 o E943')), complementoDireccion2: CommonValidators_1.default.address() .optional() .describe(SDParser_1.default.stringify('E924 o E944')), departamento: zod_1.z .nativeEnum(departments_table_1.Department) .describe(SDParser_1.default.stringify('E925 o E945', { e: 'Department' })), distrito: CommonValidators_1.default.district() .optional() .describe(SDParser_1.default.stringify('E926 o E946', { t: 'distritos' })), ciudad: CommonValidators_1.default.city().describe(SDParser_1.default.stringify('E929 o E949', { t: 'ciudades' })), telefonoContacto: zod_1.z .string() .min(6) .max(15) .optional() .describe(SDParser_1.default.stringify('E931 o E951')), }) .transform((data, ctx) => { CommonValidators_1.default.location(ctx, data.departamento, data.distrito, data.ciudad); return { ...data, departamentoDescripcion: db_service_1.default.departments._findById(data.departamento).description, // E928 - E948 distritoDescripcion: db_service_1.default.districts._findByIdIfExist(data.distrito, { ctx, fieldName: 'distrito', })?.description, ciudadDescripcion: db_service_1.default.cities._findById(data.ciudad, { ctx, fieldName: 'ciudad', }).description, }; });