Esempio n. 1
0
        /// <summary>
        /// Leonardo Carrion
        /// 09/oct/2019
        /// Efecto: Guarda la informacion del monto y descripcion en la base de datos
        /// Requiere: monto y descripcion y dar clic al boton de "Guardar"
        /// Modifica: -
        /// Devuelve: -
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGuardarModalPartida_Click(object sender, EventArgs e)
        {
            String txtMont = txtMontoModalAgregarPartida.Text.Replace(".", ",");

            if (Double.TryParse(txtMont, out Double monto))
            {
                txtMontoModalAgregarPartida.Text = monto.ToString();
            }

            if (String.IsNullOrEmpty(txtDescripcionModalAgregarPartida.Text))
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#modalAgregarPartida", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#modalAgregarPartida').hide();", true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.error('" + "Se debe agregar una descripcion" + "');", true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "activarModalAgregarPartida();", true);
            }
            else
            {
                EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();
                estadoPresupuesto = estadoPresupuestoServicios.getEstadoPresupuestoPorNombre("Guardar");

                PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
                presupuestoEgresoPartida.estadoPresupuesto   = estadoPresupuesto;
                presupuestoEgresoPartida.descripcion         = txtDescripcionModalAgregarPartida.Text;
                presupuestoEgresoPartida.monto               = monto;
                presupuestoEgresoPartida.partida             = presupuestoEgresoPartidaSeleccionado.partida;
                presupuestoEgresoPartida.idPresupuestoEgreso = presupuestoEgresoPartidaSeleccionado.idPresupuestoEgreso;

                presupuestoEgreso_PartidaServicios.insertarPresupuestoEgreso_Partida(presupuestoEgresoPartida);

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#modalAgregarPartida", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#modalAgregarPartida').hide();", true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se guardo correctamente la información" + "');", true);

                cargarPartidas();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Leonardo Carrion
        /// 04/oct/2019
        /// Efecto: obtiene el estado segun la palabra ingresada
        /// Requiere: String de desc estado
        /// Modifica: -
        /// Devuelve: estado presupuesto
        /// </summary>
        /// <returns></returns>
        public EstadoPresupuesto getEstadoPresupuestoPorNombre(String descEstado)
        {
            SqlConnection     sqlConnection     = conexion.conexionPEP();
            EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();

            String consulta = @"select * from Estado_presupuestos where descripcion_estado_presupuesto = @descEstado;";

            SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection);

            sqlCommand.Parameters.AddWithValue("@descEstado", descEstado);

            SqlDataReader reader;

            sqlConnection.Open();
            reader = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                estadoPresupuesto.idEstadoPresupuesto = Convert.ToInt32(reader["id_estado_presupuesto"].ToString());
                estadoPresupuesto.descripcionEstado   = reader["descripcion_estado_presupuesto"].ToString();
            }

            sqlConnection.Close();

            return(estadoPresupuesto);
        }
