facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
42 lines (41 loc) • 1.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UbicacionSchema = void 0;
const zod_1 = require("zod");
const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators"));
const db_service_1 = __importDefault(require("../../services/db.service"));
const SDParser_1 = __importDefault(require("../../helpers/SDParser"));
exports.UbicacionSchema = zod_1.z
.object({
// E316
lugar: CommonValidators_1.default.address().describe(SDParser_1.default.stringify('E316')),
// E317
departamento: CommonValidators_1.default.department().describe(SDParser_1.default.stringify('E317', { e: 'Department' })),
// E319
distrito: CommonValidators_1.default.district()
.optional()
.describe(SDParser_1.default.stringify('E319', { t: 'distritos' })),
// E321
ciudad: CommonValidators_1.default.city().describe(SDParser_1.default.stringify('E321', { t: 'ciudades' })),
})
.transform((data, ctx) => {
CommonValidators_1.default.location(ctx, data.departamento, data.distrito, data.ciudad);
return {
...data,
// E318
departamentoDescripcion: db_service_1.default.departments._findById(data.departamento).description,
// E320
distritoDescripcion: db_service_1.default.districts._findByIdIfExist(data.distrito, {
ctx,
fieldName: 'distrito',
})?.description,
// E322
ciudadDescripcion: db_service_1.default.districts._findById(data.ciudad, {
ctx,
fieldName: 'distrito',
})?.description,
};
});