/** * Contenido: Retorno de Archivos con Emisión Procesada * Autor: Rodrigo Sobrero **/ /*jslint browser: true*/ /*jslint regexp: true*/ /*global $, jQuery, alert, console, oGen, oGlobal, oConsulta, MessageAlert, FileReader, moment*/ // Objeto oInterfaseBrokers var oInterfaseBrokersRetorno = oInterfaseBrokersRetorno || {}; oInterfaseBrokersRetorno.sUsuarCod = oGlobal.cUsuario; // Valida el formulario antes de consultar oInterfaseBrokersRetorno.validate = function(){ oGen.fnPanelErrorRemove(); var dDesde = $("#interfaseDesde").val(); var dHasta = $("#interfaseHasta").val(); var doDesde = $.datepicker.parseDate("dd/mm/yy", dDesde); var doHasta = $.datepicker.parseDate("dd/mm/yy", dHasta); var isValid = true; // Chequea que el formato de la fecha DESDE sea válido if (oGen.fnValidaFecha(dDesde, "dd/mm/yy") === null){ oGen.fnPanelErrorAdd("Introduza un formato de fecha válido (dd/mm/aaaa).", "#interfaseDesde"); isValid = false; }; // Chequea que el formato de la fecha HASTA sea válido if (oGen.fnValidaFecha(dHasta, "dd/mm/yy") === null){ oGen.fnPanelErrorAdd("Introduza un formato de fecha válido (dd/mm/aaaa).", "#interfaseHasta"); isValid = false; }; // La fecha HASTA no puede ser mayor que DESDE if (doDesde > doHasta && doHasta != null && doDesde != null){ oGen.fnPanelErrorAdd("La fecha Hasta no puede ser menor que la fecha Desde.", "#interfaseHasta"); isValid = false; }; // Si hubo errores lo muestra en el panel if(!isValid){ oGen.fnPanelErrorShow(); } return isValid; }; // Consulta estado de archivo oInterfaseBrokersRetorno.fnConsultaRetorno = function () { "use strict"; // Obtener valores var sFechaDesdeArr = $("#interfaseDesde").val().split("/"), sFechaDesde = sFechaDesdeArr[2] + sFechaDesdeArr[1] + sFechaDesdeArr[0], sFechaHastaArr = $("#interfaseHasta").val().split("/"), sFechaHasta = sFechaHastaArr[2] + sFechaHastaArr[1] + sFechaHastaArr[0], sEstado = $("#interfaseEstado").val(); oConsulta.show({ consulta: "OV_CONSULTA_ARCHIVORETORNO", dataSource: "ovQbe", idComponente: "divDatosConsulta", titulo: "Consulta Retorno de Archivo con Emisión Procesado", estilo: "grillaSmall", exportar: false, busqueda: true, paramsDefault: { prm_usuarcod: oGlobal.cUsuario, prm_fecdesde: sFechaDesde, prm_fechasta: sFechaHasta, prm_estado: sEstado }, fnCallbackBeforeLoad: function (me, recs) { $.each(recs, function (item, reg) { if (reg.PROCE_AA !== "0000") { reg.PROCE_AA = String(reg.PROCE_DD) + "/" + String(reg.PROCE_MM) + "/" + String(reg.PROCE_AA); } else { reg.PROCE_AA = "-"; } if (reg.COPIA_A !== "0000") { reg.COPIA_A = String(reg.COPIA_DD) + "/" + String(reg.COPIA_MM) + "/" + String(reg.COPIA_A); } else { reg.COPIA_A = "-"; } if (reg.HORPROCE.length < 3) { reg.HORCOPIA = "-"; } else { if (reg.HORPROCE.length < 6) { reg.HORPROCE = "0" + String(reg.HORPROCE); } reg.HORPROCE = reg.HORPROCE.match(/.{2}/g); reg.HORPROCE = reg.HORPROCE[0] + ":" + reg.HORPROCE[1] + ":" + reg.HORPROCE[2]; } if (reg.HORCOPIA.length < 3) { reg.HORCOPIA = "-"; } else { if (reg.HORCOPIA.length < 6) { reg.HORCOPIA = "0" + String(reg.HORCOPIA); } reg.HORCOPIA = reg.HORCOPIA.match(/.{2}/g); reg.HORCOPIA = reg.HORCOPIA[0] + ":" + reg.HORCOPIA[1] + ":" + reg.HORCOPIA[2]; } reg.ARCHINOM = reg.ARCHINOM === undefined ? "" : reg.ARCHINOM + ".LBA"; }); }, fnCallback: function (row, nCol) { if (nCol === 5) { oInterfaseBrokersRetorno.DescargarArchivo(row); } } }); $("#SectionResultado").show(); }; // Descarga archivo por fila oInterfaseBrokersRetorno.DescargarArchivo = function(row){ //Bloquea la pantalla mientras prepara el archivo oGen.fnBloqueaShow(); // Datos iniciales oInterfaseBrokersRetorno.SECUECOD = row.SECUECOD; oInterfaseBrokersRetorno.ARCHINOM = (row.ARCHINOM.length > 0 ? row.ARCHINOM.split('.')[0] : ''); //['nombre_del_archivo', 'lba'] oInterfaseBrokersRetorno.MAILBOX = ""; oInterfaseBrokersRetorno.ZIP = ""; /* 1 - nombre de la carpeta 2 - generar archivo .zip 3 - actualizar estado del archivo 4 - descargar archivo */ oInterfaseBrokersRetorno.fnNombreCarpeta(); }; // 1 - Trae el nombre de la carpeta oInterfaseBrokersRetorno.fnNombreCarpeta = function(){ oGen.fnGetStore({ titulo: "Nombre de Carpeta", params: { prm_dataSource: "ovQbe", prm_funcion: "paconsultamqgestion.nombremailbox", prm_usuarcod: oInterfaseBrokersRetorno.sUsuarCod }, fnCallback: function (oResp) { try { if(oResp.records[0] != undefined){ console.info("Se obtuvo el nombre de la carpeta correctamente."); oInterfaseBrokersRetorno.MAILBOX = oResp.records[0].MAILBOX; oInterfaseBrokersRetorno.fnGeneraZip(); } else { console.warn("No se pudo obtener el nombre de la carpeta."); oInterfaseBrokersRetorno.showError(1); } } catch (err) { console.warn("Error al intentar obtener el nombre de la carpeta.", err); oInterfaseBrokersRetorno.showError(); } } }); }; // 2 - Verifica si existe y comprime el ZIP oInterfaseBrokersRetorno.fnGeneraZip = function() { oGen.fnGetStore({ titulo: "", params: { prm_dataSource: "ovQbe", prm_funcion: "ov.ovmqemision.interfacezip", prm_mailbox: oInterfaseBrokersRetorno.MAILBOX, prm_filename: oInterfaseBrokersRetorno.ARCHINOM, prm_usuarcod: oInterfaseBrokersRetorno.sUsuarCod }, fnCallback: function(oResp) { try { if(oResp.records[0].ZIP !== undefined){ console.info("Se generó el archivo .zip correctamente."); InterfaseBrokersRetorno.ZIP = oResp.records[0].ZIP; oInterfaseBrokersRetorno.fnActualizaEstado(); } else { console.warn("No se pudo generar archivo .zip."); oInterfaseBrokersRetorno.showError(2); } } catch (err) { console.warn("Error al intentar generar archivo .zip.", err); oInterfaseBrokersRetorno.showError(); } } }); }; // 3 - Actualiza el estado del archivo oInterfaseBrokersRetorno.fnActualizaEstado = function () { oGen.fnGetStore({ titulo: "Actualiza Estado Download de Archivo", params: { prm_dataSource: "ovQbe", prm_funcion: "paconsultamqgestion.estadoarchivo", prm_usuarcod: oGlobal.cUsuario, prm_secuecod: oInterfaseBrokersRetorno.SECUECOD, prm_fechacopia: moment(new Date(oGlobal.sys_date)).format("YYYYMMDD"), prm_horcopia: moment(new Date(oGlobal.sys_date)).format("Hmmss") }, fnCallback: function (oResp) { try { var sResultado = String(oResp.records[0].RESULTADO); if (sResultado === "true") { console.info("Se actualizó el estado del download de archivo correctamente."); oInterfaseBrokersRetorno.fnBinaryFile(InterfaseBrokersRetorno.ZIP, InterfaseBrokersRetorno.ARCHINOM); } else { console.warn("No se pudo actualizar el estado del download de archivo."); oInterfaseBrokersRetorno.showError(3); } } catch (err) { console.warn("Error al intentar actualizar el estado del download de archivo.", err); oInterfaseBrokersRetorno.showError(); } } }); }; // 4 - Descarga el archivo binario oInterfaseBrokersRetorno.fnBinaryFile = function(ruta, nombre) { oGen.fnBloqueaHide(); oReporte.fnExecDownload({ params : { prm_dataSource : "ovQbe", prm_funcion : "ov.OVMQEMISION.getBinaryFile", prm_RUTA : ruta, prm_nombreReporte : nombre + ".zip", prm_dataReporte : 'BINDATA' } }); }; // Pop-up con el error solicitado oInterfaseBrokersRetorno.showError = function(code){ oGen.fnBloqueaHide(); var mensaje = ''; switch(code){ case 1: case 2: case 3: mensaje = "Error en la búsqueda de la ruta del archivo a descargar, por favor inténtelo nuevamente más tarde."; break; default: mensaje = "Error en el sistema central, por favor inténtelo nuevamente más tarde."; break; } MessageAlert.messagePopup("Control de Errores", mensaje, 0, 20); }; // Crea botón de detalle oInterfaseBrokersRetorno.btnDescargar = function () { var sBoton = "" + " " + ""; return sBoton; }; // Carga el inicio $(document).ready(function () { "use strict"; // Title document.title = "Retorno de Archivos con Emisión Procesada | Zurich Argentina eBusiness"; // Breadcrumb oGen.fnBreadCrumb([ "Home", "Retorno de Archivos con Emisión Procesada" ]); // Inicia fechas oGen.fnIniciaDatePickers({ fechaDesde: "interfaseDesde", fechaHasta: "interfaseHasta" }); // Inicializa valores de datepicker (último mes) $("#interfaseHasta").val(moment(new Date(oGlobal.sys_date)).format("DD/MM/YYYY")); $("#interfaseDesde").val(moment(new Date(oGlobal.sys_date)).subtract(1, "months").format("DD/MM/YYYY")); // Asigna acción al botón "Buscar" $("#btnBuscar").on("click", function () { if(oInterfaseBrokersRetorno.validate()){ oInterfaseBrokersRetorno.fnConsultaRetorno(); } }); // Asigna acción al botón "Volver" $("#btnVolver").on("click", function () { oGen.goBack(); }); });