facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
69 lines (68 loc) • 2.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EstablecimientoSchema = 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.EstablecimientoSchema = zod_1.z
.object({
// relacionado con C005
codigo: CommonValidators_1.default.zeroPadToLength(3).describe(SDParser_1.default.stringify('relacionado con C005')),
// D107
direccion: CommonValidators_1.default.address().describe(SDParser_1.default.stringify('D107')),
// D108
numeroCasa: CommonValidators_1.default.houseNumber()
.default(0)
.describe(SDParser_1.default.stringify('D108')),
// D109
complementoDireccion1: CommonValidators_1.default.address()
.optional()
.describe(SDParser_1.default.stringify('D109')),
// D110
complementoDireccion2: CommonValidators_1.default.address()
.optional()
.describe(SDParser_1.default.stringify('D110')),
// D111
departamento: CommonValidators_1.default.department().describe(SDParser_1.default.stringify('D111', {
e: 'Department'
})),
// D113
distrito: CommonValidators_1.default.district()
.optional()
.describe(SDParser_1.default.stringify('D113')),
// D115
ciudad: CommonValidators_1.default.city().describe(SDParser_1.default.stringify('D115')),
// D117
telefono: CommonValidators_1.default.tel().describe(SDParser_1.default.stringify('D117')),
// D118
email: CommonValidators_1.default.email().describe(SDParser_1.default.stringify('D118')),
// D119
denominacion: zod_1.z
.string()
.min(1)
.max(30)
.optional()
.describe(SDParser_1.default.stringify('D119')),
})
.transform((data, ctx) => {
CommonValidators_1.default.location(ctx, data.departamento, data.distrito, data.ciudad);
return {
...data,
// D112
departamentoDescripcion: db_service_1.default.departments._findById(data.departamento).description,
// D114
distritoDescripcion: db_service_1.default.districts._findByIdIfExist(data.distrito, {
ctx,
fieldName: 'distrito',
})?.description,
// D116
ciudadDescripcion: db_service_1.default.cities._findById(data.ciudad, {
ctx,
fieldName: 'ciudad',
})?.description,
};
});