/*===========================================================================================================================
* Instituto Costarricense de Acueductos y Alcantarillados. - 2015
* Formularios para Proyectos de Inversión
* Nombre de la Pantalla: wfrFinancimiento.aspx
*
* Explicación de los contenidos del archivo
*===========================================================================================================================
* HISTORIAL
*
* PERSONA DIA – MES - AÑO DESCRIPCIÓN
* Esteban Gutierrez Rapso 23 – 11 - 2016 Se inicia con el diseño de la pagina
* …………………………………………………………
* …………………………………………………………
*===========================================================================================================================
* Derechos Reservados (C) 2016 AyA.
* ESTE CÓDIGO ES PROVEÍDO “TAL CUAL ES” SIN GARANTÍA ALGUNA
* DE NINGÚN TIPO, SEA IMPLICITA O EXPLICITA.
* NO SE PERMITE SU REPRODUCCIÓN PARCIAL O TOTAL, NI SU COMERCIALIZACIÓN
*===========================================================================================================================
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using AyABL;
using AyADAL;
using AyABL.RCS;
using AyABL.AGP;
using AyABL.ADM;
using AyABL.FNP;
public partial class webforms_FNP_wfrFinanciamiento : General
{
#region Inicializar Formulario (R0)
override protected void OnInit(EventArgs e) //M0
{
try
{
base.OnInit(e);
InicializarFormulario();
}
catch (Exception ex)
{
MensajeError("Error en R0M0", ex);
}
}
private void InicializarFormulario() //M1
{
try
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
//Javascript.CheckAllGridViewItems(Page);
construirgrvRecursos();
construirgrvEndeudamiento();
construirgrvDetalle();
}
catch (Exception ex)
{
MensajeError("Error en R0M1", ex);
}
}
#endregion
#region Variables (R1)
GridView grvRecursosTemp, grvEndeudamientoTemp, grvDetalleTemp;
FuenteFinanciamientoBL objFuenteFinanciamientoBL;
RecursoBL objRecursoBL;
FinanciamientoBL objFinanciamientoBL;
EndeudamientoBL objEndeudamientoBL;
ProyectoBL objProyectoBL;
#endregion
#region Eventos Formulario (R2)
protected void Page_Load(object sender, EventArgs e) //M0
{
try
{
if ((!IsPostBack) && (Session.Count > 0))
{
ComandosxMenu();
llenarDDLProyecto();
llenarDDLTipoRecurso();
llenarDDLRecurso();
llenarDDLAnio();
if (Session["PKPROYECTO"] != null)
{
ddlProyecto.SelectedValue = Session["PKPROYECTO"].ToString();
ddlProyecto_SelectedIndexChanged(null, null);
}
llenarGRVRecursos();
llenarGRVEndeudamiento();
llenarGRVDetalle();
llenarDDLTipoFuente();
llenarDDLFuenteFinanciamiento();
llenarDDLDesembolsoI();
llenarDDLDesembolsoF();
mostrarFilaTabla(1);
mostrarDetalleFinanciamiento(1);
}
}
catch (Exception ex)
{
MensajeError("Error en R2M0", ex);
}
}
#endregion
#region Eventos Controles Web (R3)
protected void btnGuardarInversion_Click(object sender, EventArgs e) //M0
{
try
{
if (GuardarInversion())
{
MensajeInformativo("El registro fue almacenado");
}
else
{
MensajeError("El registro no fue almacenado, verifique", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M0", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
protected void btnEliminarInversion_Click(object sender, EventArgs e) //M1
{
try
{
if (ViewState["PkFinanciamiento"] != null)
{
int intPkIndice = Int32.Parse(ViewState["PkFinanciamiento"].ToString());
eliminarInversion(intPkIndice);
llenarGRVDetalle();
limpiarInversion();
}
else
MensajeAdvertencia("Debe seleccionar un registro");
}
catch (Exception ex)
{
MensajeError("Error en R3M1", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
protected void ddlTipoRecurso_SelectedIndexChanged(object sender, EventArgs e) //M2
{
llenarDDLRecurso();
}
protected void ddlAnio_SelectedIndexChanged(object sender, EventArgs e) //M3
{
}
protected void btnNuevoEndeudamiento_Click(object sender, EventArgs e) //M5
{
try
{
ddlFuenteFinanciamiento.Focus();
mostrarFilaTabla(2);
limpiarEndeudamiento();
btnGuardar.Visible = true;
btnModificar.Visible = false;
}
catch (Exception ex)
{
MensajeError("Error en R3M5", ex);
}
}
protected void btnAnterior_Click(object sender, EventArgs e) //M6
{
try
{
llenarGRVEndeudamiento();
mostrarFilaTabla(1);
}
catch (Exception ex)
{
MensajeError("Error en R3M6", ex);
}
}
protected void ddlProyecto_SelectedIndexChanged(object sender, EventArgs e) //M7
{
try
{
mostrarDatos();
Session["PKPROYECTO"] = ddlProyecto.SelectedValue;
}
catch (Exception ex)
{
MensajeError("Error en R3M7", ex);
}
}
protected void btnBuscar_Click(object sender, EventArgs e) //M8
{
try
{
mostrarDatos();
llenarGRVDetalle();
mostrarDetalleFinanciamiento(1);
}
catch (Exception ex)
{
MensajeError("Error en R3M8", ex);
}
}
protected void ddlTipoFuente_SelectedIndexChanged(object sender, EventArgs e) //M9
{
try
{
llenarDDLFuenteFinanciamiento();
}
catch (Exception ex)
{
MensajeError("Error en R3M9", ex);
}
}
protected void grvEndeudamiento_RowCommand(object sender, GridViewCommandEventArgs e) //M10
{
try
{
if (e.CommandName == "editar")
{
//Extrae la fila seleccionada del GridView
int i = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grvEndeudamiento.Rows[i];
int intPKIndice = Convert.ToInt32(selectedRow.Cells[2].Text);
mostrarFilaTabla(2);
if (bool.Parse(ViewState["PUEDEMODIFICAR"].ToString()) == true)
{
btnModificar.Visible = true;
btnGuardar.Visible = false;
}
ViewState["PkEndeudamiento"] = intPKIndice;
mostrarDatos(intPKIndice);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M10", ex);
}
}
protected void btnEliminarEndeudamiento_Click(object sender, EventArgs e) //M11
{
try
{
// recorro el grid
foreach (GridViewRow row in grvEndeudamiento.Rows)
{
HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)row.Controls[0].Controls[1];
if (chkTemp != null)
{
// si el registro esta marcado
if (chkTemp.Checked)
{
int intPkIndice = Convert.ToInt32(row.Cells[2].Text);
eliminarEndeudamiento(intPkIndice);
}
}
}
llenarGRVEndeudamiento();
}
catch (Exception ex)
{
MensajeError("Error en R3M11", ex);
}
}
protected void grvDetalle_RowCommand(object sender, GridViewCommandEventArgs e) //M12
{
try
{
if (e.CommandName == "editar")
{
int i = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = grvDetalle.Rows[i];
ViewState["PkFinanciamiento"] = Convert.ToInt32(selectedRow.Cells[1].Text);
mostrarDetalle();
}
}
catch (Exception ex)
{
MensajeError("Error en R3M12", ex);
}
}
protected void btnDetalle_Click(object sender, EventArgs e) //M13
{
try
{
mostrarDetalleFinanciamiento(2);
}
catch (Exception ex)
{
MensajeError("Error en R3M13", ex);
}
}
protected void btnGuardar_Click(object sender, EventArgs e) //M14
{
try
{
if (GuardarEndeudamiento())
{
MensajeInformativo("El registro fue almacenado");
mostrarFilaTabla(1);
}
else
{
MensajeError("El registro no fue almacenado, verifique", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M14", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
protected void btnModificar_Click(object sender, EventArgs e) //M15
{
try
{
if (modificarEndeudameinto())
{
MensajeInformativo("El registro fue modificado");
mostrarFilaTabla(1);
}
else
{
MensajeError("El registro no fue modificado, verifique", null);
}
}
catch (Exception ex)
{
MensajeError("Error en R3M14", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
#endregion
#region Metodos Personalizados (R4)
private void ComandosxMenu() //M0
{
try
{
DataSet dsComandos = getComandos();
if (dsComandos != null)
{
foreach (DataRow drTemp in dsComandos.Tables[0].Rows)
{
switch (drTemp["NOMBRECOMANDO"].ToString().ToUpper())
{
case "NUEVO":
btnNuevoEndeudamiento.Visible = true;
break;
case "MODIFICA":
ViewState["PUEDEMODIFICAR"] = true;
btnGuardarInversion.Visible = true;
break;
case "ELIMINAR":
btnEliminarInversion.Visible = true;
btnEliminarEndeudamiento.Visible = true;
break;
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R4M0", ex);
}
}
private void iniciarTablaObjetivos() //M1
{
DataTable dt = new DataTable(); //tabla local
//Se crean los campos en el datatable
DataColumn dcPK = dt.Columns.Add("PKOBJETIVOESPECIFICO", typeof(Int32));
DataColumn dcNumero = dt.Columns.Add("NUMEROOBJETIVOESPECIFICO", typeof(string));
DataColumn dcDesc = dt.Columns.Add("DESCRIPCIONOBJETIVOESPECIFICO", typeof(string));
ViewState["OBJETIVOS"] = dt;
}
public static void ddlListaDatos(DataSet p_dsDatos, DropDownList p_ddlListado, string p_strSeleccion) //M2
{
try
{
p_ddlListado.DataSource = p_dsDatos;
p_ddlListado.DataTextField = p_dsDatos.Tables[0].Columns[2].ColumnName;
p_ddlListado.DataValueField = p_dsDatos.Tables[0].Columns[0].ColumnName;
p_ddlListado.DataBind();
p_ddlListado.Items.Insert(0, new ListItem(p_strSeleccion, "-1"));
}
catch (Exception ex)
{
throw ex;
}
}
private void construirgrvRecursos() //M3
{
try
{
grvRecursosTemp = (GridView)divDatosInferiores.FindControl("grvRecursos");
}
catch (Exception ex)
{
MensajeError("Error en R4M3", ex);
}
}
private void construirgrvEndeudamiento() //M4
{
try
{
grvEndeudamientoTemp = (GridView)divDatosInferiores.FindControl("grvEndeudamiento");
GridViewBoundField bdfPkEndeudamiento = new GridViewBoundField("PKENDEUDAMIENTO", "PK", false, false, false);
GridViewBoundField bdfFuenteFinanciamiento = new GridViewBoundField("NOMBREFUENTEFINANCIAMIENTO", "FUENTE", false, false, true);
GridViewBoundField bdfMonto = new GridViewBoundField("MONTOENDEUDAMIENTO", "MONTO", false, false, true);
GridViewBoundField bdfPeriodoGracia = new GridViewBoundField("PERIODOGRACIAENDEUDAMIENTO", "PERIODO GRACIA", false, false, true);
GridViewBoundField bdfPlazo = new GridViewBoundField("PLAZOENDEUDAMIENTO", "PLAZO", false, false, true);
GridViewBoundField bdfDesembolsoInicio = new GridViewBoundField("DESEMBOLSOINICIOENDEUDAMIENTO", "DESEMBOLSO INICIAL", false, false, true);
GridViewBoundField bdfDesembolsoFin = new GridViewBoundField("DESEMBOLSOFINENDEUDAMIENTO", "DESEMBOLSO FINAL", false, false, true);
GridViewBoundField bdfTipoCambio = new GridViewBoundField("TIPOCAMBIOCONTRATOENDEUDAMIENTO", "TIPO CAMBIO", false, false, true);
GridViewBoundField bdfFechaContrato = new GridViewBoundField("FECHACONTRATOENDEUDAMIENTO", "FECHA DE CONTRATO", false, true, true);
GridViewBoundField bdfSituacionActual = new GridViewBoundField("SITUACIONACTUALENDEUDAMIENTO", "SITUACION ACTUAL", false, false, true);
GridViewBoundField bdfTasa = new GridViewBoundField("TASAENDEUDAMIENTO", "TASA INTERES", false, false, true);
grvEndeudamientoTemp.Columns.Add(bdfPkEndeudamiento);
grvEndeudamientoTemp.Columns.Add(bdfFuenteFinanciamiento);
grvEndeudamientoTemp.Columns.Add(bdfMonto);
grvEndeudamientoTemp.Columns.Add(bdfPeriodoGracia);
grvEndeudamientoTemp.Columns.Add(bdfPlazo);
grvEndeudamientoTemp.Columns.Add(bdfDesembolsoInicio);
grvEndeudamientoTemp.Columns.Add(bdfDesembolsoFin);
grvEndeudamientoTemp.Columns.Add(bdfTipoCambio);
grvEndeudamientoTemp.Columns.Add(bdfFechaContrato);
grvEndeudamientoTemp.Columns.Add(bdfSituacionActual);
grvEndeudamientoTemp.Columns.Add(bdfTasa);
bdfMonto.DataFormatString = "{0:N2}";
bdfTipoCambio.DataFormatString = "{0:N2}";
grvEndeudamientoTemp.Columns[0].ItemStyle.Width = 15;
grvEndeudamientoTemp.Columns[1].ItemStyle.Width = 25;
grvEndeudamientoTemp.Columns[3].ItemStyle.Width = 300;
grvEndeudamientoTemp.Columns[4].ItemStyle.Width = 110;
grvEndeudamientoTemp.Columns[5].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[6].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[7].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[8].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[9].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[10].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[11].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[12].ItemStyle.Width = 50;
grvEndeudamientoTemp.Columns[4].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
grvEndeudamientoTemp.Columns[5].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[6].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[7].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[8].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[9].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[10].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[11].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
grvEndeudamientoTemp.Columns[12].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}
catch (Exception ex)
{
MensajeError("Error en R4M4", ex);
}
}
public static void detalleGRVDatos(DataSet p_dsDatos, GridView p_grvGridView) //M5
{
try
{
p_grvGridView.ShowHeader = true;
p_grvGridView.DataSource = p_dsDatos;
p_grvGridView.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
private void mostrarFilaTabla(int p_intFila) //M6
{
try
{
divListado.Visible = false;
divDatos.Visible = false;
switch (p_intFila)
{
case 1:
llenarGRVEndeudamiento();
divListado.Visible = true;
ViewState["MODO"] = "Nuevo";
break;
case 2:
divDatos.Visible = true;
ViewState["MODO"] = "Modifica";
break;
}
}
catch (Exception ex)
{
MensajeError("Error en R4M6", ex);
}
}
private bool financiamientoDuplicado() //M7
{
bool blnDuplicado = true;
try
{
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
DataSet dsFinancimiento = objFinanciamientoBL.getFinanciamiento();
if (dsFinancimiento.Tables.Count == 0)
blnDuplicado = false;
}
catch(Exception ex)
{
MensajeError("Error en R4M7", ex);
}
return blnDuplicado;
}
private bool EndeudamientoDuplicado() //M8
{
bool blnDuplicado = true;
try
{
objEndeudamientoBL.objEndeudamientoEL.PK = 0;
objEndeudamientoBL.objEndeudamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
DataSet dsEndeudamiento = objEndeudamientoBL.getEndeudamiento();
if (dsEndeudamiento.Tables[0].Rows.Count == 0)
blnDuplicado = false;
}
catch (Exception ex)
{
MensajeError("Error en R4M8", ex);
}
return blnDuplicado;
}
private void construirgrvDetalle() //M9
{
try
{
grvDetalleTemp = (GridView)divDatosInferiores.FindControl("grvDetalle");
GridViewBoundField bdfPkFinanciamiento = new GridViewBoundField("PKFINANCIAMIENTO", "PK", false, false, false);
GridViewBoundField bdfTipoFinanciamiento = new GridViewBoundField("TIPOFINANCIAMIENTO", "TIPO FINANCIAMIENTO", true, false, true);
GridViewBoundField bdfTipoRecurso = new GridViewBoundField("TIPORECURSOFINANCIAMIENTO", "TIPO RECURSO", true, false, true);
GridViewBoundField bdfPkRecurso = new GridViewBoundField("PKRECURSO", "PK", true, true, false);
GridViewBoundField bdfRecurso = new GridViewBoundField("NOMBRERECURSO", "RECURSO", true, true, true);
GridViewBoundField bdfAnio = new GridViewBoundField("ANIOFINANCIAMIENTO", "AÑO", true, false, true);
GridViewBoundField bdfMonto = new GridViewBoundField("MONTOFINANCIAMIENTO", "MONTO", true, false, true);
GridViewBoundField bdfFkProyecto = new GridViewBoundField("FKPROYECTO", "PROYECTO", true, false, false);
grvDetalleTemp.Columns.Add(bdfPkFinanciamiento);
grvDetalleTemp.Columns.Add(bdfTipoFinanciamiento);
grvDetalleTemp.Columns.Add(bdfTipoRecurso);
grvDetalleTemp.Columns.Add(bdfPkRecurso);
grvDetalleTemp.Columns.Add(bdfRecurso);
grvDetalleTemp.Columns.Add(bdfAnio);
grvDetalleTemp.Columns.Add(bdfMonto);
grvDetalleTemp.Columns.Add(bdfFkProyecto);
grvDetalleTemp.Columns[0].ItemStyle.Width = 25;
grvDetalleTemp.Columns[1].ItemStyle.Width = 25;
grvDetalleTemp.Columns[7].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bdfMonto.DataFormatString = "{0:N2}";
}
catch (Exception ex)
{
MensajeError("Error en R4M9", ex);
}
}
private void mostrarDetalleFinanciamiento(int p_intFila) //M10
{
try
{
divTabulado.Visible = false;
divDetalle.Visible = false;
switch (p_intFila)
{
case 1:
divTabulado.Visible = true;
ViewState["MODO"] = "Nuevo";
break;
case 2:
divDetalle.Visible = true;
ViewState["MODO"] = "Modifica";
break;
}
}
catch (Exception ex)
{
MensajeError("Error en R4M10", ex);
}
}
private void limpiarInversion() //M11
{
llenarDDLTipoFuente();
llenarDDLTipoRecurso();
llenarDDLRecurso();
llenarDDLAnio();
txtMonto.Text = string.Empty;
}
private void limpiarEndeudamiento() //M12
{
llenarDDLTipoFuente();
llenarDDLFuenteFinanciamiento();
txtMontoDeuda.Text = string.Empty;
txtTasa.Text = string.Empty;
txtPeriodoGracia.Text = string.Empty;
txtPlazo.Text = string.Empty;
llenarDDLDesembolsoI();
llenarDDLDesembolsoF();
txtTipoCambio.Text = string.Empty;
txtFechaContrato.Text = string.Empty;
txtSituacionContrato.Text = string.Empty;
}
#endregion
#region Metodos Controles a Datos (R5)
///
/// guarda y modifica registros en la tabla.
///
///
private bool GuardarInversion() //M0
{
bool blnEjecutado = false;
try
{
string strModo = ViewState["MODO"].ToString();
//Valida que los campos están llenos
if (ddlAnio.SelectedItem.Text != string.Empty && txtMonto.Text != string.Empty && ddlTipoFinanciamiento.SelectedItem.Text != string.Empty && ddlTipoRecurso.SelectedItem.Text != string.Empty)
{
objFinanciamientoBL = new FinanciamientoBL();
objFinanciamientoBL.objFinanciamientoEL.Anio = Int32.Parse(ddlAnio.SelectedItem.Text);
objFinanciamientoBL.objFinanciamientoEL.Monto = decimal.Parse(txtMonto.Text);
//Guarda el tipo de financiamiento
if (ddlTipoFinanciamiento.SelectedValue == "1")
objFinanciamientoBL.objFinanciamientoEL.TipoFinanciamiento = "PI"; //PreInversión
else
objFinanciamientoBL.objFinanciamientoEL.TipoFinanciamiento = "EI"; //Ejecución e Inversión
//Guarda el tipo de recurso
if (ddlTipoRecurso.SelectedValue == "1")
objFinanciamientoBL.objFinanciamientoEL.TipoRecurso = "RI"; //Recurso Interno
else
objFinanciamientoBL.objFinanciamientoEL.TipoRecurso = "RE"; //Recurso Externo
objFinanciamientoBL.objFinanciamientoEL.Recurso = Int32.Parse(ddlRecurso.SelectedValue);
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
if (strModo == "Nuevo")
{
int intFinancimiento = objFinanciamientoBL.insertarFinanciamiento();
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.IngresarRegistro + ": Año: " + ddlAnio.SelectedItem.Text + ", Monto: " + txtMonto.Text + ", Tipo Recurso: " + ddlTipoRecurso.SelectedItem.Text +
", Recurso: " + ddlRecurso.SelectedItem.Text + ", Proyecto: " + ddlProyecto.SelectedItem.Text,
"frwFinanciamiento.aspx");
MensajeInformativo("El registro fue almacenado");
}
else if (strModo == "Modifica" && bool.Parse(ViewState["PUEDEMODIFICAR"].ToString()) == true)
{
objFinanciamientoBL.objFinanciamientoEL.PK = Int32.Parse(ViewState["PkFinanciamiento"].ToString());
if (objFinanciamientoBL.actualizarFinanciamiento())
{
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.UPDATE.ToString(),
MensajesBitacora.ModificarRegistro + ": Se actualiza el registro: " + "Año: " + ddlAnio.SelectedItem.Text + ", Monto: " + txtMonto.Text + ", Tipo Recurso: " + ddlTipoRecurso.SelectedItem.Text +
", Recurso: " + ddlRecurso.SelectedItem.Text + ", Proyecto: " + ddlProyecto.SelectedItem.Text,
"frwFinancimiento.aspx");
llenarGRVDetalle();
MensajeInformativo("El registro fue actualizado");
}
}
llenarGRVRecursos();
blnEjecutado = true;
}
else
{
MensajeAdvertencia("Debe suminitrar toda la información");
}
}
catch (Exception ex)
{
blnEjecutado = false;
throw ex;
General.ReportarError(ex, Session["LOGIN"].ToString());
}
return blnEjecutado;
}
private void eliminarInversion(int p_intPKFinanciamiento) //M1
{
try
{
objFinanciamientoBL = new FinanciamientoBL();
objFinanciamientoBL.objFinanciamientoEL.PK = p_intPKFinanciamiento;
objFinanciamientoBL.objFinanciamientoEL.ASTATE = false;
objFinanciamientoBL.actualizaEstadoFinanciamiento();
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.IngresarRegistro + ": Se ha borrado el registro con la PK: " + ": " + p_intPKFinanciamiento + " del Proyecto: " + ddlProyecto.SelectedItem.Text,
"frwFinancimiento.aspx");
}
catch (Exception ex)
{
MensajeError("Error en R5M1", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
private bool GuardarEndeudamiento() //M2
{
bool blnEjecutado = false;
try
{
if (txtMontoDeuda.Text != string.Empty && txtPeriodoGracia.Text != string.Empty && txtPlazo.Text != string.Empty && ddlDesembolInicio.SelectedItem.Text != "Desembolso Inicial" &&
ddlDesembolFinal.SelectedItem.Text != "Desembolso Final" && txtTipoCambio.Text != string.Empty && txtFechaContrato.Text != string.Empty && txtSituacionContrato.Text != string.Empty &&
txtTasa.Text != string.Empty && ddlFuenteFinanciamiento.SelectedItem.Text != "Fuente de Financiamiento" && ddlTipoFuente.SelectedItem.Text != "Tipo de Fuente")
{
objEndeudamientoBL = new EndeudamientoBL();
objEndeudamientoBL.objEndeudamientoEL.Monto = Decimal.Parse(txtMontoDeuda.Text);
objEndeudamientoBL.objEndeudamientoEL.PeriodoGracia = txtPeriodoGracia.Text;
objEndeudamientoBL.objEndeudamientoEL.Plazo = txtPlazo.Text;
objEndeudamientoBL.objEndeudamientoEL.DesembolsoInicio = Int32.Parse(ddlDesembolInicio.SelectedItem.Text);
objEndeudamientoBL.objEndeudamientoEL.DesembolsoFin = Int32.Parse(ddlDesembolFinal.SelectedItem.Text);
objEndeudamientoBL.objEndeudamientoEL.TipoCambio = Decimal.Parse(txtTipoCambio.Text);
objEndeudamientoBL.objEndeudamientoEL.FechaContrato = DateTime.Parse(txtFechaContrato.Text);
objEndeudamientoBL.objEndeudamientoEL.SituacinActual = txtSituacionContrato.Text;
objEndeudamientoBL.objEndeudamientoEL.Tasa = txtTasa.Text;
objEndeudamientoBL.objEndeudamientoEL.FuenteFinanciamiento = Int32.Parse(ddlFuenteFinanciamiento.SelectedValue);
objEndeudamientoBL.objEndeudamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
if (objEndeudamientoBL.insertarEndeudamiento())
{
blnEjecutado = true;
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.IngresarRegistro + ": Se ha ingresado el registro: " + "Monto: " + Decimal.Parse(txtMontoDeuda.Text).ToString("###,###,###.#0") + ", " +
"Periodo Gracia: " + txtPeriodoGracia.Text + ", Plazo: " + txtPlazo.Text + ", Desembolzo Inicial: " +
ddlDesembolInicio.SelectedItem.Text + ", Desembolso Final: " + ddlDesembolFinal.SelectedItem.Text +
", Tipo Cambio: " + Decimal.Parse(txtTipoCambio.Text).ToString("###,###,###.#0") + ", Fecha Contrato: " +
txtFechaContrato.Text + ", Situación Actual: " + txtSituacionContrato.Text + ", Tasa: " +
txtTasa.Text + ", Fuente de Financiamiento: " + ddlFuenteFinanciamiento.SelectedItem.Text +
", Proyecto: " + ddlProyecto.SelectedItem.Text, "frwFinancimiento.aspx");
}
llenarGRVEndeudamiento();
}
else
{
MensajeAdvertencia("Debe suminitrar toda la información");
}
}
catch (Exception ex)
{
MensajeError("Error en R5M2", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
return blnEjecutado;
}
private bool modificarEndeudameinto() //M3
{
bool blnEjecutado = false;
try
{
objEndeudamientoBL = new EndeudamientoBL();
objEndeudamientoBL.objEndeudamientoEL.Monto = Decimal.Parse(txtMontoDeuda.Text);
objEndeudamientoBL.objEndeudamientoEL.PeriodoGracia = txtPeriodoGracia.Text;
objEndeudamientoBL.objEndeudamientoEL.Plazo = txtPlazo.Text;
objEndeudamientoBL.objEndeudamientoEL.DesembolsoInicio = Int32.Parse(ddlDesembolInicio.SelectedItem.Text);
objEndeudamientoBL.objEndeudamientoEL.DesembolsoFin = Int32.Parse(ddlDesembolFinal.SelectedItem.Text);
objEndeudamientoBL.objEndeudamientoEL.TipoCambio = Decimal.Parse(txtTipoCambio.Text);
objEndeudamientoBL.objEndeudamientoEL.FechaContrato = DateTime.Parse(txtFechaContrato.Text);
objEndeudamientoBL.objEndeudamientoEL.SituacinActual = txtSituacionContrato.Text;
objEndeudamientoBL.objEndeudamientoEL.Tasa = txtTasa.Text;
objEndeudamientoBL.objEndeudamientoEL.FuenteFinanciamiento = Int32.Parse(ddlFuenteFinanciamiento.SelectedValue);
objEndeudamientoBL.objEndeudamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
objEndeudamientoBL.objEndeudamientoEL.PK = Int32.Parse(ViewState["PkEndeudamiento"].ToString());
if (objEndeudamientoBL.actualizarEndeudamiento())
{
blnEjecutado = true;
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.UPDATE.ToString(),
MensajesBitacora.ModificarRegistro + ": " + "Monto: " + Decimal.Parse(txtMontoDeuda.Text).ToString("###,###,###.#0") + ", Periodo Gracia: " +
txtPeriodoGracia.Text + ", Plazo: " + txtPlazo.Text + ", Desembolzo Inicial: " +
ddlDesembolInicio.SelectedItem.Text + ", Desembolso Final: " + ddlDesembolFinal.SelectedItem.Text +
", Tipo Cambio: " + Decimal.Parse(txtTipoCambio.Text).ToString("###,###,###.#0") + ", Fecha Contrato: " +
txtFechaContrato.Text + ", Situación Actual: " + txtSituacionContrato.Text +", Tasa: " +
txtTasa.Text + ", Fuente de Financiamiento: " + ddlFuenteFinanciamiento.SelectedItem.Text +
", Proyecto: " + ddlProyecto.SelectedItem.Text, "frwFinancimiento.aspx");
llenarGRVEndeudamiento();
}
}
catch (Exception ex)
{
MensajeError("Error en R5M3", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
return blnEjecutado;
}
private void eliminarEndeudamiento(int p_intPKEndeudamiento) //M4
{
try
{
objEndeudamientoBL = new EndeudamientoBL();
objEndeudamientoBL.objEndeudamientoEL.PK = p_intPKEndeudamiento;
objEndeudamientoBL.objEndeudamientoEL.ASTATE = false;
objEndeudamientoBL.actualizaEstadoEndeudamiento();
GuardarEventoBitacora(Session["LOGIN"].ToString(),
AccionBitacora.DELETE.ToString(),
MensajesBitacora.IngresarRegistro + ": Se ha borrado el registro con la PK: " + ": " + p_intPKEndeudamiento +
" del Proyecto: " + ddlProyecto.SelectedItem.Text, "frwFinancimiento.aspx");
}
catch (Exception ex)
{
MensajeError("Error en R5M4", ex);
General.ReportarError(ex, Session["LOGIN"].ToString());
}
}
#endregion
#region Metodos Datos a Controles (R6)
///
/// Muestra los datos del registro
///
///
private void mostrarDatos() //M0
{
try
{
llenarGRVRecursos();
llenarGRVEndeudamiento();
}
catch (Exception ex)
{
MensajeError("Error en R6M0", ex);
}
}
private void llenarDDLProyecto() //M1
{
try
{
//Instancia el objeto
objProyectoBL = new ProyectoBL();
objProyectoBL.objProyectoEL.PK = 0;
objProyectoBL.objProyectoEL.ASTATE = true;
objProyectoBL.objProyectoEL.CodigoAcceso = Session["CODIGOACCESO"].ToString();
//Carga la información en un dataset
DataSet dsProyecto = objProyectoBL.getProyectos();
ddlListaProyectos(dsProyecto, ddlProyecto);
ddlProyecto.Attributes["style"] = "width: 90%; max-width: 90%";
}
catch (Exception ex)
{
MensajeError("Error en R6M1", ex);
}
}
private void llenarDDLTipoRecurso() //M2
{
try
{
objRecursoBL = new RecursoBL();
string strTipoRecurso = "Tipo Recurso";
objRecursoBL.objRecursoEL.PK = 0;
objRecursoBL.objRecursoEL.Padre = -1;
objRecursoBL.objRecursoEL.ASTATE = true;
//Carga la información en un dataset
DataSet dsTipoRecurso = objRecursoBL.getRecurso();
ddlListaDatos(dsTipoRecurso, ddlTipoRecurso, strTipoRecurso);
}
catch (Exception ex)
{
MensajeError("Error en R6M2", ex);
}
}
private void llenarDDLRecurso() //M3
{
try
{
objRecursoBL = new RecursoBL();
string strRecurso = "Recurso";
objRecursoBL.objRecursoEL.PK = 0;
objRecursoBL.objRecursoEL.Padre = Int32.Parse(ddlTipoRecurso.SelectedValue);;
objRecursoBL.objRecursoEL.ASTATE = true;
//Carga la información en un dataset
DataSet dsRecurso = objRecursoBL.getRecurso();
ddlListaDatos(dsRecurso, ddlRecurso, strRecurso);
}
catch (Exception ex)
{
MensajeError("Error en R6M3", ex);
}
}
private void llenarDDLAnio() //M4
{
try
{
ddlAnio.Items.Clear();
ListItem lstAnios = new ListItem("Año");
ddlAnio.Items.Add(lstAnios);
for (int i = DateTime.Now.Year - 7; i <= DateTime.Now.Year + 7; i++)
{
lstAnios = new ListItem(i.ToString());
ddlAnio.Items.Add(lstAnios);
}
}
catch (Exception ex)
{
MensajeError("Error en R6M4", ex);
}
}
private void llenarGRVRecursos() //M5
{
string strTipoFinanciamiento = string.Empty;
string strTipoRecurso = string.Empty;
try
{
if (ddlTipoFinanciamiento.SelectedValue == "1")
strTipoFinanciamiento = "PI";
else if (ddlTipoFinanciamiento.SelectedValue == "2")
strTipoFinanciamiento = "EI";
if (ddlTipoRecurso.SelectedValue == "1")
strTipoRecurso = "RI";
else if (ddlTipoRecurso.SelectedValue == "2")
strTipoRecurso = "RE";
objFinanciamientoBL = new FinanciamientoBL();
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
objFinanciamientoBL.objFinanciamientoEL.TipoFinanciamiento = strTipoFinanciamiento;
objFinanciamientoBL.objFinanciamientoEL.TipoRecurso = strTipoRecurso;
DataSet dsRecursos = objFinanciamientoBL.getFinanciamiento();
ViewState["dsRecursos"] = dsRecursos;
if (dsRecursos.Tables.Count == 0)
dsRecursos.Tables.Add();
detalleGRVDatos(dsRecursos, grvRecursos);
if (grvRecursos.HeaderRow != null)
{
//Invisiviliza el titulo de la columna de la PK
grvRecursos.HeaderRow.Cells[0].Visible = false;
//Invisibiliza la columna de PK
for (int i = 0; i <= grvRecursos.Rows.Count - 1; ++i)
{
grvRecursos.Rows[i].Cells[0].Visible = false;
}
//Dar formato a las cifras por año
for (int i = 0; i <= grvRecursos.Rows.Count - 1; ++i)
{
for (int j = 2; j <= grvRecursos.Rows[i].Cells.Count - 1; ++j)
{
if (grvRecursos.Rows[i].Cells[j].Text != "0.00")
grvRecursos.Rows[i].Cells[j].Text = Decimal.Parse(grvRecursos.Rows[i].Cells[j].Text).ToString("###,###,###,###.#0");
grvRecursos.Rows[i].Cells[j].HorizontalAlign = HorizontalAlign.Right;
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R6M5", ex);
}
}
private void llenarGRVEndeudamiento() //M6
{
try
{
objEndeudamientoBL = new EndeudamientoBL();
objEndeudamientoBL.objEndeudamientoEL.PK = 0;
objEndeudamientoBL.objEndeudamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
DataSet dsEndeudamiento = objEndeudamientoBL.getEndeudamiento();
detalleGRVDatos(dsEndeudamiento, grvEndeudamientoTemp);
}
catch (Exception ex)
{
MensajeError("Error en R6M6", ex);
}
}
private void llenarDDLTipoFuente() //M7
{
try
{
objFuenteFinanciamientoBL = new FuenteFinanciamientoBL();
string strFuente = "Tipo Fuente";
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.Padre = -1;
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.PK = 0;
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.ASTATE = true;
//Carga la información en un dataset
DataSet dsFuente = objFuenteFinanciamientoBL.getFuenteFinanciamiento();
ddlListaDatos(dsFuente, ddlTipoFuente, strFuente);
}
catch (Exception ex)
{
MensajeError("Error en R6M7", ex);
}
}
private void llenarDDLFuenteFinanciamiento() //M8
{
try
{
objFuenteFinanciamientoBL = new FuenteFinanciamientoBL();
string strFuente = "Fuente Financiamiento";
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.Padre = Int32.Parse(ddlTipoFuente.SelectedValue);
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.PK = 0;
objFuenteFinanciamientoBL.objFuenteFinanciamientoEL.ASTATE = true;
//Carga la información en un dataset
DataSet dsFuente = objFuenteFinanciamientoBL.getFuenteFinanciamiento();
ddlListaDatos(dsFuente, ddlFuenteFinanciamiento, strFuente);
}
catch (Exception ex)
{
MensajeError("Error en R6M8", ex);
}
}
private void llenarDDLDesembolsoI() //M9
{
try
{
ddlDesembolInicio.Items.Clear();
ListItem lstAnios = new ListItem("Desembolso Inicial");
ddlDesembolInicio.Items.Add(lstAnios);
for (int i = DateTime.Now.Year - 7; i <= DateTime.Now.Year + 7; i++)
{
lstAnios = new ListItem(i.ToString());
ddlDesembolInicio.Items.Add(lstAnios);
}
}
catch (Exception ex)
{
MensajeError("Error en R6M9", ex);
}
}
private void llenarDDLDesembolsoF() //M10
{
try
{
ddlDesembolFinal.Items.Clear();
ListItem lstAnios = new ListItem("Desembolso Final");
ddlDesembolFinal.Items.Add(lstAnios);
for (int i = DateTime.Now.Year - 7; i <= DateTime.Now.Year + 7; i++)
{
lstAnios = new ListItem(i.ToString());
ddlDesembolFinal.Items.Add(lstAnios);
}
}
catch (Exception ex)
{
MensajeError("Error en R6M10", ex);
}
}
private void mostrarDatos(int p_intPkConsultar) //M11
{
try
{
objEndeudamientoBL = new EndeudamientoBL();
objEndeudamientoBL.objEndeudamientoEL.PK = p_intPkConsultar;
objEndeudamientoBL.objEndeudamientoEL.Proyecto = 0;
DataSet dsEndeudamiento = objEndeudamientoBL.getEndeudamiento();
if (dsEndeudamiento.Tables[0].Rows.Count != 0)
{
ddlTipoFuente.SelectedValue = dsEndeudamiento.Tables[0].Rows[0]["PADREFUENTEFINANCIAMIENTO"].ToString();
llenarDDLFuenteFinanciamiento();
ddlFuenteFinanciamiento.SelectedValue = dsEndeudamiento.Tables[0].Rows[0]["FKFUENTEFINANCIAMIENTO"].ToString();
txtMontoDeuda.Text = Decimal.Parse(dsEndeudamiento.Tables[0].Rows[0]["MONTOENDEUDAMIENTO"].ToString()).ToString("###,###,###,###.#0");
txtTasa.Text = dsEndeudamiento.Tables[0].Rows[0]["TASAENDEUDAMIENTO"].ToString();
txtPeriodoGracia.Text = dsEndeudamiento.Tables[0].Rows[0]["PERIODOGRACIAENDEUDAMIENTO"].ToString();
txtPlazo.Text = dsEndeudamiento.Tables[0].Rows[0]["PLAZOENDEUDAMIENTO"].ToString();
ddlDesembolInicio.SelectedItem.Text = dsEndeudamiento.Tables[0].Rows[0]["DESEMBOLSOINICIOENDEUDAMIENTO"].ToString();
ddlDesembolFinal.SelectedItem.Text = dsEndeudamiento.Tables[0].Rows[0]["DESEMBOLSOFINENDEUDAMIENTO"].ToString();
txtTipoCambio.Text = dsEndeudamiento.Tables[0].Rows[0]["TIPOCAMBIOCONTRATOENDEUDAMIENTO"].ToString();
txtFechaContrato.Text = DateTime.Parse(dsEndeudamiento.Tables[0].Rows[0]["FECHACONTRATOENDEUDAMIENTO"].ToString()).ToString("dd/MM/yyyy");
txtSituacionContrato.Text = dsEndeudamiento.Tables[0].Rows[0]["SITUACIONACTUALENDEUDAMIENTO"].ToString();
}
else
{
MensajeInformativo("No se encontró el registro solicitado");
}
}
catch (Exception ex)
{
MensajeError("Error en R6M11", ex);
}
}
private void mostrarDetalle() //M12
{
try
{
objFinanciamientoBL = new FinanciamientoBL();
objFinanciamientoBL.objFinanciamientoEL.PK = Int32.Parse(ViewState["PkFinanciamiento"].ToString());
DataSet dsFinanciamiento = objFinanciamientoBL.getDetalle();
if (dsFinanciamiento.Tables[0].Rows.Count > 0)
{
ddlTipoFinanciamiento.SelectedValue = dsFinanciamiento.Tables[0].Rows[0]["PKTIPOFINANCIAMIENTO"].ToString();
ddlTipoRecurso.SelectedValue = dsFinanciamiento.Tables[0].Rows[0]["PKTIPORECURSOFINANCIAMIENTO"].ToString();
llenarDDLRecurso();
ddlRecurso.SelectedValue = dsFinanciamiento.Tables[0].Rows[0]["PKRECURSO"].ToString();
ddlAnio.SelectedItem.Text = dsFinanciamiento.Tables[0].Rows[0]["ANIOFINANCIAMIENTO"].ToString();
txtMonto.Text = dsFinanciamiento.Tables[0].Rows[0]["MONTOFINANCIAMIENTO"].ToString();
}
}
catch (Exception ex)
{
MensajeError("Error en R6M12", ex);
}
}
private void llenarGRVDetalle() //M13
{
try
{
objFinanciamientoBL = new FinanciamientoBL();
objFinanciamientoBL.objFinanciamientoEL.PK = 0;
objFinanciamientoBL.objFinanciamientoEL.Proyecto = Int32.Parse(ddlProyecto.SelectedValue);
DataSet dsDetalle = objFinanciamientoBL.getDetalle();
detalleGRVDatos(dsDetalle, grvDetalle);
}
catch (Exception ex)
{
MensajeError("Error en R6M13", ex);
}
}
protected void grvRecursos_Sorting(object sender, GridViewSortEventArgs e) //M14
{
//Retrieve the table from the session object.
DataSet dsRecursos = ViewState["dsRecursos"] as DataSet;
DataTable dt = dsRecursos.Tables[0];
if (dt != null)
{
//Sort the data.
dt.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
grvRecursos.DataSource = dt;
grvRecursos.DataBind();
//Invisiviliza el titulo de la columna de la PK
if (grvRecursos.HeaderRow != null)
{
//Invisiviliza el titulo de la columna de la PK
grvRecursos.HeaderRow.Cells[0].Visible = false;
//Invisibiliza la columna de PK
for (int i = 0; i <= grvRecursos.Rows.Count - 1; ++i)
{
grvRecursos.Rows[i].Cells[0].Visible = false;
}
//Dar formato a las cifras por año
for (int i = 0; i <= grvRecursos.Rows.Count - 1; ++i)
{
for (int j = 3; j <= grvRecursos.Rows[i].Cells.Count - 1; ++j)
{
if (grvRecursos.Rows[i].Cells[j].Text != "0.00")
grvRecursos.Rows[i].Cells[j].Text = Decimal.Parse(grvRecursos.Rows[i].Cells[j].Text).ToString("###,###,###,###.#0");
grvRecursos.Rows[i].Cells[j].HorizontalAlign = HorizontalAlign.Right;
}
}
}
}
}
private string GetSortDirection(string column) //M15
{
// By default, set the sort direction to ascending.
string sortDirection = "ASC";
// Retrieve the last column that was sorted.
string sortExpression = column;//ViewState["SortExpression"] as string;
if (sortExpression != null)
{
// Check if the same column is being sorted.
// Otherwise, the default value can be returned.
if (sortExpression == column)
{
string lastDirection = ViewState["SortDirection"] as string;
if ((lastDirection != null) && (lastDirection == "ASC"))
{
sortDirection = "DESC";
}
}
}
// Save new values in ViewState.
ViewState["SortDirection"] = sortDirection;
ViewState["SortExpression"] = column;
return sortDirection;
}
#endregion
}