/// <summary> /// Remove dados do cupom /// </summary> /// <param name="codCupom"></param> public void RemoverSolicitacaoDocumento(long codSaida) { try { var repSolicitacao = new RepositorioGenerico <tb_solicitacao_documento>(); var saceEntities = (SaceEntities)repSolicitacao.ObterContexto(); var query = from solicitacaoSaida in saceEntities.tb_solicitacao_saida where solicitacaoSaida.codSaida == codSaida select solicitacaoSaida; tb_solicitacao_saida solicitacao_saidaE = query.ToList().FirstOrDefault(); if (solicitacao_saidaE != null) { if (solicitacao_saidaE.tb_solicitacao_documento.emProcessamento == true) { throw new NegocioException("Não é possível editar/remover esse pedido. Documento sendo autorizado/impresso. Favor aguardar até a conclusão do processamento."); } repSolicitacao.Remover(s => s.codSolicitacao == solicitacao_saidaE.codSolicitacao); repSolicitacao.SaveChanges(); } } catch (Exception e) { throw new DadosException("Documento Fiscal", e.Message, e); } }
/// <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); } } }
public void InserirRespostaCartao(Cartao.ResultadoProcessamento resultado) { List <tb_solicitacao_saida> listaSolicitacaoSaida; if (resultado.Aprovado) { listaSolicitacaoSaida = ObterSolicitacaoSaida(resultado.CodSolicitacao).ToList(); // Pode passar mais de um cartão de crédito if (listaSolicitacaoSaida.Count == 1) { tb_solicitacao_saida solicitacaoSaida = listaSolicitacaoSaida.FirstOrDefault(); IEnumerable <Conta> listaContas = GerenciadorConta.GetInstance(null).ObterPorSaida(solicitacaoSaida.codSaida); List <Cartao.RespostaAprovada> listaAprovadas = resultado.ListaRespostaAprovada; foreach (Cartao.RespostaAprovada aprovada in listaAprovadas) { String tipoCartaoString = Enum.GetName(typeof(Cartao.TipoCartao), aprovada.TipoCartao); CartaoCredito cartao = GerenciadorCartaoCredito.GetInstance().ObterPorMapeamentoCappta(aprovada.NomeBandeiraCartao).Where(c => c.TipoCartao.Equals(tipoCartaoString)).ElementAtOrDefault(0); Conta conta = listaContas.Where(c => c.ValorPagar == (decimal)aprovada.Valor && String.IsNullOrWhiteSpace(c.NumeroDocumento)).FirstOrDefault(); GerenciadorSaidaPagamento.GetInstance(null).AtualizarPorAutorizacaoCartao(conta.CodSaida, cartao.CodCartao, aprovada.NumeroControle); conta.CodPessoa = cartao.CodPessoa; conta.NumeroDocumento = aprovada.NumeroControle; conta.DataVencimento = DateTime.Now.AddDays(cartao.DiaBase); GerenciadorConta.GetInstance(null).AtualizarDadosCartaoCredito(conta); } } //else //{ // foreach (tb_solicitacao_saida solicitacaoSaida in listaSolicitacaoSaida) // { // IEnumerable<Conta> contas = GerenciadorConta.GetInstance(null).ObterPorSaida(solicitacaoSaida.codSaida); // } //} InserirAutorizacaoCartao(resultado, listaSolicitacaoSaida); } AtualizarSolicitacaoDocumentoCartao(resultado); }