public static string GravarEmpreendimento(TRegistro_Empreendimento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Empreendimento qtb_emp = new TCD_Empreendimento(); try { if (banco == null) { st_transacao = qtb_emp.CriarBanco_Dados(true); } else { qtb_emp.Banco_Dados = banco; } string retorno = qtb_emp.GravarEmpreendimento(val); val.Id_empreendimento = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_EMPREENDIMENTO")); //Deletar centro resultado val.lCResultadoDel.ForEach(p => TCN_Empreendimento_X_CResultado.DeletarEmpreendimento_X_CResultado( new TRegistro_Empreendimento_X_CResultado() { Cd_grupocf = p.Cd_grupocf, Id_empreendimento = val.Id_empreendimento }, qtb_emp.Banco_Dados)); //Gravar centro resultado val.lCResultado.ForEach(p => TCN_Empreendimento_X_CResultado.GravarEmpreendimento_X_CResultado( new TRegistro_Empreendimento_X_CResultado() { Cd_grupocf = p.Cd_grupocf, Id_empreendimento = val.Id_empreendimento }, qtb_emp.Banco_Dados)); if (st_transacao) { qtb_emp.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_emp.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar empreendimento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_emp.deletarBanco_Dados(); } } }
public static string DeletarEmpreendimento(TRegistro_Empreendimento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Empreendimento qtb_emp = new TCD_Empreendimento(); try { if (banco == null) { st_transacao = qtb_emp.CriarBanco_Dados(true); } else { qtb_emp.Banco_Dados = banco; } //Verificar se o empreendimento possui movimentacao object obj = new CamadaDados.Financeiro.Empreendimento.TCD_Empreendimento_X_LnCCusto().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_empreendimento", vOperador = "=", vVL_Busca = val.Id_empreendimento.Value.ToString() }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_ccustolancto x " + "inner join tb_fin_duplicata_x_ccusto y " + "on x.id_ccustolan = y.id_ccustolan " + "inner join tb_fin_duplicata z " + "on y.cd_empresa = z.cd_empresa " + "and y.nr_lancto = z.nr_lancto " + "where x.id_ccustolan = a.id_ccustolan " + "and isnull(z.st_registro, 'A') <> 'C')" } }, "1"); bool st_excluir = true; if (obj != null) { if (obj.ToString().Trim().Equals("1")) { st_excluir = false; } } if (st_excluir) { //Deletar empreendimento qtb_emp.DeletarEmpreendimento(val); } else { val.St_registro = "C"; GravarEmpreendimento(val, qtb_emp.Banco_Dados); } if (st_transacao) { qtb_emp.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_emp.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir empreendimento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_emp.deletarBanco_Dados(); } } }