UNPKG

facturacionelectronicapy-qrgen

Version:

Módulo NodeJs para generar el Valor para el Código QR en el Archivo XML Firmado para la Facturación Electrónica en Paraguay

96 lines 10.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const xml2js_1 = __importDefault(require("xml2js")); const sha256_1 = __importDefault(require("crypto-js/sha256")); class QRGen { /** * Genera el codigo QR del Archivo XML Firmado * @param xml * @returns */ generateQR(xml, idCSC, CSC, env) { return xml2js_1.default.parseStringPromise(xml).then((obj) => { if (!(obj && obj["rDE"] && obj["rDE"]["Signature"] && obj["rDE"]["Signature"])) { throw new Error("XML debe estar firmado digitalmente"); } obj["rDE"]["gCamFuFD"] = {}; let qrLink = "https://ekuatia.set.gov.py/consultas"; if (env == "test") { qrLink += "-test"; } qrLink += "/qr?"; let qr = ""; const nVersion = obj["rDE"]["dVerFor"][0]; qr += "nVersion=" + nVersion + "&"; const id = obj["rDE"]["DE"][0]["$"]["Id"]; qr += "Id=" + id + "&"; let dFeEmiDE = obj["rDE"]["DE"][0]["gDatGralOpe"][0]["dFeEmiDE"][0]; dFeEmiDE = Buffer.from(dFeEmiDE, "utf8").toString("hex"); qr += "dFeEmiDE=" + dFeEmiDE + "&"; let dRucRec = ""; if (obj["rDE"]["DE"][0]["gDatGralOpe"][0]["gDatRec"][0]["iNatRec"][0] == 1) { //Contribuyente dRucRec = obj["rDE"]["DE"][0]["gDatGralOpe"][0]["gDatRec"][0]["dRucRec"][0]; qr += "dRucRec=" + dRucRec + "&"; } else { //No contribuyente dRucRec = obj["rDE"]["DE"][0]["gDatGralOpe"][0]["gDatRec"][0]["dNumIDRec"][0]; /*//Nt010 // Se vuelve a rettirar, por que el valor debe ser como está en el campo if ( obj["rDE"]["DE"][0]["gDatGralOpe"][0]["gDatRec"][0]["iTiOpe"][0] == 4 ) { //Si es B2F entonces el dNumIDRec=0 dRucRec = "0"; // Se vuelve a rettirar, por que el valor debe ser como está en el campo }*/ qr += "dNumIDRec=" + dRucRec + "&"; } let dTotGralOpe = 0; if (obj["rDE"]["DE"][0]["gTotSub"] && obj["rDE"]["DE"][0]["gTotSub"][0] && obj["rDE"]["DE"][0]["gTotSub"][0]["dTotGralOpe"] && obj["rDE"]["DE"][0]["gTotSub"][0]["dTotGralOpe"][0]) { dTotGralOpe = obj["rDE"]["DE"][0]["gTotSub"][0]["dTotGralOpe"][0]; } qr += "dTotGralOpe=" + dTotGralOpe + "&"; let dTotIVA = 0; if (obj["rDE"]["DE"][0]["gTotSub"] && obj["rDE"]["DE"][0]["gTotSub"][0] && obj["rDE"]["DE"][0]["gTotSub"][0]["dTotIVA"] && obj["rDE"]["DE"][0]["gTotSub"][0]["dTotIVA"][0]) { dTotIVA = obj["rDE"]["DE"][0]["gTotSub"][0]["dTotIVA"][0]; } qr += "dTotIVA=" + dTotIVA + "&"; let cItems = 0; if (obj["rDE"]["DE"][0]["gDtipDE"][0] && obj["rDE"]["DE"][0]["gDtipDE"][0]["gCamItem"] && obj["rDE"]["DE"][0]["gDtipDE"][0]["gCamItem"].length > 0) { cItems = obj["rDE"]["DE"][0]["gDtipDE"][0]["gCamItem"].length; } qr += "cItems=" + cItems + "&"; let digestValue = obj["rDE"]["Signature"][0]["SignedInfo"][0]["Reference"][0]["DigestValue"][0]; digestValue = Buffer.from(digestValue, "utf8").toString("hex"); qr += "DigestValue=" + digestValue + "&"; qr += "IdCSC=" + idCSC; const valueForHash = qr; let valueHashed = sha256_1.default(valueForHash + CSC); qr += "&cHashQR=" + valueHashed; obj["rDE"]["gCamFuFD"]["dCarQR"] = { _: qrLink + qr, }; var builder = new xml2js_1.default.Builder(); var xmlWithQR = builder.buildObject(obj); return xmlWithQR; }); } } exports.default = new QRGen(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUVJHZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUVJHZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsOERBQXNDO0FBR3RDLE1BQU0sS0FBSztJQUNUOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBb0I7UUFDdEUsT0FBTyxnQkFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pELElBQ0UsQ0FBQyxDQUNDLEdBQUc7Z0JBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDVixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDO2dCQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQ3hCLEVBQ0Q7Z0JBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO2FBQ3hEO1lBQ0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUU1QixJQUFJLE1BQU0sR0FBRyxzQ0FBc0MsQ0FBQztZQUNwRCxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7Z0JBQ2pCLE1BQU0sSUFBSSxPQUFPLENBQUM7YUFDbkI7WUFDRCxNQUFNLElBQUksTUFBTSxDQUFDO1lBRWpCLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNaLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQyxFQUFFLElBQUksV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFFbkMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxD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QUM7Z0JBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDL0M7Z0JBQ0EsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRDtZQUNELEVBQUUsSUFBSSxVQUFVLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUVqQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDZixJQUNFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUN4RDtnQkFDQSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUMvRDtZQUVELEVBQUUsSUFBSSxTQUFTLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUUvQixJQUFJLFdBQVcsR0FDYixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3pELGFBQWEsQ0FDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1AsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvRCxFQUFFLElBQUksY0FBYyxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7WUFFekMsRUFBRSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFFdkIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksV0FBVyxHQUFHLGdCQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBRTdDLEVBQUUsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBRWhDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDakMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFO2FBQ2YsQ0FBQztZQUVGLElBQUksT0FBTyxHQUFHLElBQUksZ0JBQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsa0JBQWUsSUFBSSxLQUFLLEVBQUUsQ0FBQyJ9