public JsonResult AnularMarcaciones(int IdEmpresa, int IdAjuste, int IdNomina_Tipo, int IdNomina_TipoLiqui,
                                            DateTime?FechaInicio, DateTime?FechaFin, DateTime?FechaNovedades, string Observacion = ""

                                            , string Ids = "", decimal IdTransaccionSession = 0)
        {
            ro_SancionesPorMarcaciones_Info model = new ro_SancionesPorMarcaciones_Info();

            if (Ids != null)
            {
                var      lst    = ro_SancionesPorMarcaciones_det_Info_list.get_list(IdTransaccionSession);
                string[] array  = Ids.Split(',');
                var      output = array.GroupBy(q => q).ToList();
                foreach (var item in output)
                {
                    if (!string.IsNullOrEmpty(item.Key))
                    {
                        var info_add = lst.Where(q => q.Secuencia.ToString() == item.Key).FirstOrDefault();
                        lst_grabar.Add(info_add);
                    }
                }
                model.detalle            = new List <ro_SancionesPorMarcaciones_det_Info>();
                model.detalle            = lst_grabar;
                model.IdEmpresa          = IdEmpresa;
                model.IdAjuste           = IdAjuste;
                model.IdNomina_Tipo      = IdNomina_Tipo;
                model.IdNomina_TipoLiqui = IdNomina_TipoLiqui;
                model.FechaFin           = Convert.ToDateTime(FechaFin);
                model.FechaInicio        = Convert.ToDateTime(FechaInicio);
                model.FechaNovedades     = Convert.ToDateTime(FechaNovedades);
                model.Observacion        = Observacion;
                model.IdUsuario          = SessionFixed.IdUsuario;
                bus_sanciones.anularDB(model);
            }
            return(Json("", JsonRequestBehavior.AllowGet));
        }
        public ro_SancionesPorMarcaciones_Info get_info(int IdEmpresa, int IdAjuste)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_SancionesPorMarcaciones entity = Context.ro_SancionesPorMarcaciones.Where(v => v.IdEmpresa == IdEmpresa && v.IdAjuste == IdAjuste).FirstOrDefault();

                    if (entity == null)
                    {
                        return(new ro_SancionesPorMarcaciones_Info());
                    }

                    ro_SancionesPorMarcaciones_Info info = new ro_SancionesPorMarcaciones_Info
                    {
                        IdEmpresa          = entity.IdEmpresa,
                        IdAjuste           = entity.IdEmpresa,
                        IdNomina_Tipo      = entity.IdNomina_Tipo,
                        IdNomina_TipoLiqui = entity.IdNomina_TipoLiqui,
                        FechaInicio        = entity.FechaInicio,
                        FechaFin           = entity.FechaFin,
                        Observacion        = entity.Observacion,
                        FechaNovedades     = entity.FechaNovedades
                    };

                    return(info);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ActionResult Nuevo(ro_SancionesPorMarcaciones_Info model)
        {
            var parametros = bus_parametro.get_info(model.IdEmpresa);

            if (parametros == null)
            {
                parametros = new ro_Parametros_Info();
            }
            model.detalle   = ro_SancionesPorMarcaciones_det_Info_list.get_list(model.IdTransaccionSession);
            model.IdUsuario = SessionFixed.IdUsuario;
            if (model.detalle == null || model.detalle.Count() == 0)
            {
                ViewBag.mensaje = "No existe detalle de marcaciones";
                cargar_combos(model.IdNomina_Tipo);
                return(View(model));
            }



            model.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
            //model.IdUsuario = SessionFixed.IdUsuario;
            if (!bus_sanciones.guardarDB(model))
            {
                cargar_combos(model.IdNomina_Tipo);
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult GridViewPartial_control_marcaciones_det()
        {
            SessionFixed.IdTransaccionSessionActual = Request.Params["TransaccionFixed"] != null ? Request.Params["TransaccionFixed"].ToString() : SessionFixed.IdTransaccionSessionActual;
            ro_SancionesPorMarcaciones_Info model = new ro_SancionesPorMarcaciones_Info();

            model.detalle = ro_SancionesPorMarcaciones_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_control_marcaciones_det", model));
        }
        public ActionResult EditingDelete([ModelBinder(typeof(DevExpressEditorsBinder))] ro_SancionesPorMarcaciones_det_Info info_det)
        {
            ro_SancionesPorMarcaciones_det_Info_list.DeleteRow(Convert.ToInt32(info_det.Secuencia), Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            ro_SancionesPorMarcaciones_Info model = new ro_SancionesPorMarcaciones_Info();

            model.detalle = ro_SancionesPorMarcaciones_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_control_marcaciones_det", model));
        }
Exemplo n.º 6
0
 public bool anularDB(ro_SancionesPorMarcaciones_Info info)
 {
     try
     {
         return(odata.anularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] ro_SancionesPorMarcaciones_det_Info info_det)
        {
            if (ModelState.IsValid)
            {
                ro_SancionesPorMarcaciones_det_Info_list.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            ro_SancionesPorMarcaciones_Info model = new ro_SancionesPorMarcaciones_Info();

            model.detalle = ro_SancionesPorMarcaciones_det_Info_list.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_control_marcaciones_det", model));
        }
        public ActionResult Anular(ro_SancionesPorMarcaciones_Info model)
        {
            model.detalle = ro_SancionesPorMarcaciones_det_Info_list.get_list(model.IdTransaccionSession);

            model.IdEmpresa       = Convert.ToInt32(SessionFixed.IdEmpresa);
            model.IdUsuarioUltAnu = SessionFixed.IdUsuario;
            model.Fecha_UltAnu    = DateTime.Now;
            if (!bus_sanciones.anularDB(model))
            {
                cargar_combos(model.IdNomina_Tipo);
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
        public bool anularDB(ro_SancionesPorMarcaciones_Info info)
        {
            try
            {
                ro_SancionesPorMarcaciones_x_novedad_Data odata_novedad_x_sanciones = new ro_SancionesPorMarcaciones_x_novedad_Data();
                var lista_novedades_a_eliminar = odata_novedad_x_sanciones.get_list(info.IdEmpresa, info.IdAjuste).ToList();


                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    #region anulando cabecera
                    ro_SancionesPorMarcaciones entity = Context.ro_SancionesPorMarcaciones.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste).FirstOrDefault();
                    if (entity == null)
                    {
                        return(false);
                    }
                    entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    entity.Fecha_UltAnu    = DateTime.Now;
                    #endregion



                    #region anulando novedades

                    foreach (var item in lista_novedades_a_eliminar)
                    {
                        var info_novedad = Context.ro_empleado_Novedad.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad && q.IdEmpleado == item.IdEmpleado).FirstOrDefault();
                        if (info_novedad != null)
                        {
                            info_novedad.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                            info.Fecha_UltAnu            = DateTime.Now;
                            info_novedad.Estado          = "I";
                            Context.SaveChanges();
                        }
                    }

                    #endregion
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
 public ActionResult Modificar(ro_SancionesPorMarcaciones_Info model)
 {
     model.detalle = ro_SancionesPorMarcaciones_det_Info_list.get_list(model.IdTransaccionSession);
     if (model.detalle == null || model.detalle.Count() == 0)
     {
         ViewBag.mensaje = "No existe detalle de marcaciones";
         cargar_combos(model.IdNomina_Tipo);
         return(View(model));
     }
     model.IdEmpresa       = Convert.ToInt32(SessionFixed.IdEmpresa);
     model.IdUsuarioUltMod = SessionFixed.IdUsuario;
     if (!bus_sanciones.modificarDB(model))
     {
         cargar_combos(model.IdNomina_Tipo);
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
 public ActionResult Anular(int IdEmpresa = 0, int IdTransaccion = 0)
 {
     #region Validar Session
     if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
     {
         return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
     }
     SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
     SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
     #endregion
     ro_SancionesPorMarcaciones_Info model = bus_sanciones.get_info(IdEmpresa, IdTransaccion);
     model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
     if (model == null)
     {
         return(RedirectToAction("Index"));
     }
     model.detalle = bus_sanciones_det.get_list(IdEmpresa, IdTransaccion);
     ro_SancionesPorMarcaciones_det_Info_list.set_list(model.detalle, Convert.ToDecimal(SessionFixed.IdTransaccionSession));
     cargar_combos(model.IdNomina_Tipo);
     return(View(model));
 }
 public ActionResult Nuevo()
 {
     #region Validar Session
     if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
     {
         return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
     }
     SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
     SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
     #endregion
     ro_SancionesPorMarcaciones_Info model = new ro_SancionesPorMarcaciones_Info
     {
         IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa),
         FechaInicio          = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1),
         FechaFin             = DateTime.Now.AddMonths(1).AddDays(-1),
         FechaNovedades       = DateTime.Now,
         IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession),
     };
     ro_SancionesPorMarcaciones_det_Info_list.set_list(model.detalle, Convert.ToDecimal(SessionFixed.IdTransaccionSession));
     cargar_combos(0);
     return(View(model));
 }
        public bool guardarDB(ro_SancionesPorMarcaciones_Info info)
        {
            try
            {
                ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data();

                decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);

                int secuancia = 1;
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_SancionesPorMarcaciones entity = new ro_SancionesPorMarcaciones
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdAjuste           = info.IdAjuste = get_id(info.IdEmpresa),
                        IdNomina_Tipo      = info.IdNomina_Tipo,
                        IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                        FechaInicio        = info.FechaInicio, FechaFin = info.FechaFin,
                        Observacion        = info.Observacion,
                        Fecha_Transac      = DateTime.Now,
                        IdUsuario          = info.IdUsuario,
                        Estado             = true,
                        FechaNovedades     = info.FechaNovedades
                    };
                    Context.ro_SancionesPorMarcaciones.Add(entity);
                    foreach (var item in info.detalle)
                    {
                        ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdSucursal    = item.IdSucursal,
                            IdAjuste      = info.IdAjuste,
                            IdCalendario  = item.IdCalendario,
                            IdEmpleado    = item.IdEmpleado,
                            EsHoraIngreso = item.HoraIni,
                            HoraIngreso   = item.time_entrada1,
                            EsHoraSalida  = item.HoraFin,
                            HoraSalio     = item.time_salida1,
                            Minutos       = item.Minutos,
                            FechaRegistro = item.es_fechaRegistro,
                            Secuencia     = secuancia
                        };
                        Context.ro_SancionesPorMarcaciones_det.Add(entity_det);
                        secuancia++;
                    }

                    // agrupnado para obter valor para novedad
                    secuancia = 1;
                    var lista_novedades = (from q in info.detalle
                                           group q by new
                    {
                        q.IdEmpresa,
                        q.IdSucursal,
                        q.IdEmpleado,
                        q.Minutos,
                        q.Sueldo
                    } into Grupo
                                           select new ro_SancionesPorMarcaciones_x_novedad_Info
                    {
                        IdEmpresa = Grupo.Key.IdEmpresa,
                        IdSucursal = Grupo.Key.IdSucursal,
                        IdEmpleado = Grupo.Key.IdEmpleado,
                        Valor = Grupo.Sum(s => s.Minutos),
                        Sueldo = Grupo.Key.Sueldo
                    }).ToList();
                    // grabando novedades
                    foreach (var item in lista_novedades)
                    {
                        ro_empleado_Novedad novedad = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdSucursal         = item.IdSucursal,
                            IdNovedad          = IdNovedad,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                            Observacion        = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10),
                            Fecha         = info.FechaNovedades,
                            Estado        = "A",
                            Fecha_Transac = DateTime.Now,
                            IdUsuario     = info.IdUsuario
                        };
                        Context.ro_empleado_Novedad.Add(novedad);

                        ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdNovedad   = IdNovedad,
                            IdRubro     = "200",
                            Valor       = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60),
                            FechaPago   = info.FechaNovedades,
                            EstadoCobro = "PEN",
                            Observacion = "Novedad generda por proceso del sistema",
                            Secuencia   = 1,
                        };
                        novedad_det.Valor = Math.Round(novedad_det.Valor, 2);
                        Context.ro_empleado_novedad_det.Add(novedad_det);

                        ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdAjuste           = info.IdAjuste,
                            Secuencia          = secuancia,
                            IdNovedad          = novedad.IdNovedad,
                            IdEmpresa_nov      = info.IdEmpresa,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui
                        };
                        Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc);
                        IdNovedad++;
                        secuancia++;
                    }

                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public bool modificarDB(ro_SancionesPorMarcaciones_Info info)
        {
            try
            {
                ro_SancionesPorMarcaciones_x_novedad_Data odata_novedad_x_sanciones = new ro_SancionesPorMarcaciones_x_novedad_Data();
                ro_empleado_novedad_Data odata_novedad = new ro_empleado_novedad_Data();
                var lista_novedades_a_eliminar         = odata_novedad_x_sanciones.get_list(info.IdEmpresa, info.IdAjuste).ToList();


                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    #region modificando cabecera
                    ro_SancionesPorMarcaciones entity = Context.ro_SancionesPorMarcaciones.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste).FirstOrDefault();
                    if (entity == null)
                    {
                        return(false);
                    }
                    entity.FechaInicio     = info.FechaInicio;
                    entity.FechaFin        = info.FechaFin;
                    entity.Observacion     = info.Observacion;
                    entity.FechaNovedades  = info.FechaNovedades;
                    entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    entity.Fecha_UltMod    = DateTime.Now;
                    #endregion


                    #region eliminado detalle
                    #region eliminando novedad por sancion
                    var ro_sanciones_det = Context.ro_SancionesPorMarcaciones_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste);
                    Context.ro_SancionesPorMarcaciones_det.RemoveRange(ro_sanciones_det);

                    #endregion
                    #endregion
                    #region eliminando novedad por sancion
                    var ro_novedad_x_sanciones = Context.ro_SancionesPorMarcaciones_x_novedad.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdAjuste == info.IdAjuste);
                    Context.ro_SancionesPorMarcaciones_x_novedad.RemoveRange(ro_novedad_x_sanciones);

                    #endregion


                    #region eliminado_novedades

                    foreach (var item in lista_novedades_a_eliminar)
                    {
                        var info_novedad_det = Context.ro_empleado_novedad_det.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad).FirstOrDefault();
                        Context.ro_empleado_novedad_det.Remove(info_novedad_det);

                        var info_novedad = Context.ro_empleado_Novedad.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdNovedad == item.IdNovedad && q.IdEmpleado == item.IdEmpleado).FirstOrDefault();
                        Context.ro_empleado_Novedad.Remove(info_novedad);
                    }
                    #endregion

                    #region grabando novedades

                    decimal IdNovedad = odata_novedad.get_id(info.IdEmpresa);
                    int     secuancia = 1;

                    foreach (var item in info.detalle)
                    {
                        ro_SancionesPorMarcaciones_det entity_det = new ro_SancionesPorMarcaciones_det
                        {
                            IdEmpresa     = info.IdEmpresa,
                            IdSucursal    = item.IdSucursal,
                            IdAjuste      = info.IdAjuste,
                            IdCalendario  = item.IdCalendario,
                            IdEmpleado    = item.IdEmpleado,
                            EsHoraIngreso = item.HoraIni,
                            HoraIngreso   = item.time_entrada1,
                            EsHoraSalida  = item.HoraFin,
                            HoraSalio     = item.time_salida1,
                            Minutos       = item.Minutos,
                            FechaRegistro = item.es_fechaRegistro,
                            Secuencia     = secuancia
                        };
                        Context.ro_SancionesPorMarcaciones_det.Add(entity_det);
                        secuancia++;
                    }

                    // agrupnado para obter valor para novedad
                    secuancia = 1;
                    var lista_novedades = (from q in info.detalle
                                           group q by new
                    {
                        q.IdEmpresa,
                        q.IdSucursal,
                        q.IdEmpleado,
                        q.Minutos,
                        q.Sueldo
                    } into Grupo
                                           select new ro_SancionesPorMarcaciones_x_novedad_Info
                    {
                        IdEmpresa = Grupo.Key.IdEmpresa,
                        IdSucursal = Grupo.Key.IdSucursal,
                        IdEmpleado = Grupo.Key.IdEmpleado,
                        Valor = Grupo.Sum(s => s.Minutos),
                        Sueldo = Grupo.Key.Sueldo
                    }).ToList();
                    // grabando novedades
                    foreach (var item in lista_novedades)
                    {
                        ro_empleado_Novedad novedad = new ro_empleado_Novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdSucursal         = item.IdSucursal,
                            IdNovedad          = IdNovedad,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui,
                            Observacion        = "Novedad generada por proceso del sistema fecha descuento " + info.FechaNovedades.ToString().Substring(0, 10),
                            Fecha         = info.FechaNovedades,
                            Estado        = "A",
                            Fecha_Transac = DateTime.Now,
                            IdUsuario     = info.IdUsuario
                        };
                        Context.ro_empleado_Novedad.Add(novedad);

                        ro_empleado_novedad_det novedad_det = new ro_empleado_novedad_det
                        {
                            IdEmpresa   = info.IdEmpresa,
                            IdNovedad   = IdNovedad,
                            IdRubro     = "200",
                            Valor       = item.Valor * (((Convert.ToDouble(item.Sueldo)) / 240) / 60),
                            FechaPago   = info.FechaNovedades,
                            EstadoCobro = "PEN",
                            Observacion = "Novedad generda por proceso del sistema",
                            Secuencia   = 1,
                        };
                        novedad_det.Valor = Math.Round(novedad_det.Valor, 2);
                        Context.ro_empleado_novedad_det.Add(novedad_det);

                        ro_SancionesPorMarcaciones_x_novedad novedad_x_sanc = new ro_SancionesPorMarcaciones_x_novedad
                        {
                            IdEmpresa          = info.IdEmpresa,
                            IdAjuste           = info.IdAjuste,
                            Secuencia          = secuancia,
                            IdNovedad          = novedad.IdNovedad,
                            IdEmpresa_nov      = info.IdEmpresa,
                            IdEmpleado         = item.IdEmpleado,
                            IdNomina_Tipo      = info.IdNomina_Tipo,
                            IdNomina_TipoLiqui = info.IdNomina_TipoLiqui
                        };
                        Context.ro_SancionesPorMarcaciones_x_novedad.Add(novedad_x_sanc);
                        IdNovedad++;
                        secuancia++;
                    }


                    #endregion

                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }