do loadproduct
This commit is contained in:
@@ -2,10 +2,14 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Main {
|
||||
|
||||
static ArrayList<Product> productCatalog = new ArrayList<>();
|
||||
|
||||
|
||||
public static void loadProducts() throws IOException{
|
||||
InputStream input = Main.class
|
||||
.getClassLoader()
|
||||
@@ -15,6 +19,20 @@ public class Main {
|
||||
}
|
||||
Scanner scanner = new Scanner(input);
|
||||
|
||||
while (scanner.hasNextLine()){
|
||||
String line = scanner.nextLine();
|
||||
String[] lines = line.split(",");
|
||||
|
||||
int id = Integer.parseInt(lines[0]);
|
||||
String name = lines[1];
|
||||
double price = Double.parseDouble(lines[2]);
|
||||
|
||||
Product product = new Product(id , name , price);
|
||||
productCatalog.add(product);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// TODO:
|
||||
// - Read each line from products.csv
|
||||
// - For each line, parse productId, name, and price
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class ReportGenerator {
|
||||
|
||||
@@ -17,6 +21,65 @@ public class ReportGenerator {
|
||||
|
||||
public void processFile()
|
||||
{
|
||||
File inputfile = new File(ordersFilePath);
|
||||
Scanner input = null;
|
||||
try {
|
||||
input = new Scanner(inputfile);
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("there is no csv file to open it");;
|
||||
}
|
||||
|
||||
while (input.hasNextLine()){
|
||||
|
||||
input.useDelimiter(",");
|
||||
|
||||
try{
|
||||
int id = input.nextInt();
|
||||
int quantity = input.nextInt();
|
||||
int discount = input.nextInt();
|
||||
if(quantity<0 || discount<0 || discount>= 100 || id <= 0 || id > 9){
|
||||
totalInvalidLines++;
|
||||
continue;
|
||||
}
|
||||
|
||||
double priceOfproduct = 0;
|
||||
for (Product p : productList){
|
||||
if(id == p.getProductID()){
|
||||
priceOfproduct = p.getPrice();
|
||||
}
|
||||
}
|
||||
|
||||
if(priceOfproduct == 0){
|
||||
totalInvalidLines++;
|
||||
continue;
|
||||
}
|
||||
|
||||
double subtotal = quantity * priceOfproduct;
|
||||
double discountValue = subtotal * discount / 100 ;
|
||||
double finalCost = subtotal - discountValue;
|
||||
|
||||
|
||||
totalQuantity += quantity;
|
||||
totalFinalCost += finalCost;
|
||||
totalDiscountValue += discountValue;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}catch (NumberFormatException e){
|
||||
totalInvalidLines++;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
input.close();
|
||||
// TODO:
|
||||
// 1. Open the order details CSV file
|
||||
// 2. Read the file line by line
|
||||
@@ -59,6 +122,20 @@ public class ReportGenerator {
|
||||
|
||||
public void saveReport()
|
||||
{
|
||||
|
||||
|
||||
try {
|
||||
PrintWriter report = new PrintWriter("Report.txt");
|
||||
report.println("=======REPORT========");
|
||||
report.println("Totsl Quantity sold :" + totalQuantity);
|
||||
report.println("Toal final cost: $" + totalFinalCost);
|
||||
report.println("TOtal discount value : $" + totalDiscountValue);
|
||||
report.println("Invalid rows: " + totalInvalidLines);
|
||||
report.println("=====================");
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
// TODO:
|
||||
// 1. Build a formatted report string
|
||||
// 2. Include:
|
||||
|
||||
Reference in New Issue
Block a user