public TList_CFGFaturaCartao Select(Utils.TpBusca[] vBusca, Int32 vTop, string vNM_Campo) { TList_CFGFaturaCartao lista = new TList_CFGFaturaCartao(); bool podeFecharBco = false; if (Banco_Dados == null) { podeFecharBco = this.CriarBanco_Dados(false); } System.Data.SqlClient.SqlDataReader reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, Convert.ToInt16(vTop), vNM_Campo)); try { while (reader.Read()) { TRegistro_CFGFaturaCartao reg = new TRegistro_CFGFaturaCartao(); if (!reader.IsDBNull(reader.GetOrdinal("cd_empresa"))) { reg.Cd_empresa = reader.GetString(reader.GetOrdinal("cd_empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("nm_empresa"))) { reg.Nm_empresa = reader.GetString(reader.GetOrdinal("nm_empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("CD_Historico_rec"))) { reg.Cd_historico_rec = reader.GetString(reader.GetOrdinal("CD_Historico_rec")); } if (!reader.IsDBNull(reader.GetOrdinal("DS_Historico_rec"))) { reg.Ds_historico_rec = reader.GetString(reader.GetOrdinal("DS_Historico_rec")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_historico_pag"))) { reg.Cd_historico_pag = reader.GetString(reader.GetOrdinal("cd_historico_pag")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_historico_pag"))) { reg.Ds_historico_pag = reader.GetString(reader.GetOrdinal("ds_historico_pag")); } if (!reader.IsDBNull(reader.GetOrdinal("CD_Historico_Juro"))) { reg.Cd_historico_juro = reader.GetString(reader.GetOrdinal("CD_Historico_Juro")); } if (!reader.IsDBNull(reader.GetOrdinal("DS_Historico_Juro"))) { reg.Ds_historico_juro = reader.GetString(reader.GetOrdinal("DS_Historico_Juro")); } if (!reader.IsDBNull(reader.GetOrdinal("cd_historico_taxa"))) { reg.Cd_historico_taxa = reader.GetString(reader.GetOrdinal("cd_historico_taxa")); } if (!reader.IsDBNull(reader.GetOrdinal("ds_historico_taxa"))) { reg.Ds_historico_taxa = reader.GetString(reader.GetOrdinal("ds_historico_taxa")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }
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(); } } }