Example #1
0
		/// <summary>
		/// Constrói o horário para um funcionário específico.
		/// </summary>
		/// <param name="funcionário">Funcionário.</param>
		public Horário(Funcionário funcionário)
		{
            if (funcionário == null)
                throw new ArgumentNullException();

			this.funcionario = funcionário;
		}
		public HistóricoRelacionamentoItem(Mercadoria.Mercadoria mercadoria, double quantidade, DateTime data, Entidades.Pessoa.Funcionário funcionário, double índice)
		{
			this.mercadoria = mercadoria;
			this.quantidade = quantidade;
            this.data = data;
            this.funcionário = funcionário;
            this.indice = índice;
		}
		public FuncionárioPropriedades(Funcionário funcionário)
		{
			// This call is required by the Windows Form Designer.
			InitializeComponent();

            this.funcionário = funcionário;
			txtFuncionário.Text = funcionário.Nome;
			Estado = funcionário.Situação;
		}
		/// <summary>
		/// Constrói a tabela de horário para um funcionário.
		/// </summary>
		/// <param name="funcionário">Funcionário.</param>
		public TabelaHorário(Funcionário funcionário)
		{
            if (funcionário == null)
                throw new ArgumentNullException();

			this.funcionário = funcionário;

			Carregar();
		}
