예제 #1
0
        private void cmdEntrar_Click(object sender, EventArgs e)
        {
            if (PodeEntrar())
            {
                try
                {
                    usuarioCTL CUsuario = new usuarioCTL();

                    string sLogin = PontoBr.Utilidades.String.RemoverCaracterInvalido(txtLogin.Text);
                    string sSenha = PontoBr.Utilidades.String.RemoverCaracterInvalido(txtSenha.Text);
                    string sRamal = PontoBr.Utilidades.String.RemoverCaracterInvalido(txtRamal.Text);

                    int iIDUsuario = CUsuario.RetornarUsuario(sLogin, sSenha, 1);
                    if (iIDUsuario != 0)
                    {
                        //Cadastra ou atualiza o ramal de acordo com o DNS da máquina
                        CadastrarRamal();

                        Usuario = CUsuario.RetornarUsuario(iIDUsuario);
                        if (Usuario.IDUsuario == 0)
                        {
                            MessageBox.Show("O usuário não está vinculado à nenhuma Campanha.", "Tabulare", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }

                        Usuario        = CUsuario.RetornarUsuario(sLogin, sSenha, sRamal);
                        Usuario.Agente = txtRamal.Text;
                        string sPerfil = Usuario.Perfil;

                        //De acordo com o Usuário do Agent (PlanetFone), retorna o NroAgente
                        if (fLogin.Configuracao.TipoPabx == "PlanetFone")
                        {
                            if (Usuario.Perfil == "Operador")
                            {
                                try
                                {
                                    RetornarNroAgente();

                                    CUsuario.AtualizarNroAgente(Usuario.IDUsuario, operador.fAtendimento.NroAgente);

                                    //Libera a tela do Operador porque o robô envia contato mesmo não logado no Tabulare
                                    if (fLogin.Usuario.TipoDiscador != "Power")
                                    {
                                        //Deixa o IDProspect = NULL - Para liberar a tela do Operador (Preditivo)
                                        CUsuario = new usuarioCTL();
                                        CUsuario.PausaAgente(fLogin.Usuario.IDUsuario, 0);

                                        //1 = Tabulare Logado (Necessário Preditivo) | 0 = Tabulare não Logado
                                        CUsuario.TabulareLogado(fLogin.Usuario.IDUsuario, 1);
                                    }
                                }
                                catch (Exception ex) /*Quando não conseguir integrar */
                                {
                                    PontoBr.Utilidades.Diversos.ExibirAlertaWindowsForm(ex.Message + "\n\nNão foi possível conectar no PlanetFone.\n\nO Tabulare irá funcionar sem a integração com o PABX.", "Tabulare Software");
                                }
                            }
                        }

                        //Licença
                        if (Usuario.Perfil == "Operador")
                        {
                            if (CUsuario.RetornarQuantidadeOperadores() > fLogin.iNumeroOperadores)
                            {
                                string sMensagem = "Sua licença execedeu o limite de usuários (perfil Operador).";
                                sMensagem += " Atualmente seu limite é de " + fLogin.iNumeroOperadores.ToString() + " operadores.";
                                sMensagem += "\n\nPeça o supervisor para acessar o Tabulare e, dentro do Módulo de Usuários, gerenciar a quantidade de operadores.";

                                PontoBr.Utilidades.Diversos.ExibirAlertaWindowsForm(sMensagem, "Tabulare Software");
                                return;
                            }
                        }

                        // int user = Convert.ToInt32(fLogin.iNumeroOperadores.ToString()) - CUsuario.RetornarQuantidadeOperadores();

                        if (VerificarVersaoDiscador() == true)
                        {
                            Logar(Usuario.Perfil);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Login e/ou Senha inválido(s).", "Tabulare", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtLogin.Text = "";
                        txtSenha.Text = "";
                        txtLogin.Focus();
                    }
                }
                catch (Exception ex)
                {
                    PontoBr.Utilidades.Diversos.ExibirAlertaWindowsForm(ex.Message, "Tabulare Software");
                }
            }
        }