Producto de una migracion de DEVEXPRESS a JQUERY, manejo los calculos en session, y se
van actualizando tanto en pantalla como en sesión.-
--------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
.aspx
--------------------------------------------------------------------------------------------------------------------
<%@ Page Title="Evaluador de Pagos" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="EvaluadorPagos.aspx.cs" Inherits="LeaseOperWeb.Paginas.Cobranza.EvaluarPagos.EvaluadorPagos" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> <script src="../../../Scripts/JSValidadores.js" type="text/javascript"></script> <%-- <link href="../../../css/style-css.css" rel="stylesheet" type="text/css" />--%> <!--#include file="../../../Scripts/jquery.includes.htm"--> <script type="text/javascript" language="javascript"> var alert = 0; $(document).ready(function () { defineGvEvaluador(); defineFormato(); }); var lastsel; function defineGvEvaluador() { try { $("#grid").jqGrid({ datatype: "local", colNames: ['Rut', 'Operación', 'T.C', 'Cta.', 'Descrip.Concepto', 'Descrip.Estado Pago', 'Concepto', 'Tipo Pago', 'Fecha Vcto.', 'Fecha Pago', 'Cuota Mo.', 'Cuota $', 'Mora Mo', 'Interes Mora $', 'Gast Cobr M.O', 'Gasto Cob.$', 'Total a Pagar $', 'Monto Pagado $', 'corre_cons', 'num_consulta'], colModel: [ { name: 'rut', index: 'rut', align: 'center', width: '100px', editable: false, hidden: true }, { name: 'operacion', index: 'operacion', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'cod_tipo_cuota', index: 'cod_tipo_cuota', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'num_cuota', index: 'num_cuota', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'descripcion_concepto', index: 'descripcion_concepto', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'desc_est_pago', index: 'desc_est_pago', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'concepto_norenta', index: 'concepto_norenta', align: 'center', width: '100px', editable: false, hidden: true }, { name: 'cod_estado_pago', index: 'cod_estado_pago', align: 'center', width: '100px', editable: false, hidden: true }, { name: 'fecha_vencimiento', index: 'fecha_vencimiento', align: 'center', width: '100px', editable: false, hidden: false }, { name: 'fecha_pago', index: 'fecha_pago', align: 'center', width: '100px', editable: true, hidden: false }, { name: 'valor_cuota_mo', index: 'valor_cuota_mo', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 2 }, editable: false, hidden: false }, { name: 'paridad', index: 'paridad', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 0 }, editable: false, hidden: false }, { name: 'interes_mora_mo', index: 'interes_mora_mo', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 2 }, editable: false, hidden: false }, { name: 'interes_mora_pe', index: 'interes_mora_pe', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 0 }, editable: true, hidden: false }, { name: 'gastos_cobranza_mo', index: 'gastos_cobranza_mo', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 2 }, editable: false, hidden: false }, { name: 'gastos_cobranza', index: 'gastos_cobranza', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 0 }, editable: true, hidden: false }, { name: 'valor_total_pesos', index: 'valor_total_pesos', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 0 }, editable: false, hidden: false }, { name: 'monto_cancelado', index: 'monto_cancelado', align: 'center', width: '100px', formatter: 'number', formatoptions: { decimalPlaces: 0 }, editable: false, hidden: false }, { name: 'corre_cons', index: 'corre_cons', align: 'center', width: '100px', editable: false, hidden: true }, { name: 'num_consulta', index: 'num_consulta', align: 'center', width: '100px', editable: false, hidden: true } ], multiselect: false, rowNum: -1, footerrow: true, pgbuttons: true, viewrecords: true, width: 980, shrinkToFit: false, autowidth: false, forceFit: true, height: 300, editurl: jutils.pageName(), cellEdit: true, //PERMITEN LA EDICION POR CELDA cellsubmit: 'clientArray', //PERMITEN LA EDICION POR CELDA onSelectRow: function (id, status) { if (id && id !== lastsel) { $('#grid').jqGrid('restoreRow', lastsel); } jQuery("#grid").jqGrid('editRow', id, true); } , afterEditCell: function (id, name, val, iRow, iCol) { if (name === 'fecha_pago') { jQuery("#" + iRow + "_fecha_pago", "#grid").datepicker({ changeMonth: true, changeYear: true, dateFormat: 'dd/mm/yy', firstDay: 1, yearSuffix: '', dayNamesMin: ['Dom', 'Lun', 'Mar', 'Mier', 'jue', 'Vie', 'Sab'], monthNamesShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"] }); jQuery("#" + iRow + "_fecha_pago", "#grid").attr('readonly', true); } if (name === 'interes_mora_pe') { jQuery("#" + iRow + "_interes_mora_pe", "#grid").keyup(function () { this.value = this.value.replace(/[^0-9\.]/g, ''); }); } if (name === 'gastos_cobranza') { jQuery("#" + iRow + "_gastos_cobranza", "#grid").keyup(function () { this.value = this.value.replace(/[^0-9\.]/g, ''); }); } }, beforeSubmitCell: function (id, name, val, iRow, iCol) { RefreshChangeValueCell(id, name, val, iRow - 1, iCol); }, gridComplete: function () { var colSumTotalPesos = jQuery("#grid").jqGrid('getCol', 'valor_total_pesos', false, 'sum'); var colSumToTalPagado = jQuery("#grid").jqGrid('getCol', 'monto_cancelado', false, 'sum'); jQuery("#grid").jqGrid('footerData', 'set', { 'valor_total_pesos': colSumTotalPesos, 'monto_cancelado': colSumToTalPagado }); } }); } catch (e) { jutils.showError(e, arguments.callee.name); } } function RefreshChangeValueCell(id, name, val, iRow, iCol) { try { if (name === 'fecha_pago' || name === 'monto_cancelado') { var paramsVal = "{'type':'" + name + "','value':'" + val + "','index':'" + iRow + "'}"; var data = jutils.ajax.serverCall("ChangeDateOrAmountToPay", paramsVal, arguments.callee.name); if (data !== 'OK') { showMessage(data); return; } } var params = "{'type':'" + name + "','value':'" + val + "','index':'" + iRow + "'}"; jutils.ajax.getJsonData_Async("RefreshChangeValueCell", params, arguments.callee.name, DataBindRefresh); var paramsMsg = "{}"; var msg = jutils.ajax.serverCall("ReviewMsgDet", paramsMsg, arguments.callee.name); msg = msg.replace(/['"]+/g, ''); if (msg !== 'OK') { showMessage(msg); return; } } catch (e) { jutils.showError(e, arguments.callee.name); } } function defineFormato() { $("#textOperacion").keyup(function () { this.value = this.value.replace(/[^0-9\.]/g, ''); }); $("#txtNumConsulta").keyup(function () { this.value = this.value.replace(/[^0-9\.]/g, ''); }); $("#textNumFactura").keyup(function () { this.value = this.value.replace(/[^0-9\.]/g, ''); }); $('#textRut').Rut({ on_error: function () { showMessage('El RUT ingresado no es válido'); }, format_on: 'keyup' }); var currentDate = new Date(); $("#textFecha").datepicker({ changeMonth: true, changeYear: true, dateFormat: 'dd/mm/yy', firstDay: 1, yearSuffix: '', dayNamesMin: ['Dom', 'Lun', 'Mar', 'Mier', 'jue', 'Vie', 'Sab'], monthNamesShort: [ "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" ] }); $.datepicker.setDefaults($.datepicker.regional['es']); $("#textFecha").datepicker("setDate", currentDate); } function OperacionBlur() { $('#grid').clearGridData(true); if ($("#textOperacion").val() === '') { showMessage('Debe indicar la operación'); return; } CargaGrillaEvaluarPagos('operacion'); } function NumConsultaBlur() { $('#grid').clearGridData(true); if ($("#txtNumConsulta").val() === '') { showMessage('Debe indicar n° Consulta'); return; } CargaGrillaEvaluarPagos('numConsulta'); } function RutBlur() { $('#grid').clearGridData(true); if ($("#textRut").val() === '') { showMessage('Debe indicar Rut'); return; } if ($.Rut.validar($("#textRut").val()) === false) { showMessage('El RUT ingresado no es válido'); return; } CargaGrillaEvaluarPagos('rut'); } function TipoFacturaChange() { if ($("#cmbTipoFactura").val() === '0') { return; } if ($("#textNumFactura").val() === '') { showMessage('Debe indicar n° Factura'); return; } CargaGrillaEvaluarPagos('factura'); } function CargaGrillaEvaluarPagos(value) { try { var sinCosto = 0; if ($("#checkSinCost").is(":checked") === true) sinCosto = 1; var params; if (value === 'operacion') { var operacion = $("#textOperacion").val(); params = "{'operacion':'" + operacion + "','rut':'" + 0 + "','tipo':'" + 0 + "','numFact':'" + 0 + "','numConsulta':'" + 0 + "','tipoConsulta':'" + 'operacion' + "','sinCosto':'" + sinCosto + "'}"; jutils.ajax.getJsonData_Async("LoadJqGrid", params, arguments.callee.name, DataBind); } if (value === 'numConsulta') { var numConsulta = $("#txtNumConsulta").val(); params = "{'operacion':'" + 0 + "','rut':'" + 0 + "','tipo':'" + 0 + "','numFact':'" + 0 + "','numConsulta':'" + numConsulta + "','tipoConsulta':'" + 'numConsulta' + "','sinCosto':'" + sinCosto + "'}"; jutils.ajax.getJsonData_Async("LoadJqGrid", params, arguments.callee.name, DataBind); } if (value === 'rut') { var rut = $("#textRut").val(); rut = rut.replace(".", "").replace(".", "").replace(".", ""); rut = rut.split("-")[0]; params = "{'operacion':'" + 0 + "','rut':'" + rut + "','tipo':'" + 0 + "','numFact':'" + 0 + "','numConsulta':'" + 0 + "','tipoConsulta':'" + 'rut' + "','sinCosto':'" + sinCosto + "'}"; jutils.ajax.getJsonData_Async("LoadJqGrid", params, arguments.callee.name, DataBind); } if (value === 'factura') { var factura = $("#textNumFactura").val(); params = "{'operacion':'" + 0 + "','rut':'" + 0 + "','tipo':'" + 0 + "','numFact':'" + factura + "','numConsulta':'" + 0 + "','tipoConsulta':'" + 'factura' + "','sinCosto':'" + sinCosto + "'}"; jutils.ajax.getJsonData_Async("LoadJqGrid", params, arguments.callee.name, DataBind); } var paramsMsg = "{}"; var msg = jutils.ajax.serverCall("ReviewMsgDet", paramsMsg, arguments.callee.name); msg = msg.replace(/['"]+/g, ''); if (msg !== 'OK') { showMessage(msg); return; } msg = jutils.ajax.serverCall("ReviewMsgNec", paramsMsg, arguments.callee.name); msg = msg.replace(/['"]+/g, ''); if (msg !== 'OK') { showMessage(msg); return; } // var rowCount = $("#grid").getGridParam("reccount"); // JC : Eliminar en proxima revision // if (rowCount > 0) { CargaEncabezado(); // } } catch (e) { jutils.showError(e, arguments.callee.name); } } function DataBind(data) { if (data != null && data.substring(0, 1) === '*') { showMessage(data, 'Atención'); return; } var jsondata = $.parseJSON(data); $('#grid').clearGridData(true); $(jsondata).each(function (e) { $("#grid").addRowData(e, this); }); } function CargaEncabezado() { try { var paramsEnc = "{}"; var data = jutils.ajax.serverCall("LoadHead", paramsEnc, arguments.callee.name); // if (data.substring(0, 1) === '*') { // showMessage(data, 'Atención'); // return; // } $("#txtNumConsulta").val(data[0]['num_consulta']); $("#textOperacion").val(data[0]['operacion']); if (data[0]['numero_factura'] === null) $("#textNumFactura").val('0'); else $("#textNumFactura").val(data[0]['numero_factura']); $("#textRut").val(formatNumber(data[0]['rut_cliente']) + '-' + data[0]['dv'].toString()); $("#textNombre").val(data[0]['nombre_cliente']); if (data[0]['tipo'] === null) $("#cmbTipoFactura").val('0'); else $("#cmbTipoFactura").val(data[0]['tipo']); } catch (e) { jutils.showError(e, arguments.callee.name); } } function formatNumber(value) { var retorno = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); return retorno; } function ClearTexts() { $("#txtNumConsulta").val(''); $("#textOperacion").val(''); $("#textNumFactura").val(''); $("#textRut").val(''); $("#textNombre").val(''); //$("#textFecha").val(''); $("#cmbTipoFactura").val('0'); $('#grid').clearGridData(true); var params = "{}"; jutils.ajax.serverCall("ClearSession", params, arguments.callee.name); } //Borrado desde abajo hacia arriba automático // function BorrarFila() { // try { // var rowid = $("#grid").getGridParam("reccount") - 1; // if (rowid >= 0) { // $('#grid').jqGrid('delRowData', rowid); // var params = "{'rowCount':'" + rowid + "'}"; // jutils.ajax.serverCall("DelRow", params, arguments.callee.name); // } // } catch (e) { // jutils.showError(e, arguments.callee.name); // } // } //Borrado selectivo por Row function BorrarFila() { try { var rowid = $("#grid").jqGrid('getGridParam', 'selrow'); var rowData = jQuery("#grid").getRowData(rowid); var colData = rowData['concepto_norenta']; var correlativoInConsulta = rowData['corre_cons']; var rowCount = $("#grid").getGridParam("reccount") - 1; if (rowid >= 0) { if (colData !== '1') { $('#grid').jqGrid('delRowData', rowid); var params = "{'correlativoInConsulta':'" + correlativoInConsulta + "','rowCount':'" + rowCount + "'}"; jutils.ajax.serverCall("DelRow", params, arguments.callee.name); } else { jutils.confirmMessage("Se eliminarán todas las rentas hacia abajo", "Eliminar Rentas", EliminarRentas); } } else { showMessage('Debe seleccionar una fila para Eliminar', 'Atención'); return; } } catch (e) { jutils.showError(e, arguments.callee.name); } } function EliminarRentas() { //OBTENGO EL ID ROW A ELIMINAR var rowidToDelete = $("#grid").jqGrid('getGridParam', 'selrow'); //OBTENGO EL INDICE PARA ELIMNAR EN SESSION EN .CS var rowIndex = $('#' + $.jgrid.jqID(rowidToDelete))[0].rowIndex; //OBTENGO LA CANTIDAD DE REGISTROS PARA ELIMINAR EN SESSION EN .CS var rowCount = $("#grid").getGridParam("reccount"); if (rowidToDelete >= 0) { //1.OBTENGO TODOS LOS IDS DE LA GRILLA var rows = jQuery("#grid").getDataIDs(); //2.LOS RECORRO for (var a = 0; a < rows.length; a++) { //OBTENGO EL IDROW DESDE MI ARREGLO "rows" var rowFor = rows[a]; //3.SI EL IDROW ES MENOR AL ID A ELIMINAR NO HAGO NADA, DE LO CONTRARIO ELIMINO LA FILA DE LA GRILLA if (parseInt(rowFor) >= parseInt(rowidToDelete)) { var row1 = jQuery("#grid").getRowData(rowFor); var colDataFor1 = row1['concepto_norenta']; if (colDataFor1 === '1') { $('#grid').jqGrid('delRowData', rowFor); } } } var params = "{'rowId':'" + rowIndex + "','rowCount':'" + rowCount + "'}"; jutils.ajax.serverCall("DelRowMassive", params, arguments.callee.name); } } function Grabar() { try { var rowCount = $("#grid").getGridParam("reccount"); if (rowCount > 0) { var params = "{}"; var data = jutils.ajax.serverCall("Save", params, arguments.callee.name); data = data.replace(/['"]+/g, ''); if (data === 'Grabación efectuada OK.') { RefreshBeforeSave(); showMessage(data, 'Atención'); } else { showMessage(data, 'Atención'); return; } } else { showMessage('No hay registros para Guardar', 'Atención'); return; } } catch (e) { jutils.showError(e, arguments.callee.name); } } function RefreshBeforeSave() { var params = "{}"; jutils.ajax.getJsonData_Async("RefreshBeforeSave", params, arguments.callee.name, DataBindRefresh); } function DataBindRefresh(data) { if (data != null && data.substring(0, 1) === '*') { showMessage(data, 'Atención'); return; } else { var jsondata = $.parseJSON(data); $('#grid').clearGridData(true); $(jsondata).each(function (e) { $("#grid").addRowData(e, this); }); } } function PreExcel() { jutils.confirmMessage("Se generará Excel en base a últimos registros Guardados", "Atención", Excel); } var flag = 0; function Excel() { var id = '325'; var wsdata = "{'iddocx':'" + id + "'}"; var hoja = jutils.ajax.getJsonData("RecuperaNomDoc", wsdata, arguments.callee.name); var url; var downloadWindow; var opciones = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1, height=1, top=1, left=1 "; var numConsulta = $("#txtNumConsulta").val(); if (numConsulta == '') { showMessage('No hay número de consulta para realizar exportación', 'Atención'); return; } var wsdataXls = "{'num_consulta':'" + numConsulta + "','hoja':'" + hoja + "'}"; jutils.ajax.getJsonData_Async("ReporteXls", wsdataXls, arguments.callee.name, showReportExcel); } function showReportExcel(data) { if (data != null && data !== "" && data.substring(0, 1) !== "*") { if (data === 'SD') { showMessage('No se encontraron Registros', 'Atención'); return; } else { var wsdata = "{}"; var url = jutils.ajax.getJsonData("GetRutaCargaExcel", wsdata, arguments.callee.name); url = url + data; var opciones = "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=100, height=100, top=0, left=2500"; window.open(url, '', opciones); } } else { showMessage('Ha ocurrido un error. ' + data, 'Atención'); } } function PreVer() { jutils.confirmMessage("Se generará Informe en base a últimos registros Guardados", "Atención", Ver); } function Ver() { var numConsulta = $("#txtNumConsulta").val(); if (numConsulta === '') { showMessage('No hay número de consulta para realizar exportación', 'Atención'); return; } var wsdata = "{'num_consulta':'" + numConsulta + "'}"; jutils.ajax.getJsonData_Async("DownloadPDF", wsdata, arguments.callee.name, showReport); } function showReport(data) { if (data != null && data !== "" && data.substring(0, 1) !== "*") if (data !== 'SD') { document.getElementById('FrameDialog').src = data; } else { showMessage('No se encontraron Registros', 'Atención'); return; } else { var wsdata = "{}"; var url = jutils.ajax.getJsonData("GetRutaCRError", wsdata, arguments.callee.name); url = url + data; document.getElementById('FrameDialog').src = url; } $("#frmPdf").dialog({ title: 'Informe Informe Evaluar Pagos', height: 800, width: 900, resizable: false, modal: true, open: function () { //para que funcione correctamente en emulación IE8 $(".ui-dialog-titlebar-close").show(); $('.ui-dialog').css('z-index', 103); $('.ui-widget-overlay').css('z-index', 102); } }); } </script> <form id="frmPdf" style="display: none"> <table width="100%"> <tr> <td> <iframe id="FrameDialog" height="800px" width="100%" scrolling="yes" style="z-index: -1;"> </iframe> </td> </tr> </table> </form> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="HeaderContent" runat="server"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" id="td-descrip" class="style21"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> <tr> <td class="td-titulos"> Evaluar Pagos </td> </tr> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="40"> </td> <td class="lin-borde"> </td> </tr> </table> </td> </tr> <tr> <td class="mig"> Cobranza / Cobranza / Evaluar Pagos </td> </tr> </table> <!-------------------------------------------------------------titulo y miga de pan--------------------------------------------------------------------------------------------> </td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td valign="top"> <!---------------------------------Tabla de ejecutivo--------------------------------> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="10"> </td> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="borde"> <tr> <td> <div class="modul"> <div class="modul_top"> <div class="modul_top_right"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="9"> </td> <td class="modul_fd"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="modul_fd_tit"> PARAMETROS DE CONSULTA </td> </tr> </table> </td> <td width="9"> </td> </tr> </table> </div> </div> <div class="modul_content"> </div> </div> </td> </tr> </table> </td> </tr> <tr> <td class="modul_bordes"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="caja-datos"> <tr> <td width="10"> </td> <td height="10"> </td> <td> </td> </tr> <tr> <td width="10" rowspan="3"> </td> <td> <table class="style1"> <tr> <td class="style8" colspan="12"> <table width="100%"> <tr> <td class="style17"> Rut </td> <td class="style16" align="left"> <input id="textRut" type="text" maxlength="13" class="caja-datos" onblur="RutBlur()" /> </td> <td class="style18"> Nombre Cliente </td> <td align="left" class="style19"> <input id="textNombre" type="text" maxlength="100" class="caja-datos" readonly="readonly" style="width: 250px" /> </td> <td align="left" class="style20"> <input id="checkSinCost" type="checkbox" maxlength="100" class="caja-datos" /> Sin Costo Cob. </td> <td align="left" class="style23"> </td> <td align="left"> <input id="btnLimpiar" type="button" value="Limpiar" class="btn_limpiar" onclick="ClearTexts()" title="Limpiar" /> </td> </tr> </table> </td> </tr> <tr> <td class="style24"> Operación </td> <td class="style9"> <input id="textOperacion" type="text" maxlength="20" class="caja-datos" onblur="OperacionBlur()" /> </td> <td class="style10"> N° Consulta </td> <td align="left" class="style7"> <input id="txtNumConsulta" type="text" maxlength="20" class="caja-datos" style="width: 100px; horiz-align: right" onblur="NumConsultaBlur()" /> </td> <td class="style8"> N° Factura </td> <td align="left" class="style12"> <input id="textNumFactura" type="text" maxlength="20" class="caja-datos" style="width: 100px; horiz-align: right" /> </td> <td class="style13" align="left"> <select id="cmbTipoFactura" class="caja-datos" style="width: 150px;" onchange="TipoFacturaChange()"> <option value="0" selected="selected">Sin Filtro</option> <option value="1">FA AF-Afecta</option> <option value="2">FA EX-Exenta</option> <option value="2">FA AEL-Afecta Electrónica</option> <option value="2">FA EEL-Exenta Electrónica</option> </select> </td> <td class="style11"> Fecha </td> <td class="style11" align="left"> <input id="textFecha" readonly="readonly" width="100px" class="FormElement ui-widget-content " /> <td class="style11"> </td> <td class="style11"> </td> <td class="style11"> </td> </tr> </table> </td> <td width="10" rowspan="3"> </td> </tr> <tr> <td height="10"> </td> </tr> <tr> <td height="10" align="right"> </td> </tr> </table> </td> </tr> <tr> <td> <div class="modul_bottom"> <div class="modul_bottom_right"> <div class="modul_borde-bottom"> </div> </div> </div> </td> </tr> </table> </td> <td width="10"> </td> </tr> </table> <!---------------------------------Fin de ejecutivo--------------------------------> </td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td valign="top"> <!---------------------------------Inicio tabla alternativa--------------------------------> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="10"> </td> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="borde"> <tr> <td> <div class="modul"> <div class="modul_top"> <div class="modul_top_right"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="9"> </td> <td class="modul_fd"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="modul_fd_tit"> EVALUAR PAGOS </td> </tr> </table> </td> <td width="9"> </td> </tr> </table> </div> </div> <div class="modul_content"> </div> </div> </td> </tr> </table> </td> </tr> <tr> <td class="modul_bordes"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="caja-datos"> <tr> <td width="10"> </td> <td height="10"> </td> <td> </td> </tr> <tr> <td width="10" rowspan="3"> </td> <td align="center" valign="top"> <div id="printerElement"> <table id="grid"> <tr> <td> </td> </tr> </table> </div> <div id="pager"> </div> </td> <td width="10" rowspan="3"> </td> </tr> </table> </td> </tr> <tr> <td> <div class="modul_bottom"> <div class="modul_bottom_right"> <div class="modul_borde-bottom"> </div> </div> </div> </td> </tr> </table> </td> </tr> </table> <!---------------------------------Fin Inicio tabla alternativa--------------------------------> </td> </tr> </table> <br /> <asp:UpdatePanel ID="UpdPanel1" runat="server"> <ContentTemplate> <table width="450" border="0" align="right" cellpadding="0" cellspacing="0"> <tr> <td align="right"> <input id="btnGuardar" type="button" value="Grabar" title="Guardar Registros" class="btn_guardar" onclick="Grabar()" /> </td> <td align="right"> <input id="btnBorrarFila" type="button" value="Borrar" title="Borrar fila" class="btn_eliminar" onclick="BorrarFila()" /> </td> <td align="right"> <input id="btnPdf" type="button" value="PDF" class="btn_generar_pdf" onclick="PreVer()" /> </td> <td align="right"> <input id="btnExcel" type="button" value="Excel" class="btn_excel" onclick="PreExcel()" /> </td> </tr> </table> </ContentTemplate> </asp:UpdatePanel> <br /> </asp:Content>
--------------------------------------------------------------------------------------------------------------------.cs--------------------------------------------------------------------------------------------------------------------
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using System.Web.UI; using System.Web.UI.WebControls; using Newtonsoft.Json; using System.Data; using LeaOperBussinesLayer.BussinesComponents.Cobranza.EvaluarPagos; using LeaOperBussinesLayer.BussinesComponents.Contabilidad.InforContables; using LeaOperBussinesLayer.Util; using LeaseOperWeb.Negocio.Cobranza.EvaluarPagos; using LeaseOperWeb.Negocio.Comun; using LeaseOperWeb.Utils; namespace LeaseOperWeb.Paginas.Cobranza.EvaluarPagos { public partial class EvaluadorPagos : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Session["dtDwDet"] = null; Session["dt_old"] = null; Session["dt_encabezado"] = null; Session["rutCliente"] = null; Session["msgDet"] = null; Session["msgNec"] = null; } } [WebMethod]public static string LoadJqGrid(string operacion, string rut, string tipo, string numFact, string numConsulta, string tipoConsulta, string sinCosto) { HttpContext.Current.Session["msgDet"] = null; HttpContext.Current.Session["msgNec"] = null; DataTable dw_det = null, dw_nec = null; string msgNec, msgDet; try { new EvaluarPagosWebBc().recupera_detalle_evaluador(Convert.ToDecimal(operacion), Convert.ToInt32(rut), Convert.ToInt16(tipo), Convert.ToDecimal(numFact), Convert.ToInt32(numConsulta), DateTime.Now, tipoConsulta, Convert.ToInt32(sinCosto), out dw_nec, out dw_det, out msgNec, out msgDet); HttpContext.Current.Session["dtDwDet"] = dw_det; HttpContext.Current.Session["dt_old"] = dw_det; HttpContext.Current.Session["dt_encabezado"] = dw_nec; if (msgNec != "OK") { HttpContext.Current.Session["msgNec"] = msgNec; } if (msgDet != "OK") { HttpContext.Current.Session["msgDet"] = msgDet; } string result = JsonConvert.SerializeObject(dw_det).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } catch (Exception ex) { dw_det = null; string result = JsonConvert.SerializeObject(dw_det).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } } [WebMethod] public static string LoadHead() { try { var dt = (DataTable)HttpContext.Current.Session["dt_encabezado"]; HttpContext.Current.Session["rutCliente"] = dt.Rows[0]["rut_cliente"]; return JsonConvert.SerializeObject(dt); } catch (Exception ex) { return JsonConvert.SerializeObject("*" + "Se ha perdido la sesión, reingrese al sistema"); } } [WebMethod] public static void ClearSession() { HttpContext.Current.Session["dtDwDet"] = null; HttpContext.Current.Session["dt_old"] = null; HttpContext.Current.Session["dt_encabezado"] = null; HttpContext.Current.Session["rutCliente"] = null; HttpContext.Current.Session["msgDet"] = null; HttpContext.Current.Session["msgNec"] = null; } [WebMethod] public static void DelRow(string correlativoInConsulta, string rowCount) { var gridRowCount = Convert.ToInt32(rowCount); var dt = (DataTable)HttpContext.Current.Session["dtDwDet"]; for (int i = 0; i <= gridRowCount; i++) { DataRow dr = dt.Rows[i]; if (dr["corre_cons"].ToString().Trim() == correlativoInConsulta.Trim()) dr.Delete(); } dt.AcceptChanges(); HttpContext.Current.Session["dtDwDet"] = dt; } [WebMethod] public static void DelRowMassive(string rowId, string rowCount) { var index = Convert.ToInt32(rowId)-1; var gridRowCount = Convert.ToInt32(rowCount)-1; if (index >= 0) { var dt = (DataTable)HttpContext.Current.Session["dtDwDet"]; for (int i = index; i <= gridRowCount; i++) { DataRow dr = dt.Rows[i]; if (dr["concepto_norenta"].ToString() == "1") dr.Delete(); } dt.AcceptChanges(); HttpContext.Current.Session["dtDwDet"] = dt; } } [WebMethod] public static string RefreshChangeValueCell(string type, string value, string index) { var msgDet = string.Empty; HttpContext.Current.Session["msgDet"] = null; DataTable dt_DwDet = null; try { switch (type) { case "fecha_pago": new EvaluarPagosWebBc().CambioFechaPagoOMontoCancelado(0, "fecha", (DataTable)HttpContext.Current.Session["dtDwDet"], Convert.ToInt32(index), out dt_DwDet, out msgDet); break; case "interes_mora_pe": if (value.Trim() == string.Empty) value = "0"; new EvaluarPagosWebBc().CambioFechaPagoOMontoCancelado(Convert.ToDecimal(value), "interes_mora_pe", (DataTable)HttpContext.Current.Session["dtDwDet"], Convert.ToInt32(index), out dt_DwDet, out msgDet); break; case "gastos_cobranza": if (value.Trim() == string.Empty) value = "0"; new EvaluarPagosWebBc().CambioFechaPagoOMontoCancelado(Convert.ToDecimal(value), "gastos_cobranza", (DataTable)HttpContext.Current.Session["dtDwDet"], Convert.ToInt32(index), out dt_DwDet, out msgDet); //Representación del método CargarGastosCobranzaMO existente en evaluador DXpress for (int i = 0; i < dt_DwDet.Rows.Count; i++) { dt_DwDet.Rows[i]["gastos_cobranza_mo"] = (Convert.ToDecimal(dt_DwDet.Rows[i]["gastos_cobranza"]) / Convert.ToDecimal(dt_DwDet.Rows[i]["paridad_fecha_pago"])); } break; case "monto_cancelado": //JC:Este metodo no está en uso en el Evaluador de origen, pero se programa por si en el futuro lo desean habilitar.- new EvaluarPagosWebBc().CambioFechaPagoOMontoCancelado(0, "monto_cancelado", (DataTable)HttpContext.Current.Session["dtDwDet"], Convert.ToInt32(index), out dt_DwDet, out msgDet); break; } if (msgDet != "OK") { HttpContext.Current.Session["msgDet"] = msgDet; } HttpContext.Current.Session["dtDwDet"] = dt_DwDet; string result = JsonConvert.SerializeObject(dt_DwDet).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } catch (Exception ex) { string result = JsonConvert.SerializeObject(ex.Message).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } } [WebMethod] public static string ReviewMsgDet() { var msg = HttpContext.Current.Session["msgDet"] ?? "OK"; string result = JsonConvert.SerializeObject(msg).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } [WebMethod] public static string ReviewMsgNec() { var msg = HttpContext.Current.Session["msgNec"] ?? "OK"; string result = JsonConvert.SerializeObject(msg).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } [WebMethod] public static string ChangeDateOrAmountToPay(string type, string value, string index) { var msg = "OK"; var dt = (DataTable)HttpContext.Current.Session["dtDwDet"]; if (type == "fecha_pago") { if (value.Trim() == string.Empty) { msg = "Fecha Pago no puede estar vacía"; return JsonConvert.SerializeObject(msg); } dt.Rows[Convert.ToInt32(index)]["fecha_pago"] = value; } else //JC: monto cancelado no está editable, pero se programa por si lo habilitan en el futuro.- { if (value.Trim() == string.Empty) { msg = "Monto cancelado no puede estar vacío"; return JsonConvert.SerializeObject(msg); } dt.Rows[Convert.ToInt32(index)]["monto_cancelado"] = value; } HttpContext.Current.Session["dtDwDet"] = dt; return JsonConvert.SerializeObject(msg); } [WebMethod] public static string Save() { try { var user = (UserSessionObjectBc)HttpContext.Current.Session["UserSessionObjectBc"]; string msgDet; string msg; string result; if (user == null) { msg = "Se ha perdido la sesión, vuelva a conectarse al sistema."; result = JsonConvert.SerializeObject(msg).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } DataTable dtDwDetOld = (DataTable)HttpContext.Current.Session["dt_old"]; string msgNe2, msgNe3; var rutCliente = Convert.ToInt32(HttpContext.Current.Session["rutCliente"]); var dtDwDet = (DataTable)HttpContext.Current.Session["dtDwDet"]; DataTable dt_DwDet; new EvaluarPagosWebBc().ValidaYGrabaEvaluoPago(user.CodPersonal, rutCliente, dtDwDet, out dt_DwDet, out msgDet, ref dtDwDetOld); HttpContext.Current.Session["dtDwDet"] = dt_DwDet; if (msgDet.Contains("OK")) msgDet = "Grabación efectuada OK."; result = JsonConvert.SerializeObject(msgDet).Replace("ö", "o").Replace(@"\", ""); return JsonConvert.SerializeObject(result); } catch (Exception ex) { string result = JsonConvert.SerializeObject(ex.Message).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } } [WebMethod] public static string RefreshBeforeSave() { try { var dw_det = (DataTable)HttpContext.Current.Session["dtDwDet"]; string result = JsonConvert.SerializeObject(dw_det).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } catch (Exception ex) { string result = JsonConvert.SerializeObject(ex.Message).Replace("ö", "o"); return JsonConvert.SerializeObject(result); } } #region Exportación [WebMethod] public static string ReporteXls(string num_consulta, string hoja) { string salida = string.Empty; DataSet ds = new DataSet(); try { ds = new BcEvaluarPagos().EvaluarPago_NumConsulta_Excel(Convert.ToInt32(num_consulta)); if (ds != null && ds.Tables[0].Rows.Count == 0) { return JsonConvert.SerializeObject("SD"); } else { salida = FuncionesGenericasWebBc.bajarExcel(ds.Tables[0], hoja); } } catch (Exception exc) { salida = "*" + exc.Message.ToString().Replace("'", " ").Replace("\"", "").Replace(@"\r", "").Replace("\r\n", "") + "*"; } return JsonConvert.SerializeObject(salida); } [WebMethod] public static string DownloadPDF(string num_consulta) { string filename = string.Empty; DataSet ds = new DataSet(); try { ds = new BcEvaluarPagos().EvaluarPago_NumConsulta(Convert.ToInt32(num_consulta)); //ds.WriteXml(@"C:\CR\InformeEvaluarPagos.xml"); DataTable reporte = new CR().RecuperaReporte(325); if (reporte != null && reporte.Rows.Count > 0) { if (ds != null) { if (ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) { filename = "SD"; } else { filename = new FuncionesGenericas().GeneraPdf(ds, reporte); } } } } catch (Exception exc) { filename = "*" + new Exception(exc.Message.ToString().Replace("'", " ").Replace("\"", "").Replace(@"\r", "").Replace("\r\n", "")) + "*"; } return JsonConvert.SerializeObject(filename); } [WebMethod] public static string GetRutaCRError() { return JsonConvert.SerializeObject(new FuncionesGenericas().MapPathURLCRError()); } [WebMethod] public static string GetRutaCargaExcel() { return JsonConvert.SerializeObject(new FuncionesGenericas().MapPathURLExcelDownLoad()); } [WebMethod] public static string RecuperaNomDoc(string iddocx) { int iddoc = Convert.ToInt32(iddocx); var dt = new InforContablesBc().RecuperaNomDoc(iddoc); return JsonConvert.SerializeObject(dt); } #endregion } }
No hay comentarios:
Publicar un comentario