private int EnviarFuncionario(Rede rede, string Cartao, string PIS, string Senha, string Nome, int Funcionario)
        {
            string strPIS         = PIS;
            string strUserName    = Nome;
            uint   uiKeyCode      = 0;
            string strBarCode     = Cartao;
            byte   byFacilityCode = 0;
            uint   uiProxCode     = 0;

            uint.TryParse(Cartao, out uiProxCode);
            byte   byUserType  = 0;
            string strPassword = Senha;

            int iReturn = rede.IdData_EnviarFuncionarioSemBiometria(strPIS,
                                                                    strUserName,
                                                                    uiKeyCode,
                                                                    strBarCode,
                                                                    byFacilityCode,
                                                                    uiProxCode,
                                                                    byUserType,
                                                                    strPassword,
                                                                    mmSobreporFuncionarios.Checked);

            return(iReturn);
        }
        //private string ReadFile(string filePath)
        //{
        //byte[] buffer = new byte[384];

        //using (FileStream file = new FileStream(filePath, FileMode.Open))
        //{
        //    file.Read(buffer, 0, 384);
        //    file.Close();
        //}

        //return Protocolo.ConverteByteToString(buffer);
        //}

        private void EnviarBiometria(Rede rede, string PIS, string Nome, int Funcionario, string Arquivo)
        {
            //Rede rede = new Rede(objIDSysR30, IP, Porta, edLog);

            string strPIS            = PIS;
            string strUserName       = Nome;
            uint   uiKeyCode         = 0;
            string strBarCode        = "";
            byte   byFacilityCode    = 0;
            uint   uiProxCode        = 0;
            byte   byUserType        = 0;
            string strPassword       = "";
            ushort usSizeSample      = 404;
            byte   byQuantitySamples = 2;

            byte[] rgbyBiometrics = new byte[(usSizeSample * byQuantitySamples)];
            byte   byAccessType   = 0;

            using (FileStream file = new FileStream(Arquivo, FileMode.Open))
            {
                file.Read(rgbyBiometrics, 0, rgbyBiometrics.Length);
                file.Close();
            }

            rede.IdData_EnviarFuncionarioComBiometria(strPIS, strUserName, uiKeyCode, strBarCode, byFacilityCode, uiProxCode, byUserType, byAccessType, strPassword, usSizeSample, byQuantitySamples, rgbyBiometrics);
        }
        private void enviar_biometrias_terminal(int Terminal)
        {
            DB db = new DB();

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            int NFuncs = Convert.ToInt32(db.GetFieldValue(
                                             "SELECT FUNC_IND " +
                                             "FROM Funcionarios " +
                                             "INNER JOIN TerminaisFuncionarios ON TRMF_FUNC = FUNC_IND " +
                                             "WHERE TRMF_TERMINAL = " + Terminal + " AND FUNC_PIS IS NOT NULL"
                                             ));

            SqlCommand comm = db.Conn.CreateCommand();

            comm.CommandText = "SELECT FUNC_IND " +
                               "FROM Funcionarios " +
                               "INNER JOIN TerminaisFuncionarios ON TRMF_FUNC = FUNC_IND " +
                               "WHERE TRMF_TERMINAL = " + Terminal + " AND FUNC_PIS IS NOT NULL " +
                               "ORDER BY FUNC_NOME";

            SqlDataReader reader = comm.ExecuteReader();

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            rede.AddLog("ENVIANDO " + NFuncs.ToString() + " REGISTROS <ESC> PARA CANCELAR");

            if (!rede.Connection_Init())
            {
                return;
            }

            CANCELAR = false;
            try
            {
                while (reader.Read())
                {
                    enviar_biometrias_funcionario(rede, Convert.ToInt32(reader[0].ToString()));

                    Application.DoEvents();

                    if (CANCELAR)
                    {
                        rede.AddLog("CANCELADO");
                        break;
                    }
                }

                reader.Close();
            }

            finally
            {
                rede.Connection_Finalize();
            }
        }
        private void funcionárioSelecionadoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listFuncionarios.SelectedIndices.Count == 0)
            {
                return;
            }

            DB db = new DB();

            int Terminal = Convert.ToInt32(listRelogios.Items[listRelogios.SelectedIndices[0]].SubItems[TRM_SUBITEM_IND].Text);

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            rede.AddLog("ENVIANDO " + listFuncionarios.SelectedIndices.Count.ToString() + " REGISTROS <ESC> PARA CANCELAR");
            if (!rede.Connection_Init())
            {
                return;
            }

            CANCELAR = false;

            try
            {
                for (int i = 0; i <= listFuncionarios.SelectedIndices.Count - 1; i++)
                {
                    string EnviadoEm = listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_ENVIADOEM].Text;
                    if (mmNaoEnviarFuncEnviados.Checked && EnviadoEm != String.Empty)
                    {
                        rede.AddLog("PIS: " + listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_PIS].Text + " JÁ EXISTE NO TERMINAL");
                    }
                    else
                    {
                        int Funcionario = Convert.ToInt32(listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_IND].Text);
                        EnviarCadastro(rede, Terminal, Funcionario);
                    }

                    Application.DoEvents();

                    if (CANCELAR)
                    {
                        rede.AddLog("CANCELADO");
                        break;
                    }
                }

                atualizar_funcionarios_teminal();
            }
            finally
            {
                rede.Connection_Finalize();
            }
        }
