facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
66 lines (65 loc) • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SectorEnergiaElectricaSchema = void 0;
const zod_1 = require("zod");
const NumberLenght_1 = __importDefault(require("../../helpers/validation/NumberLenght"));
const SDParser_1 = __importDefault(require("../../helpers/SDParser"));
/**E9.2. Sector Energía Eléctrica (E791-E799) */
exports.SectorEnergiaElectricaSchema = zod_1.z
.object({
// E792
numeroMedidor: zod_1.z
.string()
.min(1)
.max(50)
.optional()
.describe(SDParser_1.default.stringify('E792')),
// E793
codigoActividad: zod_1.z
.number()
.optional()
.superRefine((value, ctx) => {
if (value == undefined)
return;
new NumberLenght_1.default(value, ctx).int().length(2);
})
.describe(SDParser_1.default.stringify('E793')),
// E794
codigoCategoria: zod_1.z
.string()
.length(3)
.optional()
.describe(SDParser_1.default.stringify('E794')),
// E795
lecturaAnterior: zod_1.z
.number()
.optional()
.superRefine((value, ctx) => {
if (value == undefined)
return;
new NumberLenght_1.default(value, ctx).max(11).decimalsLength(2);
})
.describe(SDParser_1.default.stringify('E795')),
// E796
lecturaActual: zod_1.z
.number()
.optional()
.superRefine((value, ctx) => {
if (value == undefined)
return;
new NumberLenght_1.default(value, ctx).max(11).decimalsLength(2);
})
.describe(SDParser_1.default.stringify('E796')),
})
.transform((data, ctx) => {
return {
...data,
// E797
consumo: data.lecturaActual && data.lecturaAnterior
? data.lecturaActual - data.lecturaAnterior
: undefined,
};
});