Ir para conteúdo
Fórum Script Brasil

Nilson Claiton Morgenstern

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Nilson Claiton Morgenstern

Nilson Claiton Morgenstern's Achievements

0

Reputação

  1. Boa tarde estou desenvolvendo uma Web api, tenho uma função que e usada para tranferir produto de uma mesa para outra mesa. Quando solicito a transferencia o produto que foi solicitado a transferencia e deletado, o mais estranho que a função finaliza o update com o commit. Veja a função. public List<TransfereItensMesaMesa> TransfereItenMesaMesa(long OpOr, long MesaOr, long MesaDest, long Codigo, long CodProduto, double Quantidade, long CodCaixa, DateTime DataCaixa, long CodUsuario) { List<TransfereItensMesaMesa> _Estorna = new List<TransfereItensMesaMesa>(); bool Retorno = false; NpgsqlTransaction Trans; NpgsqlConnection Cnx = new NpgsqlConnection(Variaveis.StringConexaoPG); Cnx.Open(); Trans = Cnx.BeginTransaction(); try { var StatusOr = ffuncaobd.RetDadosString("Select \"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Codigo\"=" + OpOr + " And \"Estorno\"='N' And \"Impressa\"='N' Order by \"Codigo\" Desc LIMIT 1"); if (StatusOr.ToUpper() != "Impressa".ToUpper()) { if (ffuncaobd.RetDados("Select \"Codigo\",\"DataAbertura\",\"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Mesa\"=" + MesaDest + " And \"Estorno\"='N' Order by \"Codigo\" Desc LIMIT 1" , new string[] { "Codigo", "DataAbertura", "Status" }, 3) == true) { if (Variaveis.Dados is Array) { if (Variaveis.Dados is null) { } else { if (ffuncao.IsNumeric(Variaveis.Dados[0]) == true) { CodigoVenda = Convert.ToInt64(Variaveis.Dados[0]); Status = Variaveis.Dados[2].ToString(); if (Status.ToUpper() == "Impressa".ToUpper()) { Variaveis.Mensage = "A mesa de destino já foi impressa, para tranferir um item debloqueie a mesa"; Retorno = false; Trans.Rollback(); Cnx.Close(); goto Sair; } } } } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa de destino"; Retorno = false; goto Sair; } if (CodigoVenda == 0) { if (ffuncaobd.GravaTrans_Novo(Cnx, Trans, "Insert Into \"MesaOP\" " , new string[] { "Mesa", "DataCaixa", "Usuario", "Caixa", "DataAbertura" } , new string[] { MesaDest.ToString(), DataCaixa.ToString(), CodUsuario.ToString(), CodCaixa.ToString(), DateTime.Now.ToString() } , new string[] { "bi", "d", "bi", "bi", "DT" }) == true) { if (ffuncaobd.RetDadosTrans_Novo(Cnx, Trans, "Select \"Codigo\",\"DataAbertura\",\"Status\" From \"MesaOP\" Where \"Fechada\"='N' And \"Mesa\"=" + MesaDest + " And \"Estorno\"='N' Order by \"Codigo\" Desc LIMIT 1" , new string[] { "Codigo", "DataAbertura", "Status" }, 3) == true) { if (Variaveis.Dados is Array) { if (Variaveis.Dados is null) { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } else { if (ffuncao.IsNumeric(Variaveis.Dados[0]) == true) { CodigoVenda = Convert.ToInt64(Variaveis.Dados[0]); Status = Variaveis.Dados[2].ToString(); } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao caregar a mesa"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Erro ao cadastrar a mesa, para recebar a transferencia"; Retorno = false; goto Sair; } } if (CodigoVenda > 0) { string Sql = "UpDate \"MesaDetalhe\" Set \"Operacao\"=" + CodigoVenda + " Where \"Codigo\"=" + Codigo + ";"; if (ffuncaobd.GravaTrans_Novo_RetAfect(Cnx, Trans, "UpDate \"MesaDetalhe\" Set " , new string[] { "Operacao" } , new string[] { CodigoVenda.ToString() } , new string[] { "bi" } , Codigo , new string[] { "Codigo" } , new string[] { Codigo.ToString() } , false) > 0) //if (ffuncaobd.DeletarNovoTrans_RetNUmero_Novo(Cnx, Trans, Sql, false) > 0) { if (ffuncaobd.RetDadosNumeroInt64Trans_Novo(Cnx, Trans, "Select count(*) From \"MesaDetalhe\" where \"Operacao\"=" + OpOr) == 0) { string SqlOp = "Delete from \"MesaOP\" Where \"Codigo\"=" + OpOr + ";"; if (ffuncaobd.DeletarNovoTrans_RetNUmero_Novo(Cnx, Trans, SqlOp, false) > 0) { Trans.Commit(); Cnx.Close(); Variaveis.Mensage = "Tranferencia Realizada com Sucesso!!!"; Retorno = true; } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível tranferir o item selecionado, Deletar a Mesa de Origem Sem Produtos"; Retorno = false; goto Sair; } } else { Trans.Commit(); Cnx.Close(); Variaveis.Mensage = "Tranferencia Realizada com Sucesso!!!"; Retorno = true; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível tranferir o item selecionado para a mesa de destino"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "Não foi possível carregar a operação da mesa de destino"; Retorno = false; goto Sair; } } else { Trans.Rollback(); Cnx.Close(); Variaveis.Mensage = "A mesa de origem já foi impressa, para tranferir um item debloqueie a mesa"; } } catch (Exception ex) { Variaveis.Erros = ex.Message; Variaveis.Mensage = "Não foi possivel Transfere o Iten da Mesa " + ex.Message; try { Trans.Rollback(); Cnx.Close(); } catch { try { Cnx.Close(); } catch { } } } Sair: _Estorna.Add(new TransfereItensMesaMesa() { Op = OpOr, Codigo = Codigo, CodProduto = CodProduto, Quantidade = Quantidade, CodCaixa = CodCaixa, DataCaixa = DataCaixa, CodUsuario = CodUsuario, Menssagem = Variaveis.Mensage, Erro = Variaveis.Erros, Retorno = Retorno }); Variaveis.Erros = ""; Variaveis.Mensage = ""; return _Estorna; } Obs: O registro e deletado somente quando na tabela mao o registro e criado junto com a alteração(UpDate) Se o restro na tabela mao já existe faz tudo certinho.
×
×
  • Criar Novo...