facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
45 lines (44 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ItemDncpSchema = void 0;
const zod_1 = require("zod");
const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators"));
const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator"));
const SDParser_1 = __importDefault(require("../../helpers/SDParser"));
exports.ItemDncpSchema = zod_1.z
.object({
// E704
codigoNivelGeneral: CommonValidators_1.default.zeroPadToLength(8)
.optional()
.describe(SDParser_1.default.stringify('E704')),
// E705
codigoNivelEspecifico: zod_1.z
.string()
.min(3)
.max(4)
.optional()
.describe(SDParser_1.default.stringify('E705')),
// E706
codigoGtinProducto: CommonValidators_1.default.gtinCode()
.optional()
.describe(SDParser_1.default.stringify('E706')),
// E707
codigoNivelPaquete: CommonValidators_1.default.gtinCode()
.optional()
.describe(SDParser_1.default.stringify('E707')),
})
.superRefine((data, ctx) => {
const validator = new ZodValidator_1.default(ctx, data);
// E705
{
/*
Obligatorio si existe el campo E704
*/
if (data.codigoNivelGeneral) {
validator.requiredField('codigoNivelEspecifico');
}
}
});