do loadproduct

This commit is contained in:
2026-05-20 09:00:25 +03:30
parent 8e6d1d1760
commit 151d9feb70
2 changed files with 95 additions and 0 deletions
+18
View File
@@ -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
+77
View File
@@ -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: