Ejemplo n.º 1
0
        private void UcHorarioOnOnAceptarModal()
        {
            try
            {
                Session["HorariosSubRoles"] = Session["HorariosSubRoles"] ?? new List <HorarioSubGrupo>();
                foreach (RepeaterItem item in ucHorario.HorariosSubRol)
                {
                    Label lblIdSubRol = (Label)item.FindControl("lblIdSubRol");
                    ((List <HorarioSubGrupo>)Session["HorariosSubRoles"]).RemoveAll(w => w.IdSubGrupoUsuario == Convert.ToInt32(lblIdSubRol.Text));
                }

                foreach (RepeaterItem item in ucHorario.HorariosSubRol)
                {
                    Label           lblIdSubRol   = (Label)item.FindControl("lblIdSubRol");
                    Label           lblDia        = (Label)item.FindControl("lblDia");
                    Label           lblHoraInicio = (Label)item.FindControl("lblHoraInicio");
                    Label           lblHorafin    = (Label)item.FindControl("lblHoraFin");
                    HorarioSubGrupo dia           = new HorarioSubGrupo
                    {
                        IdSubGrupoUsuario = Convert.ToInt32(lblIdSubRol.Text),
                        Dia        = Convert.ToInt32(lblDia.Text),
                        HoraInicio = lblHoraInicio.Text,
                        HoraFin    = lblHorafin.Text
                    };
                    ((List <HorarioSubGrupo>)Session["HorariosSubRoles"]).Add(dia);
                }
                ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "CierraPopup(\"#modalHorarios\");", true);
            }
            catch (Exception ex)
            {
                if (_lstError == null)
                {
                    _lstError = new List <string>();
                }
                _lstError.Add(ex.Message);
                Alerta = _lstError;
            }
        }
