/// <summary>
		/// Ocorre ao carregar o programa completamente.
		/// </summary>
        protected internal override void AoCarregarCompletamente(Splash splash)
		{
			base.AoCarregarCompletamente(splash);

            //if (splash != null)
            //    splash.Mensagem = "Carregando controlador de usuário...";

			RecuperarUsuário();

            //if (this.funcionário.Setor.Atendimento)
            //    InserirBaseInferior(new Apresentação.Usuário.InterForm.BaseUsuário..Atendimento.BaseClientes(funcionário));
            //else
                //InserirBaseInferior(new Apresentação.Atendimento.Clientes.BaseSeleçãoCliente());
            InserirBaseInferior(new Apresentação.Usuário.InterForm.BaseUsuário(funcionário));

            if (Acesso.Comum.Usuários.UsuárioAtual.GerenciadorConexões.SenhaRuim)
            {
                using (Funcionários.GuiaNovato dlg = new Apresentação.Usuário.Funcionários.GuiaNovato())
                {
                    dlg.ShowDialog();
                }
            }
        
            controleAgendamento = new ControleAgendamento(this);

            if (funcionário.Setor.Atendimento)
                controleVisitantes = new ControleVisitantes();

            Exibir();
        }
        public void AoCarregarCompletamente(Splash splash)
        {
            foreach (KeyValuePair<Control, Permissão> pares in hashVisualização)
                pares.Key.Visible = PermissãoFuncionário.ValidarPermissão(pares.Value);

            foreach (KeyValuePair<Control, Permissão> pares in hashEdição)
                pares.Key.Enabled = PermissãoFuncionário.ValidarPermissão(pares.Value);
        }
        /// <summary>
        /// Ocorre ao carregar o controlador.
        /// </summary>
        protected internal override void AoCarregarCompletamente(Splash splash)
        {
            InserirBaseInferior(baseSeleçãoClienteSetor);
            InserirBaseInferior(baseAtendimento);

            /* A inserção de base inferior deve ocorrer antes de chamar
             * o AoCarregarCompletamente da base.
             */
            base.AoCarregarCompletamente(splash);
        }
        public override void AoCarregarCompletamente(Splash splash)
        {
            base.AoCarregarCompletamente(splash);

            bool técnico = PermissãoFuncionário.ValidarPermissão(Permissão.Técnico);

            quadroFiscalExportaçãoAtacadoBR500.Visible = técnico;
            quadroFiscalExportacaoEconnectVarejo.Visible = técnico;
            quadroFiscal.Visible = técnico;
            quadroFiscal.Visible = técnico;

            quadroExportaVenda.Visible = técnico;
            quadroOpçãoImportação.Visible = técnico;

            quadroOpçãoBalanço.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.Balanço);
            quadroControleEstoque.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.Estoque);
            quadroComissão.Visible = PermissãoFuncionário.ValidarPermissão(Permissão.ManipularComissão);
        }
		/// <summary>
		/// Ocorre ao carregar completamente o sistema.
		/// </summary>
        protected internal override void AoCarregarCompletamente(Splash splash)
		{
			// Obter funcionário atual.
            funcionário = Entidades.Pessoa.Funcionário.FuncionárioAtual;

            if (funcionário == null || funcionário.Setor == null)
                throw new ExceçãoBotãoNãoSuportado("É necessário um funcionário atribuído a um setor.");

            if (funcionário.Setor.Atendimento)
            {
                baseListaAtendimentos = new BaseListaAtendimentos();
                baseListaAtendimentos.Escolhida += new Apresentação.Atendimento.Clientes.BaseSeleçãoCliente.EscolhaPessoa(IniciarAtendimento);

                InserirBaseInferior(baseListaAtendimentos);
            }

            Botão.Imagem = Resource.ApertoMão;

			base.AoCarregarCompletamente(splash);
		}
        public override void AoCarregarCompletamente(Splash splash)
        {
            base.AoCarregarCompletamente(splash);

            comboboxFuncionário.Carregar(comissão);
        }
        /// <summary>
        /// Ocorre ao carregar completamente.
        /// </summary>
        public void AoCarregarCompletamente(Splash splash)
        {
            if (splash != null)
                splash.Mensagem = "Carregando cotações";

            CarregarCotações();
        }
        private void ImportarBotões(Splash splash)
        {
            try
            {
                string caminho = AppDomain.CurrentDomain.BaseDirectory;

                if (splash != null)
                    splash.Mensagem = "Carregando controles gráficos ...";

                string arquivo = Path.Combine(caminho, "Apresentação.dll");

                    Assembly assembly = Assembly.LoadFile(arquivo);

                    foreach (ExporBotãoAttribute exportação in assembly.GetCustomAttributes(typeof(ExporBotãoAttribute), true))
                        ExportarBotão(assembly, exportação);

                AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                Application.Exit();
            }
        }
		/// <summary>
		/// É chamada assim que a todo o programa já está carregado.
		/// </summary>
        protected virtual void AoCarregarCompletamente(Splash splash)
        {
            bool falha = false;
            string problema = "";
            List<Botão> remoção = new List<Botão>();

            foreach (Botão botão in barraBotões.Botões)
            {
                botão.Controlador.AoCarregarCompletamente(splash);
            }

            foreach (Botão botão in remoção)
            {
                barraBotões.RemoverBotão(botão);
                botão.Dispose();
            }

            baseInferior.AoCarregarCompletamente(splash);
            baseInferior.DispararAoExibir();

            if (falha)
                throw new ExceçãoPósCarga(problema);
        }
		/// <summary>
		/// Ocorre ao carregar completamente o sistema.
		/// </summary>
		public void AoCarregarCompletamente(Splash splash)
		{
			// Executar pós-carga nos controles existentes.
			foreach (Control controle in Controls)
				if (controle is IPósCargaSistema)
					((IPósCargaSistema) controle).AoCarregarCompletamente(splash);

            Carregar();
		}
