public ActionResult EditPlanilla(Int32 EdificioId, Int32?UnidadTiempoId) { EditPlanillaViewModel model = new EditPlanillaViewModel(); model.Fill(CargarDatosContext(), EdificioId, UnidadTiempoId); return(View(model)); }
public ActionResult EditPlanilla(EditPlanillaViewModel model, FormCollection formCollection) { try { if (!ModelState.IsValid) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, i18n.ValidationStrings.DatosIncorrectos); return(View(model)); } using (TransactionScope transaction = new TransactionScope()) { bool eraNull = false; PlanillaR planillaR = context.PlanillaR.FirstOrDefault(x => x.EdificioId == model.EdificioId && x.UnidadTiempoId == model.UnidadTiempoId); if (planillaR == null) { planillaR = new PlanillaR(); planillaR.UnidadTiempoId = model.UnidadTiempoId.Value; planillaR.EdificioId = model.EdificioId; eraNull = true; } if (model.Archivo != null && model.Archivo.ContentLength != 0) { Edificio objEdificio = context.Edificio.FirstOrDefault(x => x.EdificioId == model.EdificioId); string _rutaarchivoserv = Server.MapPath("~"); string _rutaarchivodir = _rutaarchivoserv + Path.Combine("Resources/Files", objEdificio.Acronimo); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } UnidadTiempo objUnidadTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == model.UnidadTiempoId); _rutaarchivodir = Path.Combine(_rutaarchivodir, objUnidadTiempo.Descripcion); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } string _nombrearcIni = model.EdificioId + "_" + DateTime.Now.Ticks.ToString() + "_"; string _nombrearc = _nombrearcIni + Path.GetExtension(model.Archivo.FileName); //string _rutaPDF = _rutaarchivodir; _rutaarchivodir = Path.Combine(_rutaarchivodir, _nombrearc); //ACA guardar la ruta!!! PD: tambien guardar el PDF que se convirtio //_editado.NormasConvivencia = _nombrearc; model.Archivo.SaveAs(_rutaarchivodir); // string _nombrearcParaPDF = _nombrearcIni + "PDF.pdf"; //Workbook excelGuardado = new Workbook(); //excelGuardado.LoadFromFile(_rutaarchivodir); //_rutaPDF = Path.Combine(_rutaPDF, _nombrearcParaPDF); //excelGuardado.SaveToFile(_rutaPDF, FileFormat.PDF); planillaR.RutaExcel = _nombrearc; // planillaR.RutaPDF = _nombrearcParaPDF; //CAMBIAR AQUI POR EL CONVERTIDO! //aca guardar el pdf //var filename = Guid.NewGuid().ToString().Substring(0, 8) + "_" + Path.GetFileName(model.Archivo.FileName); //var path = Path.Combine(Server.MapPath("~/Resources/Files/Normas"), filename); //if (!System.IO.Directory.Exists(Path.Combine(Server.MapPath("~/Resources/Files/Normas")))) // Directory.CreateDirectory(Path.Combine(Server.MapPath("~/Resources/Files/Normas"))); //var file = System.IO.File.Create(path); //_editado.NormasConvivencia= path; } if (model.ArchivoPublico != null && model.ArchivoPublico.ContentLength != 0) { Edificio objEdificio = context.Edificio.FirstOrDefault(x => x.EdificioId == model.EdificioId); string _rutaarchivoserv = Server.MapPath("~"); string _rutaarchivodir = _rutaarchivoserv + Path.Combine("Resources/Files", objEdificio.Acronimo); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } UnidadTiempo objUnidadTiempo = context.UnidadTiempo.FirstOrDefault(x => x.UnidadTiempoId == model.UnidadTiempoId); _rutaarchivodir = Path.Combine(_rutaarchivodir, objUnidadTiempo.Descripcion); if (!System.IO.Directory.Exists(_rutaarchivodir)) { Directory.CreateDirectory(_rutaarchivodir); } string _nombrearcIni = model.EdificioId + "_" + DateTime.Now.Ticks.ToString() + "_"; string _nombrearc = _nombrearcIni + Path.GetExtension(model.ArchivoPublico.FileName); //string _rutaPDF = _rutaarchivodir; _rutaarchivodir = Path.Combine(_rutaarchivodir, _nombrearc); model.ArchivoPublico.SaveAs(_rutaarchivodir); planillaR.RutaPDF = _nombrearc; } if (eraNull) { context.PlanillaR.Add(planillaR); } //Ya no va lo siguiente //var LstTrabajadores = context.Trabajador.Where(x => x.EdificioId == model.EdificioId && x.Estado == ConstantHelpers.EstadoActivo).ToList(); //foreach (var trabajador in LstTrabajadores) //{ // var horasExtras25 = formCollection["planilla-horas-extras-25-" + trabajador.TrabajadorId]; // var montoHorasExtras25 = formCollection["planilla-adicional-25-" + trabajador.TrabajadorId]; // var horasExtras35 = formCollection["planilla-horas-extras-35-" + trabajador.TrabajadorId]; // var montoHorasExtras35 = formCollection["planilla-adicional-35-" + trabajador.TrabajadorId]; // var feriados = formCollection["planilla-feriados-" + trabajador.TrabajadorId]; // var montoFeriados = formCollection["planilla-monto-feriados-" + trabajador.TrabajadorId]; // var descuentoAusencia = formCollection["planilla-descuentos-" + trabajador.TrabajadorId]; // var aumentoReemplazo = formCollection["planilla-reemplazo-" + trabajador.TrabajadorId]; // var totalMes = formCollection["planilla-total-mes-" + trabajador.TrabajadorId]; // var adelantoQuincena = formCollection["planilla-adelanto-quincena-" + trabajador.TrabajadorId]; // var segundaQuincena = formCollection["planilla-segunda-quincena-" + trabajador.TrabajadorId]; // var essalud = formCollection["planilla-essalud-" + trabajador.TrabajadorId]; // Decimal totalDescuentos = 0, aporteObligatorio = 0, primaSeguro = 0, comisionAFP = 0; // if (trabajador.AFPId != null) // { // foreach (var item in context.ComisionAFP.Where(x => x.AFPId == trabajador.AFPId).ToList()) // { // var desc = totalMes.ToDecimal() * item.Comision / 100; // totalDescuentos += desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("APORTE")) aporteObligatorio = desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("PRIMA")) primaSeguro = desc; // if (item.TipoDescuento.Detalle.ToUpper().Contains("COMISION") && item.TipoDescuento.Acronimo == trabajador.ComisionFlujo) comisionAFP = desc; // } // } // else // { // var descuento = context.ComisionAFP.Where(x => x.TipoDescuento.Acronimo == "ONP").FirstOrDefault(); // if (descuento != null) // { // totalDescuentos = totalMes.ToDecimal() * descuento.Comision / 100; // } // } // var sueldoNeto = totalMes.ToDecimal() - totalDescuentos; // var segundaQuincenaNeto = sueldoNeto - adelantoQuincena.ToDecimal(); // var gratificacionesMes = totalMes.ToDecimal() * 109 / 600; // var CTSMes = 0; // var reemplazoVacaciones = 0; // Planilla planilla; // bool editar = true; // planilla = context.Planilla.Where(x => x.TrabajadorId == trabajador.TrabajadorId && x.UnidadTiempoId == model.UnidadTiempoId).FirstOrDefault(); // if (planilla == null) // { // editar = false; // planilla = new Planilla(); // } // planilla.TrabajadorId = trabajador.TrabajadorId; // planilla.UnidadTiempoId = model.UnidadTiempoId.Value; // planilla.HorasExtras = horasExtras25.ToDecimal() + horasExtras35.ToDecimal(); // planilla.Feriado = feriados.ToDecimal(); // planilla.AdelantoQuincena = adelantoQuincena.ToDecimal(); // planilla.SegundaQuincena = segundaQuincena.ToDecimal(); // planilla.ESSALUD = essalud.ToDecimal(); // planilla.AporteObligatorio = aporteObligatorio; // planilla.PrimaSeguro = primaSeguro; // planilla.ComisionAFP = comisionAFP; // planilla.TotalDescuentos = totalDescuentos; // planilla.SueldoTotalNeto = sueldoNeto; // planilla.SegundaQuincenaNeto = segundaQuincenaNeto; // planilla.CTSMes = CTSMes; // planilla.ReemplazoVacaciones = reemplazoVacaciones; // planilla.HorasExtras25 = horasExtras25.ToDecimal(); // planilla.HorasExtras35 = horasExtras35.ToDecimal(); // planilla.MontoFeriados = montoFeriados.ToDecimal(); // planilla.DescuenoAusencia = descuentoAusencia.ToDecimal(); // planilla.AumentoReemplazo = aumentoReemplazo.ToDecimal(); // planilla.TotalMes = totalMes.ToDecimal(); // planilla.MontoHorasExtras25 = montoHorasExtras25.ToDecimal(); // planilla.MontoHorasExtras35 = montoHorasExtras35.ToDecimal(); // planilla.GratificacionesMes = gratificacionesMes.ToDecimal(); // if (!editar) context.Planilla.Add(planilla); //} PostMessage(MessageType.Success, "Guardado Correctamente"); context.SaveChanges(); transaction.Complete(); return(RedirectToAction("LstEdificio", "Building")); } } catch (Exception ex) { model.Fill(CargarDatosContext(), model.EdificioId, model.UnidadTiempoId); TryUpdateModel(model); PostMessage(MessageType.Error, "Ocurrió un error, por favor inténtelo más tarde"); return(View(model)); } }