complet project
This commit is contained in:
@@ -29,7 +29,7 @@ public class Main {
|
||||
|
||||
Product product = new Product(id , name , price);
|
||||
productCatalog.add(product);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ public class ReportGenerator {
|
||||
private final String ordersFilePath;
|
||||
private final List<Product> productList;
|
||||
|
||||
private double totalFinalCost;
|
||||
private int totalQuantity;
|
||||
private double totalDiscountValue;
|
||||
private int totalInvalidLines;
|
||||
private double totalFinalCost =0;
|
||||
private int totalQuantity=0;
|
||||
private double totalDiscountValue=0;
|
||||
private int totalInvalidLines=0;
|
||||
|
||||
public ReportGenerator(String ordersFilePath, List<Product> productList) {
|
||||
this.ordersFilePath = ordersFilePath;
|
||||
@@ -26,38 +26,42 @@ public class ReportGenerator {
|
||||
try {
|
||||
input = new Scanner(inputfile);
|
||||
} catch (FileNotFoundException e) {
|
||||
System.out.println("there is no csv file to open it");;
|
||||
System.out.println("We cannot open csv file");;
|
||||
}
|
||||
|
||||
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){
|
||||
String line = input.nextLine();
|
||||
String[] data = line.split(",");
|
||||
int id = Integer.parseInt(data[0]);
|
||||
int quantity = Integer.parseInt(data[1]);
|
||||
int discount = Integer.parseInt(data[2]);
|
||||
|
||||
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();
|
||||
Product myProduct = null;
|
||||
for (Product p : productList) {
|
||||
if (p.getProductID() == id) {
|
||||
myProduct = p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(priceOfproduct == 0){
|
||||
if (myProduct == null) {
|
||||
totalInvalidLines++;
|
||||
continue;
|
||||
}
|
||||
|
||||
double subtotal = quantity * priceOfproduct;
|
||||
double discountValue = subtotal * discount / 100 ;
|
||||
double finalCost = subtotal - discountValue;
|
||||
|
||||
double subtotal = quantity * myProduct.getPrice();
|
||||
double discountValue = subtotal * (discount / 100.0);
|
||||
double finalCost = subtotal - discountValue;
|
||||
|
||||
totalQuantity += quantity;
|
||||
totalFinalCost += finalCost;
|
||||
@@ -65,11 +69,6 @@ public class ReportGenerator {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}catch (NumberFormatException e){
|
||||
totalInvalidLines++;
|
||||
continue;
|
||||
@@ -129,9 +128,10 @@ public class ReportGenerator {
|
||||
report.println("=======REPORT========");
|
||||
report.println("Totsl Quantity sold :" + totalQuantity);
|
||||
report.println("Toal final cost: $" + totalFinalCost);
|
||||
report.println("TOtal discount value : $" + totalDiscountValue);
|
||||
report.println("Total discount value : $" + totalDiscountValue);
|
||||
report.println("Invalid rows: " + totalInvalidLines);
|
||||
report.println("=====================");
|
||||
report.close();
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
||||
Reference in New Issue
Block a user