facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
67 lines (66 loc) • 3.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutoFacturaSchema = void 0;
const zod_1 = require("zod");
const idDocsCarriers_table_1 = require("../../data/idDocsCarriers.table");
const sellerNatureSelfInvoicingCases_table_1 = require("../../data/sellerNatureSelfInvoicingCases.table");
const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators"));
const db_service_1 = __importDefault(require("../../services/db.service"));
const ubicacion_schema_1 = require("./ubicacion.schema");
const SDParser_1 = __importDefault(require("../../helpers/SDParser"));
/**E4. Campos que componen la Autofactura Electrónica AFE (E300-E399) */
exports.AutoFacturaSchema = zod_1.z
.object({
// E301
tipoVendedor: zod_1.z
.nativeEnum(sellerNatureSelfInvoicingCases_table_1.SellerNatureSelfInvoicing)
.describe(SDParser_1.default.stringify('E301', { e: 'SellerNatureSelfInvoicing' })),
// E304
documentoTipo: zod_1.z
.nativeEnum(idDocsCarriers_table_1.IdentityDocumentCarrier)
.describe(SDParser_1.default.stringify('E304', { e: 'IdentityDocumentCarrier' })),
// E306
documentoNumero: CommonValidators_1.default.identityDocNumber().describe(SDParser_1.default.stringify('E306')),
// E307
nombre: CommonValidators_1.default.name().describe(SDParser_1.default.stringify('E307')),
// E308
direccion: CommonValidators_1.default.address().describe(SDParser_1.default.stringify('E308')),
// E309
numeroCasa: CommonValidators_1.default.houseNumber().describe(SDParser_1.default.stringify('E309')),
// E310
departamento: CommonValidators_1.default.department().describe(SDParser_1.default.stringify('E310', { e: 'Department' })),
// E312
distrito: CommonValidators_1.default.district()
.optional()
.describe(SDParser_1.default.stringify('E312', { t: 'distritos' })),
// E314
ciudad: CommonValidators_1.default.city().describe(SDParser_1.default.stringify('E314', { t: 'ciudades' })),
// E316 - E322
ubicacion: ubicacion_schema_1.UbicacionSchema.describe(SDParser_1.default.stringify('E316 - E322')),
})
.transform((data, ctx) => {
CommonValidators_1.default.location(ctx, data.departamento, data.distrito, data.ciudad);
return {
...data,
// E302
tipoVendedorDescripcion: db_service_1.default.sellerNatureSelfInvoicingCases._findById(data.tipoVendedor)
.description,
// E305
documentoTipoDescripcion: db_service_1.default.idDocsCarriers._findById(data.documentoTipo).description,
// E311
departamentoDescripcion: db_service_1.default.departments._findById(data.departamento).description,
// E313
distritoDescripcion: db_service_1.default.districts._findByIdIfExist(data.distrito, {
ctx,
fieldName: 'distrito',
})?.description,
// E315
ciudadDescripcion: db_service_1.default.districts._findById(data.ciudad, {
ctx,
fieldName: 'distrito',
})?.description,
};
});