public static string Gravar(TRegistro_CreditoClifor val, CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa rCaixa, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CreditoClifor qtb_cred = new TCD_CreditoClifor(); try { if (banco == null) { st_transacao = qtb_cred.CriarBanco_Dados(true); } else { qtb_cred.Banco_Dados = banco; } //Gravar Credito val.Id_creditostr = CamadaDados.TDataQuery.getPubVariavel(qtb_cred.Gravar(val), "@P_ID_CREDITO"); //Gravar Caixa CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa(rCaixa, qtb_cred.Banco_Dados); //Gravar Credito X Caixa TCN_CreditoClifor_X_Caixa.Gravar(new TRegistro_CreditoClifor_X_Caixa() { Cd_contager = rCaixa.Cd_ContaGer, Cd_empresa = val.Cd_empresa, Cd_lanctocaixa = rCaixa.Cd_LanctoCaixa, Id_credito = val.Id_credito }, qtb_cred.Banco_Dados); if (st_transacao) { qtb_cred.Banco_Dados.Commit_Tran(); } return(val.Id_creditostr); } catch (Exception ex) { if (st_transacao) { qtb_cred.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar credito: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_cred.deletarBanco_Dados(); } } }
public static CamadaDados.Financeiro.Caixa.TList_LanCaixa DevolverCredito(string Cd_empresa, string Cd_clifor, string Cd_historico, DateTime?Dt_lancto, decimal Vl_credito, BancoDados.TObjetoBanco banco) { //Buscar lista de credito da empresa/cliente TList_CreditoClifor lCredito = Buscar(string.Empty, Cd_empresa, Cd_clifor, string.Empty, string.Empty, string.Empty, true, banco); CamadaDados.Financeiro.Caixa.TList_LanCaixa lCaixa = new CamadaDados.Financeiro.Caixa.TList_LanCaixa(); if (lCredito.Count > 0) { decimal saldo_credito = Vl_credito; foreach (TRegistro_CreditoClifor rCred in lCredito) { if (saldo_credito > 0) { if (rCred.Vl_saldodevolver > decimal.Zero) { CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa rCaixa = new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = rCred.Cd_contager, Cd_Empresa = Cd_empresa, Cd_Historico = Cd_historico, ComplHistorico = "DEVOLUCAO CREDITO: " + rCred.Id_creditostr, Nr_Docto = "DEV" + rCred.Id_creditostr, NM_Clifor = rCred.Nm_clifor, Dt_lancto = Dt_lancto, St_Titulo = "N", Vl_PAGAR = rCred.Vl_saldodevolver > saldo_credito ? saldo_credito : rCred.Vl_saldodevolver, Vl_RECEBER = decimal.Zero }; CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa(rCaixa, banco); lCaixa.Add(rCaixa); //Gravar Credito X Caixa TCN_CreditoClifor_X_Caixa.Gravar(new TRegistro_CreditoClifor_X_Caixa() { Cd_contager = rCaixa.Cd_ContaGer, Cd_lanctocaixa = rCaixa.Cd_LanctoCaixa, Cd_empresa = rCred.Cd_empresa, Id_credito = rCred.Id_credito }, banco); saldo_credito -= rCred.Vl_saldodevolver > Vl_credito ? Vl_credito : rCred.Vl_saldodevolver; } else { continue; } } else { break; } } } return(lCaixa); }