示例#1
0
        public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao)
        {
            DBApp db = new DBApp();

            Connect(TerminalDados.Indice);

            string from = "";
            string to   = "";

            RepProtocol.FiltroRegistro f;

            if (tipoimportacao == TipoImportacaoMarcacoes.OnlyNew)
            {
                f = RepProtocol.FiltroRegistro.NsrRange;
                RepProtocol.MrpStatus st = repProtocol.GetMrpStatus();

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

                from = ProximoNsr.ToString().PadLeft(9, '0');
                to   = st.LastNSR.ToString();
            }
            else
            {
                f = RepProtocol.FiltroRegistro.All;
            }

            List <string> r = repProtocol.GetRegs(f, from, to);

            foreach (string linha in r)
            {
                Marcacoes.Marcacao marcacao = new Marcacoes.Marcacao();

                marcacoes.InterpretarRegistroAfd(linha, out marcacao);

                if (marcacao.Tipo == Marcacoes.TiposRegistroAfd.Marcacao)
                {
                    marcacoes.Add(marcacao);
                }
            }

            //Wr.Classes.Files.WriteFile(@"c:\arquivo.txt", r);
            return(marcacoes.Count > 0);
        }
示例#2
0
        public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao)
        {
            Disconnect(TerminalDados.Indice);
            Connect(TerminalDados.Indice);

            List <string> lstrEventData;

            string[] split;
            DBApp    bd    = new DBApp();
            int      last  = bd.getLastNsr(TerminalDados.Indice);
            uint     uiNSR = Convert.ToUInt32(last == 0 ? 1 : last);

            try
            {
                this._objController.RequestTotalNSR();
                System.Threading.Thread.Sleep(100);
                lstrEventData = this._objController.GetEventData();
                split         = lstrEventData[6].Split(new string[] { " : " }, StringSplitOptions.None);
                uint uiMaxNSR = Convert.ToUInt32(split[1]);

                log.AddLog(":: ATENÇÃO :: A IMPORTAÇÃO DESSE RELÓGIO PODE DEMORAR, NÃO FINALIZE");
                log.AddLog("              ATÉ QUE TENHA TERMINADO ...");
                log.AddLog("AGUARDE...");
                System.Threading.Thread.Sleep(100);
                for (uint i = uiNSR; i <= uiMaxNSR; i++)
                {
                    this._objController.RequestEventByNSR(i);
                    int seg = 0;
                    System.Threading.Thread.Sleep(100);
                    EConnectionState state = EConnectionState.SendingData;
                    while (state == EConnectionState.SendingData)
                    {
                        state = this._objController.GetConnectionState();
                        //System.Threading.Thread.Sleep(100);
                        seg++;
                    }
                    if (state == EConnectionState.DataReceived)
                    {
                        this._objController.SetConnectionState(EConnectionState.Connected);


                        System.Threading.Thread.Sleep(100);
                        lstrEventData = this._objController.GetEventData();

                        if (lstrEventData == null)
                        {
                            throw new Exception("Evento não encontrado.");
                        }

                        int tipo = -1;
                        for (int c = 0; c < lstrEventData.Count; c++)
                        {
                            if (lstrEventData[c].Contains("Tipo do Registro"))
                            {
                                split = lstrEventData[c].Split(new string[] { " : " }, StringSplitOptions.None);
                                tipo  = Convert.ToInt32(split[1]);
                                break;
                            }
                        }

                        Marcacoes.Marcacao marc;
                        if (tipo == 3)
                        {
                            marc      = new Marcacoes.Marcacao();
                            marc.Tipo = Marcacoes.TiposRegistroAfd.Marcacao;
                            split     = lstrEventData[7].Split(new string[] { " : " }, StringSplitOptions.None);
                            string nsr = split[1];
                            marc.NSR = Convert.ToInt32(nsr);
                            split    = lstrEventData[9].Split(new string[] { " : " }, StringSplitOptions.None);
                            string datetime = split[1].Trim();
                            split         = lstrEventData[10].Split(new string[] { " : " }, StringSplitOptions.None);
                            datetime      = datetime + " " + split[1].Trim();
                            marc.DataHora = Convert.ToDateTime(datetime);
                            split         = lstrEventData[11].Split(new string[] { " : " }, StringSplitOptions.None);
                            string pis = split[1].Replace(".", "").Replace("-", "").Trim();
                            marc.Pis = pis;

                            marcacoes.Add(marc);
                        }
                    }
                }
                bd.setLastNsr(TerminalDados.Indice, (int)uiMaxNSR);
                bool retorno = (marcacoes.Count > 0);

                Disconnect(TerminalDados.Indice);
                return(retorno);
            }
            catch (Exception exError)
            {
                log.AddLog(Consts.ERRO_ENVIO_COMANDO);
                log.AddLog("Descrição ", true);
                log.AddLog(exError.Message);
                Disconnect(TerminalDados.Indice);
                return(false);
            }
        }