Sistema para Controle de Pedidos de Fast Foods.
Curta ✔ Comente ✔ Compartilhe ✔ Inscreva-se ✔
Material de apoio/Certificado: http://aulaead.com/course/curso-de-java/
Material de apoio/Certificado: http://aulaead.com/course/curso-de-java/
Aprenda Java e MySQL de forma prática e descontraída desenvolvendo um Sistema de Controle de Pedidos para Fest Foods " Lanchonetes, Pizzarias, Pastelarias e afins..."
Este Sistema fornece uma base sólida da linguagem de programação Java e do banco de dados MySQL.
Blog:https://programacaoorientadaaobjeto.b...
Facebook: https://www.facebook.com/claytonklen
Google+: https://plus.google.com/+ClaytonKlen
Linkedin: https://www.linkedin.com/in/clayton-k...
Aluno do 6º Periodo do Curso de Analise e Desenvolvimento de Sistemas da Fatec " Arthur de Azevedo" - Mogi Mirim - São Paulo
http://www.fatecmm.edu.br/
Este Sistema fornece uma base sólida da linguagem de programação Java e do banco de dados MySQL.
Blog:https://programacaoorientadaaobjeto.b...
Facebook: https://www.facebook.com/claytonklen
Google+: https://plus.google.com/+ClaytonKlen
Linkedin: https://www.linkedin.com/in/clayton-k...
Aluno do 6º Periodo do Curso de Analise e Desenvolvimento de Sistemas da Fatec " Arthur de Azevedo" - Mogi Mirim - São Paulo
http://www.fatecmm.edu.br/
Este Sistema de Controle de Pedidos de Fast Foods foi desenvolvido na Ide NetBeans:
Download NetBeans: https://netbeans.org/downloads/
Para o Desenvolvimento do Banco de Dados MySql utilizado o Workbench:
Download Workbench: https://dev.mysql.com/downloads/workbench/
O Sistema Gerenciador de Banco de Dados o XAMPP Control Panel:
Download XAMPP Control Panel: https://www.apachefriends.org/pt_br/download.html
A Ferramenta de Desenvolvimento de Relatórios foi utilizado o Jaspersoft Studio:
Download Jaspersoft Studio: https://community.jaspersoft.com/project/jaspersoft-studio
Segue o Link da vídeo aula 9 a 12 do Professor José de Assis, para maior entendimento sobre a IDE NetBeans, onde ele explica boas práticas, convenção de programação para criar a Classe Tela Principal
Java-MySql Sistema OS Tela Principal :
Aula 9: https://youtu.be/d_XLdYHm0A0
Aula 10: https://youtu.be/tssvH7u4Fcc
Aula 11: https://youtu.be/wbmqN-7aHOs
Aula 12: https://youtu.be/C2LK4CWnFiI
ATENÇÃO !!! ANTES DE DAR INICIO NA IDE NETBEANS CRIAR O BANCO DE DADOS
Aula 9: https://youtu.be/d_XLdYHm0A0
Aula 10: https://youtu.be/tssvH7u4Fcc
Aula 11: https://youtu.be/wbmqN-7aHOs
Aula 12: https://youtu.be/C2LK4CWnFiI
ATENÇÃO !!! ANTES DE DAR INICIO NA IDE NETBEANS CRIAR O BANCO DE DADOS
3º Passo Tela Principal na IDE NetBeans
Na IDE NetBeans Criar Classe Tela Principal :
package br.com.lanchonete.telas;
import br.com.lanchonete.dal.ModuloConexao;
import java.awt.Color;
//linhas abaixo importa biblotecas referentes altreção Backgraund do jDesktopPane
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import java.sql.*;
import java.text.DecimalFormat;
import java.util.HashMap;
import javax.imageio.ImageIO;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
// a linha abaixo importa recurso da biblioteca para busca por nome rs2xml.jar
import net.proteanit.sql.DbUtils;
/**
*
* @author 0o9iuygtfrdesaq
*/
public class TelaPrincipal extends javax.swing.JFrame {
public InputStream foto = this.getClass().getResourceAsStream("/imagens/fast-foods.jpg");
public InputStream foto1 = this.getClass().getResourceAsStream("/imagens/fast-foods1.jpg");
public InputStream foto2 = this.getClass().getResourceAsStream("/imagens/fast-foods2.jpg");
public InputStream foto3 = this.getClass().getResourceAsStream("/imagens/fast-foods3.jpg");
public InputStream foto4 = this.getClass().getResourceAsStream("/imagens/fast-foods4.jpg");
/*
usando variável de conexao DAL
*/
Connection conexao = null;
/*
Criando variáveis especiais para conexao com o banco de dados
Prepared Statement e ResultSet são framewoks do pacote java.sql
servem oara preparar e executar as indtruções SQL
*/
PreparedStatement pst = null;
ResultSet rs = null;
/**
* Creates new form TelaPrincipal
*/
public TelaPrincipal() {
// adicionar cor no Jframe
this.getContentPane().setBackground(Color.LIGHT_GRAY);
this.setVisible(true);
initComponents();
conexao = ModuloConexao.conector();
txtDinheiro.setText("0.00");
txtTroco.setText("0.00");
}
// metodo para inserir imagem backgruond
public void carregarImagem(javax.swing.JDesktopPane jDeskp, InputStream fileImagen) {
try {
BufferedImage image = ImageIO.read(fileImagen);
jDeskp.setBorder(new background(image));
} catch (Exception e) {
System.out.println("Imagem não Disponível");
}
}
// metodo para pesquisar clientes pelo nome com filtro
private void pesquisar_pedido_venda_nome() {
String sql = "select tbvenda.idvenda as Pedido, tbvenda.nomecli as Cliente, tbvenda.situacao as Status, tbvenda.tipo as Tipo, tbvenda.totalvenda as Valor, tbvenda.mesa as Mesa from tbvenda \n"
+ "where tbvenda.situacao <> 'Finalizado' and tbvenda.nomecli like ? ";
try {
pst = conexao.prepareStatement(sql);
//passando o conteúdo da caixa de pesquisa para o " ? "
//atenção ao " % " - continuação da String sql
pst.setString(1, txtPedidoPesquisarNome.getText() + "%");
rs = pst.executeQuery();
//a linha abaixo usa a biblioteca rs2xml.jar para preencher a tabela
tblPedidoVenda.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
tblPedidoVenda.setVisible(true);
}
// metodo para pesquisar clientes pelo nome com filtro
private void pesquisar_pedido_venda_mesa() {
String sql = "select tbvenda.idvenda as Pedido, tbvenda.nomecli as Cliente, tbvenda.situacao as Status, tbvenda.tipo as Tipo, tbvenda.totalvenda as Valor, tbvenda.mesa as Mesa from tbvenda \n"
+ "where tbvenda.situacao <> 'Finalizado' and tbvenda.mesa like ? ";
try {
pst = conexao.prepareStatement(sql);
//passando o conteúdo da caixa de pesquisa para o " ? "
//atenção ao " % " - continuação da String sql
pst.setString(1, txtPedidoPesquisarMesa.getText() + "%");
rs = pst.executeQuery();
//a linha abaixo usa a biblioteca rs2xml.jar para preencher a tabela
tblPedidoVenda.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
tblPedidoVenda.setVisible(true);
}
// metodo para setar os campos do formulário venda com os conteudos da tabela
public void setar_campos_venda() {
int setar = tblPedidoVenda.getSelectedRow();
txtIdVenda.setText(tblPedidoVenda.getModel().getValueAt(setar, 0).toString());
txtNomeCli.setText(tblPedidoVenda.getModel().getValueAt(setar, 1).toString());
txtSituacao.setText(tblPedidoVenda.getModel().getValueAt(setar, 2).toString());
txtTipo.setText(tblPedidoVenda.getModel().getValueAt(setar, 3).toString());
txtTotalVenda.setText(tblPedidoVenda.getModel().getValueAt(setar, 4).toString());
txtMesa.setText(tblPedidoVenda.getModel().getValueAt(setar, 5).toString());
// Chamar metodo Contar Tipo pedio
contar_tipo_pedido();
tblPedidoVenda.setVisible(false);
}
// metodo para somar os itens pedido
private void troco() {
double totalVenda;
double dinheiro;
double troco;
// Linhas abaixo pega valores dos valores Jtextfield
totalVenda = Double.parseDouble(txtTotalVenda.getText().replace(",", "."));
dinheiro = Double.parseDouble(txtDinheiro.getText().replace(",", "."));
// Calcula o troco
troco = (dinheiro - totalVenda);
// Converter Double em 2 casas decimais
DecimalFormat df = new DecimalFormat("###.00");
// Retorna os valores calculados.
txtTroco.setText(df.format(troco).replace(",", "."));
}
// metodo finalizar Pedido
private void finalizar_pedido() {
String sql = "update tbvenda set nomecli=?, situacao= 'Finalizado' where idvenda=? ";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, txtNomeCli.getText());
pst.setString(2, txtIdVenda.getText());
if (txtIdVenda.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Pedido A Ser Finalizado ?");
} else {
// a linha abaixo atualiza a tabela de lanches com os dados do Formulário
txtSituacao.setText("Finalizado");
// a estrutura abaixo é usada para confirmar a inserção de dados na tabela
int adicionado = pst.executeUpdate();
// a linha abaixo serve como entendimento da logica.
//System.out.println(adicionado);
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Pedido Finalizado com Sucesso !!!");
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
tblPedidoVenda.setVisible(false);
txtPedidoPesquisarNome.setText(null);
}
public void contar_tipo_pedido() {
int cont = 0;
int contbalcao = 0;
int contdelivery = 0;
int contmesa = 0;
for (int i = 0; i < tblPedidoVenda.getRowCount(); i++) {
if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Balcao")) {
contbalcao++;
} else {
if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Delivery")) {
contdelivery++;
} else {
if (tblPedidoVenda.getValueAt(i, 3).toString().equals("Mesa")) {
contmesa++;
}
}
}
cont++;
}
// atribuir valor as label com soma dos tipos de copra
lblStatus.setText(Integer.toString(cont));
lblBalcao.setText(Integer.toString(contbalcao));
lblDelivery.setText(Integer.toString(contdelivery));
lblMesa1.setText(Integer.toString(contmesa));
}
// metodo para imprimir pedido
private void imprimir_pedido() {
// imprimrido um pedido
int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Pedido ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.YES_OPTION) {
// Emitindo o relatório com o Jaspersoft Studio
try {
// usando a classe HashMap para criar um filtro
HashMap filtro = new HashMap();
filtro.put("NumeroPedido", Integer.parseInt(txtIdVenda.getText()));
// usando a classe JasperPrint para preparar a impressão do relatório
JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/Pedido.jasper", filtro, conexao);
// a linha abaixo apresenta o relatótio através do JasperViewr
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
// metodo para imprimir pedido
private void imprimir_pedido_Delivery() {
// imprimrido um pedido
int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Pedido ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.YES_OPTION) {
// Emitindo o relatório com o Jaspersoft Studio
try {
// usando a classe HashMap para criar um filtro
HashMap filtro = new HashMap();
filtro.put("NumPedido", Integer.parseInt(txtIdVenda.getText()));
// usando a classe JasperPrint para preparar a impressão do relatório
JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/Delivery.jasper", filtro, conexao);
// a linha abaixo apresenta o relatótio através do JasperViewr
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Atenção Opção Válida Para Delivery ");
}
}
}
OBS: Linhas abaixo correspondem aos eventos :
private void formWindowActivated(java.awt.event.WindowEvent evt) {
/* as linhas abaixo substituem a label lblData pela data atual do
sistema ao iniciar o form
*/
Date data = new Date();
DateFormat formatador = DateFormat.getDateInstance(DateFormat.SHORT);
lblData.setText(formatador.format(data));
}
private void MenOpcSaiActionPerformed(java.awt.event.ActionEvent evt) {
// exibe uma caixa de diálogo
int sair = JOptionPane.showConfirmDialog(null, "Tem certeza que deseja sair ?", "Atenção !!!", JOptionPane.YES_NO_OPTION);
if (sair == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
private void MenAjuSobActionPerformed(java.awt.event.ActionEvent evt) {
// chamando a tela sobre
TelaSobre sobre = new TelaSobre();
sobre.setVisible(true);
}
private void MenCadUsuActionPerformed(java.awt.event.ActionEvent evt) {
// As linhas abaixo abre o form tela usuario dentro do Desktop pane
TelaUsuario usuario = new TelaUsuario();
usuario.setVisible(true);
desktop.add(usuario);
}
private void MenCadCliActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a Tela Cliente
TelaCliente cliente = new TelaCliente();
cliente.setVisible(true);
desktop.add(cliente);
}
private void MenCadFuncActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a Tela Funcionario
TelaFuncionario funcionario = new TelaFuncionario();
funcionario.setVisible(true);
desktop.add(funcionario);
}
private void MenCadLancheActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Lanche
TelaLanche lanche = new TelaLanche();
lanche.setVisible(true);
desktop.add(lanche);
}
private void MenCadBebidaActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Bebida
TelaBebida bebida = new TelaBebida();
bebida.setVisible(true);
desktop.add(bebida);
}
private void menRelCliActionPerformed(java.awt.event.ActionEvent evt) {
//Gerando um Relatório de Clientes
int confirma = JOptionPane.showConfirmDialog(null, "Confirma a Impressão deste Relatório ?", "Atenção", JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.YES_OPTION) {
// imprimindo Relatório de Clientes com o framework JasperStudio
try {
// Usando a classe JasperPrint para preparar a impressão do relatório
JasperPrint print = JasperFillManager.fillReport("C:/reports/MyReports/ClientesLanchonete.jasper", null, conexao);
// A linha abaixo exibe o relatório Cliente através da classe JasperViewer
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//Botão Chamando a Tela Cliente
TelaCliente cliente = new TelaCliente();
cliente.setVisible(true);
desktop.add(cliente);
}
// evento que será usado para setar os campos da tabela " clicando com o mause "
private void tblPedidoVendaMouseClicked(java.awt.event.MouseEvent evt) {
// chamando o metodo setar campos da venda
setar_campos_venda();
tblPedidoVenda.setVisible(false);
}
private void btnFinalizarActionPerformed(java.awt.event.ActionEvent evt) {
// chamar metodo Finalizar Pedido ... setar campo situação " Finalizado"
finalizar_pedido();
// Limpar campos do Formulário
txtIdVenda.setText(null);
txtNomeCli.setText(null);
txtTipo.setText(null);
txtSituacao.setText(null);
txtTotalVenda.setText("0.00");
txtMesa.setText("0");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
tblPedidoVenda.setVisible(false);
txtPedidoPesquisarNome.setText(null);
JOptionPane.showMessageDialog(null, "Formulário Limpo !!!");
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// chamar metodo calcular Troco
troco();
}
private void btnImprimirActionPerformed(java.awt.event.ActionEvent evt) {
// chamando o metodo imprimir pedido
imprimir_pedido();
}
private void btnLimparCamposActionPerformed(java.awt.event.ActionEvent evt) {
// as linhas abaixo limpam os campos
txtIdVenda.setText(null);
txtNomeCli.setText(null);
txtTipo.setText(null);
txtSituacao.setText(null);
txtTotalVenda.setText("0.00");
txtMesa.setText("0");
txtDinheiro.setText("0.00");
txtTroco.setText("0.00");
tblPedidoVenda.setVisible(true);
// Limpar campos do Formulário
JOptionPane.showMessageDialog(null, "Formulário Limpo !!!");
}
private void txtPedidoPesquisarNomeActionPerformed(java.awt.event.ActionEvent evt) {
//Chamar o metodo pesquisar Pedido Mesa
pesquisar_pedido_venda_mesa();
}
private void txtPedidoPesquisarNomeKeyReleased(java.awt.event.KeyEvent evt) {
//Chamar o metodo pesquisar Pedido cliente por Nome
pesquisar_pedido_venda_nome();
}
private void btnFundo1ActionPerformed(java.awt.event.ActionEvent evt) {
// Carregar Imagem de Fundo 1
carregarImagem(desktop, foto);
}
private void btnFundo2ActionPerformed(java.awt.event.ActionEvent evt) {
// Carregar Imagem de Fundo 2
carregarImagem(desktop, foto1);
}
private void btnFundo3ActionPerformed(java.awt.event.ActionEvent evt) {
// Carregar Imagem de Fundo 3
carregarImagem(desktop, foto2);
}
private void btnFundo4ActionPerformed(java.awt.event.ActionEvent evt) {
// Carregar Imagem de Fundo 4
carregarImagem(desktop, foto3);
}
private void btnFundo5ActionPerformed(java.awt.event.ActionEvent evt) {
// Carregar Imagem de Fundo 5
carregarImagem(desktop, foto4);
}
private void MenCadPedBalcaoActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Balcao
PedidosBalcao pedido = new PedidosBalcao();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void MenCadPedMesaActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Mesa
PedidoMesa pedido = new PedidoMesa();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void MenCadPedDeliveryActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Delivery
PedidoDelivery pedido = new PedidoDelivery();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void btnMesaActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Mesa
PedidoMesa pedido = new PedidoMesa();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void btnDeliveryActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Delivery
PedidoDelivery pedido = new PedidoDelivery();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void btnBalcaoActionPerformed(java.awt.event.ActionEvent evt) {
// Chamando a classe Pedido Balcao
PedidosBalcao pedido = new PedidosBalcao();
pedido.setVisible(true);
desktop.add(pedido);
// Apagar os Campos com valores
txtTotalVenda.setText("0.00");
txtTroco.setText("0.00");
txtDinheiro.setText("0.00");
}
private void btnImprimirDeliveryActionPerformed(java.awt.event.ActionEvent evt) {
//Chamar Metodo Imprimir delivery
imprimir_pedido_Delivery();
}
private void txtPedidoPesquisarMesaKeyReleased(java.awt.event.KeyEvent evt) {
//Chamar o metodo pesquisar Pedido cliente por Nome
pesquisar_pedido_venda_mesa();
}
Nenhum comentário:
Postar um comentário