Example #1
0
        private void AtualizarFormaPagamento(BD bd, EstruturaVenda venda)
        {
            oVendaBilheteriaFormaPagamento.Ler(venda.FormaPagamento.VendaBilheteriaFormaPagamentoID);

            if (oProcessamento.oPagamento.TipoPagamento == ClientObjects.EstruturaPagamento.enumTipoPagamento.Adyen)
            {
                oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oAdyen.CodigoReferencia;
                oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor   = oProcessamento.oPagamento.oAdyen.CodigoAutenticacao ?? oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor;
                oVendaBilheteriaFormaPagamento.Cupom.Valor = IRLib.AdyenStatic.Fields.NotaFiscal;
            }
            else
            {
                oVendaBilheteriaFormaPagamento.VendaBilheteriaFormaPagamentoTEFID.Valor = oProcessamento.oPagamento.oSitef.ID;
                oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefVenda;
                oVendaBilheteriaFormaPagamento.MensagemRetorno.Valor     = oProcessamento.oPagamento.oSitef.MensagemFinaliza;
                oVendaBilheteriaFormaPagamento.HoraTransacao.Valor       = oProcessamento.oPagamento.oSitef.HoraTransacao;
                oVendaBilheteriaFormaPagamento.DataTransacao.Valor       = oProcessamento.oPagamento.oSitef.DataTransacao;
                oVendaBilheteriaFormaPagamento.CodigoIR.Valor            = oProcessamento.oPagamento.oSitef.CodigoIR;
                oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor   = oProcessamento.oPagamento.oSitef.NumeroAutorizacao;
                oVendaBilheteriaFormaPagamento.NSUHost.Valor             = oProcessamento.oPagamento.oSitef.NSUHost;
                oVendaBilheteriaFormaPagamento.NSUSitef.Valor            = oProcessamento.oPagamento.oSitef.NSUSitef;
                oVendaBilheteriaFormaPagamento.Cupom.Valor = oProcessamento.oPagamento.oSitef.CupomFiscal;
                oVendaBilheteriaFormaPagamento.DadosConfirmacaoVenda.Valor = oProcessamento.oPagamento.oSitef.DadosConfirmacao;
                oVendaBilheteriaFormaPagamento.Rede.Valor = oProcessamento.oPagamento.oSitef.RedeRetorno;
                oVendaBilheteriaFormaPagamento.CodigoRespostaTransacao.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefFinaliza;

                if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor)
                {
                    SalvarLog.Salvar("VendaBilheteriaFormaPagamento Atualizada\n NotaFiscal: " + oProcessamento.oPagamento.oSitef.CupomFiscal, Enumeradores.TipoEntrada.Sucesso, SalvarLog.Events.Transacoes);
                }
            }
            oVendaBilheteriaFormaPagamento.Atualizar(bd);
        }
Example #2
0
        private void SolicitarDocumentos(object objVenda)
        {
            if (!(objVenda is EstruturaVenda))
            {
                return;
            }

            EstruturaVenda venda = (EstruturaVenda)objVenda;

            try
            {
                oVendaBilheteria.Score.Valor = venda.Score;
                oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.EmAnalise, venda.Score, venda.RetornoAccertify);

                EstruturaTransacoesDetalhes detalheVendas = oVendaBilheteria.AcompanhamentoIngressos(venda.ID);

                if (ConfigurationManager.AppSettings["CanaisImais"].ToString().Contains(detalheVendas.CanalID.ToString()))
                {
                    email.EnviarSolicitacaoDocumentos_im(venda.Cliente.ID, detalheVendas);
                }
                else
                {
                    email.EnviarSolicitacaoDocumentos(venda.Cliente.ID, detalheVendas);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Solicitar Documentos : " + ex.Message);
            }
        }
Example #3
0
        private void AtualizarVendaBilheteria(BD bd, EstruturaVenda venda)
        {
            try
            {
                string nota = string.Empty;
                if (oProcessamento.oPagamento.TipoPagamento == ClientObjects.EstruturaPagamento.enumTipoPagamento.Adyen)
                {
                    nota = IRLib.AdyenStatic.Fields.NotaFiscal;
                }
                else
                {
                    nota = oProcessamento.oPagamento.oSitef.CupomFiscal;
                }

                oVendaBilheteria.AtualizarPagamentoProcessado(bd, venda.ID, nota);
                if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor)
                {
                    SalvarLog.Salvar("Pagamento e Nota fiscal Atualizados.", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.Transacoes);
                }
            }
            catch (Exception ex)
            {
                if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor)
                {
                    SalvarLog.SalvarErro("Não foi possível atualizar o Pagamento e Nota Fiscal.", ex.Message, SalvarLog.Events.Transacoes);
                }
                throw ex;
            }
        }
Example #4
0
        public void EnviarSMS(HammerHead.EstruturaVenda venda)
        {
            if (!APIHuman.Ativo)
            {
                return;
            }

            try
            {
                if (string.IsNullOrEmpty(venda.NumeroCelular))
                {
                    return;
                }

                EstruturaEnvioSMS sms = new EstruturaEnvioSMS()
                {
                    Senha      = venda.Senha,
                    DataVenda  = venda.DataVenda.ToShortDateString(),
                    Email      = venda.Cliente.Email,
                    Nome       = venda.Cliente.Nome,
                    Numero     = venda.NumeroCelular,
                    ValorTotal = venda.ValorTotal,
                };

                this.EnviarSms(true, sms);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro: " + ex.Message);
            }
        }
Example #5
0
        public Enumeradores.RetornoProcessamento ProcessarVenda(EstruturaVenda venda)
        {
            this.Venda = venda;

            this.MontarPagamento();

            venda.RetornoAccertify = this.RetornoAccertify;
            return(this.Processar());
        }
