restaurante.Restaurante.java Source code

Java tutorial

Introduction

Here is the source code for restaurante.Restaurante.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package restaurante;

import java.util.List;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import javax.swing.JOptionPane;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 *
 * @author Hygor
 */
public class Restaurante {

    private static List<Mesa> mesas = new ArrayList<>();
    private static List<Cliente> clientes = new ArrayList<>();
    private static List<Item> cardapio = new ArrayList<>();
    private static List<Garcom> garcons = new ArrayList<>();
    private static List<Conta> contas = new ArrayList<>();

    //Abaixo seguem os mtodos para cadastro de dados
    public static void cadastraCliente(String nome, String dataNasc, String cpf, String endereco, String email,
            String telefone) {
        Calendar cal = Calendar.getInstance();
        String dia = String.valueOf(cal.get(Calendar.DATE));
        String mes = String.valueOf(cal.get(Calendar.MONTH) + 1);
        String ano = String.valueOf(cal.get(Calendar.YEAR));
        String dataCadastro = dia + "/" + mes + "/" + ano;

        Cliente c = new Cliente();
        c.setNome(nome);
        c.setDataNasc(dataNasc);
        c.setCpf(cpf);
        c.setEndereco(endereco);
        c.setEmail(email);
        c.setTelefone(telefone);
        c.setDataCadastro(dataCadastro);
        salvarCliente(c);
        JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso");
    }

    public static void cadastraMesa(int id) {
        Mesa m = new Mesa();
        m.setId(id);

        if (!mesas.contains(m)) {
            mesas.add(m);
            JOptionPane.showMessageDialog(null, "Mesa cadastrada com sucesso");
        } else {
            JOptionPane.showMessageDialog(null, "Mesa j existe");
        }
    }

    public static void cadastraGarcom(String nome, int id) {
        Garcom g = new Garcom();
        g.setNome(nome);
        g.setId(id);
        salvarGarcom(g);
    }

    public static void adicionaItemCardapio(int idI, String nome, Item.tipoItem tipo, String desc, double preco) {
        Item i = new Item();
        i.setId(idI);
        i.setNome(nome);
        // i.setTipoItem(tipo);
        i.setDescricao(desc);
        i.setPrecoUnit(preco);

        if (!cardapio.contains(i)) {
            cardapio.add(i);
            JOptionPane.showMessageDialog(null, "Item adicionado ao cardpio com sucesso");
        } else {
            JOptionPane.showMessageDialog(null, "Item j incluso no cardpio");
        }
    }
    //Fim dos mtodos para casastro de dados

    //Incio dos das operaes
    public static void novoPedido(Cliente cliente, Mesa mesa, List<Item> lItens, List<Integer> qntdItens)
            throws Exception {
        Pedido p = new Pedido();
        Date dataAt = Pedido.formataDataAtual();
        p.setData(dataAt);
        p.setAberto(true);
        p.setItensPedido(lItens, qntdItens);

        /* if (cliente.getConta() != null) {
         cliente.getConta().novoPedido(p);
         } else {
         novaConta(cliente, dataAt, mesa);
         cliente.getConta().novoPedido(p);
         }*/
        JOptionPane.showMessageDialog(null, "Pedido feito com sucesso");
    }

    public static void novaConta(Cliente cliente, Date data, Mesa mesa) {
        Conta ct = new Conta();
        ct.setCliente(cliente);
        ct.setData(data);
        ct.setMesa(mesa);
        ct.setAberta(true);
        //ct.getCliente().setConta(ct);

        if (!contas.contains(ct)) {
            contas.add(ct);
            JOptionPane.showMessageDialog(null, "Conta criada com sucesso");
        } else {
            JOptionPane.showMessageDialog(null, "Conta j existe");
        }

    }

    public static List<Conta> getContasAbertas() {
        List<Conta> lAux = new ArrayList<>();
        for (Conta c : contas) {
            if (c.isAberta()) {
                lAux.add(c);
            }
        }
        return lAux;
    }

    public static Cliente getCliente(String cpf) {
        Iterator<Cliente> it = clientes.iterator();
        while (it.hasNext()) {
            Cliente c = it.next();
            if (c.getCpf().equals(cpf)) {
                return c;
            }
        }
        return null;
    }

    public static Item getItemCardapio(int codItem) {
        Iterator<Item> it = cardapio.iterator();
        while (it.hasNext()) {
            Item item = it.next();
            if (item.getId() == codItem) {
                return item;
            }
        }
        return null;
    }

    public static Mesa getMesa(int idM) {
        Iterator<Mesa> it = mesas.iterator();
        while (it.hasNext()) {
            Mesa m = it.next();
            if (m.getId() == idM) {
                return m;
            }
        }
        return null;
    }

    public static Garcom getGarcom(int id) {
        Iterator<Garcom> it = garcons.iterator();
        while (it.hasNext()) {
            Garcom g = it.next();
            if (g.getId() == id) {
                return g;
            }
        }
        return null;
    }

    public static String[] getItensCardapio() {
        List<String> l = new ArrayList<>();

        for (Item i : Restaurante.getCardapio()) {
            l.add(i.toString());
        }

        return l.toArray(new String[l.size()]);
    }
    //Fim das operaes

    //Incio dos mtodos get's 
    public static List<Item> getCardapio() {
        return cardapio;
    }

    public static List<Mesa> getMesas() {
        return mesas;
    }

    public static List<Cliente> getClientes() {
        return clientes;
    }

    public static List<Garcom> getGarcons() {
        return garcons;
    }

    public static List<Conta> getContas() {
        return contas;
    }
    //Fim dos mtodos get's

    //Demais mtodos
    public static void imprimeListaClientes() {
        for (Cliente cliente : clientes) {
            System.out.print(cliente.toString());
        }
    }

    public static void removerCadastro(Object obj) {
        if (obj instanceof Cliente) {
            clientes.remove(obj);
        }
        if (obj instanceof Garcom) {
            garcons.remove(obj);
        }
        if (obj instanceof Mesa) {
            Mesa mesa = (Mesa) obj;
            mesas.remove(mesa);
        }
        if (obj instanceof Item) {
            cardapio.remove(obj);
        }
    }

    public static void salvarCliente(Cliente c) {
        Configuration cfg = new Configuration();
        cfg.configure("hibernate.cfg.xml");
        SessionFactory sf = cfg.buildSessionFactory();
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();
        session.save(c);
        tx.commit();
        session.close();
        JOptionPane.showMessageDialog(null, "Cliente salvo com sucesso");
    }

    public static void salvarGarcom(Garcom g) {
        Configuration cfg = new Configuration();
        cfg.configure("hibernate.cfg.xml");
        SessionFactory sf = cfg.buildSessionFactory();
        Session session = sf.openSession();
        Transaction tx = session.beginTransaction();
        session.save(g);
        tx.commit();
        session.close();
        JOptionPane.showMessageDialog(null, "Garcom salvo com sucesso");
    }
}