Exemplo n.º 1
0
        /// <summary>
        ///   Abre la ventana detalle en modo "detalle" o "edición" dependiendo de sus permisos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [vku] 22/Jul/2016 Created
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            TeamSalesmen          teamSalesmen          = (TeamSalesmen)dgrTeams.SelectedItem;
            frmTeamSalesmenDetail frmTeamSalesmenDetail = new frmTeamSalesmenDetail();

            frmTeamSalesmenDetail.Owner    = this;
            frmTeamSalesmenDetail.oldTeam  = teamSalesmen;
            frmTeamSalesmenDetail.enumMode = EnumMode.Edit;
            if (frmTeamSalesmenDetail.ShowDialog() == true)
            {
                int nIndex = 0;
                List <TeamSalesmen> lstTeams = (List <TeamSalesmen>)dgrTeams.ItemsSource;
                if (ValidateFilter(frmTeamSalesmenDetail.team))                            //Valida si cumple con los filtros
                {
                    ObjectHelper.CopyProperties(teamSalesmen, frmTeamSalesmenDetail.team); //Actualiza los datos
                    lstTeams.Sort((x, y) => string.Compare(x.tsN, y.tsN));                 //Ordena la lista
                    nIndex = lstTeams.IndexOf(teamSalesmen);                               //busca la posición del registro
                }
                else
                {
                    lstTeams.Remove(teamSalesmen);                 //Quita el registro
                }
                dgrTeams.Items.Refresh();                          //Actualiza la vista
                GridHelper.SelectRow(dgrTeams, nIndex);            //Selecciona el registro
                StatusBarReg.Content = lstTeams.Count + " Teams."; //Actualiza el contador
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///   Carga los equipos de vendedores
        /// </summary>
        /// <param name="team"></param>}
        /// <history>
        ///   [vku] 22/Jul/2016 Created
        /// </history>
        public async void LoadTeamsSalesmen(TeamSalesmen team = null)
        {
            try
            {
                status.Visibility = Visibility.Visible;
                int nIndex = 0;
                List <TeamSalesmen> lstTeamsSalesmen = await BRTeamsSalesMen.GetTeamsSalesMen(_nStatus, _teamFilter);

                dgrTeams.ItemsSource = lstTeamsSalesmen;

                if (team != null && lstTeamsSalesmen.Count > 0)
                {
                    team   = lstTeamsSalesmen.FirstOrDefault(ts => ts.tsID == team.tsID);
                    nIndex = lstTeamsSalesmen.IndexOf(team);
                }
                GridHelper.SelectRow(dgrTeams, nIndex);

                StatusBarReg.Content = lstTeamsSalesmen.Count + " Teams.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///  valida que un objeto team cumpla con los filtros actuales
        /// </summary>
        /// <param name="team">Objeto a validar</param>
        /// <returns>True. Si cumple | False. No cumple</returns>
        /// <history>
        ///   [vku] 23/Jul/2016 Created
        /// </history>
        private bool ValidateFilter(TeamSalesmen team)
        {
            if (_nStatus != -1)//Filtro por Status
            {
                if (team.tsA != Convert.ToBoolean(_nStatus))
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_teamFilter.tsID))//Filtro por ID
            {
                if (team.tsID != _teamFilter.tsID)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_teamFilter.tsN))//Filtro por descripción
            {
                if (!team.tsN.Contains(_teamFilter.tsN, StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        ///   Carga los integrantes
        /// </summary>
        /// <history>
        ///   [vku] 23/Jul/2016 Created
        /// </history>
        public async void LoadIntegrantes(TeamSalesmen team)
        {
            try
            {
                List <Personnel> lstPersonnel = await BRPersonnel.GetPersonnels(blnLiner : true);

                cboIntegrant.ItemsSource  = lstPersonnel;
                _lstPersonnel             = lstPersonnel.Where(pe => pe.peTeam == team.tsID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamSalesmen) && pe.pePlaceID == team.tssr).OrderBy(pe => pe.pepo).ThenBy(pe => pe.peN).ToList();
                dgrIntegrants.ItemsSource = _lstPersonnel;
                List <Personnel> lstPersonnelIni = await BRPersonnel.GetPersonnels();

                _lstOldPersonnel     = lstPersonnelIni.Where(pe => pe.peTeam == team.tsID && pe.peTeamType == EnumToListHelper.GetEnumDescription(EnumTeamType.TeamSalesmen) && pe.pePlaceID == team.tssr).OrderBy(pe => pe.pepo).ThenBy(pe => pe.peN).ToList(); //Cargamos la lista con los datos iniciales
                StatusBarReg.Content = _lstPersonnel.Count + " Integrants.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        ///   Recarga los datos del grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        ///   [vku] 22/Jul/2016 Created
        /// </history>
        private void btnRef_Click(object sender, RoutedEventArgs e)
        {
            TeamSalesmen team = (TeamSalesmen)dgrTeams.SelectedItem;

            LoadTeamsSalesmen(team);
        }
Exemplo n.º 6
0
        /// <summary>
        ///    Agrega | Actualiza un equipo de PRs
        /// </summary>
        /// <param name="idUser">Clave de usuario</param>
        /// <param name="team">Objeto a guardar</param>
        /// <param name="blnUpdate">True - Actualiza | False - Agrega</param>
        /// <param name="lstAdd">Personnels a asignar al equipo</param>
        /// <param name="lstDel">Personeels a remover del equipo</param>
        /// <param name="lstChanged">Lista de integrantes que tuvieron cambios</param>
        /// <returns>0. No se guardó | 1. Se guardó | -1. Existe un registro con el mismo ID</returns>
        /// <history>
        ///   [vku] 23/Jul/2016 Created
        /// </history>
        public async static Task <int> SaveTeam(string idUser, TeamSalesmen team, bool blnUpdate, List <Personnel> lstAdd, List <Personnel> lstDel, List <Personnel> lstChanged)
        {
            int nRes = await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transaction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            #region ChangePersonnel
                            if (lstChanged.Count > 0)
                            {
                                foreach (Personnel p in lstChanged)
                                {
                                    dbContext.Entry(p).State = EntityState.Modified;

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    PostLog postLog     = new PostLog();
                                    postLog.ppChangedBy = idUser;
                                    postLog.ppDT        = dtmServerDate;
                                    postLog.pppe        = p.peID;
                                    postLog.pppo        = p.pepo;
                                    dbContext.PostsLogs.Add(postLog);
                                }
                            }
                            #endregion

                            #region Update
                            if (blnUpdate)
                            {
                                dbContext.Entry(team).State = EntityState.Modified;
                            }
                            #endregion
                            #region Add
                            else
                            {
                                TeamSalesmen teamVal = dbContext.TeamsSalesmen.Where(te => te.tsID == team.tsID).FirstOrDefault();
                                if (teamVal != null)
                                {
                                    return(-1);
                                }
                                else
                                {
                                    dbContext.TeamsSalesmen.Add(team);
                                }
                            }
                            #endregion

                            #region addPerssonnel
                            if (lstAdd.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstAdd.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = EnumToListHelper.GetEnumDescription(EnumTeamType.TeamSalesmen);
                                    pe.pePlaceID  = team.tssr;
                                    pe.peTeam     = team.tsID;

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);
                                    Personnel p = lstAdd.Where(pa => pa.peID == pe.peID).FirstOrDefault();
                                    if (p.pepo != pe.pepo)
                                    {
                                        dbContext.Entry(p).State = EntityState.Modified;

                                        PostLog postLog     = new PostLog();
                                        postLog.ppChangedBy = idUser;
                                        postLog.ppDT        = dtmServerDate;
                                        postLog.pppe        = pe.peID;
                                        postLog.pppo        = p.pepo;
                                        dbContext.PostsLogs.Add(postLog);
                                    }
                                });
                            }
                            #endregion

                            #region del Personnel
                            if (lstDel.Count > 0)
                            {
                                dbContext.Personnels.AsEnumerable().Where(pe => lstDel.Any(pee => pee.peID == pe.peID)).ToList().ForEach(pe =>
                                {
                                    pe.peTeamType = null;
                                    pe.pePlaceID  = null;
                                    pe.peTeam     = null;

                                    DateTime dtmServerDate = BRHelpers.GetServerDateTime();

                                    TeamLog teamLog     = new TeamLog();
                                    teamLog.tlDT        = dtmServerDate;
                                    teamLog.tlChangedBy = idUser;
                                    teamLog.tlpe        = pe.peID;
                                    teamLog.tlTeamType  = pe.peTeamType;
                                    teamLog.tlPlaceID   = pe.pePlaceID;
                                    teamLog.tlTeam      = pe.peTeam;
                                    dbContext.TeamsLogs.Add(teamLog);
                                });
                            }
                            #endregion

                            int nSave = dbContext.SaveChanges();
                            transaction.Commit();
                            return(nSave);
                        }
                        catch
                        {
                            transaction.Rollback();
                            return(0);
                        }
                    }
                }
            });

            return(nRes);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Obtiene registros del catalogo TeamsSalesmen
        /// </summary>
        /// <param name="nStatus">-1. Todos | 0. Inactivos | 1. Activos</param>
        /// <param name="teamSalesMen">Objeto con filtros adicionales</param>
        /// <returns>Lista de tipo TeamSalesMen</returns>
        /// <history>
        /// [emoguel] created 27/04/2016
        /// [vku] 25/Jul/2016 Modified. El método ahora es asincrono
        /// </history>
        public async static Task <List <TeamSalesmen> > GetTeamsSalesMen(int nStatus = -1, TeamSalesmen teamSalesMen = null)
        {
            List <TeamSalesmen> lstTeamSalesmen = new List <TeamSalesmen>();

            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    var query = from ts in dbContext.TeamsSalesmen
                                select ts;

                    if (nStatus != -1)//Filtro por estatus
                    {
                        bool blnStatus = Convert.ToBoolean(nStatus);
                        query          = query.Where(ts => ts.tsA == blnStatus);
                    }

                    if (teamSalesMen != null)
                    {
                        if (!string.IsNullOrWhiteSpace(teamSalesMen.tssr))//Filtro por Sales Room
                        {
                            query = query.Where(ts => ts.tssr == teamSalesMen.tssr);
                        }
                        if (!string.IsNullOrWhiteSpace(teamSalesMen.tsID))//Filtro por ID
                        {
                            query = query.Where(ts => ts.tsID == teamSalesMen.tsID);
                        }

                        if (!string.IsNullOrWhiteSpace(teamSalesMen.tsN))//Filtro por descripción
                        {
                            query = query.Where(ts => ts.tsN.Contains(teamSalesMen.tsN));
                        }

                        if (!string.IsNullOrWhiteSpace(teamSalesMen.tsLeader))//Filtro por Lide
                        {
                            query = query.Where(ts => ts.tsLeader == teamSalesMen.tsLeader);
                        }
                    }
                    lstTeamSalesmen = query.OrderBy(ts => ts.tsN).ToList();
                }
            });

            return(lstTeamSalesmen);
        }