Exemplo n.º 1
0
        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 btnCerrar_Click(object sender, EventArgs e)
        {
            int ejercicio;

            ejercicio = int.Parse(Session["EjercicioId"].ToString());


            TechoFinancieroBitacora tfBit = new TechoFinancieroBitacora();

            tfBit.EjercicioId   = ejercicio;
            tfBit.Movimiento    = 1;
            tfBit.Tipo          = EnumTipoMovimientoTechoFinanciero.CargaInicial;
            tfBit.Fecha         = DateTime.Now;
            tfBit.Oficio        = "";
            tfBit.Observaciones = "Carga Inicial del Techo Financiero Ejercicio" + ejercicio.ToString();
            uow.TechoFinancieroBitacoraBL.Insert(tfBit);


            List <TechoFinancieroUnidadPresupuestal> lista = uow.TechoFinancieroUnidadPresuestalBusinessLogic.Get(p => p.TechoFinanciero.EjercicioId == ejercicio).ToList();

            foreach (TechoFinancieroUnidadPresupuestal elemento in lista)
            {
                TechoFinancieroBitacoraMovimientos tfBitMov = new TechoFinancieroBitacoraMovimientos();

                tfBitMov.TechoFinancieroBitacoraId = tfBit.Id;
                tfBitMov.TechoFinancieroId         = elemento.TechoFinancieroId;
                tfBitMov.UnidadPresupuestalId      = elemento.UnidadPresupuestalId;
                tfBitMov.Incremento = elemento.Importe;
                tfBitMov.Decremento = 0;

                uow.TechoFinancieroBitacoraMovimientosBL.Insert(tfBitMov);

                elemento.ImporteInicial = elemento.Importe;
                uow.TechoFinancieroUnidadPresuestalBusinessLogic.Update(elemento);
            }



            TechoFinancieroStatus obj = uow.TechoFinancieroStatusBusinessLogic.Get(p => p.EjercicioId == ejercicio).First();

            obj.Status = 2;
            uow.TechoFinancieroStatusBusinessLogic.Update(obj);


            uow.SaveChanges();

            //if (uow.Errors.Count > 0)
            //    uow = new UnitOfWork();



            Response.Redirect("wfTechoFinanciero.aspx");
        }