facturacionelectronicapy-ts-xmlgen
Version:
Genera el contenido del archivo XML del Documento electrónico exigido por la SET
117 lines (116 loc) • 4.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class CondicionXMLSG {
/**E7. Campos que describen la condición de la operación (E600-E699)*/
get_gCamCond(data) {
const condicion = data.condicion;
if (!condicion)
return;
return {
// E601
iCondOpe: condicion.tipo,
// E602
dDCondOpe: condicion.tipoDescripcion,
// E7.1. Campos que describen la forma de pago de la operación al contado o del monto
gPaConEIni: this.get_gPaConEIni(data),
// E7.2. Campos que describen la operación a crédito (E640-E649)
gPagCred: this.get_gPagCred(data),
};
}
/**E7.1. Campos que describen la forma de pago de la operación al contado o del monto*/
get_gPaConEIni(data) {
return data.condicion?.entregas?.map((entrega) => ({
// E606
iTiPago: entrega.tipo,
// E607
dDesTiPag: entrega.tipoDescripcion,
// E608
dMonTiPag: entrega.monto,
// E609
cMoneTiPag: entrega.moneda,
// E610
dDMoneTiPag: entrega.monedaDescripcion,
// E611
dTiCamTiPag: entrega.cambio,
// E7.1.1.Campos que describen el pago o entrega inicial de la operación con tarjeta de crédito/débito
gPagTarCD: this.get_gPagTarCD(entrega),
// E7.1.2.Campos que describen el pago o entrega inicial de la operación con cheque (E630-E639)
gPagCheq: this.get_gPagCheq(entrega),
}));
}
/**E7.1.1.Campos que describen el pago o entrega inicial de la operación con tarjeta de crédito/débito */
get_gPagTarCD(entrega) {
const infoTarjeta = entrega.infoTarjeta;
if (!infoTarjeta)
return;
return {
// E621
iDenTarj: infoTarjeta.tipo,
// E622
dDesDenTarj: infoTarjeta.tipoDescripcion,
// E623
dRSProTar: infoTarjeta.razonSocial,
// E624
dRUCProTar: infoTarjeta.rucID,
// E625
dDVProTar: infoTarjeta.rucDV,
// E626
iForProPa: infoTarjeta.medioPago,
// E627
dCodAuOpe: infoTarjeta.codigoAutorizacion,
// E628
dNomTit: infoTarjeta.titular,
// E629
dNumTarj: infoTarjeta.numero,
};
}
/**E7.1.2.Campos que describen el pago o entrega inicial de la operación con cheque (E630-E639) */
get_gPagCheq(entrega) {
const infoCheque = entrega.infoCheque;
if (!infoCheque)
return;
return {
// E631
dNumCheq: infoCheque.numeroCheque,
// E632
dBcoEmi: infoCheque.banco,
};
}
/**E7.2. Campos que describen la operación a crédito (E640-E649)*/
get_gPagCred(data) {
const credito = data.condicion?.credito;
if (!credito)
return;
return {
// E641
iCondCred: credito.tipo,
// E642
dDCondCred: credito.tipoDescripcion,
// E643
dPlazoCre: credito.plazo,
// E644
dCuotas: credito.cuotas,
// E645
dMonEnt: credito.montoEntregaInicial,
// E7.1.3.Campos que describen el pago o entrega inicial de la operación con cuotas (E620-E629)
gCuotas: this.get_gCuotas(credito),
};
}
/**E7.1.3.Campos que describen el pago o entrega inicial de la operación con cuotas (E620-E629) */
get_gCuotas(credito) {
const infoCuotas = credito.infoCuotas;
if (!infoCuotas)
return;
return infoCuotas.map((infoCuota) => ({
// E653
cMoneCuo: infoCuota.moneda,
// E654
dDMoneCuo: infoCuota.monedaDescripcion,
// E651
dMonCuota: infoCuota.monto,
// E652
dVencCuo: infoCuota.vencimiento,
}));
}
}
exports.default = new CondicionXMLSG();