Beispiel #11
0
        /// <summary>
        /// Executa uma aplicação.
        /// </summary>
        /// <param name="tipoFormulário">Formulário principal que herda de Apresentação.Formulários.BaseFormulário</param>
        /// <param name="fachada">Nome da faixada</param>
        /// <param name="efetuarLogin">Pedir que usuário efetua login no banco de dados</param>
        public static void Executar(Type tipoFormulário, Usuários usuários, bool efetuarLogin, bool mostrarSplash)
        {
#if DEBUG
            Console.WriteLine("========================================================");
            Console.WriteLine("Executando aplicação...");
#endif

            try
            {
                Application.SetCompatibleTextRenderingDefault(false);
                Application.EnableVisualStyles();
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true);
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(ThreadException);
            }
            catch { }


#if !DEBUG
			try
#endif
            {
                Splash splash;

                // Mostra splash screen
                if (mostrarSplash)
                {
                    splash = new Splash();
                    splash.Show();
                    splash.Update();

#if DEBUG
                    Console.WriteLine("Splash exibido!");
#endif
                }
                else
                    splash = null;

                try
                {
                    aplicação = new Aplicação(tipoFormulário, usuários, efetuarLogin, splash);
                }
                catch (LoginNãoAssociadoAFuncionário)
                {
                    MessageBox.Show("O login não está associado a um funcionário", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                    return;
                }
                catch (LoginOuSenhaIncorretos)
                {
                    MessageBox.Show("Login e/ou senha incorretos. ", "Login não pode ser feito", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Application.Exit();
                    return;
                }

#if DEBUG
                Console.WriteLine("Disparando ao carregar!");
#endif
                aplicação.DispararAoCarregar();

                splash = null;


#if DEBUG
                Console.WriteLine("Aplicação pronta!");
                Console.WriteLine("========================================================");
#endif




                Application.Run(aplicação);

                GC.Collect();
            }
#if !DEBUG
			catch (LoginNãoEfetuado)
			{
				// Nada aqui
			}
			catch (Exception e)
			{
				try
				{
					Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);

					MessageBox.Show("Ocorreu um erro e o programa será finalizado. Um relatório de erros foi gerado e enviado ao servidor.\n\nMensagem de erro: " + e.Message, "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
				}
				catch (Exception e2)
				{
					MessageBox.Show("Ocorreu o seguinte erro no sistema e o programa será finalizado: " + e.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
					MessageBox.Show("Não foi possível enviar relatório para os programadores devido ao seguinte problema: " + e2.ToString(), "Falha no sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
				}
			}
#endif
        }
Beispiel #12
0
        /// <summary>
        /// Executa pós-carga nos controles que implementam a
        /// interface "IPósCargaSistema".
        /// </summary>
        /// <param name="controles">Conjunto de controles que
        /// podem ou não implementar IPósCargaSistema.</param>
        private void DispararPósCarga(ControlCollection controles, Splash splash)
        {
            bool falha = false;
            string problema = "";

            foreach (Control controle in controles)
            {
                IPósCargaSistema controlePósCarga = controle as IPósCargaSistema;

                //try
                //{
                    if (controlePósCarga != null)
                        controlePósCarga.AoCarregarCompletamente(splash);

                    DispararPósCarga(controle.Controls, splash);
                //}
                //catch (Exception e)
                //{
                //    Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);
                //    falha = true;
                //    problema += "\n" + controle.GetType().ToString();
                //}
            }

            if (falha)
                throw new ExceçãoPósCarga(problema);
        }
Beispiel #13
0
		/// <summary>
		/// Ocorre ao carregar completamente o programa.
		/// </summary>
		/// <remarks>Neste ponto já existe um usuário identificado.</remarks>
		public virtual void AoCarregarCompletamente(Splash splash)
		{
            foreach (Control controle in esquerda.Controls)
            {
                IRequerPrivilégio controlePrivilégio = controle as IRequerPrivilégio;
                if (controlePrivilégio != null)
                     if (!PermissãoFuncionário.ValidarPermissão(controlePrivilégio.Privilégio))
                        esquerda.Controls.Remove(controle);
            }
            DispararPósCarga(Controls, splash);
		}
        public override void AoCarregarCompletamente(Splash splash)
        {
            if (this.DesignMode)
                return;

            base.AoCarregarCompletamente(splash);
            RegistraEventos();
        }
Beispiel #15
0
		/// <summary>
		/// Ocorre ao carregar pela primeira vez.
		/// </summary>
		public override void AoCarregarCompletamente(Splash splash)
		{
			base.AoCarregarCompletamente(splash);

            //if (splash != null)
            //    splash.Mensagem = "Criado ambiente de impressão";

            printDoc.PrintController = new System.Drawing.Printing.StandardPrintController();

            txtReferência.Tabela = Tabela.TabelaPadrão;
            bandeja.Tabela = Tabela.TabelaPadrão;
		}
Beispiel #16
0
        /// <summary>
        /// </summary>
        /// <returns>Falso se usuário cancelou</returns>
        public static bool EfetuarLogin(Usuários usuários, Splash splash)
        {
#pragma warning disable 0162            
#if DEBUG

            Usuários.UsuárioAtual = usuários.EfetuarLogin("andrep", "andrep");
            return true;
#endif


            bool conectado = false;
            // Constrói janela de login
            using (Login loginDlg = new Login())
            {
                do
                {
                    DialogResult resultado;

                    if (splash != null)
                        splash.Hide();

                    resultado = loginDlg.ShowDialog();

                    if (splash != null)
                        splash.Show();

                    switch (resultado)
                    {
                        case DialogResult.OK:
                            if (splash != null)
                                splash.Mensagem = "Autenticando usuário";

                            try
                            {
                                Usuários.UsuárioAtual = usuários.EfetuarLogin(loginDlg.txtUsuário.Text, loginDlg.txtSenha.Text);

                                if (Usuários.UsuárioAtual == null)
                                    MessageBox.Show("Senha ou usuário incorreto!",
                                        "Indústria Mineira de Joias",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Stop);
                                else
                                {
                                    conectado = true;
                                }
                            }
                            catch (Exception e)
                            {
                                if (splash != null)
                                    splash.Mensagem = "Não foi possível autenticar usuário";

                                MessageBox.Show("Não foi possível autenticar usuário.\r\n\r\nOcorreu o seguinte erro: " + e.Message,
                                    "Indústria Mineira de Joias",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                            }
                            // Conectado!
                            break;

                        case DialogResult.Cancel:
                            return false;

                        default:
                            break;
                    }

                } while (!conectado);

#if DEBUG
                Usuários.UsuárioAtual.GerenciadorConexões.ConexãoPresa += new GerenciadorConexões.ConexãoPresaCallback(GerenciadorConexões_ConexãoPresa);
#endif
                return true;
            }

#pragma warning restore 0162
        }
Beispiel #17
0
        /// <summary>
        /// Dispara o método ao carregar do formulário.
        /// </summary>
        private void DispararAoCarregar()
        {
            if (splash != null)
            {
                splash.Show();
                splash.Update();
            }

            Formulário.DispararAoCarregar(splash);

            if (splash != null)
            {
                splash.Close();
                splash.Dispose();
                splash = null;
            }
        }
		/// <summary>
		/// Ocorre quando o programa é carregado completamente.
		/// </summary>
		protected internal virtual void AoCarregarCompletamente(Splash splash)
		{
            bool falha = false;
            string problema = "";

            foreach (BaseInferior baseInferior in basesInferiores)
            {
                baseInferior.AoCarregarCompletamente(splash);
            }

            if (falha)
                throw new ExceçãoPósCarga(problema);
		}
Beispiel #19
0
 public static void Executar(Usuários usuários, bool efetuarLogin, Splash splash)
 {
     aplicação = new Aplicação(null, usuários, efetuarLogin, splash);
 }
Beispiel #20
0
        public void AoCarregarCompletamente(Splash splash)
        {
            //if (splash != null)
            //    splash.Mensagem = "Carregando bandeja...";

            timerStatus.Enabled = true;
        }
Beispiel #21
0
        /// <param name="tipoFormulário">Formulário base, que herda de Apresentação.Formulários.BaseFormulário</param>
        public Aplicação(Type tipoFormulário, Usuários usuários, bool efetuarLogin, Splash splash)
        {
#if !DEBUG
			try
#endif
            {
                this.splash = splash;

                // Validar formulário
                if (typeof(BaseFormulário).IsInstanceOfType(tipoFormulário))
                    throw new Exception("A aplicação requer um formulário do tipo Apresentação.Formulários.BaseFormulário");

                try
                {
                    Application.EnableVisualStyles();
                }
                catch (Exception erro)
                {
                    if (splash != null)
                    {
                        splash.Mensagem = "Erro ao ligar efeitos visuais!";
                        System.Threading.Thread.Sleep(2000);
                        splash.Mensagem = erro.Message;
                        System.Threading.Thread.Sleep(2000);
                    }
                    else
                        MessageBox.Show("Erro ao ligar efeitos visuais!");
                }

                this.usuários = usuários;

                cultura = System.Globalization.CultureInfo.CreateSpecificCulture("pt-BR");

                if (splash != null)
                    splash.Mensagem = "Conectando ao banco de dados ... ";

                Usuários.AoRegistrarErro += new Usuários.ErroUsuárioHandler(AoRegistrarErro);

#if DEBUG 
                Console.WriteLine("Efetuando conexão!");

                Usuários.AoCriarConexão += new Usuários.UsuárioHandler(AoCriarConexão);
#endif

                Application.DoEvents();

                if (efetuarLogin)
                {
                    bool cancelouLogin = !Login.EfetuarLogin(usuários, splash);

                    if (cancelouLogin)
                        throw new LoginNãoEfetuado();

                    if (Usuários.UsuárioAtual == null)
                        throw new LoginOuSenhaIncorretos();

                    if (Entidades.Pessoa.Funcionário.FuncionárioAtual == null)
                        throw new LoginNãoAssociadoAFuncionário();
                }
                else
                    Usuários.UsuárioAtual = usuários.EfetuarLogin("imjoias", "b9r8hukl3");
            }
#if !DEBUG
			catch (LoginNãoEfetuado e)
			{
				/* Este erro só ocorre quando a versão é DEBUG.
				 * Em versão RELEASE, este erro implica em
				 * finalização do programa sem mostrar 
				 * qualquer mensagem.
				 */
				throw e;
			}
			catch (Exception e)
			{
				MessageBox.Show(e.Message, "Indústria Mineira de Joias",
					MessageBoxButtons.OK,
					MessageBoxIcon.Error);

				throw new Exception("Não foi possível carregar o sistema.", e);
			}
#endif
            if (splash != null)
                splash.Mensagem = "Carregando controles gráficos ...";


#if DEBUG
            Console.WriteLine("Construindo janela principal!");
#endif

            try
            {
                formulário = (BaseFormulário) tipoFormulário.Assembly.CreateInstance(tipoFormulário.FullName);
                this.MainForm = formulário;
            }
            catch (Exception e)
            {
#if DEBUG
                MessageBox.Show("Ocorreu uma exceção não tratada e não depurável durante a criação do formulário:\n\n" + e.ToString());
#else
					throw new Exception("Não foi possível construir janela principal!", e);
#endif
            }

        }
Beispiel #22
0
        /// <summary>
        /// Ocorre ao carregar completamente o sistema.
        /// </summary>
        public void AoCarregarCompletamente(Splash splash)
        {
            if (splash != null)
                splash.Mensagem = "Carregando lista de álbuns.";

            Carregar();
        }
        public override void AoCarregarCompletamente(Splash splash)
        {
            CacheMiniaturas cache =
                Entidades.Álbum.CacheMiniaturas.Instância;

            CacheÍcones cacheÍcones = Entidades.Álbum.CacheÍcones.Instância;

            base.AoCarregarCompletamente(splash);
        }
Beispiel #24
0
 public void AoCarregarCompletamente(Splash splash)
 {
     CarregarFaixas();
 }
		/// <summary>
		/// Deve ser chamado pelo programa de apresentação depois
        /// que os botões são configurados.
		/// </summary>
        /// 
		public void DispararAoCarregar(Splash splash)
		{
			Cursor cursorAnterior = Cursor.Current;

			Cursor.Current = Cursors.WaitCursor;

            if (splash != null)
                splash.Mensagem = "Carregando mercadorias ...";

            Entidades.Mercadoria.Mercadoria.IniciarCarga();

            ImportarBotões(splash);

            // Dispara o evento
			AoCarregarCompletamente(splash);

            this.Text = Versão.NomeVersãoAplicação;

#if DEBUG
            this.Text += " @ " + Acesso.MySQL.MySQLUsuários.Host;
#endif
            new Entidades.Configuração.ConfiguraçãoUsuário<string>("VersãoTítular", Versão.VersãoNumérica).Valor = Versão.VersãoNumérica;

            this.Refresh();
			
			Cursor.Current = cursorAnterior;
		}
        protected internal override void AoCarregarCompletamente(Splash splash)
        {
            base.AoCarregarCompletamente(splash);

            Botão.Imagem = Resource.ConsultarMercadoria;
        }
 protected internal override void AoCarregarCompletamente(Splash splash)
 {
 }
 public override void AoCarregarCompletamente(Splash splash)
 {
     base.AoCarregarCompletamente(splash);
     HandleCreated += new EventHandler(BaseSeleçãoCliente_HandleCreated);
 }