-
Notifications
You must be signed in to change notification settings - Fork 0
/
Code1.java
218 lines (180 loc) · 9.7 KB
/
Code1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
/*
* 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 code1;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JScrollPane;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
/**
*
* @author carlo
*/
public class Code1 {
/**
* @param args the command line arguments
*/
// Format for Decimal Output
private static DecimalFormat df2 = new DecimalFormat("#.##");
// Display the Info in JScroll
static void display(String info, String heading, int MESSAGE_TYPE)
{
JTextArea text = new JTextArea(info,20, 30);
JScrollPane pane = new JScrollPane(text);
JOptionPane.showMessageDialog(null, pane, heading, MESSAGE_TYPE);
}
public static void main(String[] args) {
Database db = new Database(); //Creating database for active accounts
Database dc = new Database(); //Creating database for inactive accounts
DateFormat Df = DateFormat.getDateInstance(DateFormat.LONG);
String dateP = "None"; //Date Purchased
String dateC = "None"; //Date Closed
Date now = new Date();
boolean done = false;
while (!done)
{
String option = JOptionPane.showInputDialog("ABC Enterprise\n"+"\t"+Df.format(now)+"\n"+"\nA: Add Product \nB: Update Product \nC: Delete Product \nD: Reports");
switch (option){
//Adding a product to the database
case "A":
// Company Name and Item Name
String nameM = JOptionPane.showInputDialog("Enter the name of the Manufacturer");
String nameI = JOptionPane.showInputDialog("Enter the name of the item");
Name n = new Name(nameM,nameI);
// Location where it was made (State)
String address = JOptionPane.showInputDialog("Enter the initials of the State where the Manufacturer is located");
Address a = new Address(address);
// Quantity and Price
String q = JOptionPane.showInputDialog("Enter the amount available at the start");
String p = JOptionPane.showInputDialog("Enter the price of the item at the start");
int quantity = Integer.parseInt(q);
double price = Double.parseDouble(p);
// Date purchased
dateP = JOptionPane.showInputDialog("Enter the date of purchase (ex. mm/dd/yyyy");
// Create Manufacturer
Manufacturer m = new Manufacturer(n,a);
// Create Product
Product prod = new Product(m,n,quantity,price);
// Add to database
db.add(prod);
break;
//Update Product
case "B":
nameM = JOptionPane.showInputDialog("Enter the name of Manufacturer");
nameI = JOptionPane.showInputDialog("Enter the name of the Product");
db.search(nameM,nameI);
if (!db.inList())
JOptionPane.showMessageDialog(null, "Product not found");
else
{
option = JOptionPane.showInputDialog("What would you like to update\n"+"\nA: Update Quantity"+"\nB: Update Price");
Product pd = db.getProduct();
switch (option)
{
// Update Quantity
case "A":
String amt = JOptionPane.showInputDialog("Enter the new a amount");
int quantityN = Integer.parseInt(amt);
pd.changeQuantity(quantityN);
JOptionPane.showMessageDialog(null, "Quantity has been updated");
break;
// Update Price
case "B":
amt = JOptionPane.showInputDialog("Enter the new a amount");
double priceN = Double.parseDouble(amt);
pd.changePrice(priceN);
JOptionPane.showMessageDialog(null, "Price has been updated");
break;
default:
JOptionPane.showMessageDialog(null, "Option not found. Return to Main Menu");
break;
}
}
break;
// Delete a product and add it to the closed database
case "C":
nameM = JOptionPane.showInputDialog("Enter the name of Manufacturer");
nameI = JOptionPane.showInputDialog("Enter the name of the Product");
db.search(nameM,nameI);
if (!db.inList())
JOptionPane.showMessageDialog(null, "Product not found");
else
{
Product pd = db.getProduct();
int index = db.getIndex();
dc.add(db.delete(index));
JOptionPane.showMessageDialog(null, "Product has been deleted");
dateC = JOptionPane.showInputDialog("Enter date the item was deleted (ex. mm/dd/yyyy)");
}
break;
// Displaying reports
case "D":
option = JOptionPane.showInputDialog("What kind of report are you looking for\n"+"\nA: View a single Product"+"\nB: View Inventory"+"\nC: View discontinued Products");
switch (option)
{
// Report for single product
case "A":
nameM = JOptionPane.showInputDialog("Enter the name of Manufacturer");
nameI = JOptionPane.showInputDialog("Enter the name of the Product");
db.search(nameM,nameI);
if (!db.inList())
JOptionPane.showMessageDialog(null, "Product not found");
else
{
Product prd = db.getProduct();
String s = "Product: \t"+prd.getManufacturer().getName().getName()+"\n"+"Item: \t"+prd.getManufacturer().getName().getItemName()+"\n"+"Quantity: \t"+prd.getQuantity()+"\n"+"Price: \t"+String.format("%.2f",prd.getPrice()) ;
JOptionPane.showMessageDialog(null, s);
}
break;
// Report of inventory
case "B":
ArrayList list = db.getList();
if (list.isEmpty())
JOptionPane.showMessageDialog(null, "List is empty");
else
{
int i = 0;
int length = db.getSize();
String s = "Product "+"Purchase Date "+"Quantity "+"Price "+"Manufacturer "+"State ";
while (i < length)
{
Product prd = (Product)list.get(i);
s = s + "\n"+ prd.getManufacturer().getName().getItemName()+ " "+ dateP +" "+ prd.getQuantity()+ " "+ String.format("%.2f",prd.getPrice()) +" "+ prd.getManufacturer().getName().getName()+ " "+ prd.getManufacturer().getAddress().getAddress() ;
i++;
}
display(s,"Store Inventory", JOptionPane.INFORMATION_MESSAGE);
}
break;
// Report of discontinued Products
case "C":
ArrayList closed = dc.getList();
if (closed.isEmpty())
JOptionPane.showMessageDialog(null, "List is empty");
else
{
int i = 0;
int length = dc.getSize();
String s = "Product "+"Discontinued Date "+"Quantity "+"Manufacturer ";
while (i < length)
{
Product prd = (Product)closed.get(i);
s = s + "\n"+ prd.getManufacturer().getName().getItemName()+ " "+ dateC +" "+ prd.getManufacturer().getName().getName();
i++;
}
display(s,"Discontinued Items", JOptionPane.INFORMATION_MESSAGE);
}
default:
JOptionPane.showMessageDialog(null, "Option not found. Return to Main Menu");
}
break;
default :
JOptionPane.showMessageDialog(null, "Option not found. Return to Main Menu");
}
}
}
}