public static TefLinhaLista MontaRequisicaoCnc( int idRequisicao, string rede, string nsu, DateTime transacaoEm, decimal valor, IConfigAcTefDial configAcTefDial ) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "CNC"), new TefLinha("001-000", idRequisicao), new TefLinha("003-000", valor), new TefLinha("010-000", rede), new TefLinha("012-000", nsu), new TefLinha("022-000", transacaoEm.Date.ToString("ddMMyyyy")), new TefLinha("023-000", transacaoEm.TimeOfDay.ToString("hhmmss")), new TefLinha("738-000", configAcTefDial.RegistroCertificado) }; CapacidadesAutomacao(configAcTefDial, listaRequisicao); listaRequisicao.Add(new TefLinha("999-999", "0")); return(listaRequisicao); }
public static TefLinhaLista MontaRequisicaoCrt( int idRequisicao, decimal valor, string documentoVinculado, string nomeAutomacao, string registroCertificacao, IConfigAcTefDial configAcTefDial ) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "CRT"), new TefLinha("001-000", idRequisicao), new TefLinha("002-000", documentoVinculado), new TefLinha("003-000", valor), new TefLinha("004-000", "0"), new TefLinha("716-000", nomeAutomacao), new TefLinha("738-000", registroCertificacao) }; CapacidadesAutomacao(configAcTefDial, listaRequisicao); listaRequisicao.Add(new TefLinha("999-999", "0")); return(listaRequisicao); }
public override RespostaCrt Crt(decimal valor, string documentoVinculado, bool confirmarManual = false) { VerificaInicializado(); var requisicao = FabricarRequisicao.MontaRequisicaoCrt( IdRequisicao, valor, documentoVinculado, NomeAutomacaoComercial, RegistroCertificacao, _configAcTefDial); _tefRespostaCrt = _requisicao.Enviar(requisicao, this); _respostaRequisicaoCrt = _requisicao.AguardaRespostaRequisicao(); _requisicao.OnExibeMensagem(new ExibeMensagemEventArgs(_respostaRequisicaoCrt)); var autorizaDfeEventArgs = new AutorizaDfeEventArgs(_respostaRequisicaoCrt); _requisicao.OnAutorizaDfe(autorizaDfeEventArgs); _statusTransacao = ConfereStatus(_respostaRequisicaoCrt); _statusTransacaoCrt = _statusTransacao ? AcTefStatus.Sucesso : AcTefStatus.Falha; if (confirmarManual) { return(new RespostaCrt(_tefRespostaCrt, _respostaRequisicaoCrt, _statusTransacaoCrt)); } return(ConfirmarCrt(autorizaDfeEventArgs)); }
private static void CapacidadesAutomacao(IConfigAcTefDial configAcTefDial, TefLinhaLista listaRequisicao) { var capacidadesDaAutomacao = 0; if (configAcTefDial.SuporteTroco) { capacidadesDaAutomacao += 1; } if (configAcTefDial.SuporteDesconto) { capacidadesDaAutomacao += 2; } if (configAcTefDial.SuporteValorReajustado) { capacidadesDaAutomacao += 64; } if (configAcTefDial.SuporteNsuTamanho40) { capacidadesDaAutomacao += 128; } if (capacidadesDaAutomacao > 0) { listaRequisicao.Add(new TefLinha("706-000", capacidadesDaAutomacao)); } }
protected override TefLinhaLista EfetuaRequisicao(TefLinhaLista requisicao, out TefLinhaLista respostaRequisicaoAdm) { var tefResposta = _requisicao.Enviar(requisicao, this); respostaRequisicaoAdm = _requisicao.AguardaRespostaRequisicao(); _requisicao.OnExibeMensagem(new ExibeMensagemEventArgs(respostaRequisicaoAdm)); if (ConfereStatus(respostaRequisicaoAdm)) { if (respostaRequisicaoAdm.RequerConfirmacao()) { Cnf( respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor, respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor, NomeAplicativoComercial, VersaoAplicativoComercial, RegistroCertificacao ); } ImprimirVias(respostaRequisicaoAdm); } return(tefResposta); }
public void VerificaSeTefEstaAtivo(TefLinhaLista requisicao) { if (requisicao.BuscaLinha(AcTefIdentificadorCampos.Comando)?.Valor != "ATV") { Atv(); } }
protected virtual TefLinhaLista EfetuaRequisicao(TefLinhaLista requisicao, out TefLinhaLista respostaRequisicaoAdm) { var tefResposta = _requisicao.Enviar(requisicao, this); respostaRequisicaoAdm = _requisicao.AguardaRespostaRequisicao(); return(tefResposta); }
public void Adicionar(TefLinha linha) { if (Requisicao.BuscaLinha(linha.Identificacao) == linha) { return; } Requisicao.Add(linha); Requisicao = new TefLinhaLista(Requisicao.OrderBy(req => req.Identificacao).ToList()); }
public static bool NaoRequerConfirmacao(this TefLinhaLista tefLinhaLista) { var statusConfirmacao = tefLinhaLista.FirstOrDefault(resp => resp.Identificacao == 729); if (statusConfirmacao == null) { return(false); } return(statusConfirmacao.Valor == "1"); }
public static TefLinhaLista MontaRequisicaoAtv(int idRequisicao, IConfigAcTefDial configAcTefDial) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "ATV"), new TefLinha("001-000", idRequisicao), new TefLinha("738-000", configAcTefDial.RegistroCertificado), new TefLinha("999-999", "0") }; return(listaRequisicao); }
public static void EfetuarBackupResposta(string pastaBackup, TefLinhaLista tefLinhaLista) { var idBackup = 0; string arquivo; do { idBackup++; arquivo = Path.Combine(pastaBackup, $@"AcTef_{idBackup:000}.tef"); } while (File.Exists(arquivo)); File.WriteAllLines(arquivo, tefLinhaLista.GetRequisicao()); }
public static TefLinhaLista LoadArquivo(string arquivo) { var listaDeLinhas = new TefLinhaLista(); var conteudoArquivoSts = File.ReadAllLines(arquivo); foreach (var conteudoArquivoSt in conteudoArquivoSts) { listaDeLinhas.Add(new TefLinha(conteudoArquivoSt)); } return(listaDeLinhas); }
public static TefLinhaLista MontaRequisicaoAdm(int idRequisicao, IConfigAcTefDial configAcTefDial) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "ADM"), new TefLinha("001-000", idRequisicao), new TefLinha("738-000", configAcTefDial.RegistroCertificado) }; CapacidadesAutomacao(configAcTefDial, listaRequisicao); listaRequisicao.Add(new TefLinha("999-999", "0")); return(listaRequisicao); }
protected virtual void TransacaoPendente() { if (!Arquivo.Existe(_requisicao.ArquivoResposta)) { return; } var listaLinha = TefLinhaLista.LoadArquivo(_requisicao.ArquivoResposta); if (listaLinha.ConfereStatus()) { Ncn( listaLinha.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor, listaLinha.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor ); } }
public static bool ConfereStatus(this TefLinhaLista tefLinhaLista) { var campoStatus = 009; var campo009Status = tefLinhaLista.BuscaLinha(campoStatus); if (campo009Status == null) { return(false); } if (campo009Status.Valor != "0") { return(false); } return(true); }
public static TefLinhaLista MontaRequisicaoNcn( int idRequisicao, string redeAdquirente, string registroCertificacao, string codigoControle ) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "NCN"), new TefLinha("001-000", idRequisicao), new TefLinha("010-000", redeAdquirente), new TefLinha("027-000", codigoControle), new TefLinha("738-000", registroCertificacao), new TefLinha("999-999", "0") }; return(listaRequisicao); }
public static TefLinhaLista MontaRequisicaoCnf( int idRequisicao, string redeAdquirente, string codigoControle, string nomeAutomacao, string versaoAutomacao, string registroCertificacao) { var listaRequisicao = new TefLinhaLista { new TefLinha("000-000", "CNF"), new TefLinha("001-000", idRequisicao), new TefLinha("010-000", redeAdquirente), new TefLinha("027-000", codigoControle), new TefLinha("735-000", nomeAutomacao), new TefLinha("736-000", versaoAutomacao), new TefLinha("738-000", registroCertificacao), new TefLinha("999-999", "0") }; return(listaRequisicao); }
public AcTefResposta(TefLinhaLista tefLinhaLista) { TefLinhaLista = tefLinhaLista; }
private static void Identificacao(IConfigAcTefDial configAcTefDial, TefLinhaLista listaRequisicao) { listaRequisicao.Add(new TefLinha("735-000", configAcTefDial.NomeAplicacaoComercial)); listaRequisicao.Add(new TefLinha("736-000", configAcTefDial.VersaoAplicacaoComercial)); }
public RespostaCrt(TefLinhaLista tefResposta, TefLinhaLista resposta, AcTefStatus acTefStatus) { TefResposta = tefResposta; Resposta = resposta; TefStatus = acTefStatus; }
public AntesRequisicaoEventArgs(TefLinhaLista requisicao) { Requisicao = requisicao; }
public static TefLinha BuscaLinha(this TefLinhaLista tefLinhaLista, int identificacao, int posicao) { return(tefLinhaLista.FirstOrDefault(resp => resp.Identificacao == identificacao && resp.Posicao == posicao)); }
public AutorizaDfeEventArgs(TefLinhaLista tefLinhaLista) { TefLinhaLista = tefLinhaLista; }
public ExibeMensagemEventArgs(TefLinhaLista tefLinhaLista) { Mensagem = tefLinhaLista.BuscaLinha(030)?.Valor ?? string.Empty; }
protected virtual void ImprimirVias(TefLinhaLista respostaRequisicao) { _requisicao.OnImprimirVia(new ImprimeViaEventArgs(respostaRequisicao)); }
public static bool RequerConfirmacao(this TefLinhaLista tefLinhaLista) { var statusConfirmacao = tefLinhaLista.FirstOrDefault(resp => resp.Identificacao == 729); return(statusConfirmacao == null || statusConfirmacao.Valor == "2"); }
protected virtual bool ConfereStatus(TefLinhaLista respostaRequisicaoAdm) { return(respostaRequisicaoAdm.ConfereStatus()); }
public RespostaAtv(TefLinhaLista tefLinhaLista) { Header = tefLinhaLista[0].Valor; Identificadao = tefLinhaLista[1].Valor; TefLinhaLista = tefLinhaLista; }