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, 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 (PrintPointIII_Conectar()) { try { try { _watchComm.RepositioningMRPRecordsPointer(ProximoNsr.ToString()); } catch (Exception ex) { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } registrosMRP = this._watchComm.InquiryMRPRecords(false, false, true, false, 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 { PrintPointIII_Desconectar(); } } return(Result); }
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 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); }
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 bool Dimep_ImportarMarcacoes(int Terminal, string TerminalNome, Marcacoes marcacoes) { bool Result = false; DBApp db = new DBApp(); int ProximoNsr = db.getLastNsr(Terminal) + 1; int Contador = 0; MRPRecord[] registrosMRP; log.AddLog(AssepontoRep.Consts.INICIALIZANDO_IMPORTACAO_ARQUIVO); 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(); } if (Contador > 0) { string Arquivo = marcacoes.SaveToFile(); log.AddLog(String.Format(AssepontoRep.Consts.ARQUIVO_GERADO, Arquivo)); Result = true; db.setLastNsr(Terminal, ProximoNsr); } else { log.AddLog(AssepontoRep.Consts.SEM_MARCACOES); } } catch (Exception ex) { log.AddLog(ex.Message); } finally { Dimep_Desconectar(); } } return(Result); }
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); }
private bool RecebeMarcacoesTCP(Marcacoes marcacoes) { bool Result = false; DBApp db = new DBApp(); int NSR = db.getLastNsr(TerminalDados.Indice); if (NSR == 0) { NSR = 1; } string mensagem = "!06,R,004,"; string CRC = CalculaCRC(mensagem, CalculaNsr(NSR)); bool primeiro = true; TcpClient sock = new TcpClient(); NetworkStream stream; sock.Connect(TerminalDados.IP, TerminalDados.Porta); stream = sock.GetStream(); EnviaMensagem(mensagem.Substring(0, 10), stream); EnviaNSR(NSR, stream); EnviaMensagem(",", stream); EnviaMensagem(CRC, stream); bool recolhe = true; log.AddLog(string.Format(Consts.INICIALIZANDO_IMPORTACAO_ARQUIVO_NSR, NSR)); while (recolhe) { Application.DoEvents(); if (sock.Available > 9) { byte[] comeco = new byte[10]; stream.Read(comeco, 0, 10); string cabecalho = ConverteMensagem(comeco); if (cabecalho == "!06,I,002,") { stream.Read(new byte[sock.Available], 0, sock.Available); break; } int quantidadeBytes = Convert.ToInt32(cabecalho.Substring(6, 3)); byte[] byMarcacoes = new byte[quantidadeBytes]; while (sock.Available <= quantidadeBytes) { } stream.Read(byMarcacoes, 0, byMarcacoes.Length); log.AddLog(CortaMensagem(byMarcacoes, marcacoes, out NSR).ToString() + " restantes"); byte[] limpa = new byte[3]; stream.Read(limpa, 0, limpa.Length); EnviaMensagem("!06,I,002,06,78", stream); primeiro = false; Application.DoEvents(); } } if (Cancelar) { log.AddLog("CANCELADO"); } else if (primeiro) { log.AddLog(Consts.MARCACOES_NAO_HA_NOVAS); } stream.Close(); sock.Close(); return(marcacoes.Count > 0); }