protected void Page_Load(object sender, EventArgs e) { uow = new UnitOfWork(Session["IdUser"].ToString()); unidadpresupuestalId = Utilerias.StrToInt(Session["UnidadPresupuestalId"].ToString()); ejercicioId = Utilerias.StrToInt(Session["EjercicioId"].ToString()); TechoFinancieroStatus tfestatus = uow.TechoFinancieroStatusBusinessLogic.Get(tfe => tfe.EjercicioId == ejercicioId).FirstOrDefault(); TechoFinancieroUnidadPresupuestal tfunidadpresupuestal = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(tfup => tfup.TechoFinanciero.EjercicioId == ejercicioId && tfup.UnidadPresupuestalId == unidadpresupuestalId).FirstOrDefault(); DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault(); totalobrasanteproyecto = String.Format("Total de obras y acciones en anteproyecto: {0} ", (poa == null) ? 0 : poa.GetTotalObrasAnteProyecto()); totalobrasproyecto = String.Format("Total de obras y acciones con financiamiento: {0} ", (poa == null)?0:poa.GetTotalObrasProyecto()); if (tfunidadpresupuestal != null) { totalTechofinanciero = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(tfup => tfup.TechoFinanciero.EjercicioId == ejercicioId && tfup.UnidadPresupuestalId == unidadpresupuestalId).Sum(r => r.GetImporteDisponible()); } if (tfestatus == null || tfestatus.Status == 1) { lblMensajeError.Text = "Aún no se ha cerrado la apertura de Techos financieros para este ejercicio."; divTechoFinancieroError.Style.Add("display", "block"); divTechoFinancieroEstatus.Style.Add("display", "none"); techofinancierocerrado = false; } else if (tfunidadpresupuestal == null) { lblMensajeError.Text = "Esta unidad presupuestal NO cuenta con techo financiero para este ejercicio"; divTechoFinancieroError.Style.Add("display", "block"); divTechoFinancieroEstatus.Style.Add("display", "none"); techofinancierocerrado = false; } else if (totalTechofinanciero == 0) { divTechoFinancieroError.Style.Add("display", "none"); divTechoFinancieroEstatus.Style.Add("display", "block"); techofinancierocerrado = false; } else { divTechoFinancieroError.Style.Add("display", "none"); divTechoFinancieroEstatus.Style.Add("display", "block"); techofinancierocerrado = true; } if (!IsPostBack) { UnidadPresupuestal up = uow.UnidadPresupuestalBusinessLogic.GetByID(unidadpresupuestalId); lblTitulo.Text = String.Format("{0} <br /> Asignar financiamiento de POA para el ejercicio {1}", up.Nombre, uow.EjercicioBusinessLogic.GetByID(ejercicioId).Año); BindGrid(); } }
protected void GridViewTechoFinanciero_RowDataBound(object sender, GridViewRowEventArgs e) { GridView gridView = sender as GridView; if (e.Row.RowType == DataControlRowType.DataRow) { HtmlButton btn = (HtmlButton)e.Row.FindControl("btnlineamientos"); if (btn != null) { if (gridView.DataKeys[e.Row.RowIndex].Values["Id"] != null) { TechoFinancieroUnidadPresupuestal tfup = (TechoFinancieroUnidadPresupuestal)e.Row.DataItem; String fondoId = String.Empty; fondoId = gridView.DataKeys[e.Row.RowIndex].Values["Id"].ToString(); btn.Attributes.Add("onclick", "fnc_MostrarLineamientos(this,'" + tfup.TechoFinanciero.Financiamiento.FondoId + "');"); } } } }
protected void imgBtnEdit_Click(object sender, ImageClickEventArgs e) { GridViewRow row = (GridViewRow)((ImageButton)sender).NamingContainer; _idUP.Text = grid.DataKeys[row.RowIndex].Values["Id"].ToString(); int id = int.Parse(_idUP.Text); //TechoFinancieroUnidadPresupuestal tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.GetByID(id); TechoFinancieroUnidadPresupuestal tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.UnidadPresupuestalId == id).First(); txtOficioA.Value = tfup.NumOficioAsignacionPresupuestal; txtOficioB.Value = tfup.NumOficioAlcance; txtObservaciones.Value = tfup.ObservacionesAlcance; dtpFechaA.Value = tfup.FechaOficioAsignacionPresupuestal.ToString(); dtpFechaB.Value = tfup.FechaOficioAlcance.ToString(); divEdicion.Style.Add("display", "block"); divUPS.Style.Add("display", "none"); }
protected void btnAdd_Click(object sender, EventArgs e) { if (_StatusEjercicio.Text == "2") { return; } TechoFinanciero techoFin; TechoFinancieroUnidadPresupuestal obj; List <TechoFinancieroUnidadPresupuestal> listaTFUP; int idUnidadPresupuestal = int.Parse(ddlUP.SelectedValue); int auxId = 0; decimal sumaImportes = 0; techoFin = uow.TechoFinancieroBusinessLogic.GetByID(idTechoFinanciero); listaTFUP = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == idTechoFinanciero && p.UnidadPresupuestalId == idUnidadPresupuestal).ToList(); uow.Errors.Clear(); if (listaTFUP.Count == 0) { sumaImportes = techoFin.detalleUnidadesPresupuestales.Sum(p => p.Importe); sumaImportes = sumaImportes + decimal.Parse(txtImporte.Value); if (sumaImportes > techoFin.Importe) { uow.Errors.Add("Este importe no puede registrarse porque sobregiraria el techo financiero de este Fondo"); } else { obj = new TechoFinancieroUnidadPresupuestal(); obj.TechoFinancieroId = idTechoFinanciero; obj.UnidadPresupuestalId = idUnidadPresupuestal; obj.Importe = decimal.Parse(txtImporte.Value); obj.ImporteInicial = decimal.Parse(txtImporte.Value); uow.TechoFinancieroUnidadPresuestalBusinessLogic.Insert(obj); } } else { foreach (TechoFinancieroUnidadPresupuestal elemento in listaTFUP) { auxId = elemento.Id; } sumaImportes = techoFin.detalleUnidadesPresupuestales.Where(p => p.TechoFinancieroId == idTechoFinanciero && p.Id != auxId).Sum(p => p.Importe); sumaImportes = sumaImportes + decimal.Parse(txtImporte.Value); if (sumaImportes > techoFin.Importe) { uow.Errors.Add("Este importe no puede registrarse porque sobregiraria el techo financiero de este Fondo"); } else { obj = uow.TechoFinancieroUnidadPresuestalBusinessLogic.GetByID(auxId); obj.Importe = decimal.Parse(txtImporte.Value); obj.ImporteInicial = decimal.Parse(txtImporte.Value); uow.TechoFinancieroUnidadPresuestalBusinessLogic.Update(obj); } } divMsgSuccess.Style.Add("display", "none"); divMsgFail.Style.Add("display", "none"); if (uow.Errors.Count == 0) { uow.SaveChanges(); } if (uow.Errors.Count != 0) { divMsgFail.Style.Add("display", "block"); string mensaje; mensaje = string.Empty; foreach (string cad in uow.Errors) { mensaje = mensaje + cad + "<br>"; } lblMensajeFail.Text = mensaje; } BindGrid(); txtImporte.Value = string.Empty; }
protected void btnGuardar_Click(object sender, EventArgs e) { string msg = String.Empty; poadetalleId = Utilerias.StrToInt(Request.QueryString["poadetalleId"].ToString()); POADetalle poadetalle = uow.POADetalleBusinessLogic.GetByID(poadetalleId); Obra obra = uow.ObraBusinessLogic.Get(o => o.POADetalleId == poadetalleId).FirstOrDefault(); if (obra == null) { obra = new Obra(); obra.Numero = poadetalle.Numero; obra.Descripcion = poadetalle.Descripcion; obra.MunicipioId = poadetalle.MunicipioId; obra.Localidad = poadetalle.Localidad; obra.CriterioPriorizacionId = poadetalle.CriterioPriorizacionId; obra.Convenio = poadetalle.Convenio; obra.AperturaProgramaticaId = poadetalle.AperturaProgramaticaId; obra.AperturaProgramaticaMetaId = poadetalle.AperturaProgramaticaMetaId; obra.AperturaProgramaticaUnidadId = poadetalle.AperturaProgramaticaUnidadId; obra.NumeroBeneficiarios = poadetalle.NumeroBeneficiarios; obra.CantidadUnidades = poadetalle.CantidadUnidades; obra.Empleos = poadetalle.Empleos; obra.Jornales = poadetalle.Jornales; obra.SituacionObraId = poadetalle.SituacionObraId; obra.NumeroAnterior = poadetalle.NumeroAnterior; obra.ImporteLiberadoEjerciciosAnteriores = poadetalle.ImporteLiberadoEjerciciosAnteriores; obra.FuncionalidadId = poadetalle.FuncionalidadId; obra.EjeId = poadetalle.EjeId; obra.PlanSectorialId = poadetalle.PlanSectorialId; obra.ModalidadId = poadetalle.ModalidadId; obra.ProgramaId = poadetalle.ProgramaId; obra.GrupoBeneficiarioId = poadetalle.GrupoBeneficiarioId; obra.ModalidadObra = poadetalle.ModalidadObra; obra.Observaciones = poadetalle.Observaciones; obra.POAId = poadetalle.POAId; obra.POADetalleId = poadetalle.Id; uow.ObraBusinessLogic.Insert(obra); } //Superamos el techo financiero? int tfupId = Utilerias.StrToInt(ddlTechoFinancieroUnidadPresupuestal.SelectedValue); TechoFinancieroUnidadPresupuestal tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.GetByID(tfupId); if (ViewState["accion"].Equals("N")) { var ofinanciamiento = uow.ObraFinanciamientoBusinessLogic.Get(of => of.ObraId == obra.Id & of.TechoFinancieroUnidadPresupuestalId == tfupId).FirstOrDefault(); if (ofinanciamiento != null) { uow.Errors.Add("El importe para este fondo ya fue asignado, intente modificarlo"); } else if (tfup.GetImporteAsignado() + Convert.ToDecimal(txtImporte.Text) > tfup.Importe) { uow.Errors.Add("El importe que intenta asignar más el importe asignado (" + tfup.GetImporteAsignado(currentId).ToString("C2") + "),superan el techo financiero (" + tfup.Importe.ToString("c2") + ") para el fondo seleccionado."); } } else { currentId = Convert.ToInt32(ViewState["currentId"]); if (tfup.GetImporteAsignado(currentId) + Convert.ToDecimal(txtImporte.Text) > tfup.Importe) { uow.Errors.Add("El importe que intenta asignar más el importe asignado (" + tfup.GetImporteAsignado(currentId).ToString("C2") + "),superan el techo financiero (" + tfup.Importe.ToString("c2") + ") para el fondo seleccionado."); } } if (uow.Errors.Count > 0) { divMsg.Style.Add("display", "block"); msg = string.Empty; foreach (string cad in uow.Errors) { msg += cad; } lblMensajes.Text = msg; return; } ObraFinanciamiento obrafinanciamiento; if (ViewState["accion"].Equals("N")) { obrafinanciamiento = new ObraFinanciamiento(); obrafinanciamiento.TechoFinancieroUnidadPresupuestalId = Utilerias.StrToInt(ddlTechoFinancieroUnidadPresupuestal.SelectedValue); obrafinanciamiento.Importe = Convert.ToDecimal(txtImporte.Text); obra.DetalleFinanciamientos.Add(obrafinanciamiento); } else { currentId = Convert.ToInt32(ViewState["currentId"]); obrafinanciamiento = uow.ObraFinanciamientoBusinessLogic.GetByID(currentId); obrafinanciamiento.TechoFinancieroUnidadPresupuestalId = Utilerias.StrToInt(ddlTechoFinancieroUnidadPresupuestal.SelectedValue); obrafinanciamiento.Importe = Convert.ToDecimal(txtImporte.Text); } uow.SaveChanges(); if (uow.Errors.Count == 0) { divBtnNuevo.Style.Add("display", "block"); divMsg.Style.Add("display", "none"); BindearDropDownList(); BindGrid(); //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script01", "fnc_OcultarPanelEditar();", false); //Forzar un postback para actualizar gridview de financiamientos de la obra Response.Redirect(Request.Url.ToString()); } else { divMsg.Style.Add("display", "block"); msg = string.Empty; foreach (string cad in uow.Errors) { msg += cad; } lblMensajes.Text = msg; } }
protected void btnGuardar_Click(object sender, EventArgs e) { Financiamiento fin; List <Financiamiento> listaFinanciamientos; List <TechoFinanciero> listaTechosFin; int fondo = int.Parse(ddlFondo.SelectedValue); int modalidad = int.Parse(ddlModalidad.SelectedValue); int año = int.Parse(ddlAño.SelectedValue); int idFinanciamiento = 0; int idEjercicio = int.Parse(Session["EjercicioId"].ToString()); int usuario = int.Parse(Session["IdUser"].ToString()); listaFinanciamientos = uow.FinanciamientoBusinessLogic.Get(p => p.FondoId == fondo && p.ModalidadFinanciamientoId == modalidad && p.AñoId == año).ToList(); //buscamos el financiamiento seleccionado y si no existe lo creamos if (listaFinanciamientos.Count == 0) { fin = new Financiamiento(); fin.FondoId = fondo; fin.ModalidadFinanciamientoId = modalidad; fin.AñoId = año; uow.FinanciamientoBusinessLogic.Insert(fin); uow.SaveChanges(); idFinanciamiento = fin.Id; } else { foreach (Financiamiento aux in listaFinanciamientos) { idFinanciamiento = aux.Id; } } uow.Errors.Clear(); if (txtOficio.Value.Trim() == string.Empty) { uow.Errors.Add("No ha capturado el número de oficio correspondiente a este registro"); } if (txtObservaciones.Value.Trim() == string.Empty) { uow.Errors.Add("No ha capturado las observaciones correspondientes"); } listaTechosFin = uow.TechoFinancieroBusinessLogic.Get(p => p.EjercicioId == idEjercicio && p.FinanciamientoId == idFinanciamiento).ToList(); if (listaTechosFin.Count == 0)//Nuevo Techo Financiero { List <TechoFinancieroTMPtransferencias> listaTMP = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario).ToList(); //insertar el techo financiero TechoFinanciero obj = new TechoFinanciero(); obj.EjercicioId = idEjercicio; obj.FinanciamientoId = idFinanciamiento; obj.Importe = listaTMP.Sum(q => q.Importe); uow.TechoFinancieroBusinessLogic.Insert(obj); //insertar la bitacora TechoFinancieroBitacora bitacora = new TechoFinancieroBitacora(); bitacora.EjercicioId = idEjercicio; bitacora.Movimiento = 3; bitacora.Tipo = EnumTipoMovimientoTechoFinanciero.NuevoFondo; bitacora.Fecha = DateTime.Now; bitacora.Oficio = txtOficio.Value; bitacora.Observaciones = txtObservaciones.Value; uow.TechoFinancieroBitacoraBL.Insert(bitacora); int i = 0; foreach (TechoFinancieroTMPtransferencias item in listaTMP) { i++; TechoFinancieroUnidadPresupuestal tfup = new TechoFinancieroUnidadPresupuestal(); tfup.UnidadPresupuestalId = item.OrigenId; tfup.Importe = item.Importe; obj.detalleUnidadesPresupuestales.Add(tfup); TechoFinancieroBitacoraMovimientos bitacoraMovimientos = new TechoFinancieroBitacoraMovimientos(); bitacoraMovimientos.TechoFinancieroBitacora = bitacora; bitacoraMovimientos.Submovimiento = i; bitacoraMovimientos.UnidadPresupuestalId = item.OrigenId; bitacoraMovimientos.Decremento = 0; bitacoraMovimientos.Incremento = item.Importe; obj.detalleBitacoraMovimientos.Add(bitacoraMovimientos); } } else { uow.Errors.Add("El financiamiento que quiere registrar ya ha sido capturado anteriormente"); } if (uow.Errors.Count == 0) { uow.SaveChanges(); } if (uow.Errors.Count == 0) { Response.Redirect("wfTechoFinanciero.aspx"); } else { divMsgSuccess.Style.Add("display", "none"); divMsgFail.Style.Add("display", "block"); string mensaje; mensaje = string.Empty; foreach (string cad in uow.Errors) { mensaje = mensaje + cad + "<br>"; } lblMensajeFail.Text = mensaje; } }
protected void btnOk_Click(object sender, EventArgs e) { int usuario = int.Parse(Session["IdUser"].ToString()); int idEjercicio = int.Parse(Session["EjercicioId"].ToString()); int financiamiento = int.Parse(_financiamiento.Text); int next = uow.TechoFinancieroBitacoraBL.Get(p => p.EjercicioId == idEjercicio).ToList().Max(q => q.Movimiento); next++; if (txtOficio.Value == string.Empty) { return; } TechoFinancieroBitacora bitacora = new TechoFinancieroBitacora(); bitacora.EjercicioId = idEjercicio; bitacora.Movimiento = next; bitacora.Tipo = EnumTipoMovimientoTechoFinanciero.Transferencia; bitacora.Fecha = DateTime.Now; bitacora.Oficio = txtOficio.Value; bitacora.Observaciones = txtObservaciones.Value; uow.TechoFinancieroBitacoraBL.Insert(bitacora); List <TechoFinancieroTMPtransferencias> lista; lista = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario).ToList(); TechoFinancieroBitacoraMovimientos bitmov; TechoFinancieroUnidadPresupuestal tfup; int i = 0; foreach (TechoFinancieroTMPtransferencias elemento in lista) { i++; //Decrementamos bitmov = new TechoFinancieroBitacoraMovimientos(); bitmov.TechoFinancieroId = financiamiento; bitmov.Submovimiento = i; bitmov.UnidadPresupuestalId = elemento.OrigenId; bitmov.Incremento = 0; bitmov.Decremento = elemento.Importe; bitacora.detalleMovimientos.Add(bitmov); tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == financiamiento && p.UnidadPresupuestalId == elemento.OrigenId).First(); tfup.Importe = tfup.Importe - elemento.Importe; uow.TechoFinancieroUnidadPresuestalBusinessLogic.Update(tfup); //incrementamos bitmov = new TechoFinancieroBitacoraMovimientos(); bitmov.TechoFinancieroId = financiamiento; bitmov.Submovimiento = i; bitmov.UnidadPresupuestalId = elemento.DestinoId; bitmov.Incremento = elemento.Importe; bitmov.Decremento = 0; bitacora.detalleMovimientos.Add(bitmov); List <TechoFinancieroUnidadPresupuestal> listaUP = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == financiamiento && p.UnidadPresupuestalId == elemento.DestinoId).ToList(); if (listaUP.Count == 0) { tfup = new TechoFinancieroUnidadPresupuestal(); tfup.TechoFinancieroId = financiamiento; tfup.UnidadPresupuestalId = elemento.DestinoId; tfup.Importe = elemento.Importe; uow.TechoFinancieroUnidadPresuestalBusinessLogic.Insert(tfup); } else { tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == financiamiento && p.UnidadPresupuestalId == elemento.DestinoId).First(); tfup.Importe = tfup.Importe + elemento.Importe; uow.TechoFinancieroUnidadPresuestalBusinessLogic.Update(tfup); } uow.SaveChanges(); } if (uow.Errors.Count == 0) { divTransferencia.Style.Add("display", "none"); divNuevo.Style.Add("display", "block"); txtOficio.Value = string.Empty; txtObservaciones.Value = string.Empty; MostrarAsignaciones(); } else { divMsgSuccess.Style.Add("display", "none"); divMsgFail.Style.Add("display", "block"); string mensaje; mensaje = string.Empty; foreach (string cad in uow.Errors) { mensaje = mensaje + cad + "<br>"; } lblMensajeFail.Text = mensaje; } }
protected void btnAdd_Click(object sender, EventArgs e) { int origen = int.Parse(ddlOrigen.SelectedValue); int destino = int.Parse(ddlDestino.SelectedValue); int usuario = int.Parse(Session["IdUser"].ToString()); int financiamiento = int.Parse(_financiamiento.Text); decimal importeDisponible; decimal importeTransferencias; decimal importe; TechoFinancieroTMPtransferencias obj = new TechoFinancieroTMPtransferencias(); uow.Errors.Clear(); if (origen == destino) { uow.Errors.Add("La unidad presupuestal ORIGEN no puede ser la misma que la unidad presupuestal DESTINO"); } List <TechoFinancieroTMPtransferencias> lista = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario && p.Financiamiento == financiamiento && p.OrigenId == origen && p.DestinoId == destino).ToList(); if (lista.Count > 0) { uow.Errors.Add("Las unidades presupuestales Origen y Destino que indico ya están registradas"); } //techo financiero disponible de la unidad presupuestal Origen TechoFinancieroUnidadPresupuestal tfup = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinancieroId == financiamiento && p.UnidadPresupuestalId == origen).First(); importeDisponible = (tfup.Importe - tfup.DetalleObraFinanciamiento.Sum(p => p.Importe)); importeTransferencias = uow.TechoFinancieroTMPtransferenciasBL.Get(p => p.Usuario == usuario && p.Financiamiento == financiamiento && p.OrigenId == origen).ToList().Sum(q => q.Importe); importe = decimal.Parse(txtImporte.Value); if (importeDisponible < (importeTransferencias + importe)) { uow.Errors.Add("El importe que desea registrar dejaría sobregiraria el disponible de la Unidad Presupuestal Origen, verifique y corrija sus datos "); } obj.Usuario = usuario; obj.Financiamiento = int.Parse(_financiamiento.Text); obj.OrigenId = origen; obj.DestinoId = destino; obj.Importe = decimal.Parse(txtImporte.Value); uow.TechoFinancieroTMPtransferenciasBL.Insert(obj); if (uow.Errors.Count == 0) { uow.SaveChanges(); } if (uow.Errors.Count == 0) { MostrarDetalleTransferencia(); txtImporte.Value = string.Empty; //divMsgSuccess.Style.Add("display", "block"); //lblMensajeSuccess.Text = "El Techo Financiero ha sido registrado correctamente"; } else { divMsgSuccess.Style.Add("display", "none"); divMsgFail.Style.Add("display", "block"); string mensaje; mensaje = string.Empty; foreach (string cad in uow.Errors) { mensaje = mensaje + cad + "<br>"; } lblMensajeFail.Text = mensaje; } }