/// <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(); } }
/// <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); }
/// <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); }
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); } } }
/// <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)); } }
/// <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); }
/// <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); } }
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"); } } }
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>(); }