facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
39 lines (38 loc) • 1.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.InfoCuotaSchema = void 0;
const zod_1 = require("zod");
const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators"));
const NumberLenght_1 = __importDefault(require("../../helpers/validation/NumberLenght"));
const db_service_1 = __importDefault(require("../../services/db.service"));
const SDParser_1 = __importDefault(require("../../helpers/SDParser"));
/**E7.2.1.Campos que describen las cuotas (E650-E659) */
exports.InfoCuotaSchema = zod_1.z
.object({
// E751
monto: zod_1.z
.number()
.superRefine((value, ctx) => {
new NumberLenght_1.default(value, ctx).max(15).maxDecimals(4);
})
.describe(SDParser_1.default.stringify('E751')),
// E752
vencimiento: CommonValidators_1.default.isoDate()
.optional()
.describe(SDParser_1.default.stringify('E752')),
// E753
moneda: CommonValidators_1.default.currency().describe(SDParser_1.default.stringify('E753', {
e: 'Currency',
})),
})
.transform((data, ctx) => {
return {
...data,
// E754
monedaDescripcion: db_service_1.default.currencies._findById(data.moneda)
.description,
};
});