Пример #1
0
        public static string Gravar(TRegistro_FaturaCartao val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_FaturaCartao qtb_fatura   = new TCD_FaturaCartao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_fatura.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_fatura.Banco_Dados = banco;
                }
                string retorno = qtb_fatura.Gravar(val);
                val.Id_fatura = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_FATURA"));
                if (!string.IsNullOrEmpty(val.Cd_contager))
                {
                    //Gravar caixa
                    string ret =
                        TCN_LanCaixa.GravaLanCaixa(
                            new TRegistro_LanCaixa()
                    {
                        Cd_ContaGer    = val.Cd_contager,
                        Cd_Empresa     = val.Cd_empresa,
                        Nr_Docto       = "FAT" + val.Id_fatura.Value.ToString(),
                        Cd_Historico   = val.Cd_historico,
                        Login          = Utils.Parametros.pubLogin,
                        ComplHistorico = "FATURA CARTAO AVULSA",
                        Dt_lancto      = val.Dt_fatura,
                        Vl_PAGAR       = decimal.Zero,
                        Vl_RECEBER     = val.Vl_nominal,
                        St_Titulo      = "N",
                        St_Estorno     = "N",
                        St_avulso      = "N",
                        Id_adto        = val.Id_adto
                    }, qtb_fatura.Banco_Dados);
                    //Amarrar caixa com fatura
                    TCN_FaturaCartao_X_Caixa.Gravar(new TRegistro_FaturaCartao_X_Caixa()
                    {
                        Cd_contager    = val.Cd_contager,
                        Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret, "@P_CD_LANCTOCAIXA")),
                        Id_fatura      = val.Id_fatura
                    }, qtb_fatura.Banco_Dados);
                }
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar fatura: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fatura.deletarBanco_Dados();
                }
            }
        }
Пример #2
0
        public static void CancelarFatura(TRegistro_FaturaCartao val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_FaturaCartao qtb_fatura   = new TCD_FaturaCartao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_fatura.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_fatura.Banco_Dados = banco;
                }
                //Verificar se a fatura possui quitacao
                if (new TCD_QuitarFatura(qtb_fatura.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_fatura",
                        vOperador = "=",
                        vVL_Busca = val.Id_fatura.Value.ToString()
                    }
                }, string.Empty) != null)
                {
                    throw new Exception("Fatura cartão possui quitação. Obrigatorio extornar primeiro quitação.");
                }
                //Buscar lista de caixa da fatura
                TList_LanCaixa lCaixa =
                    new TCD_LanCaixa(qtb_fatura.Banco_Dados).Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from tb_fin_faturacartao_x_caixa x " +
                                    "where x.cd_contager = a.cd_contager " +
                                    "and x.cd_lanctocaixa = a.cd_lanctocaixa " +
                                    "and x.id_fatura = " + val.Id_fatura.Value.ToString() + ")"
                    }
                }, 0, string.Empty);
                //Excluir caixa
                lCaixa.ForEach(p =>
                               TCN_FaturaCartao_X_Caixa.Excluir(new TRegistro_FaturaCartao_X_Caixa()
                {
                    Cd_contager    = p.Cd_ContaGer,
                    Cd_lanctocaixa = p.Cd_LanctoCaixa,
                    Id_fatura      = val.Id_fatura
                }, qtb_fatura.Banco_Dados));
                //Excluir fatura
                Excluir(val, qtb_fatura.Banco_Dados);
                //Cancelar lancamentos de caixa
                lCaixa.ForEach(p =>
                {
                    if (p.St_Estorno.Trim().ToUpper() != "S")
                    {
                        CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.EstornarCaixa(p, null, qtb_fatura.Banco_Dados);
                    }
                });
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro estornar fatura: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fatura.deletarBanco_Dados();
                }
            }
        }
Пример #3
0
        public static void EstornarLote(TRegistro_LanLoteCartao val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao          = false;
            TCD_LanLoteCartao qtb_lote = new TCD_LanLoteCartao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_lote.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_lote.Banco_Dados = banco;
                }
                //Inicio do processo de estornar lote
                if (val.St_registro.Equals("P"))
                {
                    //Excluir registro Lote X Caixa
                    val.lFatCartao_Caixa.ForEach(p =>
                    {
                        TCN_FaturaCartao_X_Caixa.Excluir(new TRegistro_FaturaCartao_X_Caixa()
                        {
                            Cd_contager    = p.Cd_contager,
                            Cd_lanctocaixa = p.Cd_lanctocaixa,
                            Id_fatura      = p.Id_fatura
                        }, qtb_lote.Banco_Dados);
                    });

                    //Chamar metodo estorno de caixa
                    val.lLanCaixa.ForEach(p =>
                    {
                        Caixa.TCN_LanCaixa.EstornarCaixa(p, null, qtb_lote.Banco_Dados);
                    });

                    //Alterar o valor da taxa no bloquetos
                    val.lFatCartao.ForEach(p =>
                    {
                        p.Vl_taxa = decimal.Zero;
                        TCN_FaturaCartao.Gravar(p, null);
                    });
                    //Alterar o lote
                    val.St_registro = "A";
                    qtb_lote.Gravar(val);
                    if (st_transacao)
                    {
                        qtb_lote.Banco_Dados.Commit_Tran();
                    }
                }
                else
                {
                    throw new Exception("Lote não se encontra processado.");
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_lote.Banco_Dados.RollBack_Tran();
                }
                throw new Exception(ex.Message);
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_lote.deletarBanco_Dados();
                }
            }
        }