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); }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { base.LerMarcacoes(marcacoes, tipoimportacao); Connect(TerminalDados.Indice); //log.AddLog("INICIANDO IMPORTAÇÂO DE MARCAÇÔES"); DBApp bd = new DBApp(); int ultimonsr = bd.getLastNsr(TerminalDados.Indice); DateTime inicial = Convert.ToDateTime("01/01/2010"); DateTime final = DateTime.Now; DataTable table = new DataTable(); string lista = ""; if (Rep.LerAFD_ViaLista(TerminalDados.IP, TerminalDados.Porta, Convert.ToInt32(TerminalDados.SupervisorSenha), inicial.ToString("yyyyMMdd"), final.ToString("yyyyMMdd"), ref lista, ultimonsr, "|", ";")) { string[] registros = lista.Split(new string[] { ";" }, StringSplitOptions.None); string[] campos; foreach (string registro in registros) { campos = registro.Split(new string[] { "|" }, StringSplitOptions.None); string nsr = campos[0]; string tipo = campos[1]; if (tipo.Trim() == "3") { string data = campos[2]; string hora = campos[3]; string pis = campos[4]; DateTime datetime = Convert.ToDateTime(data.Substring(0, 2) + "/" + data.Substring(2, 2) + "/" + data.Substring(4, 4) + " " + hora.Substring(0, 2) + ":" + hora.Substring(2, 2)); marcacoes.Add(pis, datetime, Convert.ToInt32(nsr)); } } return(true); } else { LogErro(); return(false); } }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { Connect(TerminalDados.Indice); bool Result = false; int NRegistrosLidos = 0; DateTime DataInicial; DateTime DataFinal; StringBuilder PIS = new StringBuilder(11); StringBuilder DataHora = new StringBuilder(19); StringBuilder NSR = new StringBuilder(20); StringBuilder MensagemErro = new StringBuilder(256); //Marcacoes marcacoes = new Marcacoes(TerminalDados); if (!getPeriodo(out DataInicial, out DataFinal)) { return(false); } //REPZPM_DLL.ID_Comando = REPZPM_DLL.DLLREP_BuscaPonto(REPZPM_DLL.Handle, DataInicial.ToString("dd/MM/yyyy"), DataFinal.ToString("dd/MM/yyyy")); //if (REPZPM_DLL.ID_Comando == -4) //{ int count = 1; do { REPZPM_DLL.ID_Comando = REPZPM_DLL.DLLREP_BuscaPonto(REPZPM_DLL.Handle, DataInicial.ToString("dd/MM/yyyy"), DataFinal.ToString("dd/MM/yyyy")); if (REPZPM_DLL.ID_Comando == -4) { int timeout = REPZPM_DLL.DLLREP_LeTimeout(REPZPM_DLL.Handle); if (timeout != -1) { REPZPM_DLL.DLLREP_DefineTimeout(REPZPM_DLL.Handle, (timeout * (count + 1))); } else { REPZPM_DLL.DLLREP_DefineTimeout(REPZPM_DLL.Handle, 100000); } } count++; }while (REPZPM_DLL.ID_Comando == -4 && count <= 11); //} if (REPZPM_DLL.ID_Comando >= 0) { /*Retorna a quantidade de registros*/ NRegistros = REPZPM_DLL.DLLREP_TotalRetornos(REPZPM_DLL.Handle); log.AddLog(String.Format(Consts.MARCACOES_A_PROCESSAR, NRegistros)); if (NRegistros > 0) { for (int i = 1; i <= NRegistros; i++) { REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_RetornoPonto(REPZPM_DLL.Handle, i, PIS, DataHora, NSR); if (REPZPM_DLL.Retorno > 0) { marcacoes.Add(PIS.ToString(), Convert.ToDateTime(DataHora.ToString()), Convert.ToInt32(NSR.ToString())); log.AddLogUnformatted(PIS.ToString().PadRight(18) + DataHora + " " + NSR); NRegistrosLidos++; } else { //REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_ObtemMensagemErro(REPZPM_DLL.Handle, MensagemErro, 1); //log.AddLog(Convert.ToString(MensagemErro)); int ret = REPZPM_DLL.DLLREP_ObtemCodigoErro(REPZPM_DLL.Handle, REPZPM_DLL.Retorno); log.AddLog(REPZPM_DLL.Trata_Retorno_DLL(ret)); } } } else { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } Result = (NRegistrosLidos > 0); if (Result) { marcacoes.SaveToFile(); log.AddLogUnformatted(String.Format(Consts.ARQUIVO_GERADO, marcacoes.Arquivo)); log.AddLineBreak(); } else { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } } else { Result = false; log.AddLog(REPZPM_DLL.Trata_Retorno_DLL(REPZPM_DLL.ID_Comando)); } Disconnect(TerminalDados.Indice); return(Result); }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { try { int NRegistrosLidos = 0; if (!File.Exists(FILE_PATH + FILE_CONFIGURATION)) { Files.WriteFile(FILE_PATH + FILE_CONFIGURATION, (new List <string>())); } bool Result = processStart("/co " + FILE_PATH, Args()); if (Result) { //int ProximoNsr = (new DBApp()).getLastNsr(TerminalDados.Indice) + 1; List <string> Arquivos = new List <string>(); List <string> Novo = new List <string>(); Files.DirSearch(FILE_PATH, "*.txt", Arquivos); foreach (string arquivo in Arquivos) { List <string> conteudo = new List <string>(); Files.ReadFile(arquivo, conteudo); foreach (string cLinha in conteudo) { AssepontoRep.Marcacoes.Marcacao mrc = new AssepontoRep.Marcacoes.Marcacao(); if (marcacoes.InterpretarRegistroAfd(cLinha, out mrc)) { if (mrc.Tipo == Marcacoes.TiposRegistroAfd.Marcacao) { marcacoes.Add(mrc); } } NRegistrosLidos++; } File.Delete(arquivo); } //if (marcacoes.Count == 0) //{ // log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); //} } else { log.AddLog(Consts.ERRO_ENVIO_COMANDO); } getLog(); return(Result); } catch (Exception ex) { log.AddLog(ex.Message); } return(false); }
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); }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { bool Result = false; int NRegistrosLidos = 0; Connect(); try { DBApp db = new DBApp(); int ProximoNsr = db.getLastNsr(TerminalDados.Indice) + 1; if (!_rep.BuscarAFD(ProximoNsr)) { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } else { string cLinha; while (_rep.LerAFD(out cLinha)) { AssepontoRep.Marcacoes.Marcacao mrc = new AssepontoRep.Marcacoes.Marcacao(); if (marcacoes.InterpretarRegistroAfd(cLinha, out mrc)) { if (mrc.Tipo == Marcacoes.TiposRegistroAfd.Marcacao) { marcacoes.Add(mrc); } } //if (Convert.ToInt32(cLinha.Substring(9, 1)) == (int)(Marcacoes.TiposRegistroAfd.Marcacao)) //{ // string PIS = cLinha.Substring(22, 12).Replace("\n", "").Replace("\t", "").Replace("\r", ""); // string DataHora = cLinha.Substring(10, 12); // string NSR = cLinha.Substring(0, 9); // marcacoes.Add(PIS, extrairDateTime(DataHora), Convert.ToInt32(NSR)); //} NRegistrosLidos++; } if (NRegistrosLidos == 0) { log.AddLog(Consts.ERRO_ENVIO_COMANDO); } if (marcacoes.Count == 0) { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } Result = true; } } catch (Exception ex) { log.AddLog(ex.Message); Result = false; } finally { _rep.Desconectar(); } return(Result); }
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); } }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { Connect(TerminalDados.IP, TerminalDados.Porta); bool Result = false; int NRegistrosLidos = 0; DateTime DataInicial; DateTime DataFinal; StringBuilder PIS = new StringBuilder(11); StringBuilder DataHora = new StringBuilder(19); StringBuilder NSR = new StringBuilder(20); StringBuilder MensagemErro = new StringBuilder(256); //Marcacoes marcacoes = new Marcacoes(TerminalDados); if (!getPeriodo(out DataInicial, out DataFinal)) { return(false); } REPZPM_DLL.ID_Comando = REPZPM_DLL.DLLREP_BuscaPonto(REPZPM_DLL.Handle, DataInicial.ToString("dd/MM/yyyy"), DataFinal.ToString("dd/MM/yyyy")); if (REPZPM_DLL.ID_Comando > 0) { /*Retorna a quantidade de registros*/ NRegistros = REPZPM_DLL.DLLREP_TotalRetornos(REPZPM_DLL.Handle); log.AddLog(String.Format(Consts.MARCACOES_A_PROCESSAR, NRegistros)); if (NRegistros > 0) { for (int i = 1; i <= NRegistros; i++) { REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_RetornoPonto(REPZPM_DLL.Handle, i, PIS, DataHora, NSR); if (REPZPM_DLL.Retorno == 1) { marcacoes.Add(PIS.ToString(), Convert.ToDateTime(DataHora.ToString()), Convert.ToInt32(NSR.ToString())); log.AddLogUnformatted(PIS.ToString().PadRight(18) + DataHora + " " + NSR); NRegistrosLidos++; } else { REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_ObtemMensagemErro(REPZPM_DLL.Handle, MensagemErro, 1); log.AddLog(Convert.ToString(MensagemErro)); } } } else { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } } Result = (NRegistrosLidos > 0); if (REPZPM_DLL.ID_Comando == -2) { log.AddLog("Erro de comunicação!"); } else { if (Result) { marcacoes.SaveToFile(); log.AddLogUnformatted(String.Format(Consts.ARQUIVO_GERADO, marcacoes.Arquivo)); log.AddLineBreak(); } else { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } } return(Result); }