Beispiel #1
0
        public static string Gravar(TList_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 = string.Empty;
                val.ForEach(p => retorno += Gravar(p, 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();
                }
            }
        }
Beispiel #2
0
        public static string Excluir(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;
                }
                qtb_fatura.Excluir(val);
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir fatura: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fatura.deletarBanco_Dados();
                }
            }
        }
Beispiel #3
0
        public static string TransferirContaCartao(TList_FaturaCartao lFatura, string Cd_empresa, 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;
                }
                //Buscar conta gerencial
                CamadaDados.Faturamento.Cadastros.TList_CFGCupomFiscal lCfg =
                    CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.Buscar(Cd_empresa, qtb_fatura.Banco_Dados);
                if (lCfg.Count < 1)
                {
                    throw new Exception("Não existe configuração ECF para a empresa: " + Cd_empresa.Trim());
                }
                if (string.IsNullOrEmpty(lCfg[0].Cd_contacartao))
                {
                    throw new Exception("Não existe conta gerencial cartão para processar fechamento do portador cartão!");
                }

                lFatura.ForEach(v =>
                {
                    //Buscar lancamento de caixa da fatura
                    new CamadaDados.Financeiro.Caixa.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.cd_contager <> '" + lCfg[0].Cd_contacartao.Trim() + "' " +
                                        "and x.id_fatura = " + v.Id_fatura.Value.ToString() + ")"
                        }
                    }, 0, string.Empty).ForEach(c =>
                    {
                        //Gravar transferencia de caixa
                        CamadaDados.Financeiro.Caixa.TRegistro_Lan_Transfere_Caixa rTransf = new CamadaDados.Financeiro.Caixa.TRegistro_Lan_Transfere_Caixa();
                        rTransf.CD_ContaGer_Entrada = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contacartao : lCfg[0].Cd_contaoperacional;
                        rTransf.CD_ContaGer_Saida   = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contaoperacional : lCfg[0].Cd_contacartao;
                        rTransf.CD_Empresa          = lCfg[0].Cd_empresa;
                        rTransf.CD_Historico        = lCfg[0].Cd_historico_transf;
                        rTransf.Complemento         = "TRANSFERENCIA PARA CONTA CARTÃO";
                        rTransf.Valor_Transferencia = c.Vl_RECEBER > decimal.Zero ? c.Vl_RECEBER : c.Vl_PAGAR;
                        rTransf.DT_Lancto           = CamadaDados.UtilData.Data_Servidor();
                        rTransf.NR_Docto            = "TRANSFERENCIA PARA CONTA CARTÃO";
                        CamadaNegocio.Financeiro.Caixa.TCN_Lan_Transfere_Caixa.Transfere_Caixa(rTransf, qtb_fatura.Banco_Dados);
                        //Gravar fatura cartao x novo lancamento caixa
                        CamadaNegocio.Financeiro.Cartao.TCN_FaturaCartao_X_Caixa.Gravar(
                            new CamadaDados.Financeiro.Cartao.TRegistro_FaturaCartao_X_Caixa()
                        {
                            Cd_contager    = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contaoperacional : lCfg[0].Cd_contacartao,
                            Cd_lanctocaixa = rTransf.CD_LANCTOCAIXA_SAI,
                            Id_fatura      = v.Id_fatura
                        }, qtb_fatura.Banco_Dados);

                        CamadaNegocio.Financeiro.Cartao.TCN_FaturaCartao_X_Caixa.Gravar(
                            new CamadaDados.Financeiro.Cartao.TRegistro_FaturaCartao_X_Caixa()
                        {
                            Cd_contager    = c.Vl_RECEBER > decimal.Zero ? lCfg[0].Cd_contacartao : lCfg[0].Cd_contaoperacional,
                            Cd_lanctocaixa = rTransf.CD_LANCTOCAIXA_ENT,
                            Id_fatura      = v.Id_fatura
                        }, qtb_fatura.Banco_Dados);
                    });
                });
                if (st_transacao)
                {
                    qtb_fatura.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            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();
                }
            }
        }
Beispiel #4
0
        public static void EstornarQuitacaoFatura(TRegistro_Quitarfatura 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;
                }
                //Buscar caixa da quitacao
                string aux  = string.Empty;
                string virg = string.Empty;
                if (!string.IsNullOrEmpty(val.Cd_lanctocaixaquitstr))
                {
                    aux  = val.Cd_lanctocaixaquitstr;
                    virg = ",";
                }
                if (!string.IsNullOrEmpty(val.Cd_lanctocaixajurostr))
                {
                    aux += virg + val.Cd_lanctocaixajurostr;
                    virg = ",";
                }
                if (!string.IsNullOrEmpty(val.Cd_lanctocaixatxstr))
                {
                    aux += virg + val.Cd_lanctocaixatxstr;
                }
                TList_LanCaixa lCaixa =
                    new TCD_LanCaixa(qtb_fatura.Banco_Dados).Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_estorno, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = string.Empty,
                        vVL_Busca = "((a.cd_contager = '" + val.Cd_contager.Trim() + "' " +
                                    "and a.cd_lanctocaixa = " + val.Cd_lanctocaixastr + ") or " +
                                    "(a.cd_contager = '" + val.Cd_contagerquit.Trim() + "' " +
                                    "and a.cd_lanctocaixa in(" + aux + ")))"
                    }
                }, 0, string.Empty);
                //Excluir registro quitacao
                TCN_QuitarFatura.Excluir(val, qtb_fatura.Banco_Dados);
                lCaixa.ForEach(p => 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 quitação fatura: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fatura.deletarBanco_Dados();
                }
            }
        }