Example #5
0
		/// <summary>
		/// Constrói um horário.
		/// </summary>
		public Horário(Entidades.Pessoa.Funcionário funcionário, DayOfWeek diaSemana, ushort iniHora, ushort iniMinuto, ushort fimHora, ushort fimMinuto)
		{
			this.funcionario = funcionário;
			this.diaSemana   = diaSemana;
			this.iniHora     = iniHora;
			this.iniMinuto   = iniMinuto;
			this.fimHora     = fimHora;
			this.fimMinuto   = fimMinuto;
		}
 private void funcionárioAusência_AoAlterarAusência(Funcionário funcionário)
 {
     try
     {
         ignorarAusência = true;
         AtualizarFuncionário(funcionário);
     }
     finally
     {
         ignorarAusência = false;
     }
 }
		/// <summary>
		/// Colorir o estado do funcionário
		/// </summary>
		/// <param name="linha"></param>
		/// <param name="Funcionário"></param>
		private void ColorirFuncionário(ListViewItem linha, Funcionário funcionário)
		{
			switch (funcionário.Situação)
			{
				case EstadoFuncionário.Disponível:
					linha.ForeColor = lstVendedores.ForeColor;
					linha.UseItemStyleForSubItems = true;
					break;

                case EstadoFuncionário.Atendendo:
					linha.ForeColor = lstVendedores.ForeColor;
					linha.UseItemStyleForSubItems = false;
					linha.SubItems[colSituação.Index].ForeColor = Color.Blue;
					break;

                case EstadoFuncionário.Ausente:
					linha.ForeColor = SystemColors.GrayText;
					linha.UseItemStyleForSubItems = true;
					break;

                case EstadoFuncionário.Ocupado:
					linha.ForeColor = lstVendedores.ForeColor;
					linha.UseItemStyleForSubItems = false;
					linha.SubItems[colSituação.Index].ForeColor = Color.Red;
					break;
			}
		}
        public void AtualizarFuncionário(Funcionário funcionário)
        {
            ListViewItem linha;

            if (InvokeRequired)
            {
                AtualizarFuncionárioCallback método = new AtualizarFuncionárioCallback(AtualizarFuncionário);
                BeginInvoke(método, funcionário);
            }
            else
                try
                {
                    linha = hashVendedorLinha[funcionário.Código];

                    linha.SubItems[colSituação.Index].Text =
                        funcionário.Situação == EstadoFuncionário.Disponível ? "" : funcionário.Situação.ToString();

                    if (funcionário.Situação != EstadoFuncionário.Atendendo)
                        linha.SubItems[colCliente.Index].Text = "";

                    ColorirFuncionário(linha, funcionário);

                    if (!ignorarAusência)
                    {
                        if (funcionário.Situação == EstadoFuncionário.Ausente)
                            funcionárioAusência.AdicionarFuncionário(funcionário);
                        else
                            funcionárioAusência.RemoverFuncionário(funcionário);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
        }
Example #9
0
        public static void RegistrarAtendimento(Visita visita, Funcionário funcionário)
        {
            IniciarAtendimento(visita, funcionário);

            foreach (Rodízio rodízio in hashRodízio.Values)
                if (rodízio.Atendentes.Contains(funcionário))
                    rodízio.RealizarRodízio(funcionário);
        }
		/// <summary>
		/// Constrói a exceção.
		/// </summary>
		public ExceçãoHorárioSobreposto(Funcionário funcionário, Horário a, Horário b)
		{
            this.funcionário = funcionário;
			this.horários = new Horário [] { a, b };
		}
		/// <summary>
		/// Limpa a lista.
		/// </summary>
		private void LimparCheckList()
		{
			try
			{
				lock (this)
				{
					Funcionário [] itensRemoção;

                    limpando = true;
                    itensRemoção = new Funcionário[chkAusentes.CheckedItems.Count];

					chkAusentes.CheckedItems.CopyTo(itensRemoção, 0);
					
					foreach (Funcionário funcionário in itensRemoção)
						RemoverFuncionário(funcionário);
				}
			}
			catch (Exception e)
			{
				Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);
			}
			finally
			{
                limpando = false;
                chkAusentes.Refresh();
			}
		}
		/// <summary>
		/// Inicia remoção de funcionário da lista de ausentes.
		/// </summary>
		/// <param name="funcionário">Funcionário ausente.</param>
		private void IniciarRemoçãoFuncionário(Funcionário funcionário)
		{
			int index;

			index = chkAusentes.Items.IndexOf(funcionário);

			if (index < 0)
				throw new Exception("Funcionário não encontrado na lista de funcionários ausentes.");

			if (funcionário.Situação == EstadoFuncionário.Ausente)
				funcionário.Situação = EstadoFuncionário.Disponível;
		}
Example #13
0
 /// <summary>
 /// Constrói a estrutura de atendimento.
 /// </summary>
 /// <param name="visita">Visita vinculada ao cliente.</param>
 /// <param name="atendente">Atendente do cliente.</param>
 public Atendimento(Visita visita, Funcionário atendente)
 {
     this.visita = visita;
     this.atendente = atendente;
 }
 public PermissãoNegada(Funcionário funcionário)
     : this(funcionário, "Autorização negada ao funcionário.")
 { }
 public PermissãoNegada(Funcionário funcionário, string mensagem)
     : base(mensagem)
 {
     this.funcionário = funcionário;
 }
		/// <summary>
		/// Verifica se contém um item.
		/// </summary>
		/// <param name="item">Funcionário.</param>
		/// <returns>Se existe o funcionário na lista.</returns>
		public bool Contains(Funcionário funcionário)
		{
			foreach (ListaPessoasItem item in this)
			{
				if (typeof(Atendente.ListaFuncionárioItem).IsInstanceOfType(item))
				{
					if (((Atendente.ListaFuncionárioItem) item).Funcionário == funcionário)
						return true;
				}
			}

			return false;
		}
		/// <summary>
		/// Remove um funcionário da lista de pessoas.
		/// </summary>
		/// <param name="funcionário">Funcionário a ser removido.</param>
		public void Remove(Funcionário funcionário)
		{
			foreach (ListaPessoasItem item in this)
			{
				if (typeof(Atendente.ListaFuncionárioItem).IsInstanceOfType(item))
				{
					if (((Atendente.ListaFuncionárioItem) item).Funcionário == funcionário)
					{
						Remove(item);
						return;
					}
				}
			}

			throw new ArgumentException("Funcionário não encontrado.", "funcionário");
		}
		/// <summary>
		/// Cria um item e o adiciona à lista de pessoas.
		/// </summary>
		/// <param name="funcionário">Funcionário a ser inserido.</param>
		public void Add(Funcionário funcionário)
		{
			Atendente.ListaFuncionárioItem item;

			item = new Atendente.ListaFuncionárioItem(funcionário);

			this.Add((ListaPessoasItem) item);
		}
		/// <summary>
		/// Adiciona funcionário ausente.
		/// </summary>
		/// <param name="funcionário">Funcionário ausente.</param>
		public void AdicionarFuncionário(Funcionário funcionário)
		{
			lock (this)
			{
				if (!chkAusentes.Items.Contains(funcionário) && funcionário.Situação == EstadoFuncionário.Ausente)
				{
					try
					{
						chkAusentes.Items.Add(funcionário);
					}
					catch (Exception e)
					{
						MessageBox.Show(
							"Não foi possível adicionar funcionário à lista de funcionários ausentes!",
							"Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
						Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);
					}
				}
			}
		}
		/// <summary>
		/// Constrói o item atribuindo o funcionário.
		/// </summary>
		/// <param name="funcionário">Funcionário a constar no item.</param>
		public ListaFuncionárioItem(Funcionário funcionário) : this()
		{
			Funcionário = funcionário;
		}
		/// <summary>
		/// Remove funcionário ausente.
		/// </summary>
		/// <param name="funcionário">Funcionário ausente.</param>
		public void RemoverFuncionário(Funcionário funcionário)
		{
			lock (this)
			{
				try
				{
                    if (limpando)
                        chkAusentes.Items.Remove(funcionário);
                    else
                    {
                        if (chkAusentes.Items.Contains(funcionário))
                        {
                            int idx = chkAusentes.Items.IndexOf(funcionário);

                            if (!chkAusentes.GetItemChecked(idx))
                                chkAusentes.SetItemChecked(idx, true);
                        }
                    }
				}
				catch (Exception e)
				{
					MessageBox.Show(
						"Não foi possível remover funcionário da lista de funcionários ausentes!",
						"Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
					throw new Exception("Não foi possível remover funcionário da lista de funcionários ausentes!", e);
				}
			}
		}
Example #22
0
        public static List<Visita> ObterAtendimentos(Funcionário funcionário)
        {
            string where = " v.funcionario = " + DbTransformar(funcionário.Código) + " AND v.saida IS NULL";

            List<Visita> visitas = Mapear<Visita>("SELECT v.* FROM visita v WHERE " + where);

            CarregarRelacionamentos(visitas, where);

            return visitas;
        }
		/// <summary>
		/// Cancela remoção de funcionário da lista de ausentes.
		/// </summary>
		private static void CancelarRemoçãoFuncionário(Funcionário funcionário)
		{
			funcionário.Situação = EstadoFuncionário.Ausente;
		}
Example #24
0
        /// <summary>
        /// Registra o início de atendimento do atendente ao cliente.
        /// </summary>
        protected static void IniciarAtendimento(Visita visita, Funcionário atendente)
        {
            atendente.Situação = EstadoFuncionário.Atendendo;

            if (!visita.Espera.HasValue)
                try
                {
                    visita.Espera = Convert.ToUInt32(((TimeSpan)(DadosGlobais.Instância.HoraDataAtual - visita.Entrada)).TotalSeconds);
                }
                catch (OverflowException)
                {
                    visita.Espera = UInt32.MaxValue;
                }

            visita.Atendente = atendente;
            visita.Atualizar();
        }
Example #25
0
 /// <summary>
 /// Ocorre ao definir funcionário como ausente.
 /// </summary>
 private void AoDefinirAusente(Funcionário funcionário)
 {
     listaVisitantes.AtualizarFuncionário(funcionário);
 }
		/// <summary>
		/// Adiciona um funcionário à lista
		/// </summary>
		/// <param name="funcionário">Funcionário a ser inserido</param>
		private void AdicionarFuncionário(Funcionário funcionário)
		{
            List<Visita> atendimentos = Visita.ObterAtendimentos(funcionário);
            ListViewItem item = new ListViewItem(funcionário.Nome);
            string strAtendimentos = Visita.ExtrairNomes(atendimentos);

            if (funcionário.Situação == EstadoFuncionário.Atendendo)
                if (atendimentos.Count == 0)
                    funcionário.Situação = EstadoFuncionário.Desconhecido; 
            
            item.SubItems.Add(funcionário.Ramal.ToString());
            item.SubItems.Add(funcionário.Setor == null ? "" : funcionário.Setor.Nome);
            item.SubItems.Add(funcionário.Situação == EstadoFuncionário.Disponível ? "" : funcionário.Situação.ToString());

            item.SubItems.Add(strAtendimentos);
            lstVendedores.Items.Add(item);
            linhaVendedor[item] = funcionário;
            hashVendedorLinha[funcionário.Código] = item;
            ColorirFuncionário(item, funcionário);
        }
Example #27
0
        public static bool EmAtendimento(Funcionário funcionário)
        {
            IDbConnection conexão = Conexão;
            int qtd;

            lock (conexão)
                using (IDbCommand cmd = conexão.CreateCommand())
                {
                    cmd.CommandText = "SELECT COUNT(*) FROM visita v" +
                        " WHERE v.funcionario = " + DbTransformar(funcionário.Código) +
                        " AND v.saida IS NULL";

                    qtd = Convert.ToInt32(cmd.ExecuteScalar());
                }

            return qtd > 0;
        }
Example #28
0
        internal static Funcionário ObterFuncionário(IDataReader leitor, int inicioAtributoPesssoa, int inicioAtributoPessoaFisica)
        {
            Funcionário entidade = new Funcionário();
            entidade.LerAtributos(leitor, inicioAtributoPesssoa, inicioAtributoPessoaFisica);

            return entidade;
        }
Example #29
0
        public static List<Visita> ObterVisitasRelevantes(Funcionário funcionário, Setor[] setores)
        {
            string strSetores = Setor.ObterSetoresSeparadosPorVirgula(setores);

            if (String.IsNullOrEmpty(strSetores))
                return null;

            string where = " v.saida IS NULL OR v.entrada >= date(" +
                "(SELECT MAX(entrada) FROM visita WHERE funcionario = " +
                DbTransformar(funcionário.Código) + "))" +
                " AND setor IN (" + strSetores + ")" +
                " AND entrada >= " + DbTransformar(DadosGlobais.Instância.HoraDataAtual.Date.Subtract(new TimeSpan(3, 0, 0, 0))) +
                " ORDER BY entrada";

            List<Visita> visitas = Mapear<Visita>("SELECT * FROM visita v WHERE " + where);
            CarregarRelacionamentos(visitas, where);

            return visitas;
        }
        /// <summary>
        /// Adiciona funcionário à lista.
        /// </summary>
        /// <param name="funcionário">Funcionário à ser adicionado.</param>
		private void AdicionarFuncionário(Funcionário funcionário)
		{
			ListViewItem linha;

			// Inserir linha
			linha = new ListViewItem(hashSetorGrupo[funcionário.Setor]);
            linha.Text = funcionário.Nome;

			linha.SubItems.Add(funcionário.Ramal.ToString());
			linha.SubItems.Add(funcionário.Setor != null ?
				funcionário.Setor.Nome :
				"");

			if (ênfaseSetor != null)
				linha.Font = (funcionário.Setor == ênfaseSetor ?
				fontÊnfase : lstFuncionários.Font);

			lstFuncionários.Items.Add(linha);
			linhas[funcionário.Código] = linha;
			linhas[linha] = funcionário;

			funcionários.Add(funcionário);
		}