Пример #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();
            }
        }
Пример #2
0
        // El tipo devuelto puede ser modificado a IEnumerable, sin embargo, para ser compatible con
        //paginación y ordenación // , se deben agregar los siguientes parametros:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable <DataAccessLayer.Models.Obra> GridViewObra_GetData()
        {
            unidadpresupuestalId = Utilerias.StrToInt(Session["UnidadPresupuestalId"].ToString());
            ejercicioId          = Utilerias.StrToInt(Session["EjercicioId"].ToString());

            DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();

            if (poa == null)
            {
                return(null);
            }

            return(uow.ObraBusinessLogic.Get(obra => obra.POAId == poa.Id).OrderBy(r => r.Consecutivo));
        }
Пример #3
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());

            poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();


            if (!IsPostBack)
            {
                UnidadPresupuestal up = uow.UnidadPresupuestalBusinessLogic.GetByID(unidadpresupuestalId);

                lblTituloPOA.Text = String.Format("{0} <br /> Anteproyecto de POA para el ejercicio {1}", up.Nombre, uow.EjercicioBusinessLogic.GetByID(ejercicioId).Año);
                BindearDropDownList();
            }
        }
Пример #4
0
        private void BindGrid()
        {
            unidadpresupuestalId = Utilerias.StrToInt(Session["UnidadPresupuestalId"].ToString());
            ejercicioId          = Utilerias.StrToInt(Session["EjercicioId"].ToString());

            DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();

            if (poa == null)
            {
                return;
            }

            List <Obra> obras = uow.ObraBusinessLogic.Get(ob => ob.POAId == poa.Id).ToList();

            List <int> colObrasId = new List <int>();

            foreach (var item in obras)
            {
                colObrasId.Add(item.POADetalleId);
            }

            this.GridViewPOADetalle.DataSource = uow.POADetalleBusinessLogic.Get(pd => !colObrasId.Contains(pd.Id) & pd.Extemporanea == false & pd.POAId == poa.Id, orderBy: r => r.OrderBy(ro => ro.Consecutivo)).ToList();
            this.GridViewPOADetalle.DataBind();
        }