Example #6
0
        private void Aprovar(object objVenda)
        {
            if (!(objVenda is EstruturaVenda))
            {
                return;
            }

            EstruturaVenda venda = (EstruturaVenda)objVenda;

            try
            {
                List <IngressoImpressao> listaIngressos = new List <IngressoImpressao>();
                var status = VendaBilheteria.StatusAntiFraude.Aprovado;

                oVendaBilheteria.Score.Valor = venda.Score;
                oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, status, venda.Score, venda.RetornoAccertify);

                EstruturaTransacoesDetalhes detalheVendas = oVendaBilheteria.AcompanhamentoIngressos(venda.ID);

                if (detalheVendas.PermitirImpressaoInternet)
                {
                    listaIngressos = ingressos.PesquisaVendaBilheteria(detalheVendas.VendaBilheteriaID);
                }

                if (listaIngressos.Count > 0)
                {
                    if (ConfigurationManager.AppSettings["CanaisImais"].ToString().Contains(detalheVendas.CanalID.ToString()))
                    {
                        email.EnviarConfirmacaoCompraComIngresso_im(venda.Cliente.ID, detalheVendas, listaIngressos);
                    }
                    else
                    {
                        email.EnviarConfirmacaoCompraComIngresso(venda.Cliente.ID, detalheVendas, listaIngressos);
                    }
                }
                else
                {
                    if (ConfigurationManager.AppSettings["CanaisImais"].ToString().Contains(detalheVendas.CanalID.ToString()))
                    {
                        email.EnviarConfirmacaoCompra_im(venda.Cliente.ID, detalheVendas);
                    }
                    else
                    {
                        email.EnviarConfirmacaoCompra(venda.Cliente.ID, detalheVendas);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Aprovar : " + ex.Message);
            }
        }
Example #7
0
        private void Analisar(object objVenda)
        {
            if (!(objVenda is EstruturaVenda))
            {
                return;
            }

            EstruturaVenda venda = (EstruturaVenda)objVenda;

            try
            {
                oVendaBilheteria.Score.Valor = venda.Score;
                oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.EmAnalise, venda.Score, venda.RetornoAccertify);
            }
            catch (Exception ex)
            {
                throw new Exception("Analisar : " + ex.Message);
            }
        }
Example #8
0
        private void CancelarSemFraude(object objVenda)
        {
            if (!(objVenda is EstruturaVenda))
            {
                return;
            }

            EstruturaVenda venda = (EstruturaVenda)objVenda;

            try
            {
                oVendaBilheteria.Score.Valor = venda.Score;
                oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Cancelado, venda.Score, venda.RetornoAccertify);
            }
            catch (Exception ex)
            {
                SalvarLog.SalvarErro("Erro ao cancelar a Venda: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes);
            }
        }
Example #9
0
        private void AtualizarVenda(EstruturaVenda venda)
        {
            BD bd = new BD();

            try
            {
                bd.IniciarTransacao();

                this.AtualizarVendaBilheteria(bd, venda);
                this.AtualizarFormaPagamento(bd, venda);

                bd.FinalizarTransacao();
            }
            catch (Exception ex)
            {
                bd.DesfazerTransacao();
                SalvarLog.SalvarErro("Falha ao atualizar a venda", ex.Message, SalvarLog.Events.Transacoes);
            }
            finally
            {
                bd.Fechar();
            }
        }
Example #10
0
        private void AtualizarScore(object objVenda)
        {
            if (!(objVenda is EstruturaVenda))
            {
                return;
            }

            EstruturaVenda venda = (EstruturaVenda)objVenda;

            BD bd = new BD();

            try
            {
                oVendaBilheteria.AtualizarScore(bd, venda.ID, venda.Score, venda.RetornoAccertify.ToString());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bd.Fechar();
            }
        }
Example #11
0
        private void EfetuarPagamentos()
        {
            try
            {
                if (Vendas.Count == 0)
                {
                    return; // A fila está vazia
                }
                while (Vendas.Count > 0)
                {
                    EstruturaVenda venda = Vendas[0];

                    try
                    {
                        Enumeradores.RetornoProcessamento retorno = oProcessamento.ProcessarVenda(venda);

                        switch (retorno)
                        {
                        case Enumeradores.RetornoProcessamento.Processado:
                            this.Aprovar(venda);
                            break;

                        case Enumeradores.RetornoProcessamento.CancelarAccertify:
                            this.Fraude(venda);
                            break;

                        case Enumeradores.RetornoProcessamento.AguardarAccertify:
                        case Enumeradores.RetornoProcessamento.Timeout:
                            this.Analisar(venda);
                            break;

                        case Enumeradores.RetornoProcessamento.SolicitarDocumentos:
                            this.SolicitarDocumentos(venda);
                            break;

                        case Enumeradores.RetornoProcessamento.CancelarSemFraude:
                            this.CancelarSemFraude(venda);
                            break;

                        default:
                            this.AtualizarScore(venda);
                            break;
                        }

                        if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor)
                        {
                            SalvarLog.Salvar(string.Format("Venda processada HammerHead. \n Venda: {0} \nScore:{1}\nRecommendation: {2}", venda.Senha, venda.Score.ToString(), venda.RetornoAccertify.ToString()), Enumeradores.TipoEntrada.Sucesso);
                        }
                    }
                    catch (Exception ex)
                    {
                        SalvarLog.SalvarErro("Falha ao processar transação: " + venda.Senha, ex.Message, this.salvarlogevent);
                    }
                    finally
                    {
                        Vendas.Remove(venda);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }