public static string Excluir(TRegistro_CompraAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CompraAvulsa qtb_compra = new TCD_CompraAvulsa(); try { if (banco == null) { st_transacao = qtb_compra.CriarBanco_Dados(true); } else { qtb_compra.Banco_Dados = banco; } //Verificar se existe item faturado if (new TCD_CompraItens_X_PedidoItens(qtb_compra.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.id_compra", vOperador = "=", vVL_Busca = val.Id_comprastr } }, "1") != null) { throw new Exception("Não é permitido excluir romaneio com itens faturados."); } val.lItens.ForEach(p => TCN_Compra_Itens.Excluir(p, qtb_compra.Banco_Dados)); qtb_compra.Excluir(val); if (st_transacao) { qtb_compra.Banco_Dados.Commit_Tran(); } return(val.Id_comprastr); } catch (Exception ex) { if (st_transacao) { qtb_compra.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir compra: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_compra.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_CompraAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CompraAvulsa qtb_compra = new TCD_CompraAvulsa(); try { if (banco == null) { st_transacao = qtb_compra.CriarBanco_Dados(true); } else { qtb_compra.Banco_Dados = banco; } //Buscar config compra avulsa CamadaDados.Faturamento.Cadastros.TList_CfgCompraAvulsa lCfg = Cadastros.TCN_CfgCompraAvulsa.Buscar(val.Cd_empresa, qtb_compra.Banco_Dados); if (lCfg.Count.Equals(0)) { throw new Exception("Não existe configuração para gravar romaneio de compra na empresa " + val.Cd_empresa.Trim()); } val.Id_comprastr = CamadaDados.TDataQuery.getPubVariavel(qtb_compra.Gravar(val), "@P_ID_COMPRA"); //Item Compra val.lItensDel.ForEach(p => TCN_Compra_Itens.Excluir(p, qtb_compra.Banco_Dados)); val.lItens.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_compra = val.Id_compra; p.Cd_local = lCfg[0].Cd_local; TCN_Compra_Itens.Gravar(p, qtb_compra.Banco_Dados); }); if (st_transacao) { qtb_compra.Banco_Dados.Commit_Tran(); } return(val.Id_comprastr); } catch (Exception ex) { if (st_transacao) { qtb_compra.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar compra: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_compra.deletarBanco_Dados(); } } }