CONTROLE DE ESTOQUE
package Classes;
import javax.swing.JOptionPane;
public class ControleDeEstoque {
public static void main(String[] args) {
int opcao = 0;
Interface interface1 = new Interface();
Estoque estoque = new Estoque();
Produto produto = new Produto();
do{
opcao = interface1.menu();
switch(opcao)
{
case 1:String nome = interface1.nome();
String descricao = interface1.descricao();
double saldoQuantidadeMesAnterior = interface1.saldoQuantidadeMesAnterior();
double saldoDeCustoUnitarioDoMesAnterior = interface1.saldoDeCustoUnitarioDoMesAnterior();
produto.cadastrarProduto(nome, descricao,saldoQuantidadeMesAnterior,saldoDeCustoUnitarioDoMesAnterior);
break;
case 2: String codProduto = interface1.codigoProduto();
estoque.excluirProduto(codProduto);
break;
case 3:String codProduto1 = interface1.codigoProduto();
int quant = interface1.quantidade();
double custoUnitario = interface1.custoUnitario();
produto.registrarProduto(codProduto1, quant, custoUnitario);
break;
case 4:
break;
case 5: int dia = interface1.dia();
produto.consultarEntradaPorDia(dia);
break;
case 6:
break;
case 7: int mes = interface1.mes();
produto.consultarEntradaPorMes(mes);
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
case 12:
break;
case 13:
break;
case 14:
break;
case 0: produto.fim();
break;
default : interface1.opcaoInvalida();
}
}while(opcao != 0);
}
}
ESTOQUE
package Classes;
import java.util.ArrayList;
//Declaracao dos atributos
public class Estoque {
private String mes;
private int ano;
private ArrayList<Produto> estoque;
Produto produto = new Produto();
Interface interface1 = new Interface();
public Estoque()
{
}
//Metodo construtor com parametros, nao padrao
public Estoque(String mes, int ano, ArrayList<Produto> estoque) {
this.mes = mes;
this.ano = ano;
this.estoque = estoque;
}
// Metodos de acesso
public String getMes() {
return mes;
}
public ArrayList<Produto> getEstoque() {
return estoque;
}
public int getAno() {
return ano;
}
// Metodos Modificadores
public void setAno(int ano) {
this.ano = ano;
}
public void setMes(String mes) {
this.mes = mes;
}
public void setEstoque(ArrayList<Produto> estoque) {
this.estoque = estoque;
}
//Metodo para excluir um produto cadastrado
public void excluirProduto(String codProduto)
{
double x = Double.parseDouble(codProduto);
for (int i = 0; i < produto.getFichaDeControle().length; i++) {
if(produto.getFichaDeControle(i, 2)== x)
{
estoque.remove(x);
}else
{
interface1.excluir();
}
}
}
}
INTERFACE
package Classes;
import javax.swing.JOptionPane;
public class Interface{
public Interface()
{
}
Produto produto = new Produto();
//Metodo para retornar que o mes nao é valido
public void mensagemErro()
{
JOptionPane.showMessageDialog(null,"Digite um mes valido","Atençao",JOptionPane.WARNING_MESSAGE);
}
//Metodo para retornar que o codigo nao existe
public void excluir() {
JOptionPane.showMessageDialog(null,"Codigo nao encontrado, tente novamente!","Atençao",JOptionPane.WARNING_MESSAGE);
}
public int menu()
{
int x = 0;
String menu = JOptionPane.showInputDialog
("\nDigite o numero da opcao desejada:\n1)Incluir Produto\n"
+"\n2)Excluir Produto\n"
+"\n3)Registrar quantidade de entrada de produtos\n"
+"\n4)Registrar quantidade de saida de de produtos\n"
+"\n5)Consultar quantidade de entrada de produtos por dia\n"
+"\n6)Consultar quantidade de saida de produtos por dia\n"
+"\n7)Consultar total de entrada de produtos por mes\n"
+"\n8)Consultar total de saida de produtos por mes\n"
+"\n9)Saldo do produto por mes\n"
+"\n10)Relatorio Mensal\n"
+"\n11)Relatorio parcial\n"
+"\n12)Consultar produtos em estoque por dia\n"
+"\n13)Produto mais vendido por mes\n"
+"\n14Produto menos vendido por mes\n"
+"\n0)Sair");
x = Integer.parseInt(menu);
return x;
}
//instanciando um objeto da classe produto
//Metodo para entrar com o ano e mes
public void mensagemPrincipal()
{
String ano = JOptionPane.showInputDialog("Entre com o ano: ");
int a = Integer.parseInt(ano);
String mes = JOptionPane.showInputDialog("Entre com o mes desejado: ");
int b = Integer.parseInt(mes);
}
//Metodo para entrar com o dia
public int consultar()
{
String dia = JOptionPane.showInputDialog("Entre com o dia desejado: ");
int a = Integer.parseInt(dia);
return a;
}
public void retornarConsultaEntrada()
{ int a = consultar();
JOptionPane.showMessageDialog(null,
"O dia desejado é: "+a+"Os dados das mercarias neste dia sao:"+produto.consultarEntradaPorDia(a));
}
//Metodo para mensagem de erro
public void mensagemErro2()
{
JOptionPane.showMessageDialog(null,"Nao foram encontrados registros neste dia");
}
//Metodo pra entrar com o nome do produto
public String nome()
{
String nome = JOptionPane.showInputDialog("Digite o nome do produto: ");
return nome;
}
//Metodo pra entrar com a descriçao do produto
public String descricao()
{
String descricao = JOptionPane.showInputDialog("Faça uma breve descricao sobre o produto: ");
return descricao;
}
//Metodo para mensagem de erro de opçao invalida
public void opcaoInvalida()
{
JOptionPane.showMessageDialog(null,"Opção invalida!");
}
//metodo pra entrar com o codigo do produto
public String codigoProduto()
{
String codProduto = JOptionPane.showInputDialog("Digite o codigo do produto: ");
return codProduto;
}
//metodo para com quantidade do produto que entrou
public int quantidade()
{
String quant = JOptionPane.showInputDialog("Digite a quantidade da mercadoria: ");
return Integer.parseInt(quant);
}
//Metodo para entrar com o custo unitario do produto que entrou
public double custoUnitario()
{
String custoUnitario = JOptionPane.showInputDialog("Digite o custo unitario de cada mercadoria: ");
return Double.parseDouble(custoUnitario);
}
//metodo para entrar com o dia desejado
public int dia()
{
String dia = JOptionPane.showInputDialog("Digite o dia do mes desejado: ");
return Integer.parseInt(dia);
}
//metodo para entrar com o mes desejado
public int mes()
{
String mes = JOptionPane.showInputDialog("Digite o mes desejado: ");
return Integer.parseInt(mes);
}
//metodo para mensagem de erro de codigo nao encontrado
public void mensagemErro3() {
JOptionPane.showMessageDialog(null,"Nao foram encontrados produtos com este codigo");
}
public double saldoQuantidadeMesAnterior()
{
String saldo = JOptionPane.showInputDialog("Digite o saldo da quantidade do produto do mes anterior: ");
return Double.parseDouble(saldo);
}
public double saldoDeCustoUnitarioDoMesAnterior()
{
String saldo = JOptionPane.showInputDialog("Digite o saldo do custo unitario do produto do mes anterior: ");
return Double.parseDouble(saldo);
}
}
PRODUTO
package Classes;
public class Produto {
//declaracao dos atributos
private String nome;
private String descricao;
private double custoUnitario;
private String codigoDoProduto;
private double fichaDeControle[][];
private double saldoDeQuantidadeDoMesAnterior;
private double saldoDeCustoUnitarioDoMesAnterior;
//Metodo construtor Padrao
public Produto()
{
}
Interface interface2 = new Interface();
//Metodo construtor parametrizado
public Produto(String nome, String descricao,
double custoUnitario, String codigoDoProduto,
double[][] fichaDeControle, double saldoDeQuantidadeDoMesAnterior,
double saldoDeCustoUnitarioDoMesAnterior) {
this.nome = nome;
this.descricao = descricao;
this.custoUnitario = custoUnitario;
this.codigoDoProduto = codigoDoProduto;
this.fichaDeControle = fichaDeControle;
this.saldoDeQuantidadeDoMesAnterior = saldoDeQuantidadeDoMesAnterior;
this.saldoDeCustoUnitarioDoMesAnterior = saldoDeCustoUnitarioDoMesAnterior;
}
//Metodos de Acesso
public double getCustoUnitario()
{
return custoUnitario;
}
public double[][] getFichaDeControle() {
return fichaDeControle;
}
public double getFichaDeControle(int l, int c)
{
return fichaDeControle[l][c];
}
public double getSaldoDeCustoUnitarioDoMesAnterior() {
return saldoDeCustoUnitarioDoMesAnterior;
}
public double getSaldoDeQuantidadeDoMesAnterior() {
return saldoDeQuantidadeDoMesAnterior;
}
public String getNome() {
return nome;
}
//Metodos Modificadores
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public String getCodigoDoProduto() {
return codigoDoProduto;
}
public void setCustoUnitario(double custoUnitario) {
this.custoUnitario = custoUnitario;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void setCodigoDoProduto(String codigoDoProduto) {
this.codigoDoProduto = codigoDoProduto;
}
public void setFichaDeControle(double[][] fichaDeControle) {
this.fichaDeControle = fichaDeControle;
}
public void setSaldoDeQuantidadeDoMesAnterior(
double saldoDeQuantidadeDoMesAnterior) {
this.saldoDeQuantidadeDoMesAnterior = saldoDeQuantidadeDoMesAnterior;
}
public void setSaldoDeCustoUnitarioDoMesAnterior(
double saldoDeCustoUnitarioDoMesAnterior) {
this.saldoDeCustoUnitarioDoMesAnterior = saldoDeCustoUnitarioDoMesAnterior;
}
//Metodo para incluir uma mercadoria a
public void cadastrarProduto(String nome,String descricao,double saldoDeQuantidadeDoMesAnterior,
double saldoDeCustoUnitarioDoMesAnterior)
{
String n = nome;
String d = descricao;
double s = saldoDeQuantidadeDoMesAnterior;
double scu = saldoDeCustoUnitarioDoMesAnterior;
String c = codigoDoProduto();
}
//Metodo para gerar o codigo a partir das tres primeiras letrar do nome e 2 numeros aleatorios
//Atribui esse metodo como "Private" pois o mesmo é necessario para criar outro metodo e nao a classe como um todo.
private String codigoDoProduto()
{
codigoDoProduto = (getNome().substring(0, 3));
int numaleatorio = 0;
numaleatorio = (int)(Math.random()*100);
return codigoDoProduto + numaleatorio;
}
//Metodo pra registrar a entrada de mercadorias b
public void registrarProduto(String codProduto,int quant,double custoUnitario)
{
for (int linha = 0; linha < fichaDeControle.length; linha++)
{
if(getFichaDeControle(linha,2) == Double.parseDouble(codProduto ))
{
double custoTotal = (custoUnitario * quant);
fichaDeControle[linha][0] = quant;
fichaDeControle[linha][1] = custoUnitario;
fichaDeControle[linha][2] = custoTotal;
}else
{
interface2.mensagemErro();
}
}
}
//Metodo para registrar a quantidade de saida(venda) de produtos c
public void registrarSaidaProduto(String codProduto,int quant,double custoUnitario)
{
for (int linha = 0; linha < fichaDeControle.length; linha++)
{
if(getFichaDeControle(linha,2) == Double.parseDouble(codProduto ))
{
double custoTotal = (custoUnitario * quant);
fichaDeControle[linha][3] = quant;
fichaDeControle[linha][4] = custoUnitario;
fichaDeControle[linha][5] = custoTotal;
}else
{
interface2.mensagemErro3();
}
}
}
//Metodo para consultar a entrada de mercadorias por dia
public int[] consultarEntradaPorDia(int dia){
//usuario diagitar o dia
int cont[] = new int [9];
for(int i=0;i<3;i++)//Coloquei este valores com i inicializando em 0 e indo ate 3 pois quero retornar apenas as colunas 3,4,5
{
if(fichaDeControle != null)
{
for (int j = 0; j < cont.length; j++)
{
cont[j] +=getFichaDeControle(dia,i);
}
}
else
{
interface2.mensagemErro2();
}
}
return cont;
}
//Encerra o menu
public void fim()
{
System.exit(0);
}
//Metodo para consultar a entrada de produtos em um mes
public double[][] consultarEntradaPorMes(int mes)
{
//usuario digita o mes
double cont[][] = new double[30][5];
for(int dia=0;dia<fichaDeControle.length;dia++)
{
for (int coluna = 0; coluna < cont.length; coluna++)
{
if(mes <=12)
{
cont[dia][coluna] = getFichaDeControle(dia,coluna);
} else
{
interface2.mensagemErro2();
}
}
}
return cont;
}
}