Example #1
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            base.LerMarcacoes(marcacoes, tipoimportacao);

            this.marcacoes = marcacoes;

            string Answer = "";

            if (tipoimportacao == TipoImportacaoMarcacoes.Backup)
            {
                if (!GetNMarcacoes())
                {
                    return(false);
                }

                if (NMarcacoes == 0)
                {
                    log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS);
                    return(false);
                }
            }

            int NsrInicio = (tipoimportacao == TipoImportacaoMarcacoes.OnlyNew ? (new DBApp()).getLastNsr(TerminalDados.Indice) + 1 : 1);

            Send(String.Format("01+RR+00+N]999999999]{0}", NsrInicio), out Answer);

            return(ProcessAnswer(Answer));
        }
Example #2
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            base.LerMarcacoes(marcacoes, tipoimportacao);
            bool  Result = false;
            DBApp db     = new DBApp();

            int   ProximoNsr      = db.getLastNsr(TerminalDados.Indice);
            int   NRegistrosLidos = 0;
            short porta           = (short)TerminalDados.Porta;

            if (Connect(0))
            {
                //string Ponteir = starRep.VerificarNSRPonteiro(TerminalDados.IP, porta, numeroTentativas, tempoEsperaMilissegundos);
                //int ultimoNSR = Convert.ToInt32(starRep.VerificarUltimoNSR(TerminalDados.IP, porta, numeroTentativas, tempoEsperaMilissegundos));
                try
                {
                    string resposta = starRep.ColetarMarcacoes(TerminalDados.IP, porta, numeroTentativas, tempoEsperaMilissegundos, ProximoNsr + 1, "|");

                    while (!string.IsNullOrEmpty(resposta) && !resposta.ToLower().Equals("erro"))
                    {
                        string[] respostas = resposta.Split('|');
                        NRegistrosLidos = Convert.ToInt32(respostas[0]);

                        for (int i = 1; i < NRegistrosLidos + 1; i++)
                        {
                            string b = respostas[i].Substring(0, 9);
                            string c = b + 3 + respostas[i].Substring(9);

                            AssepontoRep.Marcacoes.Marcacao mrc = new AssepontoRep.Marcacoes.Marcacao();
                            if (marcacoes.InterpretarRegistroAfd(c, out mrc))
                            {
                                if (mrc.Tipo == Marcacoes.TiposRegistroAfd.Marcacao)
                                {
                                    marcacoes.Add(mrc);
                                }
                            }
                        }
                        resposta = string.Empty;
                    }

                    if (marcacoes.Count == 0)
                    {
                        log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS);
                    }

                    Result = true;
                }
                catch (Exception ex)
                {
                    log.AddLog(ex.Message);
                }
                finally
                {
                    starRep.Fecha_Comunicacao();
                }
            }
            return(Result);
        }
Example #3
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            base.LerMarcacoes(marcacoes, tipoimportacao);

            bool  Result     = false;
            DBApp db         = new DBApp();
            int   ProximoNsr = db.getLastNsr(TerminalDados.Indice) + 1;
            int   Contador   = 0;

            MRPRecord[] registrosMRP;

            if (Dimep_Conectar())
            {
                try
                {
                    _watchComm.RepositioningMRPRecordsPointer(ProximoNsr.ToString());

                    registrosMRP = this._watchComm.InquiryMRPRecords(false, false, true, false);

                    while (registrosMRP != null)
                    {
                        foreach (MRPRecord registroMRP in registrosMRP)
                        {
                            if (registroMRP is MRPRecord_RegistrationMarkingPoint)
                            {
                                string Pis = ((MRPRecord_RegistrationMarkingPoint)registroMRP).Pis;

                                DateTime DataHora = ((MRPRecord_RegistrationMarkingPoint)registroMRP).DateTimeMarkingPoint;
                                int      Nsr      = Convert.ToInt32(((MRPRecord_RegistrationMarkingPoint)registroMRP).NSR);
                                marcacoes.Add(Pis, DataHora, Nsr);
                                Contador++;

                                if (Nsr > ProximoNsr)
                                {
                                    ProximoNsr = Nsr;
                                }
                            }
                        }

                        registrosMRP = _watchComm.ConfirmationReceiptMRPRecords();
                    }

                    base.FinalizarImportacaoMarcacoes(marcacoes, ProcessarMarcacoesAoImportar.ProcessarSim);
                }
                catch (Exception ex)
                {
                    log.AddLog(ex.Message);
                }
                finally
                {
                    Dimep_Desconectar();
                }
            }
            return(Result);
        }
Example #4
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            bool Result = false;

            base.LerMarcacoes(marcacoes, tipoimportacao);

            string nsr          = "";
            string pis          = "";
            int    year         = 0;
            int    month        = 0;
            int    day          = 0;
            int    hour         = 0;
            int    min          = 0;
            int    sec          = 0;
            int    iIndex       = 0;
            int    idwErrorCode = -9;
            DBApp  db           = new DBApp();
            int    ProximoNsr   = db.getLastNsr(TerminalDados.Indice) + 1;

            bool connect = Connect(TerminalDados.Indice);

            //bioRep.SetSeekPosition(TerminalDados.Indice, ProximoNsr);

            if (connect)
            {
                log.AddLog("PROCESSANDO MARCAÇÕES...", true);
                bioRep.EnableDevice(TerminalDados.Indice, false);
                while (bioRep.GetAttLogs_BZ900(TerminalDados.Indice, out nsr, out pis, out year, out month, out day, out hour, out min, out sec))
                {
                    DateTime DataHora = new DateTime(year, month, day, hour, min, sec);

                    marcacoes.Add(pis, DataHora, Convert.ToInt32(nsr));
                    if (iIndex % 50 == 0)
                    {
                        System.Threading.Thread.Sleep(200);
                    }
                    iIndex++;
                    Result = true;
                }
                bioRep.GetLastError(ref idwErrorCode);
            }

            if (iIndex == 0)
            {
                Result = false;
            }

            bioRep.EnableDevice(TerminalDados.Indice, true);
            return(Result);
        }
