package Lumber;
import javax.swing.JOptionPane;
import java.io.*;
import java.util.*;
import java.text.*;
public class Lumber
{
public static void main(String[] args)
{
int count=-1,c;
int place=-1,l;
int [] number = new int [100];
String [] lastname = new String [100];
String [] firstname = new String [100];
String [] address = new String [100];
double [] creditlimit = new double [100];
int [] code = new int [100];
String [] type = new String [100];
double [] price = new double [100];
int [] stocklevel = new int [100];
int selection;
count=start_program(number,lastname,firstname,address,creditlimit,count);
place=start_program1(code,type,price,stocklevel,place);
selection =menu();
while(selection!=4)
{
if (selection == 1)
Modify_Customer(number,lastname,firstname,address,creditlimit,count);
else
if (selection == 2)
Modify_Lumber(code,type,price,stocklevel,place);
else
if (selection == 3)
Report(count,place,number,lastname,firstname,address,creditlimit,code,type,price,stocklevel);
selection =menu();
}//end of while loop
exit_program(number,lastname,firstname,address,creditlimit,count);
exit_program1(code,type,price,stocklevel,place);
System.exit(0);
}// end of main
public static int menu()
{
String mnumber;
int number;
String output = "Chestnut Ridge lumber Comapny" + " \n " + " \n " +
"1. Add/Modify Customer Data " + " \n " +
"2. Add/Modify Lumber Data " + " \n " +
"3. Report Section " + " \n " +
"4. Exit the System" + " \n" + " \n " +
"Please make your selection >";
mnumber = JOptionPane.showInputDialog(null, output, " ",
JOptionPane.QUESTION_MESSAGE);
number=Integer.parseInt(mnumber);
return number;
}
public static void Modify_Customer(int[]number,String[]lastname,String[]firstname,String[]address,double[]creditlimit,int count)
{
String Choice = "";
String reportChoices = "Customer Information Menu" + "\n" + "1. Add Customer" + "\n" + "2. Delete Customer" + "\n" + "3. Modify Customer";
Choice= JOptionPane.showInputDialog(null,reportChoices,"",JOptionPane.QUESTION_MESSAGE);
int i;
if (Choice.equals("1")){
System.out.println("Add Customer:");
String more = "Y/N";
do{
for (i=0; i<= count; i++) {
String ID_Number,last_name, first_name, Address;
int ID_number;
String Credit_Limit;
count=count+1;
ID_Number = JOptionPane.showInputDialog(null,"Enter The New Customer ID:" +
"",JOptionPane.QUESTION_MESSAGE);
ID_number = Integer.parseInt(ID_Number);
last_name = JOptionPane.showInputDialog(null,"Enter The New Customer's Last Name:" +
"",JOptionPane.QUESTION_MESSAGE);
first_name = JOptionPane.showInputDialog(null,"Enter The New Customer's First Name:" +
"",JOptionPane.QUESTION_MESSAGE);
Address = JOptionPane.showInputDialog(null,"Enter The New Customer's City:" +
"",JOptionPane.QUESTION_MESSAGE);
Credit_Limit = JOptionPane.showInputDialog(null,"Enter The New Customer's Credit Limit:" +
"",JOptionPane.QUESTION_MESSAGE);
double Cred_Lim = Double.parseDouble(Credit_Limit);
number[count] = ID_number;
firstname[count] = first_name;
lastname[count] = last_name;
address[count] = Address;
creditlimit[count] = Cred_Lim;
}while (more.equals("Y"));
}
}
else if (Choice.equals("2")){
System.out.println("Delete Customer:");
{
//Ask for customer ID
String customerID = JOptionPane.showInputDialog(null,"Enter The Customer ID:" +
"",JOptionPane.QUESTION_MESSAGE);
int cust_ID = Integer.parseInt(customerID);
//Search array
for (i=0; i <= count; i++) {
if (number[i] == cust_ID) {
for (int p = i; p <= count; p++){
number[p] = number[p-1];
firstname[p] = firstname[p-1];
lastname[p] = lastname[p-1];
address[p] = address[p-1];
creditlimit[p] = creditlimit[p-1];
}
}
}
}
}
else if (Choice.equals("3")){
System.out.println("Modify Customer:");
//Ask for customer ID
String customerID = JOptionPane.showInputDialog(null,"Enter The Customer ID:" +
"",JOptionPane.QUESTION_MESSAGE);
int cust_ID = Integer.parseInt(customerID);
//Search array
for (i=0; i <= count; i++) {
if (number[i] == cust_ID) {
String input = JOptionPane.showInputDialog(null,"Enter The New Customer's Credit Limit:" +
"",JOptionPane.QUESTION_MESSAGE);
int ID_Replace = Integer.parseInt(input);
creditlimit[i] = ID_Replace;
}
}
}
}
public static void Modify_Lumber(int[]code,String[]type,double[]price,int[]stocklevel,int place)
{
String Choice = "";
String reportChoices = "Lumber Information Menu" + "\n" + "1. Add Lumber Item" + "\n" + "2. Delete Lumber Item" + "\n" + "3. Modify Lumber Item";
Choice= JOptionPane.showInputDialog(null,reportChoices,"",JOptionPane.QUESTION_MESSAGE);
int i;
int count;
if (Choice.equals("1")){
System.out.println("Add Lumber Item:");
String more = "Y/N";
do{
for (i=0; i<= place; i++) {
String Lumber_Code,Lumber_Type, Lumber_Price, Lumber_Stock;
int Lumber_code, Lumber_stock;
Double Lumber_price;
String Credit_Limit;
place=place+1;
Lumber_Code = JOptionPane.showInputDialog(null,"Enter The New Lumber's Code:" +
"",JOptionPane.QUESTION_MESSAGE);
Lumber_code = Integer.parseInt(Lumber_Code);
Lumber_Type = JOptionPane.showInputDialog(null,"Enter The New Lumber's Type:" +
"",JOptionPane.QUESTION_MESSAGE);
Lumber_Price = JOptionPane.showInputDialog(null,"Enter The New Lumber's Price:" +
"",JOptionPane.QUESTION_MESSAGE);
Lumber_price = Double.parseDouble(Lumber_Price);
Lumber_Stock = JOptionPane.showInputDialog(null,"Enter The New Lumber's Stock Availability:" +
"",JOptionPane.QUESTION_MESSAGE);
Lumber_stock = Integer.parseInt(Lumber_Stock);
code[count] = Lumber_code;
type[count] = Lumber_Type;
price[count] = Lumber_price;
stocklevel[count] = Lumber_stock;
}while (more.equals("Y"));
}
}
else if (Choice.equals("2")){
System.out.println("Delete Lumber Item:");
{
//Ask for Lumber code
String LumberCode = JOptionPane.showInputDialog(null,"Enter The Lumber Item's Code:" +
"",JOptionPane.QUESTION_MESSAGE);
int lumb_Code = Integer.parseInt(LumberCode);
//Search array
for (i=0; i <= count; i++) {
if (code[i] == lumb_Code) {
for (int p = i; p <= count; p++){
code[p] = code[p-1];
type[p] = type[p-1];
price[p] = price[p-1];
stocklevel[p] = stocklevel[p-1];
}
}
}
}
}
else if (Choice.equals("3")){
System.out.println("Modify Lumber Item:");
//Ask for lumber code
String LumberCode = JOptionPane.showInputDialog(null,"Enter The Lumber Item's Code:" +
"",JOptionPane.QUESTION_MESSAGE);
int lumb_Code = Integer.parseInt(LumberCode);
//Search array
for (i=0; i <= count; i++) {
if (code[i] == lumb_Code) {
//Need to find how to ask which one customer wants
String input = JOptionPane.showInputDialog(null,"Enter The New Lumber's Price:" +
"",JOptionPane.QUESTION_MESSAGE);
int Price_Replace = Integer.parseInt(input);
price[i] = Price_Replace;
String input2 = JOptionPane.showInputDialog(null,"Enter The New Lumber's Stock Level:" +
"",JOptionPane.QUESTION_MESSAGE);
int Stock_Replace = Integer.parseInt(input);
stocklevel[i] = Stock_Replace;
}
}
}
}
public static void Report(int count,int place,int [] number,String [] lastname,String [] firstname,String [] address,double [] creditlimit,int [] code,String [] type,double [] price,int [] stocklevel)
{
String Choice = "";
while (!(Choice.equals("9"))){
String reportChoices = "Reports" + "\n" + "1. All Customer Info" + "\n" + "2. All Lumber Info" + "\n" + "3. Current Value of Lumber Inventory" + "\n" + "4. All Customers Above Specific Credit Limit" + "\n" + "5. Report 5" + "\n" + "6. Report 6"
+ "\n" + "7. Report 7" + "\n" + "8. Report 8" + "\n" + "9. Exit report Menu";
Choice= JOptionPane.showInputDialog(null,reportChoices,"",JOptionPane.QUESTION_MESSAGE);
int i;
if (Choice.equals("1")){
System.out.println("All Customer Info:");
for (i=0; i<= count; i++) {
System.out.println(number[i] + "" + lastname[i] + ", " + firstname[i] + ": " + address[i] + " - Credit Score: " + creditlimit[i]);
}//for end
System.out.println(" ");
}//if end
else if (Choice.equals("2")){
System.out.println("All Lumber Info:");
for (i=0; i<= place; i++) {
System.out.println(code[i] + "" + type[i] + ", " + price[i] + ": " + " - In Stock: " + stocklevel[i]);
}//for end
System.out.println(" ");
}//else if end
else if (Choice.equals("3")){
double lumbinventory = 0;
for (i=0; i<= place; i++){
lumbinventory += (price[i] * stocklevel[i]);
}//end for
System.out.println("Current Value of Lumber Inventory: $" + lumbinventory + "\n");
System.out.println(" ");
}
else if (Choice.equals("4")){
double credlimit;
String input;
//Prompt for credit score
input= JOptionPane.showInputDialog(null, "Enter Value of Credit Score:" + "", JOptionPane.QUESTION_MESSAGE);
credlimit = Double.parseDouble(input);
System.out.println("Customers Above A Credit Limit of " + credlimit +":");
for (i=0; i <= count; i++){
if (creditlimit[i] > credlimit){
System.out.println(lastname[i] + ", " + firstname[i] + ": " + creditlimit[i]);
}//end for
}//end if
System.out.println(" ");
}
else if (Choice.equals("5")){
int inputcode;
String input;
//Prompt for lumber code
input= JOptionPane.showInputDialog(null, "Enter the Lumber Code:" + "", JOptionPane.QUESTION_MESSAGE);
inputcode = Integer.parseInt(input);
System.out.println("Lumber information for code number " + input +":");
for (i=0; i <= count; i++){
if (code[i] == inputcode){
System.out.println(type[i] + ", " + price[i] + ", " + stocklevel[i]);
}
}
System.out.println(" ");
}
else if (Choice.equals("6")){
String input;
//Prompt for address
input= JOptionPane.showInputDialog(null, "Enter a Customer's City of Residence:" + "", JOptionPane.QUESTION_MESSAGE);
System.out.println("Customer information for " + input +":");
for (i=0; i <= count; i++){
if (address[i].equalsIgnoreCase(input)){
System.out.println(number[i] + "," + lastname[i] + ", " + firstname[i] + "," + creditlimit[i]);
}
}
System.out.println(" ");
}
else if (Choice.equals("7")) {
String customerID = "", first = "", last = "", items = "", itemName = "", report = "", addItem = "";
int cust_ID = 0, itemChosen = 0, item_stock = 0, quantity = 0;
double item_price = 0, cost = 0, item_cost = 0, total = 0, tax = 0;
//Ask for customer ID
customerID = JOptionPane.showInputDialog(null,"Enter The Customer ID:" +
"",JOptionPane.QUESTION_MESSAGE);
cust_ID = Integer.parseInt(customerID);
//Search array
for (i=0; i <= count; i++) {
if (number[i] == cust_ID) {
//Store first and last name
first = firstname[i];
last = lastname[i];
do {
items ="LumberInventory: \n\n";
int placement = 19;
//Create a variable with lumber options
for (i=0; i <= placement; i++) {
items += "Code: " + code[i] + " Type: " + type[i] + " Price: $" + price[i] +
" Amount In Stock: " + stocklevel[i] + "\n";
}
items += "\n\n" + "Please enter the lumber code you wish to purchase:";
//Prompt for item ID
String input = JOptionPane.showInputDialog(null,items + "",JOptionPane.QUESTION_MESSAGE);
itemChosen = Integer.parseInt(input);
//Find the item in the array
for (i=0; i <= placement; i++) {
if (code[i] == itemChosen) {
item_price = price[i];
item_stock = stocklevel[i];
itemName = type[i];
}
}
input = JOptionPane.showInputDialog(null,"How many " + itemName + "'s would you like to purchase? In Stock: " +
item_stock + " @ $" + item_price +"/each",JOptionPane.QUESTION_MESSAGE);
quantity = Integer.parseInt(input);
if (quantity <= item_stock) {
item_cost = item_price * quantity;
cost += item_cost;
report += quantity + "- " + itemName + " @ $" + item_price + "/each: $" + item_cost + "\n";
} else {
do {
input = JOptionPane.showInputDialog(null,"ERROR: There is not enough in stock \n\n" +" How many "
+ itemName + "'s would you like to purchase? In Stock: " + item_stock,JOptionPane.QUESTION_MESSAGE);
quantity = Integer.parseInt(input);
} while (quantity > item_stock);//End while
item_cost = item_price * quantity;
cost += item_cost;
report += quantity + "- " + itemName + " @ $" + item_price + "/each: $" + item_cost + "\n";
}//End Else
//Update stock level
for (i=0; i <= placement; i++) {
if (code[i] == itemChosen) {
stocklevel[i] = stocklevel[i] - quantity;
}
}
//Prompt for another item
addItem = JOptionPane.showInputDialog(null,"Would you like to add another item? (Y/N):" +
"",JOptionPane.QUESTION_MESSAGE);
} while (addItem.equalsIgnoreCase("Y"));
//Output sales report
System.out.println("Sales Report for " + last + ", " + first + ": \n");
System.out.println(report);
//Calculate tax
tax = cost * 0.07;
System.out.println("Sales Tax: $" + tax);
//Calculate total price
total = cost + tax;
System.out.println("Total Price: $" + total);
}//End If
} //End for
System.out.println(" ");
}
else if (Choice.equals("8")){
int inputPrice;
String input;
//Prompt for lumber code
input= JOptionPane.showInputDialog(null, "Enter the Desired Lumber Price (ex. 1, 2, 3):" + "", JOptionPane.QUESTION_MESSAGE);
inputPrice = Integer.parseInt(input);
System.out.println("Information for Lumber Priced Less Than $" + input +":");
for (i=0; i <= count; i++){
if (price[i] < inputPrice){
System.out.println(code[i] + "" + type[i] + ", " + price[i] + ": " + " - In Stock: " + stocklevel[i]);
}
}
System.out.println(" ");
}
}
}
public static int start_program(int[]number,String[]lastname,String[]firstname,String[]address,double[]creditlimit,int count)
{
String newLine;
try
{
//define a file variable for Buffered read
BufferedReader Customer_file = new BufferedReader(new FileReader("customer.dat"));
//read lines in file until there are no more lines in the file to read
while ((newLine = Customer_file.readLine()) != null)
{
//there is a "#" between each data item in each line
StringTokenizer delimiter = new StringTokenizer(newLine,"#");
count=count+1;
number[count] =Integer.parseInt(delimiter.nextToken());
lastname[count] = delimiter.nextToken();
firstname[count] =delimiter.nextToken();
address[count] =delimiter.nextToken();
creditlimit[count] = Double.parseDouble(delimiter.nextToken());
}//while loop
Customer_file.close();
}//end try
catch (IOException error)
{
//there was an error on the file writing
System.out.println("Error on file read " + error);
}//error on read
return count;
}//end start_program
public static int start_program1(int[]code,String[]type,double[]price,int[]stocklevel,int place)
{
String newLine;
try
{
//define a file variable for Buffered read
BufferedReader Lumber_file = new BufferedReader(new FileReader("lumber.dat"));
//read lines in file until there are no more lines in the file to read
while ((newLine = Lumber_file.readLine()) != null)
{
//there is a "#" between each data item in each line
StringTokenizer delimiter = new StringTokenizer(newLine,"#");
place=place+1;
code[place] =Integer.parseInt(delimiter.nextToken());
type[place] = delimiter.nextToken();
price[place] = Double.parseDouble(delimiter.nextToken());
stocklevel[place] =Integer.parseInt(delimiter.nextToken());
}//while loop
Lumber_file.close();
}//end try
catch (IOException error)
{
//there was an error on the file writing
System.out.println("Error on file read " + error);
}//error on read
return place;
}//end start_program
public static void exit_program(int[]number,String[]lastname,String[]firstname,String[]address,double[]creditlimit,int count)
{
try
{
BufferedWriter Customer_file = new BufferedWriter(new FileWriter("customer.dat"));
for (int i = 0; i<=count; ++i)
{
//put "#" between each data item in the file
Customer_file.write(number[i] + "#" + lastname[i] + "#" +firstname[i]+ "#" +address[i] + "#" +creditlimit[i]);
//write a new line in the file
Customer_file.newLine();
}//for loop
Customer_file.close();
}//end try
catch (IOException error)
{
//there was an error on the write to the file
System.out.println("Error on file write " + error);
}
}
public static void exit_program1(int[]code,String[]type,double[]price,int[]stocklevel,int place) {
{
try
{
BufferedWriter Lumber_file = new BufferedWriter(new FileWriter("lumber.dat"));
for (int i = 0; i<=place; ++i)
{
//put "#" between each data item in the file
Lumber_file.write(code[i] + "#" + type[i] + "#" +price[i]+ "#" +stocklevel[i]);
//write a new line in the file
Lumber_file.newLine();
}//for loop
Lumber_file.close();
}//end try
catch (IOException error)
{
//there was an error on the write to the file
System.out.println("Error on file write " + error);
}
}
}
}//end of class