public static string DeletarContrato(TRegistro_CadContrato val, TObjetoBanco banco) { bool st_transacao = false; TCD_CadContrato qtb_Contrato = new TCD_CadContrato(); try { if (banco == null) { st_transacao = qtb_Contrato.CriarBanco_Dados(true); } else { qtb_Contrato.Banco_Dados = banco; } //Deletar Contrato Headge val.lContrato_Headge.ForEach(p => TCN_CadContrato_Headge.DeletarContrato_Headge(p, qtb_Contrato.Banco_Dados)); val.lDelContrato_Headge.ForEach(p => TCN_CadContrato_Headge.DeletarContrato_Headge(p, qtb_Contrato.Banco_Dados)); //Deletar Taxa val.Taxas.ForEach(p => TCN_CadContratoTaxaDeposito.DeletarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados)); val.DelTaxas.ForEach(p => TCN_CadContratoTaxaDeposito.DeletarContratoTaxaDeposito(p, qtb_Contrato.Banco_Dados)); //Deletar desdobro especial val.lDesdobro.ForEach(p => TCN_Contrato_X_DesdEspecial.Excluir(p, qtb_Contrato.Banco_Dados)); val.lDesdobroDel.ForEach(p => TCN_Contrato_X_DesdEspecial.Excluir(p, qtb_Contrato.Banco_Dados)); //Cancelar lancamento estoque embalagem val.lEstoqueEmbalagem.ForEach(p => CamadaNegocio.Estoque.TCN_LanEstoque.DeletarEstoque( p, qtb_Contrato.Banco_Dados)); //Excluir contrato qtb_Contrato.Excluir(val); if (st_transacao) { qtb_Contrato.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_Contrato.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir contrato: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_Contrato.deletarBanco_Dados(); } } }