Esempio n. 3
0
        /// <summary>
        /// Leonardo Carrion
        /// 08/oct/2019
        /// Efecto: devuelve la lista de partidas con los montos segun el presupuesto de egreso
        /// Requiere: presupuesto de egreso
        /// Modifica: -
        /// Devuelve: lista de presupuesto egreso partidas
        /// </summary>
        /// <param name="presupuestoEgreso"></param>
        /// <returns></returns>
        public List <PresupuestoEgresoPartida> getPresupuestoEgresoPartidas(PresupuestoEgreso presupuestoEgreso)
        {
            SqlConnection sqlConnection = conexion.conexionPEP();
            List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartida = new List <PresupuestoEgresoPartida>();

            SqlCommand sqlCommand = new SqlCommand(@"select PEP.*, P.descripcion_partida,P.numero_partida,EP.descripcion_estado_presupuesto 
                                                                                            from Presupuesto_Egreso_Partida PEP, Partida P,Estado_presupuestos EP
                                                                                            where PEP.id_presupuesto_egreso = @idPresupuestoEgreso and P.id_partida = PEP.id_partida and P.id_partida_padre is not null
                                                                                            and P.ano_periodo = (select ano_periodo from Proyecto where id_proyecto = (
                                                                                            select id_proyecto from Unidad where id_unidad = (select id_unidad from Presupuesto_Egreso where id_presupuesto_egreso = @idPresupuestoEgreso)
                                                                                            )) and P.disponible = 'True' and EP.id_estado_presupuesto = PEP.id_estado_presupuesto
                                                                                            union
                                                                                            select @idPresupuestoEgreso as id_presupuesto_egreso, P.id_partida, 0 as monto, '' as descripcion,(select id_estado_presupuesto from Estado_presupuestos where descripcion_estado_presupuesto='Guardar') as id_estado_presupuesto,1 as id_linea, P.descripcion_partida,P.numero_partida,'Espera' as descripcion_estado_presupuesto
                                                                                            from Partida P
                                                                                            where P.id_partida not in ( Select PEP.id_partida from Presupuesto_Egreso_Partida PEP where PEP.id_presupuesto_egreso = @idPresupuestoEgreso
                                                                                            ) and P.id_partida_padre is not null and P.ano_periodo = (select ano_periodo from Proyecto where id_proyecto = (
                                                                                            select id_proyecto from Unidad where id_unidad = (select id_unidad from Presupuesto_Egreso where id_presupuesto_egreso = @idPresupuestoEgreso)
                                                                                            )) and P.disponible = 'True'
                                                                                            order by P.numero_partida", sqlConnection);

            sqlCommand.Parameters.AddWithValue("@idPresupuestoEgreso", presupuestoEgreso.idPresupuestoEgreso);

            SqlDataReader reader;

            sqlConnection.Open();
            reader = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
                Partida           partida           = new Partida();
                EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();

                partida.idPartida          = Convert.ToInt32(reader["id_partida"].ToString());
                partida.descripcionPartida = reader["descripcion_partida"].ToString();
                partida.numeroPartida      = reader["numero_partida"].ToString();

                estadoPresupuesto.idEstadoPresupuesto = Convert.ToInt32(reader["id_estado_presupuesto"].ToString());
                estadoPresupuesto.descripcionEstado   = reader["descripcion_estado_presupuesto"].ToString();

                presupuestoEgresoPartida.partida             = partida;
                presupuestoEgresoPartida.estadoPresupuesto   = estadoPresupuesto;
                presupuestoEgresoPartida.idPresupuestoEgreso = Convert.ToInt32(reader["id_presupuesto_egreso"].ToString());
                presupuestoEgresoPartida.monto       = Convert.ToDouble(reader["monto"].ToString());
                presupuestoEgresoPartida.descripcion = reader["descripcion"].ToString();
                presupuestoEgresoPartida.idLinea     = Convert.ToInt32(reader["id_linea"].ToString());

                listaPresupuestoEgresoPartida.Add(presupuestoEgresoPartida);
            }

            sqlConnection.Close();

            return(listaPresupuestoEgresoPartida);
        }
Esempio n. 4
0
 public async Task CambioEstado(EstadoPresupuesto estado, long id)
 {
     using (var context = new DataContext())
     {
         var presupuesto = context.Presupuestos.FirstOrDefault(x => x.Id == id);
         if (presupuesto != null)
         {
             presupuesto.EstadoPresupuesto = estado;
             await _presupuestoRepositorio.Update(presupuesto);
         }
     }
 }
Esempio n. 5
0
        /// <summary>
        /// Leonardo Carrion
        /// 09/oct/2019
        /// Efecto: guarda los montos y descripciones que se ingresan
        /// Requiere: dar clic al boton de "Guardar"
        /// Modifica: habilita botones y deshabilita campos para llenar
        /// Devuelve: -
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartidas     = (List <PresupuestoEgresoPartida>)Session["listaPresupuestoEgresoPartidas"];
            List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartidasTemp = new List <PresupuestoEgresoPartida>();

            foreach (RepeaterItem item in rpPartidas.Items)
            {
                HiddenField hdIdPartida    = (HiddenField)item.FindControl("hdIdPartida");
                TextBox     txtMonto       = (TextBox)item.FindControl("txtMonto");
                TextBox     txtDescripcion = (TextBox)item.FindControl("txtDescripcion");

                foreach (Entidades.PresupuestoEgresoPartida presupuestoEgresoPartida in listaPresupuestoEgresoPartidas)
                {
                    int idPartida = Convert.ToInt32(hdIdPartida.Value);
                    if (idPartida == presupuestoEgresoPartida.partida.idPartida)
                    {
                        String txtMont = txtMonto.Text.Replace(".", ",");
                        if (Double.TryParse(txtMont, out Double monto))
                        {
                            txtMonto.Text = monto.ToString();
                        }
                        presupuestoEgresoPartida.monto       = monto;
                        presupuestoEgresoPartida.descripcion = txtDescripcion.Text;

                        EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();
                        estadoPresupuesto = estadoPresupuestoServicios.getEstadoPresupuestoPorNombre("Guardar");

                        presupuestoEgresoPartida.estadoPresupuesto = estadoPresupuesto;

                        listaPresupuestoEgresoPartidasTemp.Add(presupuestoEgresoPartida);

                        if (presupuestoEgresoPartida.monto > 0 || !String.IsNullOrEmpty(presupuestoEgresoPartida.descripcion))
                        {
                            if (!txtMonto.ReadOnly)
                            {
                                presupuestoEgreso_PartidaServicios.insertarPresupuestoEgreso_Partida(presupuestoEgresoPartida);
                            }
                        }
                    }
                }
            }

            cargarPartidas();
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se guardo correctamente el presupuesto" + "');", true);
        }
        public async Task <IActionResult> CambioEstado(EstadoPresupuesto estado, long id)
        {
            using (var context = new DataContext())
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var presupuesto = await _presupuestoRepositorio.ObtenerPorId(id);

                if (presupuesto == null)
                {
                    return(NotFound());
                }
                presupuesto.EstadoPresupuesto = estado;
                await _presupuestoRepositorio.Modificar(presupuesto);

                return(Ok(estado));
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Leonardo Carrion
        /// 10/oct/2019
        /// Efecto: aprueba el presupuesto de egreso seleccionado
        /// Requiere: dar el boton de "Si"
        /// Modifica: el estado del prespuesto de egreso partida
        /// Devuelve: -
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSiAprobarEditar_Click(object sender, EventArgs e)
        {
            PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
            Partida           partida           = new Partida();
            EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();

            estadoPresupuesto = estadoPresupuestoServicios.getEstadoPresupuestoPorNombre("Aprobar");
            partida.idPartida = Convert.ToInt32(info[0]);
            presupuestoEgresoPartida.idLinea             = Convert.ToInt32(info[2]);
            presupuestoEgresoPartida.idPresupuestoEgreso = Convert.ToInt32(info[1]);
            presupuestoEgresoPartida.monto             = Convert.ToDouble(info[3]);
            presupuestoEgresoPartida.partida           = partida;
            presupuestoEgresoPartida.estadoPresupuesto = estadoPresupuesto;

            Double montoA = montoAprobado + presupuestoEgresoPartida.monto;

            if (montoIngresos >= montoA)
            {
                presupuestoEgreso_PartidaServicios.actualizarEstadoPresupuestoEgreso_Partida(presupuestoEgresoPartida);

                List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartidasEditar = presupuestoEgreso_PartidaServicios.getPresupuestoEgresoPartidasPorPartidaYPresupEgreso(presupuestoEgresoPartidaSeleccionado);
                presupuestoEgresoSeleccionado.idPresupuestoEgreso = presupuestoEgresoPartida.idPresupuestoEgreso;
                presupuestoEgresoSeleccionado             = presupuestoEgresosServicios.getPresupuestosEgresosPorId(presupuestoEgresoSeleccionado);
                presupuestoEgresoSeleccionado.montoTotal += presupuestoEgresoPartida.monto;
                presupuestoEgresosServicios.actualizarMontoPresupuestoEgreso(presupuestoEgresoSeleccionado);

                Session["listaPresupuestoEgresoPartidasEditar"] = listaPresupuestoEgresoPartidasEditar;

                rpPartidasEditar.DataSource = listaPresupuestoEgresoPartidasEditar;
                rpPartidasEditar.DataBind();

                cargarPartidas();
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se aprobo correctamente la información" + "');", true);
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.error('" + "El monto aprobado es mayor al monto de ingresos. No se puede aprobar" + "');", true);
            }
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#modalAprobarEditar", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#modalAprobarEditar').hide();", true);
            ScriptManager.RegisterStartupScript(this, this.GetType(), "activar", "activarModalEditar();", true);
        }
Esempio n. 8
0
        /// <summary>
        /// Leonardo Carrion
        /// 11/oct/2019
        /// Efecto: revisa si se puede aprobar los montos ingresados en la unidad seleccionada, si se puede aprueba todos los montos
        /// Requiere: dar clic en el boton de "Si"
        /// Modifica: estado de presupuesto egresos partidas y el monto aprobado
        /// Devuelve: -
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSiMensajeAprobar_Click(object sender, EventArgs e)
        {
            List <Entidades.PresupuestoEgreso> listaPresupuestoEgresos        = (List <Entidades.PresupuestoEgreso>)Session["listaPresupuestoEgresos"];
            List <PresupuestoEgresoPartida>    listaPresupuestoEgresoPartidas = new List <PresupuestoEgresoPartida>();

            foreach (Entidades.PresupuestoEgreso presupuestoEgreso in listaPresupuestoEgresos)
            {
                listaPresupuestoEgresoPartidas.AddRange(presupuestoEgreso_PartidaServicios.getPresupuestoEgresoPartidas(presupuestoEgreso));
            }

            Double monto = (Double)listaPresupuestoEgresoPartidas.Sum(presupuesto => presupuesto.monto);

            if (monto <= montoIngresos && montoIngresos >= (montoAprobado + monto))
            {
                foreach (PresupuestoEgresoPartida presupuestoEgresoPartida in listaPresupuestoEgresoPartidas)
                {
                    EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();
                    estadoPresupuesto = estadoPresupuestoServicios.getEstadoPresupuestoPorNombre("Aprobar");
                    presupuestoEgresoPartida.estadoPresupuesto = estadoPresupuesto;

                    presupuestoEgreso_PartidaServicios.actualizarEstadoPresupuestoEgreso_Partida(presupuestoEgresoPartida);

                    presupuestoEgresoSeleccionado.idPresupuestoEgreso = presupuestoEgresoPartida.idPresupuestoEgreso;
                }

                presupuestoEgresoSeleccionado            = presupuestoEgresosServicios.getPresupuestosEgresosPorId(presupuestoEgresoSeleccionado);
                presupuestoEgresoSeleccionado.montoTotal = monto;
                presupuestoEgresosServicios.actualizarMontoPresupuestoEgreso(presupuestoEgresoSeleccionado);

                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#modalMensajeAprobar", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#modalMensajeAprobar').hide();", true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.success('" + "Se aprobaron todos los montos guardados" + "');", true);

                cargarPartidas();
            }
            else
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "#modalMensajeAprobar", "$('body').removeClass('modal-open');$('.modal-backdrop').remove();$('#modalMensajeAprobar').hide();", true);
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "toastr.error('" + "El monto que se va aprobar es mayor al monto de ingresos aprobados" + "');", true);
            }
        }
Esempio n. 9
0
        public List <PresupuestoEgresoPartida> ObtenerPorPartida(string idPartida)
        {
            SqlConnection sqlConnection = conexion.conexionPEP();
            List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartida = new List <PresupuestoEgresoPartida>();

            String consulta = @"select id_presupuesto_egreso,id_partida,monto, descripcion,es.id_estado_presupuesto,id_linea  from Presupuesto_Egreso_Partida Pre ,Estado_presupuestos es

                                 where id_partida=@id_partida_  and pre.id_estado_presupuesto=es.id_estado_presupuesto and pre.id_estado_presupuesto=2;";

            SqlCommand sqlCommand = new SqlCommand(consulta, sqlConnection);

            sqlCommand.Parameters.AddWithValue("@id_partida_", idPartida);

            SqlDataReader reader;

            sqlConnection.Open();
            reader = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
                EstadoPresupuesto        estadoPresupuesto        = new EstadoPresupuesto();
                estadoPresupuesto.idEstadoPresupuesto        = Convert.ToInt32(reader["id_estado_presupuesto"].ToString());
                presupuestoEgresoPartida.estadoPresupuesto   = estadoPresupuesto;
                presupuestoEgresoPartida.idPresupuestoEgreso = Convert.ToInt32(reader["id_presupuesto_egreso"].ToString());
                presupuestoEgresoPartida.monto       = Convert.ToDouble(reader["monto"].ToString());
                presupuestoEgresoPartida.descripcion = reader["descripcion"].ToString();
                presupuestoEgresoPartida.idLinea     = Convert.ToInt32(reader["id_linea"].ToString());

                listaPresupuestoEgresoPartida.Add(presupuestoEgresoPartida);
            }

            sqlConnection.Close();

            return(listaPresupuestoEgresoPartida);
        }
        /// <summary>
        /// Leonardo Carrion
        /// 08/nov/2019
        /// Efecto: ingresa en el presupuesto de egresos los montos en las partidas y unidades correspondientes
        /// Requiere: dar clic en el boton de "Ingresar datos al presupuesto de egresos" y haber distribuido todos los funcionarios
        /// Modifica: presupuesto de egresos
        /// Devuelve: -
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnIngresarPresupuestoEgresos_Click(object sender, EventArgs e)
        {
            List <Funcionario> listaFuncionarios     = (List <Funcionario>)Session["listaFuncionarios"];
            List <Funcionario> listaFuncionariosTemp = listaFuncionarios.Where(funcionario => funcionario.porcentajeAsignado < 100).ToList();

            if (listaFuncionariosTemp.Count > 0)
            {
                Toastr("error", "Se deben de distribuir todos los funcionarios completamente");
            }
            else
            {
                int     idProyecto = Convert.ToInt32(ddlProyecto.SelectedValue);
                int     id         = Convert.ToInt32(ddlPeriodo.SelectedItem.Text);
                Periodo periodo    = new Periodo();
                periodo.anoPeriodo = id;

                Proyectos proyecto = new Proyectos();
                proyecto.idProyecto = idProyecto;

                //primero se comprueba que el monto de que se va a sumar a los egresos no sobrepase el monto de ingresos
                Double montoSumaEgresos = 0;
                foreach (Funcionario funcionario in listaFuncionarios)
                {
                    List <Proyeccion> listaProyeccion = proyeccionServicios.getProyeccionesPorPeriodoYFuncionario(periodo, funcionario);

                    montoSumaEgresos += listaProyeccion.Sum(proyeccion => proyeccion.montoCargasTotal);
                    montoSumaEgresos += listaProyeccion.Sum(proyeccion => proyeccion.montoSalario);
                }

                List <Unidad> listaUnidades = unidadServicios.ObtenerPorProyecto(idProyecto);

                List <PresupuestoEgresoPartida> listaPresupuestoEgresoPartidasEliminar = new List <PresupuestoEgresoPartida>();//lista de presupuestos partidas ya aprobados, hay q borrar si es el caso
                List <int> listaIdEgresos = new List <int>();

                foreach (Unidad unidad in listaUnidades)
                {
                    List <PresupuestoEgreso> listaPresupuestoEgresos = presupuestoEgresosServicios.getPresupuestosEgresosPorUnidad(unidad);
                    listaIdEgresos = (List <int>)listaPresupuestoEgresos.Select(pres => pres.idPresupuestoEgreso).ToList();
                    listaIdEgresos = (List <int>)listaIdEgresos.Distinct().ToList();
                    foreach (int idEgreso in listaIdEgresos)
                    {
                        PresupuestoEgreso presupuestoEgreso = new PresupuestoEgreso();
                        presupuestoEgreso.idPresupuestoEgreso = idEgreso;
                        listaPresupuestoEgresoPartidasEliminar.AddRange(presupuestoEgreso_PartidaServicios.getPresupuestoEgresoPartidasPorPresupEgresoYDesc(presupuestoEgreso, "Planilla (generado automáticamente)"));
                    }
                    montoSumaEgresos += listaPresupuestoEgresos.Sum(presupuesto => presupuesto.montoTotal);
                }

                Double montoIngresos = 0;
                List <Entidades.PresupuestoIngreso> listaPresupuestosIngresos = presupuestoIngresoServicios.getPresupuestosIngresosPorProyecto(proyecto);

                foreach (Entidades.PresupuestoIngreso presupuestoIngreso in listaPresupuestosIngresos)
                {
                    if (!presupuestoIngreso.estadoPresupIngreso.descEstado.Equals("Guardar"))
                    {
                        montoIngresos += presupuestoIngreso.monto;
                    }
                }

                montoSumaEgresos = montoSumaEgresos - (listaPresupuestoEgresoPartidasEliminar.Sum(pres => pres.monto));

                if (montoIngresos < montoSumaEgresos)
                {
                    Toastr("error", "El monto de ingresos es menor que el monto que se va a egregar a los egresos. Monto ingresos: " + montoIngresos + " Monto egresos: " + montoSumaEgresos);
                }
                else
                { //si se puede ingresar los montos
                    //se actualiza el monto de los egresos para eliminar la distribucion hecha antes
                    foreach (int idEgreso in listaIdEgresos)
                    {
                        List <PresupuestoEgresoPartida> presupuestoEgresoPartidasTemp = (List <PresupuestoEgresoPartida>)listaPresupuestoEgresoPartidasEliminar.Where(pres => pres.idPresupuestoEgreso == idEgreso).ToList();

                        PresupuestoEgreso presupuestoEgreso = new PresupuestoEgreso();
                        presupuestoEgreso.idPresupuestoEgreso = idEgreso;
                        presupuestoEgreso            = presupuestoEgresosServicios.getPresupuestosEgresosPorId(presupuestoEgreso);
                        presupuestoEgreso.montoTotal = presupuestoEgreso.montoTotal - (presupuestoEgresoPartidasTemp.Sum(pres => pres.monto));
                        presupuestoEgresosServicios.actualizarMontoPresupuestoEgreso(presupuestoEgreso);
                    }

                    //se elimina el presupuesto de egresos partidas ya ingresados, para que no queden cosas sucias en la base de datos
                    foreach (PresupuestoEgresoPartida presupuestoEgresoPartidaEliminar in listaPresupuestoEgresoPartidasEliminar)
                    {
                        presupuestoEgreso_PartidaServicios.eliminarPresupuestoEgreso_Partida(presupuestoEgresoPartidaEliminar);
                    }

                    List <PresupuestoEgresoPartida> presupuestoEgresoPartidas = new List <PresupuestoEgresoPartida>();
                    EstadoPresupuesto estadoPresupuesto = new EstadoPresupuesto();
                    estadoPresupuesto = estadoPresupuestoServicios.getEstadoPresupuestoPorNombre("Aprobar");

                    foreach (Funcionario funcionario in listaFuncionarios)
                    {
                        List <JornadaUnidadFuncionario> unidadesFuncionario = jornadaUnidadFuncionarioServicios.getJornadaUnidadFuncionario(funcionario.idFuncionario, idProyecto);
                        List <Proyeccion> listaProyeccion = proyeccionServicios.getProyeccionesPorPeriodoYFuncionario(periodo, funcionario);

                        foreach (Proyeccion proyeccion in listaProyeccion)
                        {
                            List <Proyeccion_CargaSocial> listaProyeccion_CargaSociales = proyeccion_CargaSocialServicios.getProyeccionCargaSocialPorProyeccionPorProyeccion(proyeccion);


                            foreach (JornadaUnidadFuncionario jornadaUnidadFuncionario in unidadesFuncionario)
                            {
                                Unidad unidad = new Unidad();
                                unidad.idUnidad = jornadaUnidadFuncionario.idUnidad;
                                List <PresupuestoEgreso> listaPresupuestoEgresos = presupuestoEgresosServicios.getPresupuestosEgresosPorUnidad(unidad);
                                PresupuestoEgreso        presupuestoEgreso       = listaPresupuestoEgresos.First();

                                foreach (Proyeccion_CargaSocial proyeccion_CargaSocial in listaProyeccion_CargaSociales)
                                {
                                    Double monto = 0;
                                    monto = proyeccion_CargaSocial.monto;
                                    monto = (monto * (jornadaUnidadFuncionario.jornadaAsignada / 100));

                                    PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
                                    presupuestoEgresoPartida.monto   = monto;
                                    presupuestoEgresoPartida.partida = proyeccion_CargaSocial.cargaSocial.partida;

                                    presupuestoEgresoPartida.idPresupuestoEgreso = presupuestoEgreso.idPresupuestoEgreso;

                                    presupuestoEgresoPartidas.Add(presupuestoEgresoPartida);
                                }
                                //salario y concepto de pago
                                Double montoSalario = 0, montoConceptoPago = 0;
                                montoConceptoPago = funcionario.conceptoPagoLey;
                                montoConceptoPago = (montoConceptoPago * (jornadaUnidadFuncionario.jornadaAsignada / 100));
                                montoSalario      = proyeccion.montoSalario - funcionario.conceptoPagoLey;
                                montoSalario      = (montoSalario * (jornadaUnidadFuncionario.jornadaAsignada / 100));

                                PresupuestoEgresoPartida presupuestoEgresoPartidaSalario = new PresupuestoEgresoPartida();
                                presupuestoEgresoPartidaSalario.monto = montoSalario;
                                Partida partida = new Partida();
                                partida.numeroPartida = "0-01-03-01";
                                partida = partidaServicios.getPartidaPorNumeroYPeriodo(partida, periodo);
                                presupuestoEgresoPartidaSalario.partida             = partida;
                                presupuestoEgresoPartidaSalario.idPresupuestoEgreso = presupuestoEgreso.idPresupuestoEgreso;

                                presupuestoEgresoPartidas.Add(presupuestoEgresoPartidaSalario);

                                PresupuestoEgresoPartida presupuestoEgresoPartidaConcepto = new PresupuestoEgresoPartida();
                                presupuestoEgresoPartidaConcepto.monto = montoConceptoPago;
                                Partida partidaConcepto = new Partida();
                                partidaConcepto.numeroPartida = "0-01-03-02";
                                partidaConcepto = partidaServicios.getPartidaPorNumeroYPeriodo(partidaConcepto, periodo);
                                presupuestoEgresoPartidaConcepto.partida             = partidaConcepto;
                                presupuestoEgresoPartidaConcepto.idPresupuestoEgreso = presupuestoEgreso.idPresupuestoEgreso;

                                presupuestoEgresoPartidas.Add(presupuestoEgresoPartidaConcepto);
                            }
                        }
                    }

                    //se seleccionan los id's de los egresos
                    List <int> egresos = (List <int>)presupuestoEgresoPartidas.Select(pres => pres.idPresupuestoEgreso).ToList();
                    egresos = (List <int>)egresos.Distinct().ToList();
                    List <int> partidas = (List <int>)presupuestoEgresoPartidas.Select(pres => pres.partida.idPartida).ToList();
                    partidas = (List <int>)partidas.Distinct().ToList();

                    foreach (int idEgreso in egresos)
                    {
                        PresupuestoEgreso presupuestoEgreso = new PresupuestoEgreso();
                        presupuestoEgreso.idPresupuestoEgreso = idEgreso;
                        presupuestoEgreso = presupuestoEgresosServicios.getPresupuestosEgresosPorId(presupuestoEgreso);


                        foreach (int idPartida in partidas)
                        {
                            List <PresupuestoEgresoPartida> presupuestoEgresoPartidasTemp = (List <PresupuestoEgresoPartida>)presupuestoEgresoPartidas.Where(pres => pres.idPresupuestoEgreso == idEgreso && pres.partida.idPartida == idPartida).ToList();
                            Double montoTemp = 0;
                            montoTemp += presupuestoEgresoPartidasTemp.Sum(pres => pres.monto);

                            if (montoTemp > 0)
                            {
                                PresupuestoEgresoPartida presupuestoEgresoPartida = new PresupuestoEgresoPartida();
                                Partida partida = new Partida();

                                partida.idPartida = idPartida;
                                presupuestoEgresoPartida.idPresupuestoEgreso = idEgreso;
                                presupuestoEgresoPartida.partida             = partida;
                                presupuestoEgresoPartida.monto             = montoTemp;
                                presupuestoEgresoPartida.estadoPresupuesto = estadoPresupuesto;
                                presupuestoEgresoPartida.descripcion       = "Planilla (generado automáticamente)";

                                presupuestoEgreso_PartidaServicios.insertarPresupuestoEgreso_Partida(presupuestoEgresoPartida);

                                presupuestoEgreso.montoTotal += montoTemp;
                            }
                        }

                        presupuestoEgresosServicios.actualizarMontoPresupuestoEgreso(presupuestoEgreso);
                    }

                    Toastr("success", "Se ingreso correctamente los datos en el presupuesto de egresos");
                }
            }
        }
Esempio n. 11
0
 public Presupuesto(string id_presupuesto, int cantidad, DateTime fecha_Realizacion, EstadoPresupuesto estado, Cliente c)
 {
     this.Id_presupuesto    = id_presupuesto;
     this.Cantidad          = cantidad;
     this.Fecha_Realizacion = fecha_Realizacion;
     this.Estado            = estado;
     this.Cliente           = c;
     CocheList = new List <Vehiculo>();
 }