/// <summary> /// Grava autorização e relaciona as saídas /// </summary> /// <param name="resultadoProcessamento"></param> /// <param name="listaSolicitacaoSaida"></param> /// <returns></returns> private long InserirAutorizacao(CartaoCreditoAutorizacao autorizacao) { var repAutorizacao = new RepositorioGenerico <tb_autorizacao_cartao>(); tb_autorizacao_cartao _autorizacao_cartaoE = new tb_autorizacao_cartao(); try { _autorizacao_cartaoE.header = autorizacao.Header; _autorizacao_cartaoE.codIdentificacao = autorizacao.CodIndentificacao; _autorizacao_cartaoE.cupomFiscal = autorizacao.CupomFiscal; _autorizacao_cartaoE.tipoDocumentoFiscal = autorizacao.TipoDocumentoFiscal; _autorizacao_cartaoE.valor = autorizacao.Valor; _autorizacao_cartaoE.nomeBandeiraCartao = autorizacao.NomeBandeiraCartao; _autorizacao_cartaoE.statusTransacao = autorizacao.StatusTransacao; _autorizacao_cartaoE.tipoTransacao = autorizacao.TipoTransacao; _autorizacao_cartaoE.processado = autorizacao.Processado; _autorizacao_cartaoE.tipoParcelamento = autorizacao.TipoParcelamento; if (autorizacao.StatusTransacao.Equals("0")) { _autorizacao_cartaoE.autorizacaoTransacao = autorizacao.AutorizacaoTransacao; _autorizacao_cartaoE.dataHoraAutorizacao = autorizacao.DataHoraAutorizacao; _autorizacao_cartaoE.nsuTransacao = autorizacao.NsuTransacao; _autorizacao_cartaoE.quantidadeParcelas = autorizacao.QuantidadeParcelas == 0 ? 1 : autorizacao.QuantidadeParcelas; } repAutorizacao.Inserir(_autorizacao_cartaoE); repAutorizacao.SaveChanges(); var saceEntities = (SaceEntities)repAutorizacao.ObterContexto(); var query = from saida in saceEntities.tb_saida where saida.pedidoGerado.Equals(autorizacao.CupomFiscal) select saida; List <tb_saida> listaSaidas = query.ToList(); foreach (tb_saida saidaE in listaSaidas) { _autorizacao_cartaoE.tb_saida.Add(saidaE); } repAutorizacao.SaveChanges(); } catch (Exception e) { if (e.InnerException is MySqlException) { MySqlException exception = (MySqlException)e.InnerException; if (exception.Number != 1062) // quando a autorização já foi inserida na base não precisa enviar erro. { throw new DadosException("Autorização Cartão", e.Message, e); } } } return(_autorizacao_cartaoE.codAutorizacao); }
public Boolean AtualizarRespostaCartoes(string nomeServidor) { Boolean atualizou = false; DirectoryInfo PastaRetorno = new DirectoryInfo(Global.PASTA_COMUNICACAO_CARTAO); DirectoryInfo PastaBackup = new DirectoryInfo(Global.PASTA_COMUNICACAO_TEF_BACKUP); string nomeComputador = System.Windows.Forms.SystemInformation.ComputerName; if (nomeComputador.Equals(nomeServidor) && PastaRetorno.Exists) { // Busca automaticamente todos os arquivos em todos os subdiretórios FileInfo[] Files = PastaRetorno.GetFiles("*.TEF", SearchOption.TopDirectoryOnly); if (Files.Length == 0) { atualizou = true; } else { foreach (FileInfo file in Files) { try { CartaoCreditoAutorizacao autorizacao = new CartaoCreditoAutorizacao(); StreamReader reader = new StreamReader(file.FullName); String linha = null; String data = null; while ((linha = reader.ReadLine()) != null) { if (linha.StartsWith("000-000")) { autorizacao.Header = linha.Substring(10); } else if (linha.StartsWith("001-000")) { autorizacao.CodIndentificacao = Int32.Parse(linha.Substring(10)); } else if (linha.StartsWith("002-000")) { autorizacao.CupomFiscal = linha.Substring(10); } else if (linha.StartsWith("003-000")) { autorizacao.Valor = Decimal.Parse(linha.Substring(10)) / 100; } else if (linha.StartsWith("009-000")) { autorizacao.StatusTransacao = linha.Substring(10); } else if (linha.StartsWith("011-000")) { autorizacao.TipoTransacao = int.Parse(linha.Substring(10)); } else if (linha.StartsWith("012-000")) { autorizacao.NsuTransacao = long.Parse(linha.Substring(10)); } else if (linha.StartsWith("013-000")) { autorizacao.AutorizacaoTransacao = linha.Substring(10); } else if (linha.StartsWith("017-000")) { autorizacao.TipoParcelamento = int.Parse(linha.Substring(10)); } else if (linha.StartsWith("018-000")) { autorizacao.QuantidadeParcelas = int.Parse(linha.Substring(10)); } else if (linha.StartsWith("022-000")) { data = linha.Substring(10); } else if (linha.StartsWith("023-000")) { autorizacao.DataHoraAutorizacao = DateTime.ParseExact((data + linha.Substring(10)), "ddMMyyyyHHmmss", null); } else if (linha.StartsWith("040-000")) { autorizacao.NomeBandeiraCartao = linha.Substring(10); } } reader.Close(); autorizacao.TipoDocumentoFiscal = Saida.TIPO_DOCUMENTO_ECF; if (autorizacao.Header.Equals("CRT") || autorizacao.Header.Equals("CNC")) { InserirAutorizacao(autorizacao); } if (PastaBackup.Exists) { file.CopyTo(Global.PASTA_COMUNICACAO_FRENTE_LOJA_BACKUP + file.Name, true); file.Delete(); } } catch (Exception e) { // Se houver algum impossibilidade de processa a transação ela fica na pasta. } } } } return(atualizou); }