/// <summary> /// Obter o valor total da conta do ingresso /// </summary> /// <returns></returns> public override decimal ValorConta(int ingresso) { try{ DataTable tabela = new DataTable("Conta"); //carregar uma lista de comandas desse ingresso ComandaLista lista = new ComandaLista(); lista.FiltroSQL = "VendaID<>0 AND IngressoID=" + ingresso; lista.Carregar(); string ids = lista.ToString(); if (ids != "") { string sql = "SELECT Sum(i.PrecoVenda*i.Quantidade) as Valor " + "FROM tComanda as c, tComandaItem as i WHERE i.ComandaID in (" + ids + ") AND " + "c.ID=i.ComandaID"; object o = bd.ConsultaValor(sql); decimal valor = (o != null) ? Convert.ToDecimal(o) : 0; return(valor); } else { return(0); } }catch (Exception ex) { throw ex; } }
} // fim de EstruturaNovaComanda /// <summary> /// /// </summary> /// <returns></returns> public bool InserirNovaComanda(DataTable tabelaAux, out int comandaID) { comandaID = 0; try { DataRow linha = (DataRow)tabelaAux.Rows[0]; if (linha != null) { // verificar se existe uma comanda com essa ordem antes de incluir uma nova. if (linha["OrdemComanda"].ToString() != "") { ComandaLista lista = new ComandaLista(Convert.ToInt32(linha["UsuarioID"])); lista.FiltroSQL = "ORDEM='" + linha["OrdemComanda"].ToString() + "'"; lista.Carregar(); if (lista.Tamanho > 0) { comandaID = 0; return(false); } } // Criar uma comanda no BD (inserir registro) Comanda comanda = new Comanda(Convert.ToInt32(linha["UsuarioID"])); comanda.Ordem.Valor = linha["OrdemComanda"].ToString(); if ((bool)linha["TrabalharComIngresso"]) { // garcon.Ler(garconID); // soh pra pegar o nome? comanda.GarconID.Valor = Convert.ToInt32(linha["GarconID"]); // codigoIngresso = linha["Ingresso"].ToString(); // comanda.IngressoID.Valor = codigoIngresso; } else { comanda.GarconID.Valor = 0; comanda.IngressoID.Valor = 0; } comanda.CaixaID.Valor = Convert.ToInt32(linha["CaixaID"]); comanda.Inserir(); comandaID = comanda.Control.ID; } return(true); } catch (Exception ex) { throw ex; } } // fim de InserirNovaComanda
/// <summary> /// Fecha a conta /// </summary> /// <returns></returns> public override void FecharConta(int ingresso, int vendaid) { if (vendaid > 0) // fechar conta setando o vendaID de todas as comandas do ingresso { try{ //carregar uma lista de comandas desse ingresso ComandaLista lista = new ComandaLista(); lista.FiltroSQL = "IngressoID='" + ingresso + "' AND VendaID=0"; lista.Carregar(); lista.Primeiro(); do { lista.Comanda.VendaID.Valor = vendaid; lista.Comanda.Atualizar(); }while(lista.Proximo()); }catch (Exception ex) { throw ex; } } }
/// <summary> /// Obter os itens de um Ingresso especifico nao pagos /// </summary> /// <returns></returns> public DataTable Conta(int ingresso) { DataTable tabela = estruturaItensComanda(); //carregar uma lista de comandas desse ingresso ComandaLista lista = new ComandaLista(); lista.FiltroSQL = "IngressoID='" + ingresso + "'"; lista.Carregar(); string ids = lista.ToString(); if (ids != "") { try{ BD bd = new BD(); string sql = "SELECT i.ID, i.ProdutoID, p.Nome AS Produto, p.PrecoVenda AS Valor, i.Quantidade, i.ComandaID, c.VendaID " + "FROM tProduto p INNER JOIN " + "tComandaItem i ON p.ID = i.ProdutoID INNER JOIN " + "tComanda c ON i.ComandaID = c.ID " + "WHERE (i.ComandaID IN (" + ids + ")) AND (c.VendaID = 0)"; bd.Consulta(sql); while (bd.Consulta().Read()) { DataRow linha = tabela.NewRow(); linha["ID"] = bd.LerInt("ID"); linha["ProdutoID"] = bd.LerInt("ProdutoID"); linha["Produto"] = bd.LerString("Produto"); linha["Quantidade"] = bd.LerInt("Quantidade"); linha["Valor"] = bd.LerDecimal("Valor"); tabela.Rows.Add(linha); } bd.Fechar(); }catch { tabela = null; } } return(tabela); }