facturacionelectronicapy-recibo-xmlgen
Version:
API Node JS para generar el archivo XML del Recibo similar al exigido por la SET en base a JSON
128 lines • 12.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const constante_service_1 = __importDefault(require("./constante.service"));
const StringUtil_service_1 = __importDefault(require("./StringUtil.service"));
class JSonDteIdentificacionDocumentoService {
/**
* H. Campos que identifican al documento asociado (H001-H049)
*
* @param params
* @param data
* @param options
*/
generateDatosDocumentoAsociado(params, data) {
const jsonResult = {
iTipDocAso: data['documentoAsociado']['formato'],
dDesTipDocAso: constante_service_1.default.tiposDocumentosAsociados.filter((td) => td.codigo === data['documentoAsociado']['formato'])[0]['descripcion'],
};
if (data['documentoAsociado']['formato'] == 1) {
//H002 = Electronico
if (data['documentoAsociado']['cdc'] && data['documentoAsociado']['cdc'].length >= 44) {
jsonResult['dCdCDERef'] = data['documentoAsociado']['cdc'];
/*} else {
throw new Error('Debe indicar el CDC asociado en data.documentoAsociado.cdc');*/
}
}
if (data['documentoAsociado']['formato'] == 2) {
//H002 = Impreso
if (data['documentoAsociado']['timbrado']) {
jsonResult['dNTimDI'] = data['documentoAsociado']['timbrado'];
/*} else {
throw new Error(
'Debe especificar el Timbrado del Documento impreso Asociado en data.documentoAsociado.timbrado',
);*/
}
if (data['documentoAsociado']['establecimiento']) {
jsonResult['dEstDocAso'] = StringUtil_service_1.default.leftZero(data['documentoAsociado']['establecimiento'] + '', 3);
/*} else {
throw new Error(
'Debe especificar el Establecimiento del Documento impreso Asociado en data.documentoAsociado.establecimiento',
);*/
}
if (data['documentoAsociado']['punto']) {
jsonResult['dPExpDocAso'] = StringUtil_service_1.default.leftZero(data['documentoAsociado']['punto'] + '', 3);
/*} else {
throw new Error('Debe especificar el Punto del Documento impreso Asociado en data.documentoAsociado.punto');*/
}
if (data['documentoAsociado']['numero']) {
jsonResult['dNumDocAso'] = StringUtil_service_1.default.leftZero(data['documentoAsociado']['numero'] + '', 7);
/*} else {
throw new Error('Debe especificar el Número del Documento impreso Asociado en data.documentoAsociado.numero');*/
}
if (data['documentoAsociado']['tipoDocumentoImpreso']) {
jsonResult['iTipoDocAso'] = data['documentoAsociado']['tipoDocumentoImpreso'];
jsonResult['dDTipoDocAso'] = constante_service_1.default.tiposDocumentosImpresos.filter((td) => td.codigo === data['documentoAsociado']['tipoDocumentoImpreso'])[0]['descripcion'];
/*} else {
throw new Error(
'Debe especificar el Tipo del Documento Impreso Asociado en data.documentoAsociado.tipoDocumentoImpreso',
);*/
}
if (data['documentoAsociado']['fecha']) {
/*if ((data['documentoAsociado']['fecha'] + '').length != 10) {
throw new Error(
'La Fecha del Documento impreso Asociado en data.documentoAsociado.fecha debe tener una longitud de 10 caracteres',
);
}*/
jsonResult['dFecEmiDI'] = data['documentoAsociado']['fecha'];
/*} else {
throw new Error('Debe especificar la Fecha del Documento impreso Asociado en data.documentoAsociado.fecha');*/
}
}
if (data['documentoAsociado'] &&
data['documentoAsociado']['numeroRetencion'] &&
data['documentoAsociado']['numeroRetencion'].length >= 15) {
jsonResult['dNumComRet'] = data['documentoAsociado']['numeroRetencion'].substring(0, 15);
}
if (data['documentoAsociado'] &&
data['documentoAsociado']['resolucionCreditoFiscal'] &&
data['documentoAsociado']['resolucionCreditoFiscal'].length >= 15) {
jsonResult['dNumResCF'] = data['documentoAsociado']['resolucionCreditoFiscal'].substring(0, 15);
}
if (data['documentoAsociado']['formato'] == 3) {
//H002 = Constancia electronica
if (data['documentoAsociado']['constanciaTipo']) {
/*if (
constanteService.tiposConstancias.filter((um) => um.codigo === data['documentoAsociado']['constanciaTipo'])
.length == 0
) {
throw new Error(
"Tipo de Constancia '" +
data['documentoAsociado']['constanciaTipo'] +
"' en data.documentoAsociado.constanciaTipo no encontrado. Valores: " +
constanteService.tiposConstancias.map((a) => a.codigo + '-' + a.descripcion),
);
}*/
jsonResult['iTipCons'] = data['documentoAsociado']['constanciaTipo'];
jsonResult['dDesTipCons'] = constante_service_1.default.tiposConstancias.filter((tc) => tc.codigo === data['documentoAsociado']['constanciaTipo'])[0]['descripcion'];
jsonResult['dNumCons'] = +data['documentoAsociado']['constanciaNumero'];
jsonResult['dNumControl'] = data['documentoAsociado']['constanciaControl'];
}
}
return jsonResult;
}
/**
* G1. Campos generales de la carga (G050 - G099)
*
* @param params
* @param data
* @param options
*/
generateDatosCarga(params, data) {
const jsonResult = {
cUniMedTotVol: data['complementarios']['carga']['unidadMedida'],
dDesUniMedTotVol: data['complementarios']['carga']['ordenVenta'],
dTotVolMerc: data['complementarios']['carga']['numeroAsiento'],
cUniMedTotPes: data['complementarios']['carga']['numeroAsiento'],
dDesUniMedTotPes: data['complementarios']['carga']['numeroAsiento'],
dTotPesMerc: data['complementarios']['carga']['numeroAsiento'],
iCarCarga: data['complementarios']['carga']['numeroAsiento'],
dDesCarCarga: data['complementarios']['carga']['numeroAsiento'],
};
return jsonResult;
}
}
exports.default = new JSonDteIdentificacionDocumentoService();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaWJvWG1sSWRlbnRpZmljYWNpb25Eb2N1bWVudG8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9yZWNpYm9YbWxJZGVudGlmaWNhY2lvbkRvY3VtZW50by5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNEVBQW1EO0FBQ25ELDhFQUFxRDtBQUVyRCxNQUFNLHFDQUFxQztJQUN6Qzs7Ozs7O09BTUc7SUFDSSw4QkFBOEIsQ0FBQyxNQUFXLEVBQUUsSUFBUztRQUMxRCxNQUFNLFVBQVUsR0FBUTtZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hELGFBQWEsRUFBRSwyQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQzdELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUNwQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0Msb0JBQW9CO1lBQ3BCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDckYsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzRDtnR0FDZ0Y7YUFDakY7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLGdCQUFnQjtZQUNo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