public List <SolicitacaoPagamento> ObterSolicitacaoPagamentoCartao() { var repSolicitacoes = new RepositorioGenerico <tb_solicitacao_documento>(); var saceEntities = (SaceEntities)repSolicitacoes.ObterContexto(); var query = from solicitacao in saceEntities.tb_solicitacao_documento where solicitacao.tipoSolicitacao.Equals("NFCE") && solicitacao.haPagamentoCartao == true && solicitacao.cartaoProcessado == false orderby solicitacao.dataSolicitacao select solicitacao; List <tb_solicitacao_documento> listaSolicitacoes = query.ToList(); List <SolicitacaoPagamento> listaPagamentos = new List <SolicitacaoPagamento>(); if (listaSolicitacoes.Count > 0) { tb_solicitacao_documento solicitacao = listaSolicitacoes.First(); foreach (tb_solicitacao_pagamento pagamento in solicitacao.tb_solicitacao_pagamento) { listaPagamentos.Add( new SolicitacaoPagamento() { CodSolicitacao = pagamento.codSolicitacao, CodSolicitacaoPagamento = (long)pagamento.codSolicitacaoPagamento, CodCartaoCredito = pagamento.codCartao, NomeCartaoCredito = pagamento.tb_cartao_credito.nome, CodFormaPagamento = pagamento.codFormaPagamento, QtdDiasPagar = (int)pagamento.tb_cartao_credito.diaBase, Parcelas = (int)pagamento.parcelas, Valor = pagamento.valor } ); } } return(listaPagamentos); }
public void AtualizarSolicitacaoDocumentoCartao(Cartao.ResultadoProcessamento resultado) { var repSolicitacao = new RepositorioGenerico <tb_solicitacao_documento>(); var saceContext = (SaceEntities)repSolicitacao.ObterContexto(); tb_solicitacao_documento documentoE = repSolicitacao.ObterEntidade(sd => sd.codSolicitacao == resultado.CodSolicitacao); documentoE.cartaoProcessado = true; documentoE.cartaoAutorizado = resultado.Aprovado; documentoE.emProcessamento = false; if (resultado.Aprovado) { foreach (Cartao.RespostaAprovada respostaAprovada in resultado.ListaRespostaAprovada) { tb_solicitacao_pagamento solicitacaoPagamento = documentoE.tb_solicitacao_pagamento.Where(sp => sp.codSolicitacaoPagamento == respostaAprovada.CodSolicitacaoPagamento).FirstOrDefault(); solicitacaoPagamento.cupomCliente = respostaAprovada.CupomCliente; solicitacaoPagamento.cupomEstabelecimento = respostaAprovada.CupomLojista; solicitacaoPagamento.cupomReduzido = respostaAprovada.CupomReduzido; } } else { Cartao.RespostaRecusada recusada = resultado.RespostaRecusada; documentoE.codMotivoCartaoNegado = recusada.CodMotivo; documentoE.motivoCartaoNegado = recusada.Motivo; } repSolicitacao.SaveChanges(); }
/// <summary> /// Insere dados do cupom /// </summary> /// <param name="cupom"></param> /// <returns></returns> public long InserirSolicitacaoDocumento(List <SaidaPedido> listaSaidaPedido, List <SaidaPagamento> listaSaidaPagamento, DocumentoFiscal.TipoSolicitacao tipoSolicitacao, bool ehComplementar, bool ehEspelho) { using (TransactionScope transaction = new TransactionScope()) { EhPossivelEnviarSolicitacao(listaSaidaPedido, tipoSolicitacao, ehComplementar); var repSolicitacaoDocumento = new RepositorioGenerico <tb_solicitacao_documento>(); tb_solicitacao_documento _solicitacao_documentoE = new tb_solicitacao_documento(); try { _solicitacao_documentoE.dataSolicitacao = DateTime.Now; _solicitacao_documentoE.haPagamentoCartao = listaSaidaPagamento.Where(sp => sp.CodFormaPagamento.Equals(FormaPagamento.CARTAO)).Count() > 0; _solicitacao_documentoE.cartaoProcessado = false; _solicitacao_documentoE.cartaoAutorizado = false; _solicitacao_documentoE.ehComplementar = ehComplementar; _solicitacao_documentoE.ehEspelho = ehEspelho; _solicitacao_documentoE.motivoCartaoNegado = ""; _solicitacao_documentoE.tipoSolicitacao = tipoSolicitacao.ToString(); repSolicitacaoDocumento.Inserir(_solicitacao_documentoE); repSolicitacaoDocumento.SaveChanges(); var repSolicitacaoSaida = new RepositorioGenerico <tb_solicitacao_saida>(); foreach (SaidaPedido _saidaPedido in listaSaidaPedido) { tb_solicitacao_saida _solicitacao_saida = new tb_solicitacao_saida(); _solicitacao_saida.codSaida = _saidaPedido.CodSaida; _solicitacao_saida.codSolicitacao = _solicitacao_documentoE.codSolicitacao; _solicitacao_saida.valorTotal = _saidaPedido.TotalAVista; repSolicitacaoSaida.Inserir(_solicitacao_saida); } repSolicitacaoSaida.SaveChanges(); var repSolicitacaoPagamento = new RepositorioGenerico <tb_solicitacao_pagamento>(); foreach (SaidaPagamento _solicitacaoPagamento in listaSaidaPagamento) { tb_solicitacao_pagamento pagamento = new tb_solicitacao_pagamento(); pagamento.codCartao = _solicitacaoPagamento.CodCartaoCredito; pagamento.codFormaPagamento = _solicitacaoPagamento.CodFormaPagamento; pagamento.parcelas = _solicitacaoPagamento.Parcelas; pagamento.valor = _solicitacaoPagamento.Valor; pagamento.codSolicitacao = _solicitacao_documentoE.codSolicitacao; pagamento.cupomCliente = ""; pagamento.cupomEstabelecimento = ""; pagamento.cupomReduzido = ""; repSolicitacaoPagamento.Inserir(pagamento); } repSolicitacaoPagamento.SaveChanges(); transaction.Complete(); return(_solicitacao_documentoE.codSolicitacao); } catch (Exception e) { throw new DadosException("Cupom", e.Message, e); } } }
/// <summary> /// Atualiza dados do cupom /// </summary> /// <param name="cupom"></param> public void EnviarProximoECF() { try { var repSolicitacao = new RepositorioGenerico <tb_solicitacao_documento>(); var repSolicitacao2 = new RepositorioGenerico <tb_solicitacao_documento>(); DirectoryInfo pastaECF = new DirectoryInfo(Global.PASTA_COMUNICACAO_FRENTE_LOJA); if (pastaECF.Exists) { FileInfo[] files = pastaECF.GetFiles("*.TXT", SearchOption.TopDirectoryOnly); if (files.Length == 0) { var saceEntities = (SaceEntities)repSolicitacao.ObterContexto(); var query = from solicitacao in saceEntities.tb_solicitacao_documento where solicitacao.tipoSolicitacao.Equals("ECF") orderby solicitacao.dataSolicitacao select solicitacao; List <tb_solicitacao_documento> solicitacoes = query.ToList(); if (solicitacoes.Count() > 0) { tb_solicitacao_documento solicitacaoE = solicitacoes.FirstOrDefault(); List <tb_solicitacao_saida> listaSolicitacaoSaida = solicitacaoE.tb_solicitacao_saida.ToList(); List <tb_solicitacao_pagamento> listaPagamentos = solicitacaoE.tb_solicitacao_pagamento.ToList(); repSolicitacao2.Remover(s => s.codSolicitacao == solicitacaoE.codSolicitacao); repSolicitacao2.SaveChanges(); //repSolicitacoesRemover.Remover(solicitacaoE); //repSolicitacoes.SaveChanges(); GerarDocumentoECF(listaSolicitacaoSaida, listaPagamentos); //RemoverSolicitacaoDocumento(listaSolicitacaoSaida.FirstOrDefault().codSaida); } } } } catch (Exception e) { throw new DadosException("Cupom", e.Message, e); } }