public static void EncerrarNegociacao(TRegistro_Negociacao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Negociacao qtb_neg = new TCD_Negociacao(); try { if (banco == null) { st_transacao = qtb_neg.CriarBanco_Dados(true); } else { qtb_neg.Banco_Dados = banco; } val.St_registro = "E"; qtb_neg.GravarNegociacao(val); if (st_transacao) { qtb_neg.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_neg.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro encerrar negociação: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_neg.deletarBanco_Dados(); } } }
public static void LancarNegFornec(TList_Negociacao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Negociacao qtb_neg = new TCD_Negociacao(); try { if (banco == null) { st_transacao = qtb_neg.CriarBanco_Dados(true); } else { qtb_neg.Banco_Dados = banco; } val.ForEach(p => { //Verificar se existe negociacao em aberto ou fechada para o produto TList_Negociacao aux = Buscar(string.Empty, p.Cd_produto, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, "'A', 'F'", 1, string.Empty, qtb_neg.Banco_Dados); if (aux.Count > 0) { p.lItens.ForEach(v => { v.Id_negociacao = aux[0].Id_negociacao; TCN_NegociacaoItem.GravarNegociacaoItem(v, qtb_neg.Banco_Dados); }); } else { //Gravar negociacao string retorno = qtb_neg.GravarNegociacao(p); //Gravar item negociacao p.lItens.ForEach(v => { v.Id_negociacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_NEGOCIACAO")); string ret = TCN_NegociacaoItem.GravarNegociacaoItem(v, qtb_neg.Banco_Dados); v.lPrazoEntrega.ForEach(x => { x.Id_negociacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_NEGOCIACAO")); x.Id_item = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret, "@P_ID_ITEM")); TCN_PrazoEntrega.GravarPrazoEntrega(x, qtb_neg.Banco_Dados); }); }); } }); if (st_transacao) { qtb_neg.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_neg.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro lançar negociação: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_neg.deletarBanco_Dados(); } } }