Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        // 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));
        }
Esempio n. 3
0
        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());
            }
        }