public string UpdateRecebimentoPagSeguro(TransacaoPagSeguro transacaoPagSeguro)
        {
            string _msg = "";

            if (transacaoPagSeguro == null)
            {
                return("O Objeto TransacaoPagSeguro está nulo!");
            }

            RecebimentoRepository _recRepo = new RecebimentoRepository();

            int     _type      = (int)transacaoPagSeguro.Type;
            int     _status    = (int)transacaoPagSeguro.Status;
            int     _mtdType   = (int)transacaoPagSeguro.PaymentMethod.Type;
            int     _mtdcode   = transacaoPagSeguro.PaymentMethod.Code ?? 0;
            decimal _netAmount = (decimal)transacaoPagSeguro.NetAmount;

            //_msg = _recRepo.UpdateRecebimentoPagSeguro(transacaoPagSeguro.NotificationCode, transacaoPagSeguro.Reference, _type, _status,
            //   transacaoPagSeguro.Lasteventdate, _mtdType, _mtdcode, _netAmount);

            return(_msg);
        }
        public string SaveDadosTransacaoPagSeguro(TransacaoPagSeguro transacaoPagSeguro)
        {
            string _msg = "";

            if (transacaoPagSeguro != null)
            {
                AssinaturaAnuidadeRepository assinaturaAnuidadeRepository = new AssinaturaAnuidadeRepository();
                RecebimentoRepository        recebimentoRepository        = new RecebimentoRepository();

                var assinatura  = assinaturaAnuidadeRepository.GetAssinaturaAnuidadeByReference(transacaoPagSeguro.Reference);
                var recebimento = recebimentoRepository.GetRecebimentoByReference(transacaoPagSeguro.Reference);

                if (assinatura != null)
                {
                    if (recebimento == null)
                    {
                        //Ainda não há regitro
                        Recebimento rec = new Recebimento()
                        {
                            RecebimentoId        = 0,
                            AssinaturaAnuidadeId = assinatura.AssinaturaAnuidadeId,
                            NotificationCodePS   = transacaoPagSeguro.NotificationCode,

                            TypePS              = transacaoPagSeguro.Type,
                            StatusPS            = transacaoPagSeguro.Status,
                            TypePaymentMethodPS = transacaoPagSeguro.PaymentMethod.Type ?? 0,
                            CodePaymentMethodPS = transacaoPagSeguro.PaymentMethod.Code ?? 0,
                            NetAmountPS         = (decimal)transacaoPagSeguro.NetAmount,
                            GrossAmountPS       = (decimal)transacaoPagSeguro.GrossAmount,
                            DiscountAmountPS    = (decimal)transacaoPagSeguro.DiscountAmount,
                            FeeAmountPS         = (decimal)transacaoPagSeguro.FeeAmount,
                            ExtraAmountPS       = (decimal)transacaoPagSeguro.ExtraAmount,
                            DtVencimento        = assinatura.DtVencimentoPagamento,
                            StatusFBTC          = "1",
                            OrigemEmissaoTitulo = "1"
                        };

                        _msg = recebimentoRepository.Insert(rec, transacaoPagSeguro.Lasteventdate);
                        _msg = assinaturaAnuidadeRepository.SetInicioPagamentoPagSeguro(transacaoPagSeguro.Reference, true);
                    }
                    else
                    {
                        recebimento.StatusPS            = transacaoPagSeguro.Status;
                        recebimento.TypePaymentMethodPS = transacaoPagSeguro.PaymentMethod.Type ?? 0;
                        recebimento.CodePaymentMethodPS = transacaoPagSeguro.PaymentMethod.Code ?? 0;
                        recebimento.NetAmountPS         = (decimal)transacaoPagSeguro.NetAmount;
                        recebimento.GrossAmountPS       = (decimal)transacaoPagSeguro.GrossAmount;
                        recebimento.DiscountAmountPS    = (decimal)transacaoPagSeguro.DiscountAmount;
                        recebimento.FeeAmountPS         = (decimal)transacaoPagSeguro.FeeAmount;
                        recebimento.ExtraAmountPS       = (decimal)transacaoPagSeguro.ExtraAmount;
                        recebimento.DtVencimento        = assinatura.DtVencimentoPagamento;

                        _msg = recebimentoRepository.UpdateRecebimentoPagSeguro(recebimento.RecebimentoId, recebimento, transacaoPagSeguro.Lasteventdate);
                    }
                }
                else
                {
                    _msg = $"ATENÇÃO: Não foi encontrado registro para a referência {transacaoPagSeguro.Reference} e NotificationCode {transacaoPagSeguro.NotificationCode} informados pelo PagSeguro";
                }
            }
            else
            {
                _msg = $"ATENÇÃO: Objeto transacaoPagSeguro está nulo";
            }

            return(_msg);
        }
        public string Update(int id, AssinaturaAnuidade a)
        {
            bool   _resultado = false;
            string _msg       = "";
            string _msgIsento = "";

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("AtualizarAssinaturaAnuidade");

                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    // Passou a ter isenção:
                    if (a.PagamentoIsento == true & a.PagamentoIsentoBD == false)
                    {
                        a.DtIsencao = DateTime.Now;
                    }

                    string _data = "";
                    if (a.DtInicioProcessamento != null)
                    {
                        _data = " DtInicioProcessamento = @DtInicioProcessamento, ";
                    }

                    string _data2 = "";
                    if (a.DtIsencao != null)
                    {
                        _data2 = " DtIsencao = @DtIsencao, ";
                    }

                    command.CommandText = "" +
                                          "UPDATE dbo.AD_Assinatura_Anuidade " +
                                          "SET ValorAnuidadeId = @ValorAnuidadeId, " +
                                          "   AnoInicio = @AnoInicio, AnoTermino = @AnoTermino, " +
                                          "   PercentualDesconto  = @PercentualDesconto, TipoDesconto = @TipoDesconto, " +
                                          "   Valor = @Valor, DtVencimentoPagamento = @DtVencimentoPagamento, " +
                                          "   DtAtualizacao = @DtAtualizacao, CodePS = @CodePS, DtCodePS = @DtCodePS, " +
                                          "   Reference = @Reference, EmProcessoPagamento = @EmProcessoPagamento, " +
                                          "   " + _data + "" + _data2 + "Ativo = @Ativo, PagamentoIsento = @PagamentoIsento, ObservacaoIsencao = @ObservacaoIsencao " +
                                          "WHERE AssinaturaAnuidadeId = @id";

                    command.Parameters.AddWithValue("ValorAnuidadeId", a.ValorAnuidadeId);
                    command.Parameters.AddWithValue("AnoInicio", a.AnoInicio);
                    command.Parameters.AddWithValue("AnoTermino", a.AnoTermino);
                    command.Parameters.AddWithValue("PercentualDesconto", a.PercentualDesconto);
                    command.Parameters.AddWithValue("TipoDesconto", a.TipoDesconto);
                    command.Parameters.AddWithValue("Valor", a.Valor);
                    command.Parameters.AddWithValue("DtVencimentoPagamento", a.DtVencimentoPagamento);
                    command.Parameters.AddWithValue("DtAtualizacao", DateTime.Now);
                    command.Parameters.AddWithValue("CodePS", a.CodePS);
                    command.Parameters.AddWithValue("DtCodePS", a.DtCodePS);
                    command.Parameters.AddWithValue("Reference", a.Reference);
                    command.Parameters.AddWithValue("EmProcessoPagamento", a.EmProcessoPagamento);
                    command.Parameters.AddWithValue("Ativo", a.Ativo);
                    command.Parameters.AddWithValue("PagamentoIsento ", a.PagamentoIsento);
                    command.Parameters.AddWithValue("ObservacaoIsencao ", a.ObservacaoIsencao);

                    command.Parameters.AddWithValue("id", id);

                    if (_data != "")
                    {
                        command.Parameters.AddWithValue("DtInicioProcessamento", a.DtInicioProcessamento);
                    }

                    if (_data2 != "")
                    {
                        command.Parameters.AddWithValue("DtIsencao", a.DtIsencao);
                    }

                    int x = command.ExecuteNonQuery();
                    _resultado = x > 0;

                    _msg = x > 0 ? "Atualização realizada com sucesso" : "Atualização NÃO realizada com sucesso";

                    transaction.Commit();

                    if (x > 0)
                    {
                        Recebimento recebimento = new Recebimento();

                        recebimento = new Recebimento
                        {
                            AssinaturaAnuidadeId = a.AssinaturaAnuidadeId,
                            DtVencimento         = a.DtVencimentoPagamento,
                            StatusPS             = 0,
                            GrossAmountPS        = 0,
                            DiscountAmountPS     = 0,
                            FeeAmountPS          = 0,
                            NetAmountPS          = 0,
                            ExtraAmountPS        = 0,
                            StatusFBTC           = "3",
                            OrigemEmissaoTitulo  = "2",
                            NotificationCodePS   = a.Reference,
                            Ativo = a.PagamentoIsento
                        };

                        //Avaliar se houve alteração na isenção
                        if (a.PagamentoIsento == true & a.PagamentoIsentoBD == false)
                        {
                            RecebimentoRepository recebimentoRepository = new RecebimentoRepository();
                            _msgIsento = recebimentoRepository.UpdateRecebimentoIsencao(0, recebimento);
                        }

                        // desativo os dados na tabela de pagamento:
                        if (a.PagamentoIsento == false & a.PagamentoIsentoBD == true)
                        {
                            RecebimentoRepository recebimentoRepository = new RecebimentoRepository();
                            _msgIsento = recebimentoRepository.DeleteRecebimentoIsencao(a.AssinaturaAnuidadeId, 0);
                        }
                    }

                    // Log do UPDATE ASSINATURA_ANUIDADE:
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Parâmetros: ");

                    for (int z = 0; z < command.Parameters.Count; z++)
                    {
                        sb.Append(command.Parameters[z].ParameterName + ": " + command.Parameters[z].Value + ", ");
                    }

                    _instrucaoSql = sb.ToString();
                    _result       = x > 0 ? "SUCESSO" : "FALHA";

                    string log = logRep.SetLogger(className + "/Update",
                                                  "UPDATE", "ASSINATURA_ANUIDADE", id, _instrucaoSql, _result);
                    //Fim do Log
                }
                catch (Exception ex)
                {
                    try
                    {
                        transaction.Rollback();
                    }
                    catch (Exception ex2)
                    {
                        _msg = $"ATENÇÃO: Ocorreu um erro ao tentar ATUALIZAR ASSINATURA_ANUIDADE: Commit Exception Type:{ex2.GetType()}. Erro:{ex2.Message}";
                        // throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                    }

                    string log = logRep.SetLogger(className + "/Update",
                                                  "UPDATE", "ASSINATURA_ANUIDADE", 0, ex.Message, "FALHA");

                    _msg = $"ATENÇÃO: Ocorreu um erro ao tentar ATUALIZAR ASSINATURA_ANUIDADE: Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}";
                    // throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }
Example #4
0
 public RecebimentoService(RecebimentoRepository recebimentoRepository)
 {
     _recebimentoRepository = recebimentoRepository;
 }
        public string Insert(AssinaturaAnuidade a)
        {
            bool   _resultado = false;
            string _msg       = "";
            string _msgIsento = "";
            Int32  id         = 0;
            string _ident     = "";

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("IncluirAssinaturaAnuidade");

                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    // Passou a ter isenção:
                    if (a.PagamentoIsento == true)
                    {
                        a.DtIsencao = DateTime.Now;
                    }

                    string _dtIsencao      = a.DtIsencao != null ? ", DtIsencao ": "";
                    string _paramDtIsencao = a.DtIsencao != null ? ", @DtIsencao " : "";

                    command.CommandText = "" +
                                          "INSERT into dbo.AD_Assinatura_Anuidade (AssociadoId , ValorAnuidadeId,  AnoInicio, " +
                                          "       AnoTermino, PercentualDesconto, TipoDesconto, Valor, DtVencimentoPagamento, DtAssinatura, DtAtualizacao, " +
                                          "       CodePS, DtCodePS, Reference, PagamentoIsento, ObservacaoIsencao " + _dtIsencao + ") " +
                                          "VALUES (@AssociadoId , @ValorAnuidadeId,  @AnoInicio, " +
                                          "       @AnoTermino, @PercentualDesconto, @TipoDesconto, @Valor, @DtVencimentoPagamento, @DtAssinatura, @DtAtualizacao, " +
                                          "       @CodePS, @DtCodePS, @Reference, @PagamentoIsento, @ObservacaoIsencao " + _paramDtIsencao + ") " +
                                          "SELECT CAST(scope_identity() AS int) ";

                    command.Parameters.AddWithValue("AssociadoId", a.AssociadoId);
                    command.Parameters.AddWithValue("ValorAnuidadeId", a.ValorAnuidadeId);
                    command.Parameters.AddWithValue("AnoInicio", a.AnoInicio);
                    command.Parameters.AddWithValue("AnoTermino", a.AnoTermino);
                    command.Parameters.AddWithValue("PercentualDesconto", a.PercentualDesconto);
                    command.Parameters.AddWithValue("TipoDesconto", a.TipoDesconto);
                    command.Parameters.AddWithValue("Valor", a.Valor);
                    command.Parameters.AddWithValue("DtVencimentoPagamento", a.DtVencimentoPagamento);
                    command.Parameters.AddWithValue("DtAssinatura", DateTime.Now);
                    command.Parameters.AddWithValue("DtAtualizacao", DateTime.Now);
                    command.Parameters.AddWithValue("CodePS", a.CodePS);
                    command.Parameters.AddWithValue("DtCodePS", a.DtCodePS);
                    command.Parameters.AddWithValue("Reference", a.Reference);
                    command.Parameters.AddWithValue("PagamentoIsento", a.PagamentoIsento);
                    command.Parameters.AddWithValue("ObservacaoIsencao", a.ObservacaoIsencao);

                    if (_dtIsencao != "")
                    {
                        command.Parameters.AddWithValue("DtIsencao", a.DtIsencao);
                    }

                    id         = (Int32)command.ExecuteScalar();
                    _resultado = id > 0;

                    _ident = _ident.PadLeft(10 - id.ToString().Length, '0') + id.ToString();

                    _msg = id > 0 ? $"{_ident}Inclusão realizada com sucesso" : $"{_ident}Inclusão Não realizada com sucesso";

                    transaction.Commit();

                    if (id > 0)
                    {
                        //é isento:
                        if (a.PagamentoIsento == true)
                        {
                            Recebimento recebimento = new Recebimento
                            {
                                AssinaturaAnuidadeId = id,
                                DtVencimento         = a.DtVencimentoPagamento,
                                StatusPS             = 0,
                                GrossAmountPS        = 0,
                                DiscountAmountPS     = 0,
                                FeeAmountPS          = 0,
                                NetAmountPS          = 0,
                                ExtraAmountPS        = 0,
                                StatusFBTC           = "3",
                                OrigemEmissaoTitulo  = "2",
                                NotificationCodePS   = a.Reference,
                                Ativo = true
                            };

                            RecebimentoRepository recebimentoRepository = new RecebimentoRepository();

                            _msgIsento = recebimentoRepository.InsertRecebimentoIsencao(recebimento);
                        }
                    }

                    // Log da Inserção ASSINATURA_ANUIDADE:
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Parâmetros: ");

                    for (int z = 0; z < command.Parameters.Count; z++)
                    {
                        sb.Append(command.Parameters[z].ParameterName + ": " + command.Parameters[z].Value + ", ");
                    }

                    _instrucaoSql = sb.ToString();
                    _result       = id > 0 ? "SUCESSO" : "FALHA";

                    string log = logRep.SetLogger(className + "/Insert",
                                                  "INSERT", "ASSINATURA_ANUIDADE", id, _instrucaoSql, _result);
                    //Fim do Log
                }
                catch (Exception ex)
                {
                    // Attempt to roll back the transaction.
                    try
                    {
                        transaction.Rollback();
                    }
                    catch (Exception ex2)
                    {
                        _msg = $"ATENÇÃO: Ocorreu um erro ao tentar INCLUIR ASSINATURA_ANUIDADE: Commit Exception Type:{ex2.GetType()}. Erro:{ex2.Message}";
                        //throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                    }

                    string log = logRep.SetLogger(className + "/Insert",
                                                  "INSERT", "ASSINATURA_ANUIDADE", 0, ex.Message, "FALHA");

                    _msg = $"ATENÇÃO: Ocorreu um erro ao tentar INCLUIR ASSINATURA_ANUIDADE: Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}";
                    // throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }