public ActionResult DeleteConfirmed(int id, DateTime FechaBaja) { Afiliado afiliado = db.Afiliado.Find(id); if (afiliado.FechaAlta > FechaBaja || FechaBaja > DateTime.Today) { if (afiliado.FechaAlta > FechaBaja) { ViewBag.MensajeError = "La Fecha de Baja no puede ser menor a la fecha de alta del afiliado"; } else { ViewBag.MensajeError = "La Fecha de Baja no puede ser mayor a la fecha de hoy"; } return(View(afiliado)); } afiliado.FechaBaja = FechaBaja;//DateTime.Today; var claim = ((ClaimsIdentity)User.Identity).FindFirst("IdEmpresa"); int IdEmpresa = Convert.ToInt32(claim.Value); EmpleadoEmpresa empEmp = db.EmpleadoEmpresa.Where(x => x.idEmpleadoEmpresa == afiliado.IdEmpleadoEmpresa).FirstOrDefault(); if (empEmp != null) { empEmp.EsAfiliado = false; } db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: Afiliados/ReActivate/5 public ActionResult ReActivate(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Afiliado afiliado = db.Afiliado.Find(id); if (afiliado == null) { return(HttpNotFound()); } var claim = ((ClaimsIdentity)User.Identity).FindFirst("IdEmpresa"); int IdEmpresa = Convert.ToInt32(claim.Value); EmpleadoEmpresa empleadoEmpresa = db.EmpleadoEmpresa.Where(x => x.idEmpleado == afiliado.IdEmpleadoEmpresa).FirstOrDefault(); if (empleadoEmpresa == null || empleadoEmpresa.FechaBaja != null) { return(HttpNotFound()); } var empleados = db.EmpleadoEmpresa.Where(x => x.idEmpresa == IdEmpresa && x.FechaBaja == null).Include(t => t.Empleado).ToList(); /*db.Afiliado.Include(a => a.Empleado).Where(x => x.FechaBaja == null)*/ /*from oEmpleado in db.Empleado * join oEmpEmp in db.EmpleadoEmpresa on oEmpleado.IdEmpleado equals oEmpEmp.idEmpleado * where oEmpEmp.idEmpresa == IdEmpresa && oEmpEmp.FechaBaja == null * select oEmpleado;*/ foreach (var emp in empleados) { emp.NombreEmpleado = emp.Empleado.Apellido + ", " + emp.Empleado.Nombre; } ViewBag.IdEmpleadoEmpresa = new SelectList(empleados, "IdEmpleadoEmpresa", "NombreEmpleado", afiliado.IdEmpleadoEmpresa); return(View(afiliado)); }
public ActionResult UploadFile(HttpPostedFileBase file, int mes, int anio) { var claim = ((ClaimsIdentity)User.Identity).FindFirst("IdEmpresa"); int IdEmpresa = Convert.ToInt32(claim.Value); int errorRenglon = 1; int idDeclaracion = 0; try { if (file != null && file.ContentLength > 0) { DeclaracionJurada ddjj = db.DeclaracionJurada.Where(x => x.idEmpresa == IdEmpresa && x.mes == mes && x.anio == anio).FirstOrDefault(); if (ddjj == null) { ddjj = new DeclaracionJurada(); ddjj.anio = anio; ddjj.mes = mes; ddjj.idEmpresa = IdEmpresa; ddjj.fecha = DateTime.Now; db.DeclaracionJurada.Add(ddjj); db.SaveChanges(); idDeclaracion = ddjj.IdDeclaracionJurada; bool error = false; List <string> rows = new List <string>(); List <DetalleDeclaracionJurada> detallesDeclaracionJurada = new List <DetalleDeclaracionJurada>(); StreamReader fileContent = new StreamReader(file.InputStream); do { rows.Add(fileContent.ReadLine()); }while (!fileContent.EndOfStream); foreach (var row in rows) { string[] detalles = row.Split(';'); if (detalles.Length == 4) { DetalleDeclaracionJurada detalle = new DetalleDeclaracionJurada(); detalle.IdDeclaracionJurada = idDeclaracion; EmpleadoEmpresa empEmp = new EmpleadoEmpresa(); string cuil = detalles[0]; Empleado emp = (from oEmpleado in db.Empleado join oEmpEmp in db.EmpleadoEmpresa on oEmpleado.IdEmpleado equals oEmpEmp.idEmpleado where oEmpEmp.idEmpresa == IdEmpresa && //oEmpEmp.FechaBaja == null && oEmpleado.Cuil == cuil select oEmpleado).FirstOrDefault(); if (emp != null) { empEmp = db.EmpleadoEmpresa.Where(x => x.idEmpleado == emp.IdEmpleado && x.idEmpresa == IdEmpresa & (x.FechaAlta.Year < ddjj.anio || (x.FechaAlta.Year == ddjj.anio && x.FechaAlta.Month <= ddjj.mes))) .FirstOrDefault(); if (emp == null || empEmp == null) { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Empleado no Encontrado!!"; error = true; break; } if (empEmp.FechaBaja != null && empEmp.FechaBaja.Value.Year < ddjj.anio) { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Empleado esta de baja!!"; error = true; break; } else if (empEmp.FechaBaja != null && empEmp.FechaBaja.Value.Year == ddjj.anio && empEmp.FechaBaja.Value.Month < ddjj.mes) { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Empleado esta de baja!!"; error = true; break; } } else { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Empleado no Encontrado!!"; error = true; break; } detalle.IdEmpleadoEmpresa = empEmp.idEmpleadoEmpresa; detalle.idCategoria = empEmp.IdCategoria; detalle.idJornadaLaboral = empEmp.IdJornada; if (int.TryParse(detalles[1], out int idliquidacion)) { detalle.IdLiquidacionProporcional = int.Parse(detalles[1]); } else { error = true; break; } decimal sueldo = 0; if (decimal.TryParse(detalles[2], out sueldo)) { if (comprobarSueldoBasico(empEmp.idEmpleadoEmpresa, detalle.IdDeclaracionJurada, decimal.Parse(detalles[2]))) { detalle.Sueldo = decimal.Parse(detalles[2]); } else { if (detalle.IdLiquidacionProporcional != 1) { detalle.Sueldo = decimal.Parse(detalles[2]); } else { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Sueldo 2% Menor al minimo, corrija el sueldo y vuelva a intentar!!"; error = true; break; } } } else { ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon + Environment.NewLine + "Sueldo 2% no Valido!!"; error = true; break; } decimal sueldoBase = 0; if (decimal.TryParse(detalles[3], out sueldoBase)) { detalle.SueldoBase = decimal.Parse(detalles[3]); } detallesDeclaracionJurada.Add(detalle); } else { error = true; } errorRenglon++; } if (error == false) { //db.DeclaracionJurada.Add(ddjj); //db.SaveChanges(); foreach (DetalleDeclaracionJurada detalle in detallesDeclaracionJurada) { detalle.IdDeclaracionJurada = ddjj.IdDeclaracionJurada; db.DetalleDeclaracionJurada.Add(detalle); db.SaveChanges(); var liquidacionProporcional = db.LiquidacionProporcionalEmpleado.Where(x => x.IdDetalleDeclaracionJurada == detalle.IdDetalleDeclaracionJurada).FirstOrDefault(); if (detalle.IdLiquidacionProporcional != null && detalle.IdLiquidacionProporcional != 1) { if (liquidacionProporcional != null) { if (liquidacionProporcional.IdLiquidacionProporcional != detalle.IdLiquidacionProporcional) { liquidacionProporcional.IdLiquidacionProporcional = (int)detalle.IdLiquidacionProporcional; } } else { db.LiquidacionProporcionalEmpleado.Add(new LiquidacionProporcionalEmpleado() { IdLiquidacionProporcional = (int)detalle.IdLiquidacionProporcional, IdDetalleDeclaracionJurada = detalle.IdDetalleDeclaracionJurada }); } } else { if (liquidacionProporcional != null) { db.LiquidacionProporcionalEmpleado.Remove(liquidacionProporcional); } } } db.SaveChanges(); ViewBag.Message = "Empleados Importados Correctamente!!"; return(View()); } else { //ViewBag.Message = (!string.IsNullOrEmpty(ViewBag.Message)) ? ViewBag.Message + "Error al importar la Declaracion Jurada!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon : "Error al importar la Declaracion Jurada!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon; //ViewBag.Message = "Error al importar los Empleados!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon; RollBackDeclaracion(idDeclaracion); return(View()); } } else { ViewBag.Message = "Ya existe una declaracion Jurada para la fecha Seleccionada!!"; RollBackDeclaracion(idDeclaracion); return(View()); } } else { ViewBag.Message = "Error, Archivo vacio o no valido!!"; RollBackDeclaracion(idDeclaracion); return(View()); } } catch (Exception e) { RollBackDeclaracion(idDeclaracion); ViewBag.Message = (!string.IsNullOrEmpty(ViewBag.Message)) ? ViewBag.Message + "Error al importar la Declaracion Jurada!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon : "Error al importar la Declaracion Jurada!!" + Environment.NewLine + "Error en el renglon Nro: " + errorRenglon; return(View()); } }