Пример #5
0
        public static object AddRecord(RegistroObra registro)
        {

            UnitOfWork uow = new UnitOfWork(HttpContext.Current.Session["IdUser"].ToString());

            int unidadpresupuestalId = Utilerias.StrToInt(HttpContext.Current.Session["UnidadPresupuestalId"].ToString());
            int ejercicioId = Utilerias.StrToInt(HttpContext.Current.Session["EjercicioId"].ToString());
          
            DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();
            POADetalle poadetalle = null;          

            if (poa == null)
            {
                poa = new DataAccessLayer.Models.POA();
                poa.UnidadPresupuestalId = unidadpresupuestalId;
                poa.EjercicioId = ejercicioId;
            }


            Obra obra = new Obra();

            obra.Numero = registro.Numero;
            obra.Descripcion = registro.Descripcion;
            obra.MunicipioId = registro.MunicipioId;
            obra.LocalidadId = registro.LocalidadId;
            obra.CriterioPriorizacionId = registro.CriterioPriorizacionId;
            obra.Convenio = registro.Convenio;
            obra.AperturaProgramaticaId = registro.AperturaProgramaticaId;
            obra.AperturaProgramaticaUnidadId = registro.UnidadMedidaId;
            obra.CantidadUnidades = registro.CantidadUnidades;
            obra.NumeroBeneficiarios = registro.NumeroBeneficiarios;
            obra.Empleos = registro.Empleos;
            obra.Jornales = registro.Jornales;
            obra.SituacionObraId = registro.SituacionObraId;
            obra.NumeroAnterior = registro.NumeroAnterior;
            obra.ImporteLiberadoEjerciciosAnteriores = registro.ImporteLiberadoEjerciciosAnteriores;
            obra.ModalidadObra = (enumModalidadObra)registro.ModalidadEjecucionId;

            if(registro.FuncionalidadId==0)
            {
                obra.FuncionalidadId =null;
            }else
            {
                obra.FuncionalidadId =registro.FuncionalidadId;
            };

            if (registro.EjeId == 0)
            {
                obra.EjeId = null;
            }
            else
            {
                obra.EjeId = registro.EjeId;
            };

            if (registro.PlanSectorialId == 0)
            {
                obra.PlanSectorialId = null;
            }
            else
            {
                obra.PlanSectorialId = registro.PlanSectorialId;
            };

            if (registro.ModalidadPVDId == 0)
            {
                obra.ModalidadId = null;
            }
            else
            {
                obra.ModalidadId = registro.ModalidadPVDId;
            };

            if (registro.ProgramaPVDId == 0)
            {
                obra.ProgramaId = null;
            }
            else
            {
                obra.ProgramaId = registro.ProgramaPVDId;
            };

            if (registro.GrupoBeneficiarioId == 0)
            {
                obra.GrupoBeneficiarioId = null;
            }
            else
            {
                obra.GrupoBeneficiarioId = registro.GrupoBeneficiarioId;
            };
      

            //Crear un poadetalle para una nueva obra

                    poadetalle = new POADetalle();
                    poadetalle.Numero = obra.Numero;
                    poadetalle.Descripcion = obra.Descripcion;
                    poadetalle.MunicipioId = obra.MunicipioId;
                    poadetalle.LocalidadId = obra.LocalidadId;                
                    poadetalle.CriterioPriorizacionId = obra.CriterioPriorizacionId;
                    poadetalle.Convenio = obra.Convenio;
                    poadetalle.AperturaProgramaticaId = obra.AperturaProgramaticaId;
                    poadetalle.AperturaProgramaticaMetaId = obra.AperturaProgramaticaMetaId;
                    poadetalle.AperturaProgramaticaUnidadId = obra.AperturaProgramaticaUnidadId;
                    poadetalle.NumeroBeneficiarios = obra.NumeroBeneficiarios;
                    poadetalle.CantidadUnidades = obra.CantidadUnidades;
                    poadetalle.Empleos = obra.Empleos;
                    poadetalle.Jornales = obra.Jornales;

                    poadetalle.FuncionalidadId = obra.FuncionalidadId;
                    poadetalle.EjeId = obra.EjeId;
                    poadetalle.PlanSectorialId = obra.PlanSectorialId;
                    poadetalle.ModalidadId = obra.ModalidadId;
                    poadetalle.ProgramaId = obra.ProgramaId;
                    poadetalle.GrupoBeneficiarioId = obra.GrupoBeneficiarioId;


                    poadetalle.SituacionObraId = obra.SituacionObraId;
                    poadetalle.NumeroAnterior = obra.NumeroAnterior;
                    poadetalle.ImporteLiberadoEjerciciosAnteriores = obra.ImporteLiberadoEjerciciosAnteriores;
                    poadetalle.ModalidadObra = obra.ModalidadObra;               
                    poadetalle.Observaciones = obra.Observaciones;
                    poadetalle.Extemporanea = true;
                    poadetalle.POA = poa;                

                    obra.POA = poa;
                    obra.POADetalle = poadetalle;                  
                        
            
            uow.ObraBusinessLogic.Insert(obra);

            uow.SaveChanges();

            return uow.GetResult();

        }
Пример #6
0
        public static object GetListadoObras(string WhereNumero, string WhereDescripcion, string WhereMunicipio, string WhereLocalidad, string WhereUnidadPresupuestal, string WhereContratista, string WhereFondos, string WherePresupuesto)
        {
            UnitOfWork uow = new UnitOfWork();
            SqlDataReader reader =null;

            int unidadpresupuestalId = Utilerias.StrToInt(HttpContext.Current.Session["UnidadPresupuestalId"].ToString());
            int ejercicioId = Utilerias.StrToInt(HttpContext.Current.Session["EjercicioId"].ToString());

            DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();


            List<object> list = new List<object>();

            using (SqlConnection con = new SqlConnection(uow.Contexto.Database.Connection.ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("sp_MulticriterioPOAAjustado", con))
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add("@POAId", SqlDbType.Int).Value = poa.Id;
                    cmd.Parameters.Add("@WhereNumero", SqlDbType.VarChar).Value = WhereNumero;
                    cmd.Parameters.Add("@WhereDescripcion", SqlDbType.VarChar).Value = WhereDescripcion;
                    cmd.Parameters.Add("@WhereMunicipio", SqlDbType.VarChar).Value = WhereMunicipio;
                    cmd.Parameters.Add("@WhereLocalidad", SqlDbType.VarChar).Value = WhereLocalidad;
                    cmd.Parameters.Add("@WhereUnidadPresupuestal", SqlDbType.VarChar).Value = WhereUnidadPresupuestal;                    
                    cmd.Parameters.Add("@WhereContratista", SqlDbType.VarChar).Value = WhereContratista;
                    cmd.Parameters.Add("@WhereFondos", SqlDbType.VarChar).Value = WhereFondos;
                    cmd.Parameters.Add("@WherePresupuesto", SqlDbType.VarChar).Value = WherePresupuesto;
                    

                    con.Open();

                    reader = cmd.ExecuteReader();


                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {


                            int ObraId = Convert.ToInt32(reader["ObraId"]);
                            string Numero = reader["Numero"].ToString();
                            string Descripcion = reader["Descripcion"].ToString();
                            string Municipio = reader["Municipio"].ToString();
                            string Localidad = reader["Localidad"].ToString();
                            string UnidadPresupuestal = reader["UnidadPresupuestal"].ToString();
                            string SubUnidadPresupuestal = reader["SubUnidadPresupuestal"].ToString();
                            string Contratista = reader["Contratista"].ToString();
                            string Fondos = reader["Fondos"].ToString();
                            decimal Presupuesto = Convert.ToDecimal(reader["Presupuesto"]);

                            list.Add(new { ObraId = ObraId, Numero = Numero, Descripcion = Descripcion, Municipio = Municipio, Localidad = Localidad, UnidadPresupuestal = UnidadPresupuestal,SubUnidadPresupuestal=SubUnidadPresupuestal, Contratista = Contratista, Fondos = Fondos, Presupuesto = Presupuesto });

                        }
                    }
                    else
                    {
                        Console.WriteLine("No rows found.");
                    }
                    reader.Close();

                } //using command

            }//using connection

            return list;

        }
Пример #7
0
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string msg = "Se ha guardado correctamente";


            unidadpresupuestalId = Utilerias.StrToInt(Session["UnidadPresupuestalId"].ToString());
            ejercicioId          = Utilerias.StrToInt(Session["EjercicioId"].ToString());

            DataAccessLayer.Models.POA poa = uow.POABusinessLogic.Get(p => p.UnidadPresupuestalId == unidadpresupuestalId & p.EjercicioId == ejercicioId).FirstOrDefault();
            POADetalle poadetalle          = null;

            if (poa == null)
            {
                poa = new DataAccessLayer.Models.POA();
                poa.UnidadPresupuestalId = unidadpresupuestalId;
                poa.EjercicioId          = ejercicioId;
            }

            if (_Accion.Text.Equals("N"))
            {
                poadetalle = new POADetalle();
            }
            else
            {
                currentId  = Convert.ToInt32(_ID.Text);
                poadetalle = uow.POADetalleBusinessLogic.GetByID(currentId);
                msg        = "Se ha actualizado correctamente";
            }

            poadetalle.Numero      = txtNumero.Value;
            poadetalle.Descripcion = txtDescripcion.Value;
            poadetalle.MunicipioId = Utilerias.StrToInt(ddlMunicipio.SelectedValue);
            poadetalle.LocalidadId = Utilerias.StrToInt(ddlLocalidad.SelectedValue);

            poadetalle.CriterioPriorizacionId = Utilerias.StrToInt(ddlCriterioPriorizacion.SelectedValue);

            //Garantizar que se limpie correctamente el campo Nombre del Convenio

            switch (poadetalle.CriterioPriorizacionId)
            {
            case 2:

                break;

            default:

                txtNombreConvenio.Value = String.Empty;
                break;
            }


            poadetalle.Convenio = txtNombreConvenio.Value;

            poadetalle.AperturaProgramaticaId       = Utilerias.StrToInt(ddlSubsubprograma.SelectedValue);
            poadetalle.AperturaProgramaticaMetaId   = null;
            poadetalle.AperturaProgramaticaUnidadId = Utilerias.StrToInt(ddlUnidadMedida.SelectedValue);


            poadetalle.NumeroBeneficiarios = Utilerias.StrToInt(txtNumeroBeneficiarios.Value.ToString().Replace(",", null));
            poadetalle.CantidadUnidades    = Utilerias.StrToInt(txtCantidadUnidades.Value.ToString().Replace(",", null));
            poadetalle.Empleos             = Utilerias.StrToInt(txtEmpleos.Value.ToString().Replace(",", null));
            poadetalle.Jornales            = Utilerias.StrToInt(txtJornales.Value.ToString().Replace(",", null));

            //Los campos relativos al Plan Veracruzano de Desarrollo, son opcionales

            poadetalle.FuncionalidadId     = null;
            poadetalle.EjeId               = null;
            poadetalle.PlanSectorialId     = null;
            poadetalle.ModalidadId         = null;
            poadetalle.ProgramaId          = null;
            poadetalle.GrupoBeneficiarioId = null;


            if (ddlSubFuncion.SelectedIndex > 0)
            {
                poadetalle.FuncionalidadId = Utilerias.StrToInt(ddlSubFuncion.SelectedValue);
            }

            if (ddlEje.SelectedIndex > 0)
            {
                poadetalle.EjeId = Utilerias.StrToInt(ddlEje.SelectedValue);
            }

            if (ddlPlanSectorial.SelectedIndex > 0)
            {
                poadetalle.PlanSectorialId = Utilerias.StrToInt(ddlPlanSectorial.SelectedValue);
            }

            if (ddlModalidadElemento.SelectedIndex > 0)
            {
                poadetalle.ModalidadId = Utilerias.StrToInt(ddlModalidadElemento.SelectedValue);
            }

            if (ddlProgramaPresupuesto.SelectedIndex > 0)
            {
                poadetalle.ProgramaId = Utilerias.StrToInt(ddlProgramaPresupuesto.SelectedValue);
            }

            if (ddlGrupoBeneficiario.SelectedIndex > 0)
            {
                poadetalle.GrupoBeneficiarioId = Utilerias.StrToInt(ddlGrupoBeneficiario.SelectedValue);
            }


            poadetalle.SituacionObraId = Utilerias.StrToInt(ddlSituacionObra.SelectedValue);

            //Garantizar que se limpien correctamente los campos Numero anterior e Importe Liberado

            switch (poadetalle.SituacionObraId)
            {
            case 3:
            case 4:

                break;

            default:

                txtNumeroAnterior.Value = String.Empty;
                txtImporteLiberadoEjerciciosAnteriores.Value = "0";
                break;
            }


            poadetalle.ModalidadObra  = (enumModalidadObra)Convert.ToInt32(ddlModalidad.SelectedValue);
            poadetalle.ImporteTotal   = Utilerias.StrToDecimal(txtImporteTotal.Value.ToString());
            poadetalle.NumeroAnterior = txtNumeroAnterior.Value;
            poadetalle.ImporteLiberadoEjerciciosAnteriores = Utilerias.StrToDecimal(txtImporteLiberadoEjerciciosAnteriores.Value.ToString());
            poadetalle.Observaciones = txtObservaciones.InnerText;
            poadetalle.Extemporanea  = false;

            if (_Accion.Text.Equals("N"))
            {
                poadetalle.POA = poa;
                uow.POADetalleBusinessLogic.Insert(poadetalle);
            }
            else
            {
                uow.POADetalleBusinessLogic.Update(poadetalle);
            }

            uow.SaveChanges();

            if (uow.Errors.Count == 0)
            {
                // Esto solo es necesario para recargar en memoria
                // los cambios que se realizan mediante un trigger
                uow = null;
                uow = new UnitOfWork();

                //Este gridview usa un enlace de Modelo, por esto No requiere
                //asignar nuevamente su propiedad Datasource
                //vease método GridViewObras_GetData
                this.GridViewObras.DataBind();


                divEdicion.Style.Add("display", "none");
                divBtnNuevo.Style.Add("display", "block");
            }
            else
            {
                divMsg.Style.Add("display", "block");

                msg = string.Empty;
                foreach (string cad in uow.Errors)
                {
                    msg += cad;
                }

                lblMensajes.Text = msg;
            }
        }