public ActionResult AddEditTrabajador(Int32?TrabajadorId) { AddEditTrabajadorViewModel ViewModel = new AddEditTrabajadorViewModel(); ViewModel.TrabajadorId = TrabajadorId; ViewModel.Fill(CargarDatosContext()); return(View(ViewModel)); }
public ActionResult AddEditTrabajador(AddEditTrabajadorViewModel ViewModel) { if (!ModelState.IsValid) { ViewModel.Fill(CargarDatosContext()); TryUpdateModel(ViewModel); PostMessage(MessageType.Error); return(View(ViewModel)); } if (ViewModel.FotoFile != null) { string extension = Path.GetExtension(ViewModel.FotoFile.FileName).ToLower(); if (extension != ".jpg" && extension != ".jpeg") { ViewModel.Fill(CargarDatosContext()); TryUpdateModel(ViewModel); PostMessage(MessageType.Info, "Solo se aceptan los formatos de imagen .jpg y .jpeg"); return(View(ViewModel)); } } try { using (var transaction = new TransactionScope()) { if (ViewModel.TrabajadorId.HasValue) { Trabajador trabajador = context.Trabajador.FirstOrDefault(x => x.TrabajadorId == ViewModel.TrabajadorId.Value); trabajador.Nombres = ViewModel.Nombres; trabajador.Apellidos = ViewModel.Apellidos; if (ViewModel.AFP != 0) { trabajador.AFPId = ViewModel.AFP; } else { trabajador.AFPId = null; } trabajador.DNI = ViewModel.DNI; trabajador.FechaNacimiento = ViewModel.FechaNacimiento.ToDateTime(); if (ViewModel.FotoFile != null) { string ruta = Path.Combine(Server.MapPath("~/Resources/Fotos"), Path.GetFileNameWithoutExtension(ViewModel.FotoFile.FileName) + Path.GetExtension(ViewModel.FotoFile.FileName)); trabajador.Foto = Path.GetFileName(ViewModel.FotoFile.FileName); if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Fotos")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Fotos"))); } ViewModel.FotoFile.SaveAs(ruta); ruta = Path.Combine(Server.MapPath("~/Resources/Files"), Path.GetFileNameWithoutExtension(ViewModel.FotoFile.FileName) + Path.GetExtension(ViewModel.FotoFile.FileName)); ViewModel.FotoFile.SaveAs(ruta); } if (ViewModel.AntecedenteFile != null) { string nombre = Guid.NewGuid().ToString().Substring(0, 6) + Path.GetExtension(ViewModel.AntecedenteFile.FileName); string ruta = Path.Combine(Server.MapPath("~/Resources/Files"), nombre); trabajador.AntecedentesPoliciales = nombre; if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files"))); } ViewModel.AntecedenteFile.SaveAs(ruta); } if (ViewModel.PartidaFile != null) { string nombre = Guid.NewGuid().ToString().Substring(0, 6) + Path.GetExtension(ViewModel.PartidaFile.FileName); string ruta = Path.Combine(Server.MapPath("~/Resources/Files"), nombre); trabajador.PartidaNacimiento = nombre; if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files"))); } ViewModel.PartidaFile.SaveAs(ruta); } trabajador.Cargo = ViewModel.Cargo; trabajador.CUSSP = ""; trabajador.EdificioId = ViewModel.EdificioId; if (ViewModel.Comision.HasValue) { trabajador.Comision = 0; } trabajador.FechaIngreso = ViewModel.FechaIngreso; trabajador.Modalidad = ""; trabajador.SueldoBase = 0; trabajador.MontoHoras25 = 0; trabajador.MontoHoras35 = 0; trabajador.MontoFeriado = 0; trabajador.AdelantoQuincena = 0; trabajador.ComisionFlujo = ""; context.Entry(trabajador).State = System.Data.Entity.EntityState.Modified; } else { DetalleQuincena detalle = new DetalleQuincena(); detalle.BonoPorMovilidad = true; detalle.Bonificacion = true; detalle.Seguro = true; detalle.TotalQuincena = true; context.DetalleQuincena.Add(detalle); context.SaveChanges(); DetalleMensualidad detalleMensualidad = new DetalleMensualidad(); detalleMensualidad.CTS = true; detalleMensualidad.Essalud = true; context.DetalleMensualidad.Add(detalleMensualidad); context.SaveChanges(); Trabajador trabajador = new Trabajador(); trabajador.EdificioId = ViewModel.EdificioId; trabajador.Estado = ConstantHelpers.EstadoActivo; trabajador.Nombres = ViewModel.Nombres; trabajador.Apellidos = ViewModel.Apellidos; if (ViewModel.AFP != 0) { trabajador.AFPId = ViewModel.AFP; } else { trabajador.AFPId = null; } trabajador.EdificioId = ViewModel.EdificioId; trabajador.DNI = ViewModel.DNI; trabajador.FechaNacimiento = ViewModel.FechaNacimiento.ToDateTime(); if (ViewModel.FotoFile != null) { string ruta = Path.Combine(Server.MapPath("~/Resources/Fotos"), Path.GetFileNameWithoutExtension(ViewModel.FotoFile.FileName) + Path.GetExtension(ViewModel.FotoFile.FileName)); trabajador.Foto = Path.GetFileName(ViewModel.FotoFile.FileName); if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Fotos")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Fotos"))); } ViewModel.FotoFile.SaveAs(ruta); } if (ViewModel.AntecedenteFile != null) { string ruta = Path.Combine(Server.MapPath("~/Resources/Files"), Path.GetFileNameWithoutExtension(ViewModel.AntecedenteFile.FileName) + Path.GetExtension(ViewModel.AntecedenteFile.FileName)); trabajador.AntecedentesPoliciales = Path.GetFileName(ViewModel.AntecedenteFile.FileName); if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files"))); } ViewModel.AntecedenteFile.SaveAs(ruta); } if (ViewModel.PartidaFile != null) { string ruta = Path.Combine(Server.MapPath("~/Resources/Files"), Path.GetFileNameWithoutExtension(ViewModel.PartidaFile.FileName) + Path.GetExtension(ViewModel.PartidaFile.FileName)); trabajador.PartidaNacimiento = Path.GetFileName(ViewModel.PartidaFile.FileName); if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files")))) { Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files"))); } ViewModel.PartidaFile.SaveAs(ruta); } trabajador.Cargo = ViewModel.Cargo; trabajador.CUSSP = ViewModel.CUSSP; if (ViewModel.Comision.HasValue) { trabajador.Comision = ViewModel.Comision.ToDecimal(); } trabajador.FechaIngreso = ViewModel.FechaIngreso; trabajador.Modalidad = "REG"; trabajador.SueldoBase = 0; trabajador.MontoHoras25 = ViewModel.MontoHoras25.ToDecimal(); trabajador.MontoHoras35 = ViewModel.MontoHoras35.ToDecimal(); trabajador.MontoFeriado = ViewModel.MontoFeriado.ToDecimal(); trabajador.AdelantoQuincena = null; trabajador.ComisionFlujo = "REG"; trabajador.DetalleQuincenaId = null; trabajador.DetalleMensualidadId = null; context.Trabajador.Add(trabajador); } context.SaveChanges(); transaction.Complete(); PostMessage(MessageType.Success); } } catch { InvalidarContext(); PostMessage(MessageType.Error); } return(RedirectToAction("LstTrabajadorAdmin")); }