public static string Excluir(TRegistro_Emprestimos val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Emprestimos qtb_emp = new TCD_Emprestimos(); try { if (banco == null) { st_transacao = qtb_emp.CriarBanco_Dados(true); } else { qtb_emp.Banco_Dados = banco; } //Cancelar emprestimo val.St_registro = "C"; qtb_emp.Gravar(val); //Cancelar lancamentos de caixa val.lCaixa.ForEach(p => CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.EstornarCaixa(p, null, qtb_emp.Banco_Dados)); //Cancelar Centro Resultado TCN_Emprestimos_X_CCusto.Buscar(val.Id_emprestimostr, val.Cd_empresa, string.Empty, qtb_emp.Banco_Dados).ForEach(p => { //Excluir emprestimo x ccusto TCN_Emprestimos_X_CCusto.Excluir(p, qtb_emp.Banco_Dados); //Excluir centro resultado CamadaNegocio.Financeiro.CCustoLan.TCN_LanCCustoLancto.Excluir( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Id_ccustolan = p.Id_ccustolan }, qtb_emp.Banco_Dados); }); if (st_transacao) { qtb_emp.Banco_Dados.Commit_Tran(); } return(val.Id_emprestimostr); } catch (Exception ex) { if (st_transacao) { qtb_emp.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir emprestimo: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_emp.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_Emprestimos val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Emprestimos qtb_emp = new TCD_Emprestimos(); try { if (banco == null) { st_transacao = qtb_emp.CriarBanco_Dados(true); } else { qtb_emp.Banco_Dados = banco; } //Buscar Config Emprestimos CamadaDados.Financeiro.Cadastros.TList_CfgEmprestimos lCfg = CamadaNegocio.Financeiro.Cadastros.TCN_CfgEmprestimos.Buscar(val.Cd_empresa, qtb_emp.Banco_Dados); if (lCfg.Count.Equals(0)) { throw new Exception("Não existe configuração para gravar emprestimos na empresa " + val.Cd_empresa.Trim()); } if (val.Tp_emprestimo.Trim().ToUpper().Equals("C") && string.IsNullOrEmpty(lCfg[0].Cd_historico_c)) { throw new Exception("Não existe historico configurado para gravar emprestimos concedidos."); } if (val.Tp_emprestimo.Trim().ToUpper().Equals("R") && string.IsNullOrEmpty(lCfg[0].Cd_historico_r)) { throw new Exception("Não existe historico configurado para gravar emprestimos recebidos."); } //Gravar Emprestimo val.Id_emprestimostr = CamadaDados.TDataQuery.getPubVariavel(qtb_emp.Gravar(val), "@P_ID_EMPRESTIMO"); if (val.lCheque.Count > 0) { val.lCheque.ForEach(p => { //Gravar Cheque p.St_lancarcaixa = true; p.Observacao = "EMPRESTIMO " + val.Tipo_emprestimo + " Nº " + val.Id_emprestimostr; p.Cd_historico = val.Tp_emprestimo.Trim().ToUpper().Equals("C") ? lCfg[0].Cd_historico_c : lCfg[0].Cd_historico_r; CamadaNegocio.Financeiro.Titulo.TCN_LanTitulo.GravarTitulo(p, qtb_emp.Banco_Dados); //Buscar lancamento caixa cheque CamadaNegocio.Financeiro.Titulo.TCN_TituloXCaixa.Buscar(p.Cd_empresa, string.Empty, string.Empty, p.Cd_banco, p.Nr_lanctocheque.ToString(), qtb_emp.Banco_Dados).ForEach(v => //Gravar Emprestimo x Caixa TCN_Emprestimo_X_Caixa.Gravar( new TRegistro_Emprestimo_X_Caixa() { Cd_empresa = val.Cd_empresa, Cd_contager = val.Cd_contager, Cd_lanctocaixa = v.Cd_lanctocaixa, Id_emprestimo = val.Id_emprestimo, Tp_lancto = "O", Cd_portador = val.Cd_portador }, qtb_emp.Banco_Dados)); }); } else { //Gravar Caixa string caixa = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_Empresa = val.Cd_empresa, Cd_ContaGer = val.Cd_contager, Cd_Historico = val.Tp_emprestimo.Trim().ToUpper().Equals("C") ? lCfg[0].Cd_historico_c : lCfg[0].Cd_historico_r, ComplHistorico = "EMPRESTIMO " + val.Tipo_emprestimo + " Nº " + val.Id_emprestimostr, Dt_lancto = val.Dt_emprestimo, Nr_Docto = "EMP" + val.Id_emprestimostr, Login = Utils.Parametros.pubLogin, St_Estorno = "N", St_Titulo = "N", Vl_PAGAR = val.Tp_emprestimo.Trim().ToUpper().Equals("C") ? val.Vl_emprestimo : decimal.Zero, Vl_RECEBER = val.Tp_emprestimo.Trim().ToUpper().Equals("R") ? val.Vl_emprestimo : decimal.Zero }, qtb_emp.Banco_Dados); //Gravar Emprestimo X Caixa TCN_Emprestimo_X_Caixa.Gravar(new TRegistro_Emprestimo_X_Caixa() { Cd_empresa = val.Cd_empresa, Cd_contager = val.Cd_contager, Cd_lanctocaixa = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(caixa, "@P_CD_LANCTOCAIXA")), Id_emprestimo = val.Id_emprestimo, Tp_lancto = "O", Cd_portador = val.Cd_portador }, qtb_emp.Banco_Dados); } if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA", val.Cd_empresa, qtb_emp.Banco_Dados).Trim().ToUpper().Equals("S")) { if (val.Tp_emprestimo.Trim().ToUpper().Equals("C") && (!string.IsNullOrEmpty(lCfg[0].Cd_centroresult_c))) { string id_lan = CamadaNegocio.Financeiro.CCustoLan.TCN_LanCCustoLancto.Gravar( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Cd_empresa = val.Cd_empresa, Cd_centroresult = lCfg[0].Cd_centroresult_c, Vl_lancto = val.Vl_emprestimo, Dt_lancto = val.Dt_emprestimo }, qtb_emp.Banco_Dados); //Gravar Emprestimo X CCusto TCN_Emprestimos_X_CCusto.Gravar(new TRegistro_Emprestimos_X_CCusto() { Cd_empresa = val.Cd_empresa, Id_ccustolan = decimal.Parse(id_lan), Id_emprestimo = val.Id_emprestimo }, qtb_emp.Banco_Dados); } else if (val.Tp_emprestimo.Trim().ToUpper().Equals("R") && (!string.IsNullOrEmpty(lCfg[0].Cd_centroresult_r))) { string id_lan = CamadaNegocio.Financeiro.CCustoLan.TCN_LanCCustoLancto.Gravar( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Cd_empresa = val.Cd_empresa, Cd_centroresult = lCfg[0].Cd_centroresult_r, Vl_lancto = val.Vl_emprestimo, Dt_lancto = val.Dt_emprestimo }, qtb_emp.Banco_Dados); //Gravar Emprestimo X CCusto TCN_Emprestimos_X_CCusto.Gravar(new TRegistro_Emprestimos_X_CCusto() { Cd_empresa = val.Cd_empresa, Id_ccustolan = decimal.Parse(id_lan), Id_emprestimo = val.Id_emprestimo }, qtb_emp.Banco_Dados); } } if (st_transacao) { qtb_emp.Banco_Dados.Commit_Tran(); } return(val.Id_emprestimostr); } catch (Exception ex) { if (st_transacao) { qtb_emp.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar emprestimo: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_emp.deletarBanco_Dados(); } } }