Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }