コード例 #1
0
ファイル: Bridge.cs プロジェクト: bravesoftdz/assecont_reps
        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, null);

            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)
        {
            bool Result = base.LerMarcacoes(marcacoes, tipoimportacao);

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

            string ArquivoTemp = Path.GetTempFileName();

            int Contador = 0;

            if (Connect(TerminalDados.Indice))
            {
                int resultado = envioDll.LeCadastro(TerminalDados.IP, 5, ProximoNsr.ToString(), ArquivoTemp);

                if (resultado == 0)
                {
                    List <string> arquivo = new List <string>();
                    Wr.Classes.Files.ReadFile(ArquivoTemp, arquivo);

                    foreach (string S in arquivo)
                    {
                        string[] linhaReg = S.Split(';');
                        if (linhaReg[1] == Convert.ToInt32(Marcacoes.TiposRegistroAfd.Marcacao).ToString())
                        {
                            string Pis = linhaReg[4];

                            try
                            {
                                DateTime DataHora = new DateTime(
                                    Convert.ToInt32(linhaReg[2].Substring(4, 4)),
                                    Convert.ToInt32(linhaReg[2].Substring(2, 2)),
                                    Convert.ToInt32(linhaReg[2].Substring(0, 2)),
                                    Convert.ToInt32(linhaReg[3].Substring(0, 2)),
                                    Convert.ToInt32(linhaReg[3].Substring(2, 2)),
                                    0
                                    );

                                int Nsr = Convert.ToInt32(linhaReg[0]);

                                marcacoes.Add(Pis, DataHora, Nsr);
                                Contador++;
                                Result = true;
                            }
                            catch
                            {
                                log.AddLog(S);
                                Result = false;
                            }
                        }
                    }

                    File.Delete(ArquivoTemp);

                    Disconnect(TerminalDados.Indice);
                }
                else
                {
                    Disconnect(TerminalDados.Indice);
                    LogMensagem(resultado);
                }
            }

            return(Result);
        }
コード例 #3
0
ファイル: Rede.cs プロジェクト: bravesoftdz/assecont_reps
        public bool Gertec_ImportarMarcacoes(int Terminal, string TerminalNome, Marcacoes marcacoes)
        {
            bool  Result     = false;
            DBApp db         = new DBApp();
            int   ProximoNsr = db.getLastNsr(Terminal) + 1;

            string diretoriomarcacoes = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Asseponto\\Marcacoes\\" + TerminalNome;

            Wr.Classes.Files.ForceDirectories(diretoriomarcacoes);

            string ArquivoTemp = Path.GetTempFileName();

            System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1");

            int Contador = 0;

            if (Gertec_Conectar())
            {
                int resultado = envioDll.LeCadastro(IP, 5, ProximoNsr.ToString(), ArquivoTemp);
                if (resultado == 0)
                {
                    FileStream   abreArquivoTxt = new FileStream(ArquivoTemp, FileMode.Open, FileAccess.Read);
                    StreamReader sr             = new StreamReader(abreArquivoTxt, iso_8859_1);
                    string       line           = "";

                    while ((line = sr.ReadLine()) != null)
                    {
                        string[] linhaReg = line.Split(';');
                        if (linhaReg[1] == "3")
                        {
                            string   Pis  = linhaReg[4];
                            bool     Erro = false;
                            DateTime DataHora;

                            try
                            {
                                DataHora = new DateTime(
                                    Convert.ToInt32(linhaReg[2].Substring(4, 4)),
                                    Convert.ToInt32(linhaReg[2].Substring(2, 2)),
                                    Convert.ToInt32(linhaReg[2].Substring(0, 2)),
                                    Convert.ToInt32(linhaReg[3].Substring(0, 2)),
                                    Convert.ToInt32(linhaReg[3].Substring(2, 2)),
                                    0
                                    );

                                int Nsr = Convert.ToInt32(linhaReg[0]);

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

                                marcacoes.Add(Pis, DataHora, Nsr);
                                Contador++;
                            }
                            catch
                            {
                                log.AddLog(line);
                                Erro = true;
                            }
                        }
                    }

                    sr.Close();

                    File.Delete(ArquivoTemp);

                    Gertec_Desconectar();

                    if (Contador > 0)
                    {
                        string Arquivo = marcacoes.SaveToFile();
                        log.AddLog(String.Format(Consts.ARQUIVO_GERADO, Arquivo));

                        Result = true;
                    }
                    else
                    {
                        log.AddLog(Consts.SEM_MARCACOES);
                    }

                    if (ProximoNsr > 0)
                    {
                        db.setLastNsr(Terminal, ProximoNsr);
                    }
                }
                else
                {
                    Gertec_Desconectar();
                    LogMensagem(resultado);
                }
            }

            return(Result);
        }