public void CalculoHaberes(PerfilViewModel model, int rut) { GestionEmpleadosDBEntities db = new GestionEmpleadosDBEntities(); var Empleado = (from d in db.Empleado where d.rut == rut select d).FirstOrDefault(); var haberes = (from hab in db.Haberes join emp in db.Empleado on hab.rut_empleado equals emp.rut where emp.rut == rut select hab).FirstOrDefault(); var cargaFam = (from d in db.Empleado join c in db.Asignacion_familiar on d.asignacion_id equals c.Id where d.rut == rut select c).FirstOrDefault(); Empleado.sueldo_base = Convert.ToDouble(model.sueldo_basevm); db.Entry(haberes).State = System.Data.Entity.EntityState.Modified; db.Entry(Empleado).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); }
public ActionResult Perfil(PerfilViewModel model, int rut) { try { if (ModelState.IsValid) { GestionEmpleadosDBEntities db = new GestionEmpleadosDBEntities(); var empleado = (from emp in db.Empleado join af in db.Afp on emp.afp_id equals af.Id where emp.rut == rut select emp).FirstOrDefault(); //-------------------------------------------// var afp = (from emp in db.Empleado join af in db.Afp on emp.afp_id equals af.Id where emp.rut == rut select af).FirstOrDefault(); //-------------------------------------------// var haberes = (from hab in db.Haberes join emp in db.Empleado on hab.rut_empleado equals emp.rut where emp.rut == rut select hab).FirstOrDefault(); //-------------------------------------------// var descuento = (from des in db.Descuento join emp in db.Empleado on des.rut_empleado equals emp.rut where emp.rut == rut select des).FirstOrDefault(); //-------------------------------------------// var otros = (from emp in db.Empleado join otr in db.Otros_Descuentos on emp.desc_id equals otr.id where emp.rut == rut select otr).FirstOrDefault(); //-------------------------------------------// var cargaFam = (from emp in db.Empleado join fam in db.Asignacion_familiar on emp.asignacion_id equals fam.Id where emp.rut == rut select fam).FirstOrDefault(); //-------------------------------------------// var salud = (from emp in db.Empleado join sal in db.Salud on emp.salud_id equals sal.Id where emp.rut == rut select sal).FirstOrDefault(); //-------------------------------------------// var beneficio = (from emp in db.Empleado join ben in db.Beneficio_Antiguedad on emp.antiguedad_id equals ben.Id where emp.rut == rut select ben).FirstOrDefault(); //-------------------------------------------// empleado.sueldo_base = Convert.ToDouble(model.sueldo_basevm); if (empleado.sueldo_base == null) { empleado.sueldo_base = 0; } else if (haberes.sueldo_base != empleado.sueldo_base || haberes.Empleado == null) { haberes.sueldo_base = empleado.sueldo_base; } if (haberes.sueldo_base <= 315841) { empleado.asignacion_id = 1; haberes.monto_familiar = empleado.numero_cargas * cargaFam.valor; model.monto_familiarvm = empleado.numero_cargas * cargaFam.valor; } else if (haberes.sueldo_base <= 461320) { empleado.asignacion_id = 2; haberes.monto_familiar = empleado.numero_cargas * cargaFam.valor; model.monto_familiarvm = empleado.numero_cargas * cargaFam.valor; } else if (haberes.sueldo_base <= 719502) { empleado.asignacion_id = 3; haberes.monto_familiar = empleado.numero_cargas * cargaFam.valor; model.monto_familiarvm = empleado.numero_cargas * cargaFam.valor; } else { empleado.asignacion_id = 4; haberes.monto_familiar = 0; model.monto_familiarvm = 0; } if (empleado.asignacion_id == 1) { haberes.monto_familiar = empleado.numero_cargas * 12364; model.monto_familiarvm = empleado.numero_cargas * 12364; } else if (empleado.asignacion_id == 2) { haberes.monto_familiar = empleado.numero_cargas * 7587; model.monto_familiarvm = empleado.numero_cargas * 7587; } else if (empleado.asignacion_id == 3) { haberes.monto_familiar = empleado.numero_cargas * 2398; model.monto_familiarvm = empleado.numero_cargas * 2398; } else { haberes.monto_familiar = 0; model.monto_familiarvm = 0; } DateTime annos = Convert.ToDateTime(empleado.fecha_contrato); int trabajados = DateTime.Today.AddTicks(-annos.Ticks).Year - 1; if (trabajados == 0) { empleado.antiguedad_id = 10; } else if (trabajados <= 2) { empleado.antiguedad_id = 20; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 4) { empleado.antiguedad_id = 30; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 6) { empleado.antiguedad_id = 40; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 8) { empleado.antiguedad_id = 50; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 10) { empleado.antiguedad_id = 60; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 12) { empleado.antiguedad_id = 70; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 14) { empleado.antiguedad_id = 80; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 16) { empleado.antiguedad_id = 90; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 18) { empleado.antiguedad_id = 100; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else if (trabajados <= 20) { empleado.antiguedad_id = 110; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } else { empleado.antiguedad_id = 110; model.bonovm = (beneficio.porcentaje_antiguedad * haberes.sueldo_base) / 100; } haberes.bono = model.bonovm; if (model.hora_extravm == 0 || model.hora_extravm == null) { haberes.hora_extra = 0; } else { model.calculoHoraExtra = (Convert.ToDouble(model.sueldo_basevm) * 0.0077777) * model.hora_extravm; haberes.hora_extra = model.calculoHoraExtra; } haberes.colacion = model.colacionvm; haberes.movilizacion = model.movilizacionvm; haberes.comision = model.comisionvm; haberes.total_haberes = haberes.sueldo_base + haberes.colacion + haberes.movilizacion + haberes.comision + haberes.hora_extra + haberes.monto_familiar + haberes.bono; //-------------------------------------------// empleado.afp_id = model.AfpId; if (empleado.afp_id == 1) { model.ComisionAFP = 0.1144; } else if (empleado.afp_id == 2) { model.ComisionAFP = 0.1144; } else if (empleado.afp_id == 3) { model.ComisionAFP = 0.1127; } else if (empleado.afp_id == 4) { model.ComisionAFP = 0.1077; } else if (empleado.afp_id == 5) { model.ComisionAFP = 0.1116; } else if (empleado.afp_id == 6) { model.ComisionAFP = 0.1145; } else if (empleado.afp_id == 1002) { model.ComisionAFP = 0; } else { model.ComisionAFP = 0; } descuento.descuento_afp = model.ComisionAFP * Convert.ToDouble(model.sueldo_basevm); //-------------------------------------------// empleado.salud_id = model.SaludId; if (empleado.salud_id == 1) { descuento.descuento_salud = Convert.ToDouble(model.sueldo_basevm) * 0.07; } else if (empleado.salud_id == 2) { descuento.descuento_salud = model.descuento_saludvm; } else if (empleado.salud_id == 1002) { model.ComisionSalud = 0; descuento.descuento_salud = model.ComisionSalud; } if (empleado.desc_id == 10) { descuento.seguro_cesantia = Convert.ToDouble(model.sueldo_basevm) * 0.006; descuento.seguro_vida = 15000; } else if (empleado.desc_id == 20) { descuento.seguro_cesantia = Convert.ToDouble(model.sueldo_basevm) * 0.006; descuento.seguro_vida = 30000; } else { descuento.seguro_cesantia = 0; descuento.seguro_vida = 0; } //-------------------------------------------// db.Entry(descuento).State = System.Data.Entity.EntityState.Modified; db.Entry(haberes).State = System.Data.Entity.EntityState.Modified; db.Entry(empleado).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Perfil", "Empleado", new { rut })); } return(RedirectToAction("Index", "Empleado")); } catch (Exception ex) { throw new Exception(ex.Message); } }