package model;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import javax.swing.JOptionPane;
public class ServicoCompra {
ArrayList<Pessoa> listaPessoa = new ArrayList<Pessoa>();
public void setDados() {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dtnasc = new Date();
String d;
String idade = null;
String nome;
String coditens1 = null;
String descricao1 = null;
int unidade1 = 0;
double vlrunidade1 = 0;
Date dtcompra1 = new Date();
String c;
String cpf;
String identidade;
String cnpj;
String ie;
boolean achou;
String tipopessoa = null;
int quant = 0;
String pessoa1 = JOptionPane
.showInputDialog("Pessoa Jurídica ou Física: ");
while (!pessoa1.isEmpty()) {
tipopessoa = pessoa1;
nome = JOptionPane.showInputDialog("Nome:");
idade = JOptionPane.showInputDialog("Idade: ");
if (pessoa1.equalsIgnoreCase("Física")) {
do {
d = JOptionPane
.showInputDialog("Data de Nascimento no formato dd/mm/aaaa: ");
try {
dtnasc = df.parse(d);
achou = true;
} catch (Exception e) {
achou = false;
}
} while (!achou);
cpf = JOptionPane.showInputDialog("Cpf: ");
identidade = JOptionPane.showInputDialog("Identidade: ");
Pessoa reg = new Fisica(dtnasc, idade, nome, tipopessoa, quant,
cpf, identidade);
listaPessoa.add(reg);
// entra na listaCompra
coditens1 = JOptionPane
.showInputDialog("Digite o Código do produto: ");
while ((!coditens1.isEmpty())) {
descricao1 = JOptionPane
.showInputDialog("Digite a Descrição do produto: ");
vlrunidade1 = Double.parseDouble(JOptionPane
.showInputDialog("Valor por Unidade: "));
unidade1 = Integer.parseInt(JOptionPane
.showInputDialog("Unidades: "));
quant = unidade1;
do {
c = JOptionPane
.showInputDialog("Data da Compra no formato dd/mm/aaaa: ");
try {
dtnasc = df.parse(c);
achou = true;
} catch (Exception e) {
achou = false;
}
} while (!achou);
reg.addCompra(coditens1, descricao1, unidade1, vlrunidade1,
dtcompra1, pessoa1);
coditens1 = JOptionPane
.showInputDialog("Digite o Código do produto: ");
}
}
// segunda condição
else if (pessoa1.equalsIgnoreCase("Jurídica")) {
do {
d = JOptionPane
.showInputDialog("Data de Nascimento no formato dd/mm/aaaa: ");
try {
dtnasc = df.parse(d);
achou = true;
} catch (Exception e) {
achou = false;
}
} while (!achou);
cnpj = JOptionPane.showInputDialog("Cnpj: ");
ie = JOptionPane.showInputDialog("Inscrição Estadual: ");
Pessoa reg = new Juridica(dtnasc, idade, nome, tipopessoa,
quant, cnpj, ie);
listaPessoa.add(reg);
// entra na listaCompra
coditens1 = JOptionPane
.showInputDialog("Digite o Código do produto: ");
while ((!coditens1.isEmpty())) {
descricao1 = JOptionPane
.showInputDialog("Digite a Descrição do produto: ");
vlrunidade1 = Double.parseDouble(JOptionPane
.showInputDialog("Valor por Unidade: "));
unidade1 = Integer.parseInt(JOptionPane
.showInputDialog("Unidades: "));
quant = unidade1;
do {
c = JOptionPane
.showInputDialog("Data da Compra no formato dd/mm/aaaa: ");
try {
dtnasc = df.parse(c);
achou = true;
} catch (Exception e) {
achou = false;
}
}
while (!achou);
reg.addCompra(coditens1, descricao1, unidade1, vlrunidade1,
dtcompra1, pessoa1);
coditens1 = JOptionPane
.showInputDialog("Digite o Código do produto: ");
}
} else
JOptionPane.showMessageDialog(null, "Perfil Inesistente!!");
pessoa1 = JOptionPane
.showInputDialog("Pessoa Jurídica ou Física: ");
}
}
// Apresenta todos os dados
public String getDados() {
String saux = "";
for (int i = 0; i < listaPessoa.size(); i++) {
saux += listaPessoa.get(i).toString();
for (int j = 0; j < listaPessoa.get(i).getCompra().size(); j++) {
saux += listaPessoa.get(i).getCompra().get(j).toString() + "\n";
}
saux += "\n\n----------------------------------------\n";
}
return saux;
}
// Lista de Itens vendidos mais pra menos
public String getProdutoOrdem() {
String saux = "";
for (int i = 0; i < listaPessoa.size(); i++) {
for (int j = 0; j < listaPessoa.get(i).getCompra().size(); j++) {
}
saux += listaPessoa.get(i).getCompra().toString()
+ "\n========================================\n";
}
Collections.sort(listaPessoa, new Comparator<Pessoa>() {
public int compare(Pessoa f1, Pessoa f2) {
return (int) (f1.getQuant() + f2.getQuant());
}
});
return saux;
}
}
O programa deveria listar os Produtos ao final pelo total de unidades compradas
alguem ajuda??