Ejemplo n.º 2
0
        public void ActualizarGrupo(GrupoUsuario gpo, Dictionary <int, int> horarios, Dictionary <int, List <DiaFestivoSubGrupo> > diasDescanso)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                gpo.Descripcion = gpo.Descripcion.Trim();
                if (db.GrupoUsuario.Any(a => a.Descripcion == gpo.Descripcion && a.IdTipoGrupo == gpo.IdTipoGrupo && a.Id != gpo.Id && a.IdTipoUsuario == gpo.IdTipoUsuario))
                {
                    throw new Exception("Ya existe un Grupo con esta descripción");
                }
                GrupoUsuario           grupo = db.GrupoUsuario.SingleOrDefault(w => w.Id == gpo.Id);
                List <SubGrupoUsuario> sb    = new List <SubGrupoUsuario>();
                if (grupo != null)
                {
                    grupo.Descripcion = gpo.Descripcion.Trim();

                    #region Manejo de Horarios
                    if (horarios != null && horarios.Count > 0)
                    {
                        foreach (KeyValuePair <int, int> horario in horarios)
                        {
                            var horariosGrupo = from hsg in db.HorarioSubGrupo
                                                join sbgu in db.SubGrupoUsuario on hsg.IdSubGrupoUsuario equals sbgu.Id
                                                where sbgu.IdGrupoUsuario == grupo.Id
                                                select hsg;


                            List <HorarioSubGrupo> lstHorarioSgpoEliminar = horariosGrupo.ToList();
                            foreach (HorarioSubGrupo horarioDbDelete in lstHorarioSgpoEliminar)
                            {
                                db.HorarioSubGrupo.DeleteObject(horarioDbDelete);
                            }



                            List <HorarioSubGrupo> lstHorarioGpo = new List <HorarioSubGrupo>();
                            List <HorarioDetalle>  detalle       = db.HorarioDetalle.Where(w => w.IdHorario == horario.Value).ToList();
                            foreach (HorarioDetalle horarioDetalle in detalle)
                            {
                                HorarioSubGrupo horarioGpo = new HorarioSubGrupo
                                {
                                    IdHorario         = horario.Value,
                                    IdSubGrupoUsuario = horario.Key,
                                    Dia        = horarioDetalle.Dia,
                                    HoraInicio = horarioDetalle.HoraInicio,
                                    HoraFin    = horarioDetalle.HoraFin
                                };
                                lstHorarioGpo.Add(horarioGpo);
                            }

                            SubGrupoUsuario subGrupo = new SubGrupoUsuario
                            {
                                Id             = grupo.SubGrupoUsuario.FirstOrDefault(f => f.IdSubRol == horario.Key) != null?grupo.SubGrupoUsuario.First(f => f.IdSubRol == horario.Key).Id : 0,
                                IdGrupoUsuario = grupo.Id,
                                IdSubRol       = horario.Key,
                                Habilitado     = true
                            };
                            subGrupo.HorarioSubGrupo    = subGrupo.HorarioSubGrupo ?? new List <HorarioSubGrupo>();
                            subGrupo.DiaFestivoSubGrupo = subGrupo.DiaFestivoSubGrupo ?? new List <DiaFestivoSubGrupo>();
                            subGrupo.HorarioSubGrupo.AddRange(lstHorarioGpo);

                            List <DiaFestivoSubGrupo> diasDb = db.DiaFestivoSubGrupo.Where(w => w.IdSubGrupoUsuario == subGrupo.Id).ToList();
                            foreach (DiaFestivoSubGrupo festivoSubGrupo in diasDb)
                            {
                                db.DiaFestivoSubGrupo.DeleteObject(festivoSubGrupo);
                            }

                            List <DiaFestivoSubGrupo> lstDiasDescanso = diasDescanso.SingleOrDefault(w => w.Key == horario.Key).Value;
                            if (lstDiasDescanso != null)
                            {
                                foreach (DiaFestivoSubGrupo dia in lstDiasDescanso)
                                {
                                    dia.IdSubGrupoUsuario = horario.Key;
                                }
                                subGrupo.DiaFestivoSubGrupo.AddRange(lstDiasDescanso);
                            }
                            if (grupo.SubGrupoUsuario == null)
                            {
                                grupo.SubGrupoUsuario = new List <SubGrupoUsuario>();
                            }

                            if (grupo.SubGrupoUsuario.SingleOrDefault(s => s.IdGrupoUsuario == subGrupo.IdGrupoUsuario && s.IdSubRol == subGrupo.IdSubRol) == null)
                            {
                                grupo.SubGrupoUsuario.Add(subGrupo);
                            }
                            else
                            {
                                grupo.SubGrupoUsuario.SingleOrDefault(s => s.IdGrupoUsuario == subGrupo.IdGrupoUsuario && s.IdSubRol == subGrupo.IdSubRol).HorarioSubGrupo = subGrupo.HorarioSubGrupo;
                            }

                            if (grupo.SubGrupoUsuario.SingleOrDefault(s => s.IdGrupoUsuario == subGrupo.IdGrupoUsuario && s.IdSubRol == subGrupo.IdSubRol) == null)
                            {
                                grupo.SubGrupoUsuario.Add(subGrupo);
                            }
                            else
                            {
                                grupo.SubGrupoUsuario.SingleOrDefault(s => s.IdGrupoUsuario == subGrupo.IdGrupoUsuario && s.IdSubRol == subGrupo.IdSubRol).DiaFestivoSubGrupo = subGrupo.DiaFestivoSubGrupo;
                            }
                            //sb.Add(subGrupo);
                        }
                    }

                    #endregion Manejo de Horarios
                    grupo.TieneSupervisor = grupo.SubGrupoUsuario.Any(a => a.IdSubRol == (int)BusinessVariables.EnumSubRoles.Supervisor);
                    #region Manejo de politicas
                    List <EstatusTicketSubRolGeneral>     lstEliminarPoliticaEstatus           = db.EstatusTicketSubRolGeneral.Where(w => w.IdGrupoUsuario == grupo.Id).ToList();
                    List <EstatusAsignacionSubRolGeneral> lstEliminarPoliticaEstatusAsignacion = db.EstatusAsignacionSubRolGeneral.Where(w => w.IdGrupoUsuario == grupo.Id).ToList();
                    foreach (EstatusTicketSubRolGeneral politicaEstatus in lstEliminarPoliticaEstatus)
                    {
                        db.EstatusTicketSubRolGeneral.DeleteObject(politicaEstatus);
                    }
                    foreach (EstatusAsignacionSubRolGeneral politicaAsignacion in lstEliminarPoliticaEstatusAsignacion)
                    {
                        db.EstatusAsignacionSubRolGeneral.DeleteObject(politicaAsignacion);
                    }
                    grupo.EstatusTicketSubRolGeneral     = GeneraEstatusGrupoDefault(grupo);
                    grupo.EstatusAsignacionSubRolGeneral = GeneraEstatusAsignacionGrupoDefault(grupo);
                    #endregion Manejo de politicas

                    if (grupo.IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.AgenteUniversal)
                    {
                        grupo.LevantaTicket = gpo.LevantaTicket;
                        grupo.RecadoTicket  = gpo.RecadoTicket;
                    }
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 3
0
        public void GuardarGrupoUsuario(GrupoUsuario grupoUsuario, Dictionary <int, int> horarios, Dictionary <int, List <DiaFestivoSubGrupo> > diasDescanso)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                grupoUsuario.Descripcion = grupoUsuario.Descripcion.Trim();
                if (db.GrupoUsuario.Any(a => a.Descripcion == grupoUsuario.Descripcion && a.IdTipoGrupo == grupoUsuario.IdTipoGrupo && a.IdTipoUsuario == grupoUsuario.IdTipoUsuario))
                {
                    throw new Exception("Ya existe un Grupo con esta descripcion");
                }
                grupoUsuario.SubGrupoUsuario = new List <SubGrupoUsuario>();
                foreach (KeyValuePair <int, int> horario in horarios)
                {
                    List <HorarioSubGrupo> lstHorarioGpo = new List <HorarioSubGrupo>();
                    List <HorarioDetalle>  detalle       = db.HorarioDetalle.Where(w => w.IdHorario == horario.Value).ToList();
                    foreach (HorarioDetalle horarioDetalle in detalle)
                    {
                        HorarioSubGrupo horarioGpo = new HorarioSubGrupo
                        {
                            IdHorario         = horario.Value,
                            IdSubGrupoUsuario = horario.Key,
                            Dia        = horarioDetalle.Dia,
                            HoraInicio = horarioDetalle.HoraInicio,
                            HoraFin    = horarioDetalle.HoraFin
                        };
                        lstHorarioGpo.Add(horarioGpo);
                    }

                    SubGrupoUsuario subGrupo = new SubGrupoUsuario();
                    subGrupo.IdSubRol           = horario.Key;
                    subGrupo.Habilitado         = true;
                    subGrupo.HorarioSubGrupo    = subGrupo.HorarioSubGrupo ?? new List <HorarioSubGrupo>();
                    subGrupo.DiaFestivoSubGrupo = subGrupo.DiaFestivoSubGrupo ?? new List <DiaFestivoSubGrupo>();
                    subGrupo.HorarioSubGrupo.AddRange(lstHorarioGpo);
                    List <DiaFestivoSubGrupo> lstDiasDescanso = diasDescanso.SingleOrDefault(w => w.Key == horario.Key).Value;
                    if (lstDiasDescanso != null)
                    {
                        foreach (DiaFestivoSubGrupo dia in lstDiasDescanso)
                        {
                            dia.IdSubGrupoUsuario = horario.Key;
                        }
                        subGrupo.DiaFestivoSubGrupo.AddRange(lstDiasDescanso);
                    }

                    grupoUsuario.SubGrupoUsuario.Add(subGrupo);
                }
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                //TODO: Cambiar habilitado por el que viene embebido
                grupoUsuario.Habilitado      = true;
                grupoUsuario.TieneSupervisor = grupoUsuario.SubGrupoUsuario.Any(a => a.IdSubRol == (int)BusinessVariables.EnumSubRoles.Supervisor);
                if (grupoUsuario.Id == 0)
                {
                    grupoUsuario.EstatusTicketSubRolGeneral     = GeneraEstatusGrupoDefault(grupoUsuario);
                    grupoUsuario.EstatusAsignacionSubRolGeneral = GeneraEstatusAsignacionGrupoDefault(grupoUsuario);
                    db.GrupoUsuario.AddObject(grupoUsuario);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }