UNPKG

@vexta-systems/node-mde

Version:

Biblioteca para consultar notas e CT-e destinadas e enviar evento de manifestação do destinatário

49 lines (47 loc) 1.8 kB
let Xml = require("../util").Xml; class RetornoHelper { static montarRetorno(a) { var { json: a, data: t, retornoSefaz: d } = a, t = { data: a, reqXml: t, resXml: d.data, status: d.status }; return a.error && (t.data = {}, t.error = { xml: a.error, json: Xml.xmlToJson(a.error) }), 2 < Math.floor(d.status / 100) && !a.error && (t.data = {}, t.error = { xml: d.data, json: Xml.xmlToJson(d.data) }), t; } static juntarRetornos(a) { let d = { data: { tpAmb: "", verAplic: "", cStat: "", xMotivo: "", dhResp: "", ultNSU: "000000000000000", maxNSU: "000000000000000", docZip: [] }, status: 0 }; return (a = Array.isArray(a) ? a : [ a ]).forEach((a, t) => { (d = 0 === t ? { ...d, ...a } : d).data && a.data && ("138" !== d.data.cStat && (d.data.cStat = a.data.cStat, d.data.xMotivo = a.data.xMotivo, d.data.dhResp = a.data.dhResp), d.data.ultNSU > a.data.ultNSU && (d.data.ultNSU = a.data.ultNSU), d.data.ultNSU > a.data.maxNSU && (d.data.ultNSU = a.data.maxNSU), d.data.maxNSU < a.data.ultNSU && (d.data.maxNSU = a.data.ultNSU), d.data.maxNSU < a.data.maxNSU && (d.data.maxNSU = a.data.maxNSU), 0 < t) && d.data.docZip && a.data.docZip && (d.data.docZip = d.data.docZip.concat(a.data.docZip)); }), 1 < a.length && (d.resXml = "united", d.reqXml = "united"), d; } } module.exports = Object.freeze(RetornoHelper);