diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 148a46e..a502653 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -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 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 diff --git a/src/main/java/ReportGenerator.java b/src/main/java/ReportGenerator.java index 8eb458b..2eb0ac5 100644 --- a/src/main/java/ReportGenerator.java +++ b/src/main/java/ReportGenerator.java @@ -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: