Пример #1
0
        public bool ajustar_anticipo(List <ro_rol_detalle_Info> lista)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    foreach (var item in lista)
                    {
                        ro_rol_detalle Entity = Context.ro_rol_detalle.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdEmpleado == item.IdEmpleado &&
                                                                                      q.IdRol == item.IdRol && q.IdRubro == item.IdRubro);
                        if (Entity != null)
                        {
                            Entity.Valor = item.Valor;
                        }
                        Context.SaveChanges();
                    }
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool ajustar_anticipo(List <ro_rol_detalle_Info> lista)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    int IdEmpresa = lista.Count == 0 ? 0 : lista[0].IdEmpresa;
                    var param     = Context.ro_rubros_calculados.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                    foreach (var item in lista)
                    {
                        ro_rol_detalle Entity = Context.ro_rol_detalle.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdEmpleado == item.IdEmpleado &&
                                                                                      q.IdRol == item.IdRol && q.IdRubro == item.IdRubro);
                        if (Entity != null)
                        {
                            Entity.Valor = Math.Round(item.Valor, 2, MidpointRounding.AwayFromZero);
                        }

                        if (param != null)
                        {
                            #region Actualizo total ingreso
                            var TotalIngreso = Context.ro_rol_detalle.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdEmpleado == item.IdEmpleado &&
                                                                                     q.IdRol == item.IdRol && q.IdRubro == param.IdRubro_tot_ing);

                            if (TotalIngreso != null)
                            {
                                TotalIngreso.Valor = Math.Round(Context.vwro_rol_detalle.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdRol == item.IdRol && q.IdRubro != item.IdRubro && q.ru_tipo == "I").ToList().Sum(q => q.Valor) + item.Valor, 2, MidpointRounding.AwayFromZero);
                            }
                            #endregion

                            #region Actualizo liquido a recibir
                            var TotalEgreso = Context.ro_rol_detalle.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdEmpleado == item.IdEmpleado &&
                                                                                    q.IdRol == item.IdRol && q.IdRubro == param.IdRubro_tot_egr);

                            var TotalAPagar = Context.ro_rol_detalle.FirstOrDefault(q => q.IdEmpresa == item.IdEmpresa && q.IdEmpleado == item.IdEmpleado &&
                                                                                    q.IdRol == item.IdRol && q.IdRubro == param.IdRubro_tot_pagar);
                            if (TotalAPagar != null)
                            {
                                TotalAPagar.Valor = Math.Round(TotalIngreso.Valor - (TotalEgreso == null ? 0 : TotalEgreso.Valor), 2, MidpointRounding.AwayFromZero);
                            }
                            #endregion
                        }

                        Context.SaveChanges();
                    }
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }