Esempio n. 1
0
        public ActionResult EditPlanilla(Int32 EdificioId, Int32?UnidadTiempoId)
        {
            EditPlanillaViewModel model = new EditPlanillaViewModel();

            model.Fill(CargarDatosContext(), EdificioId, UnidadTiempoId);
            return(View(model));
        }
Esempio n. 2
0
        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));
            }
        }