Beispiel #5
0
        public static void QuitarFatura(List <TRegistro_FaturaCartao> val,
                                        DateTime Dt_quitacao,
                                        string Cd_contager,
                                        string Cd_empresa,
                                        string Tp_movimento,
                                        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;
                }
                //Buscar configuracao para quitar fatura
                TList_CFGFaturaCartao lCfg = TCN_CFGFaturaCartao.Buscar(Cd_empresa,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        qtb_fatura.Banco_Dados);
                if (lCfg.Count.Equals(0))
                {
                    throw new Exception("Não existe configuração para quitar fatura na empresa " + Cd_empresa.Trim());
                }
                //Incluir lancamento de caixa na conta de quitacao
                string cd_lanctocaixa_q = TCN_LanCaixa.GravaLanCaixa(
                    new TRegistro_LanCaixa()
                {
                    Cd_Empresa     = Cd_empresa,
                    Cd_ContaGer    = Cd_contager,
                    Nr_Docto       = "QUITARFAT",
                    ComplHistorico = "QUITACAO FATURA CARTAO",
                    Dt_lancto      = Dt_quitacao,
                    Cd_Historico   = Tp_movimento.Trim().ToUpper().Equals("P") ? lCfg[0].Cd_historico_pag : lCfg[0].Cd_historico_rec,
                    Vl_RECEBER     = Tp_movimento.Trim().ToUpper().Equals("R") ? val.Sum(p => p.Vl_nominal - p.Vl_quitado) : decimal.Zero,
                    Vl_PAGAR       = Tp_movimento.Trim().ToUpper().Equals("P") ? val.Sum(p => p.Vl_nominal - p.Vl_quitado) : decimal.Zero,
                    St_Estorno     = "N"
                }, qtb_fatura.Banco_Dados);
                //Gravar Juro
                string cd_lanctocaixajr = string.Empty;
                if (val.Sum(p => p.Vl_juro) > decimal.Zero)
                {
                    if (string.IsNullOrEmpty(lCfg[0].Cd_historico_juro))
                    {
                        throw new Exception("Não existe configuração para quitar juro da fatura na empresa " + Cd_empresa.Trim());
                    }
                    cd_lanctocaixajr = TCN_LanCaixa.GravaLanCaixa(new TRegistro_LanCaixa()
                    {
                        Cd_Empresa     = Cd_empresa,
                        Cd_ContaGer    = Cd_contager,
                        Nr_Docto       = "JUROFATURA",
                        ComplHistorico = "JURO FATURA CARTAO",
                        Dt_lancto      = Dt_quitacao,
                        Cd_Historico   = lCfg[0].Cd_historico_juro,
                        Vl_RECEBER     = decimal.Zero,
                        Vl_PAGAR       = val.Sum(p => p.Vl_juro),
                        St_Titulo      = "N",
                        St_Estorno     = "N"
                    }, qtb_fatura.Banco_Dados);
                }
                //Gravar Caixa Taxa
                string cd_lanctocaixatx = string.Empty;
                if (val.Sum(p => p.Vl_taxa) > decimal.Zero)
                {
                    if (string.IsNullOrEmpty(lCfg[0].Cd_historico_taxa))
                    {
                        throw new Exception("Não existe configuração para quitar taxa da fatura na empresa " + Cd_empresa.Trim());
                    }
                    cd_lanctocaixatx = TCN_LanCaixa.GravaLanCaixa(new TRegistro_LanCaixa()
                    {
                        Cd_Empresa     = Cd_empresa,
                        Cd_ContaGer    = Cd_contager,
                        Nr_Docto       = "TXFATURA",
                        ComplHistorico = "TAXA FATURA CARTAO",
                        Dt_lancto      = Dt_quitacao,
                        Cd_Historico   = lCfg[0].Cd_historico_taxa,
                        Vl_RECEBER     = decimal.Zero,
                        Vl_PAGAR       = Math.Round(val.Sum(p => p.Vl_taxa), 2),
                        St_Estorno     = "N",
                        St_Titulo      = "N"
                    }, qtb_fatura.Banco_Dados);
                }
                val.ForEach(p =>
                {
                    if ((p.Vl_fatura - p.Vl_quitado) > decimal.Zero)
                    {
                        if (p.Dt_fatura.Value.Date > Dt_quitacao.Date)
                        {
                            throw new Exception("Não é permitido quitar fatura com data de lançamento maior que a data de quitação.");
                        }
                        //Incluir lancamento de caixa contrario ao original
                        string cd_lanctocaixa_o = TCN_LanCaixa.GravaLanCaixa(new TRegistro_LanCaixa()
                        {
                            Cd_Empresa   = Cd_empresa,
                            Cd_ContaGer  = p.Cd_contager,
                            Nr_Docto     = p.Id_fatura.Value.ToString(),
                            Dt_lancto    = Dt_quitacao,
                            Cd_Historico = p.Tp_movimento.Trim().ToUpper().Equals("P") ? lCfg[0].Cd_historico_pag : lCfg[0].Cd_historico_rec,
                            Vl_RECEBER   = p.Tp_movimento.Trim().ToUpper().Equals("P") ? p.Vl_fatura - p.Vl_quitado : decimal.Zero,
                            Vl_PAGAR     = p.Tp_movimento.Trim().ToUpper().Equals("R") ? p.Vl_fatura - p.Vl_quitado : decimal.Zero,
                            St_Estorno   = "N"
                        }, qtb_fatura.Banco_Dados);
                        decimal?cd_tx = null;
                        if (p.Pc_taxa > decimal.Zero)
                        {
                            cd_tx = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(cd_lanctocaixatx, "@P_CD_LANCTOCAIXA"));
                        }
                        decimal?cd_jr = null;
                        if (!string.IsNullOrEmpty(cd_lanctocaixajr))
                        {
                            cd_jr = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(cd_lanctocaixajr, "@P_CD_LANCTOCAIXA"));
                        }
                        //Incluir Registo na Tabela de Quitacao
                        TCN_QuitarFatura.Gravar(
                            new TRegistro_Quitarfatura()
                        {
                            Id_quitar          = null,
                            Id_fatura          = p.Id_fatura,
                            Cd_contager        = p.Cd_contager,
                            Cd_lanctocaixa     = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(cd_lanctocaixa_o, "@P_CD_LANCTOCAIXA")),
                            Cd_contagerquit    = Cd_contager,
                            Cd_lanctocaixaquit = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(cd_lanctocaixa_q, "@P_CD_LANCTOCAIXA")),
                            Cd_lanctocaixajuro = cd_jr,
                            Cd_lanctocaixatx   = cd_tx,
                            Dt_lancto          = Dt_quitacao,
                            Vl_quitado         = p.Vl_fatura - p.Vl_quitado,
                            Vl_juro            = p.Vl_juro,
                            Vl_taxa            = p.Vl_taxa
                        }, 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 quitar fatura: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_fatura.deletarBanco_Dados();
                }
            }
        }
Beispiel #6
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();
                }
            }
        }
Beispiel #7
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();
                }
            }
        }