Beispiel #5
0
        public void ProcessarMarcacoes(int Grupo, List <string> marcacoes, Rede rede)
        {
            //ProgressImportacao progressimportacao = new ProgressImportacao();

            Inicializar_TabTemp_DescontoDsr();

            rede.AddLog(string.Format("MARCAÇÕES A PROCESSAR: {0}", marcacoes.Count));
            int contador = 1;

            //progressimportacao.Show();
            //progressimportacao.progressBar1.Maximum = marcacoes.Count;
            //progressimportacao.progressBar1.Value = 0;

            try
            {
                foreach (string s in marcacoes)
                {
                    string Pis;
                    string Data;
                    string Hora;

                    Pis  = s.Substring(0, 12).Trim();
                    Data = s.Substring(13, 10);
                    Hora = s.Substring(24);

                    //progressimportacao.lbMensagem.Text = String.Format("{0} {1} {2}", Pis, Data, Hora);
                    rede.AddLogUnformatted(String.Format("{0}/{1}: {2} {3} {4}", contador, marcacoes.Count, Pis, Data, Hora));
                    try
                    {
                        if (contador != 3)
                        {
                            ExecuteCommand(String.Format("EXEC importar_marcacao @P_GRUPO = {0},@P_PIS = {1}, @P_DATA = '{2}', @P_HORA = '{3}'", Grupo, Pis, Data, Hora));
                        }
                        else
                        {
                            ExecuteCommand(String.Format("EXEC importar_marcacao @P_GRUPO = {0},@P_PIS = {1}, @P_DATA = '{2}', @P_HORA = '{3}'", Grupo, Pis, Data, Hora));
                        }
                    }
                    catch (Exception e)
                    {
                        rede.AddLogUnformatted(e.ToString());
                    }

                    //progressimportacao.progressBar1.Value++;
                    contador++;
                    Application.DoEvents();
                }
            }
            finally
            {
                //progressimportacao.Close();
                Finalizar_TabTemp_DescontoDsr();
            }
        }
        public void Monitoramento(string IP, int Porta)
        {
            Rede rede = new Rede(this.objIDSysR30, IP, Porta, edLog);

            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.TotalPrinterTickets);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.PrinterKM);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.PaperStatus);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.CurrentPaperRollSize);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.CurrentPaperRollKM);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.CurrentPaperRollTicketsPrinted);
            rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.CurrentPaperRollEstimatedTickets);
            //rede.IdData_Monitoramento(Rede.CodigoFuncoesMonitoramento.Temperatura);
        }
        private void terminalSelecionadoToolStripMenuItem4_Click(object sender, EventArgs e)
        {
            int Terminal = Convert.ToInt32(listRelogios.Items[listRelogios.SelectedIndices[0]].SubItems[TRM_SUBITEM_IND].Text);

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            HorarioDeVerao frmhorarioverao = new HorarioDeVerao();

            frmhorarioverao.ShowDialog();

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            rede.IdData_HorarioVerao(frmhorarioverao.Inicio, frmhorarioverao.Fim);
        }
        public void EnviaInfoEmpresa(int Terminal, string IP, int Porta)
        {
            string Identificador;
            string Nome;
            ulong  Cei;
            string Endereco;
            byte   IdentificadorTipo;

            DB db = new DB();

            db.LerEmpresa(Terminal, out IdentificadorTipo, out Identificador, out Nome, out Cei, out Endereco);

            Rede rede = new Rede(this.objIDSysR30, IP, Porta, edLog);

            rede.IdData_EnviaEmpresa(IdentificadorTipo, Identificador, Nome, Cei, Endereco);
        }
        private void EnviarCadastro(Rede rede, int Terminal, int Funcionario)
        {
            DB         db = new DB();
            List <int> FuncionariosAtualizados = new List <int>();

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            string Pis;

            SqlCommand comm = db.Conn.CreateCommand();

            comm.CommandText = "SELECT FUNC_NOME, FUNC_PIS, CRA_NUMERO " +
                               "FROM Funcionarios " +
                               "LEFT JOIN Crachas ON CRA_FUNC = FUNC_IND " +
                               "WHERE FUNC_IND = " + Funcionario + " " +
                               "ORDER BY FUNC_NOME";
            SqlDataReader reader = comm.ExecuteReader();

            while (reader.Read())
            {
                Pis = reader["FUNC_PIS"].ToString().Trim();

                if (Pis[0] == Convert.ToChar("0"))
                {
                    Pis = Pis.Substring(1);
                }

                if (Pis != string.Empty)
                {
                    if (EnviarFuncionario(
                            rede,
                            reader["CRA_NUMERO"].ToString().Trim(),
                            Pis,
                            string.Empty,
                            reader["FUNC_NOME"].ToString().Trim(),
                            Funcionario
                            ) == 0)
                    {
                        FuncionariosAtualizados.Add(Funcionario);
                    }
                }
            }

            reader.Close();

            db.Atualizar_TerminaisFuncionarios(Terminal, FuncionariosAtualizados);
        }
        private void Gerar_Usb_Terminal(int Terminal, bool Todos)
        {
            DB db = new DB();

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            string diretorioconfig = Get_Folder_Terminais_Config() + TERMINALNOME;

            Wr.Classes.Files.ForceDirectories(diretorioconfig);
            string arquivo = diretorioconfig + "\\USERS.ubs";

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            List <int> Funcionarios = new List <int>();

            if (Todos)
            {
                for (int i = 0; i <= listFuncionarios.Items.Count - 1; i++)
                {
                    string EnviadoEm = listFuncionarios.Items[i].SubItems[FUNC_SUBITEM_ENVIADOEM].Text;

                    if (!mmGerarArquivoUsbApenasNaoEnviados.Checked || EnviadoEm == String.Empty)
                    {
                        int Funcionario = Convert.ToInt32(listFuncionarios.Items[i].SubItems[FUNC_SUBITEM_IND].Text);
                        Funcionarios.Add(Funcionario);
                    }
                }
            }
            else
            {
                for (int i = 0; i <= listFuncionarios.SelectedIndices.Count - 1; i++)
                {
                    string EnviadoEm = listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_ENVIADOEM].Text;

                    if (!mmGerarArquivoUsbApenasNaoEnviados.Checked || EnviadoEm == String.Empty)
                    {
                        int Funcionario = Convert.ToInt32(listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_IND].Text);
                        Funcionarios.Add(Funcionario);
                    }
                }
            }

            rede.IdData_Criar_USBFile(Terminal, arquivo, Funcionarios);
            db.Atualizar_TerminaisFuncionarios(Terminal, Funcionarios);
        }
        private void excluirFuncionárioDoTerminalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DB db = new DB();

            int Terminal = Convert.ToInt32(listRelogios.Items[listRelogios.SelectedIndices[0]].SubItems[TRM_SUBITEM_IND].Text);

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            if (!rede.Connection_Init())
            {
                return;
            }

            try
            {
                CANCELAR = false;

                for (int i = 0; i <= listFuncionarios.SelectedIndices.Count - 1; i++)
                {
                    string Pis         = listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_PIS].Text;
                    int    Funcionario = Convert.ToInt32(listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_IND].Text);
                    rede.IdData_ExcluirFuncionario(Pis);
                    db.Atualizar_TerminaisFuncionarios(Terminal, Funcionario, true);
                    Application.DoEvents();

                    if (CANCELAR)
                    {
                        rede.AddLog("CANCELADO");
                        break;
                    }
                }

                atualizar_funcionarios_teminal();
            }
            finally
            {
                rede.Connection_Finalize();
            }
        }
        private void funcionárioSelecionadoToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            int Terminal = Convert.ToInt32(listRelogios.Items[listRelogios.SelectedIndices[0]].SubItems[TRM_SUBITEM_IND].Text);

            DB db = new DB();

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);  // apenas para o log

            rede.AddLog("ENVIANDO " + listFuncionarios.SelectedIndices.Count.ToString() + " REGISTROS <ESC> PARA CANCELAR");
            if (!rede.Connection_Init())
            {
                return;
            }

            CANCELAR = false;

            try
            {
                for (int i = 0; i <= listFuncionarios.SelectedIndices.Count - 1; i++)
                {
                    int Funcionario = Convert.ToInt32(listFuncionarios.Items[listFuncionarios.SelectedIndices[i]].SubItems[FUNC_SUBITEM_IND].Text);
                    enviar_biometrias_funcionario(rede, Funcionario);

                    Application.DoEvents();

                    if (CANCELAR)
                    {
                        rede.AddLog("CANCELADO");
                        break;
                    }
                }
            }
            finally
            {
                rede.Connection_Finalize();
            }
        }
        private void enviar_biometrias_funcionario(Rede rede, int Funcionario)
        {
            DB db = new DB();

            SqlCommand comm = db.Conn.CreateCommand();

            comm.CommandText = "SELECT FUNC_NOME, FUNC_PIS, FUNC_IND " +
                               "FROM Funcionarios " +
                               "INNER JOIN TerminaisFuncionarios ON TRMF_FUNC = FUNC_IND " +
                               "WHERE FUNC_IND = " + Funcionario.ToString();

            SqlDataReader reader = comm.ExecuteReader();

            reader.Read();

            string diretoriobiometrias = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Asseponto\\Biometria";
            string arquivo;

            arquivo = diretoriobiometrias + "\\" + reader["FUNC_PIS"].ToString().Trim() + ".bio";

            rede.AddLog("ENVIANDO BIOMETRIA: " + reader["FUNC_NOME"].ToString().Trim());

            if (File.Exists(arquivo))
            {
                EnviarBiometria(
                    rede,
                    reader["FUNC_PIS"].ToString().Trim(),
                    reader["FUNC_NOME"].ToString().Trim(),
                    Convert.ToInt32(reader["FUNC_IND"].ToString()),
                    arquivo
                    );
            }
            else
            {
                rede.AddLog("ARQUIVO DE BIOMETRIA NÃO ENCONTRADO");
            }

            reader.Close();
        }
        private void obterDadosDoFuncionárioNoTerminalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int Terminal = Convert.ToInt32(listRelogios.Items[listRelogios.SelectedIndices[0]].SubItems[TRM_SUBITEM_IND].Text);

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            string Pis = listFuncionarios.Items[listFuncionarios.SelectedIndices[0]].SubItems[FUNC_SUBITEM_PIS].Text;

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            if (!rede.Connection_Init())
            {
                return;
            }

            try
            {
                rede.IdData_Get_CrachaFuncionario(Pis);
            }
            finally
            {
                rede.Connection_Finalize();
            }
        }
        public void RecebeTodasMarcacoesTCP(int Terminal, string IP, int Porta, string arquivo)
        {
            Rede rede = new Rede(this.objIDSysR30, IP, Porta, edLog);

            rede.IdData_RecebeMarcacoes(Terminal, arquivo, Grupo, this);
        }
        public void EnviaDataHora(string IP, int Porta)
        {
            Rede rede = new Rede(this.objIDSysR30, IP, Porta, edLog);

            rede.IdData_EnviaDataHora();
        }
        private void enviar_funcionarios_terminal(int Terminal)
        {
            DB         db   = new DB();
            SqlCommand comm = db.Conn.CreateCommand();

            GetDadosTerminal(Terminal, out IP, out PORTA, out TERMINALNOME);

            int NFuncs = Convert.ToInt32(db.GetFieldValue(
                                             "SELECT FUNC_IND " +
                                             "FROM Funcionarios " +
                                             "INNER JOIN TerminaisFuncionarios ON TRMF_FUNC = FUNC_IND " +
                                             "WHERE TRMF_TERMINAL = " + Terminal + " AND FUNC_PIS IS NOT NULL"
                                             ));

            comm.CommandText = "SELECT FUNC_IND, FUNC_PIS, TRMF_ARMAZENADO_NO_TERMINAL " +
                               "FROM Funcionarios " +
                               "INNER JOIN TerminaisFuncionarios ON TRMF_FUNC = FUNC_IND " +
                               "WHERE TRMF_TERMINAL = " + Terminal + " AND FUNC_PIS IS NOT NULL " +
                               "ORDER BY FUNC_NOME";

            Rede rede = new Rede(this.objIDSysR30, IP, PORTA, edLog);

            rede.AddLog("ENVIANDO " + NFuncs.ToString() + " REGISTROS <ESC> PARA CANCELAR");
            if (!rede.Connection_Init())
            {
                return;
            }

            CANCELAR = false;

            try
            {
                SqlDataReader reader = comm.ExecuteReader();

                while (reader.Read())
                {
                    if (mmNaoEnviarFuncEnviados.Checked && Convert.ToInt32(reader["TRMF_ARMAZENADO_NO_TERMINAL"]) == 1)
                    {
                        rede.AddLog("PIS: " + reader["FUNC_PIS"].ToString() + " JÁ EXISTE NO TERMINAL");
                    }
                    else
                    {
                        EnviarCadastro(rede, Terminal, Convert.ToInt32(reader["FUNC_IND"].ToString()));
                    }

                    Application.DoEvents();

                    if (CANCELAR)
                    {
                        rede.AddLog("CANCELADO");
                        break;
                    }
                }

                reader.Close();
                atualizar_funcionarios_teminal();
            }
            finally
            {
                rede.Connection_Finalize();
            }
        }