--------------------------------------------------------------------------------------------------------------------
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
}
}