Example #5
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            base.LerMarcacoes(marcacoes, tipoimportacao);

            bool ExpirouTimeout = false;

            for (int y = 1; y <= 1; y++)
            {
                RecebeMarcacoesTCP(marcacoes);

                if (ExpirouTimeout)
                {
                    log.AddLog(String.Format("RECONECTANDO APÓS TIMEOUT  [TENTATIVA {0}]", y));

                    for (int i = 5; i > 0; i--)
                    {
                        if (i == 1)
                        {
                            log.AddLog("CONECTANDO EM 1 SEGUNDO");
                        }
                        else
                        {
                            log.AddLog(String.Format("CONECTANDO EM {0} SEGUNDOS", i));
                        }

                        Application.DoEvents();
                        Wr.Classes.Utils.Pause(1);

                        if (Cancelar)
                        {
                            log.AddLog("RECONEXÃO CANCELADA");
                            break;
                        }
                    }
                }
                else
                {
                    break;
                }
            }

            return(marcacoes.Count > 0);
        }
Example #6
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            bool Result = base.LerMarcacoes(marcacoes, tipoimportacao);

            string nsr = "200";
            string pis;
            int    ano;
            int    mes;
            int    dia;
            int    hora;
            int    min;
            int    sec;

            DBApp db         = new DBApp();
            int   ProximoNsr = db.getLastNsr(TerminalDados.Indice) + 1;

            string ArquivoTemp = Path.GetTempFileName();

            int Contador = 0;

            bioRep.SetSeekPosition(numeroRep, ProximoNsr);

            bool connect = Connect(TerminalDados.Indice);

            if (connect)
            {
                log.AddLog("PROCESSANDO MARCAÇÕES...", true);
                List <string> arquivo = new List <string>();
                Wr.Classes.Files.ReadFile(ArquivoTemp, arquivo);
                while (bioRep.GetAttLogs(numeroRep, out nsr, out pis, out ano, out mes, out dia, out hora, out min, out sec))
                {
                    DateTime DataHora = new DateTime(ano, mes, dia, hora, min, sec);

                    marcacoes.Add(pis, DataHora, Convert.ToInt32(nsr));
                    Contador++;
                    Result = true;
                }
            }
            return(Result);
        }
Example #7
0
        public override bool LerMarcacoes(Marcacoes marcacoes, TipoImportacaoMarcacoes tipoimportacao)
        {
            base.LerMarcacoes(marcacoes, tipoimportacao);

            bool   Result = false;
            DBApp  db = new DBApp();
            int    ProximoNsr = db.getLastNsr(TerminalDados.Indice);
            int    NRegistrosLidos = 0, statusColeta = 0, nsr = 0, ret = 0, tentativas = 0;
            bool   recebeuUltimoBilhete = false;
            string dadosRegistro        = string.Empty;

            if (Connect(0))
            {
                try
                {
                    nsr = ProximoNsr;
                    while (!recebeuUltimoBilhete)
                    {
                        nsr++;
                        ret = innerRep.SolicitarRegistroNsr(nsr);
                        //string UltimoRegistro = innerRep.LerNumUltimoNsr();

                        if (ret == 0)
                        {
                            statusColeta = innerRep.LerStatusColeta();
                            tentativas   = 0;
                            while (statusColeta < 2 && tentativas < 1000)
                            {
                                Thread.Sleep(10);
                                Application.DoEvents();
                                Thread.Sleep(10);
                                statusColeta = innerRep.LerStatusColeta();
                                tentativas++;
                            }

                            if ((statusColeta == (int)Sdk_Inner_Rep.InnerRepPlusSDK.StatusLeitura.FINALIZADA_COM_ULTIMO_REGISTRO) ||
                                (statusColeta == (int)Sdk_Inner_Rep.InnerRepPlusSDK.StatusLeitura.FINALIZADA_COM_REGISTRO))
                            {
                                string numSerie = innerRep.LerNumSerieRep();
                                statusColeta = innerRep.LerResultadoColeta();

                                dadosRegistro = innerRep.LerRegistroLinha();

                                if (dadosRegistro != "" && dadosRegistro != null)
                                {
                                    AssepontoRep.Marcacoes.Marcacao mrc = new AssepontoRep.Marcacoes.Marcacao();

                                    if (marcacoes.InterpretarRegistroAfd(dadosRegistro, out mrc))
                                    {
                                        if (mrc.Tipo == Marcacoes.TiposRegistroAfd.Marcacao)
                                        {
                                            marcacoes.Add(mrc);
                                        }
                                    }
                                }


                                NRegistrosLidos++;
                            }
                            if ((statusColeta == (int)Sdk_Inner_Rep.InnerRepPlusSDK.StatusLeitura.FINALIZADA_SEM_REGISTRO) ||
                                (statusColeta == (int)Sdk_Inner_Rep.InnerRepPlusSDK.StatusLeitura.FINALIZADA_COM_ULTIMO_REGISTRO))
                            {
                                recebeuUltimoBilhete = true;
                            }
                        }
                    }

                    if (marcacoes.Count == 0)
                    {
                        log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS);
                    }

                    innerRep.FinalizarLeitura();
                    Result = true;
                }
                catch (Exception ex)
                {
                    log.AddLog(ex.Message);
                }
            }
            return(Result);
        }