public static string Excluir(TRegistro_PesagemAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PesagemAvulsa qtb_pesagem = new TCD_PesagemAvulsa(); try { if (st_transacao) { st_transacao = qtb_pesagem.CriarBanco_Dados(true); } else { qtb_pesagem.Banco_Dados = banco; } //Verificar se a pesagem possui financeiro if (val.Nr_lancto != null) { //Verificar se a pesagem nao possui financeiro aberto object objfin = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata(qtb_pesagem.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = val.Nr_lancto.Value.ToString() }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, "1"); if (objfin != null) { if (objfin.ToString().Trim().Equals("1")) { throw new Exception("Pesagem possui financeiro em aberto.\r\n" + "Para cancelar pesagem necessario antes cancelar o financeiro.\r\n" + "Empresa: " + val.Cd_empresa.Trim() + "\r\n" + "Nº Lancto: " + val.Nr_lancto.Value.ToString()); } } } qtb_pesagem.Excluir(val); if (st_transacao) { qtb_pesagem.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_pesagem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro cancelar pesagem avulsa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pesagem.deletarBanco_Dados(); } } }