develop #1
@@ -2,10 +2,14 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.InputMismatchException;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
static ArrayList<Product> productCatalog = new ArrayList<>();
|
static ArrayList<Product> productCatalog = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public static void loadProducts() throws IOException{
|
public static void loadProducts() throws IOException{
|
||||||
InputStream input = Main.class
|
InputStream input = Main.class
|
||||||
.getClassLoader()
|
.getClassLoader()
|
||||||
@@ -15,6 +19,20 @@ public class Main {
|
|||||||
}
|
}
|
||||||
Scanner scanner = new Scanner(input);
|
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:
|
// TODO:
|
||||||
// - Read each line from products.csv
|
// - Read each line from products.csv
|
||||||
// - For each line, parse productId, name, and price
|
// - 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.List;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class ReportGenerator {
|
public class ReportGenerator {
|
||||||
|
|
||||||
@@ -17,6 +21,65 @@ public class ReportGenerator {
|
|||||||
|
|
||||||
public void processFile()
|
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:
|
// TODO:
|
||||||
// 1. Open the order details CSV file
|
// 1. Open the order details CSV file
|
||||||
// 2. Read the file line by line
|
// 2. Read the file line by line
|
||||||
@@ -59,6 +122,20 @@ public class ReportGenerator {
|
|||||||
|
|
||||||
public void saveReport()
|
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:
|
// TODO:
|
||||||
// 1. Build a formatted report string
|
// 1. Build a formatted report string
|
||||||
// 2. Include:
|
// 2. Include:
|
||||||
|
|||||||
Reference in New Issue
Block a user