diff --git a/Item.txt b/Item.txt index 5ae5acd..c2ebea3 100644 --- a/Item.txt +++ b/Item.txt @@ -3,4 +3,12 @@ -4;vino rosso;50;8.6;null;null;beverage + +2;cipolla;50;0.4;null;null;vegetables +3;penna;100;0.5;null;null;diary + +1;tofu;18;3.2;null;null;bio + +4;vino rosso;46;8.6;null;null;beverage + +5;mayo veg;73;3.2;null;null;sauce \ No newline at end of file diff --git a/Shop.txt b/Shop.txt index 1f5942c..0ac18bc 100644 --- a/Shop.txt +++ b/Shop.txt @@ -1 +1,3 @@ 2022-01-15 22:29:56 11 simonetta cornacchia 74.7 +2022-01-16 13:20:51 11 simonetta cornacchia 58.2 +2022-01-16 13:30:09 1 penny briccoli 63.2 diff --git a/bin/main/java/controller/InvoiceController.class b/bin/main/java/controller/InvoiceController.class index b3c55a5..c55e54e 100644 Binary files a/bin/main/java/controller/InvoiceController.class and b/bin/main/java/controller/InvoiceController.class differ diff --git a/bin/main/java/controller/InvoiceControllerImpl.class b/bin/main/java/controller/InvoiceControllerImpl.class index 45056d6..9fe8c42 100644 Binary files a/bin/main/java/controller/InvoiceControllerImpl.class and b/bin/main/java/controller/InvoiceControllerImpl.class differ diff --git a/bin/main/java/controller/ItemController.class b/bin/main/java/controller/ItemController.class index fc485d3..9342713 100644 Binary files a/bin/main/java/controller/ItemController.class and b/bin/main/java/controller/ItemController.class differ diff --git a/bin/main/java/controller/ItemControllerImpl.class b/bin/main/java/controller/ItemControllerImpl.class index 29e1623..2d91245 100644 Binary files a/bin/main/java/controller/ItemControllerImpl.class and b/bin/main/java/controller/ItemControllerImpl.class differ diff --git a/bin/main/java/model/file/FileItemImpl.class b/bin/main/java/model/file/FileItemImpl.class index 59a1492..5d9f9db 100644 Binary files a/bin/main/java/model/file/FileItemImpl.class and b/bin/main/java/model/file/FileItemImpl.class differ diff --git a/bin/main/java/model/file/FileShopImpl.class b/bin/main/java/model/file/FileShopImpl.class index 106a023..33f4b72 100644 Binary files a/bin/main/java/model/file/FileShopImpl.class and b/bin/main/java/model/file/FileShopImpl.class differ diff --git a/bin/main/java/model/file/FileUserImpl.class b/bin/main/java/model/file/FileUserImpl.class index e26b67d..551cdfb 100644 Binary files a/bin/main/java/model/file/FileUserImpl.class and b/bin/main/java/model/file/FileUserImpl.class differ diff --git a/bin/main/java/view/EditItemView$3.class b/bin/main/java/view/EditItemView$3.class index 563e754..1c5cc61 100644 Binary files a/bin/main/java/view/EditItemView$3.class and b/bin/main/java/view/EditItemView$3.class differ diff --git a/bin/main/java/view/InvoiceView$7.class b/bin/main/java/view/InvoiceView$7.class index 7d83e8c..74842dc 100644 Binary files a/bin/main/java/view/InvoiceView$7.class and b/bin/main/java/view/InvoiceView$7.class differ diff --git a/bin/main/java/view/InvoiceView$8.class b/bin/main/java/view/InvoiceView$8.class index 91d370c..a0dba72 100644 Binary files a/bin/main/java/view/InvoiceView$8.class and b/bin/main/java/view/InvoiceView$8.class differ diff --git a/bin/main/java/view/InvoiceView.class b/bin/main/java/view/InvoiceView.class index 22053db..e58872e 100644 Binary files a/bin/main/java/view/InvoiceView.class and b/bin/main/java/view/InvoiceView.class differ diff --git a/src/main/java/controller/InvoiceController.java b/src/main/java/controller/InvoiceController.java index d3abdca..3f14ce1 100644 --- a/src/main/java/controller/InvoiceController.java +++ b/src/main/java/controller/InvoiceController.java @@ -9,4 +9,6 @@ public interface InvoiceController { boolean addToCart(String cartLine); boolean newInvoice(); + + boolean checkout(); } diff --git a/src/main/java/controller/InvoiceControllerImpl.java b/src/main/java/controller/InvoiceControllerImpl.java index a673816..bf143b1 100644 --- a/src/main/java/controller/InvoiceControllerImpl.java +++ b/src/main/java/controller/InvoiceControllerImpl.java @@ -49,6 +49,24 @@ public boolean addToCart(String cartLine) { public boolean newInvoice() { return fileInvoice.emptyFile(); } + + @Override + public boolean checkout() { + try { + Set cartLines = fileInvoice.fileReader(); + for(String line : cartLines) { + String[] data = line.split("\t"); + String id = data[0]; + int qty = Integer.parseInt(data[2]); + itemController.recalculateQuantity(id, qty); + } + newInvoice(); + return true; + } catch (NumberFormatException e) { + e.printStackTrace(); + return false; + } + } } diff --git a/src/main/java/controller/ItemController.java b/src/main/java/controller/ItemController.java index f434960..a114f1c 100644 --- a/src/main/java/controller/ItemController.java +++ b/src/main/java/controller/ItemController.java @@ -53,7 +53,7 @@ public interface ItemController { * @param nSold * @return the new quantity. */ - int recalculateQuantity(String barcode, int nSold); + void recalculateQuantity(String barcode, int nSold); /** * Show all the stock. diff --git a/src/main/java/controller/ItemControllerImpl.java b/src/main/java/controller/ItemControllerImpl.java index 08d712e..69f5dc2 100644 --- a/src/main/java/controller/ItemControllerImpl.java +++ b/src/main/java/controller/ItemControllerImpl.java @@ -113,9 +113,13 @@ public Set fromOneToQuantity(Item item) { } @Override - public int recalculateQuantity(String barcode, int nSold) { - // TODO Auto-generated method stub - return 0; + public void recalculateQuantity(String barcode, int nSold) { + Item i = searchItem(barcode); + int oldQty = i.getQuantity(); + int newQty = oldQty - nSold; + + Item itemToUpdate = new ItemImpl(i.getBarcode(), i.getName(), newQty, i.getUnitPrice(), null, null, i.getCategory()); + updateItem(itemToUpdate); } @Override diff --git a/src/main/java/controller/ShopControllerImpl.java b/src/main/java/controller/ShopControllerImpl.java index 79ce711..6501b9e 100644 --- a/src/main/java/controller/ShopControllerImpl.java +++ b/src/main/java/controller/ShopControllerImpl.java @@ -31,15 +31,4 @@ public Set showPayments() { Set payments = fileShop.fileReader(); return payments; } - -// @Override -// public Set searchByUser(String target){ -// return null; -// } -// -// -// @Override -// public Set searchByDate(String target){ -// return null; -// } } diff --git a/src/main/java/model/file/FileItemImpl.java b/src/main/java/model/file/FileItemImpl.java index 88332d9..96a4764 100644 --- a/src/main/java/model/file/FileItemImpl.java +++ b/src/main/java/model/file/FileItemImpl.java @@ -90,7 +90,7 @@ public boolean deleteLine(String target) { try { File file = createFile(); List out = Files.lines(file.toPath()) - .filter(line -> !line.contains(target.toLowerCase())) + .filter(line -> !line.split(";")[0].contains(target.toLowerCase())) .collect(Collectors.toList()); Files.write(file.toPath(), out, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); diff --git a/src/main/java/model/file/FileShopImpl.java b/src/main/java/model/file/FileShopImpl.java index dc0414b..73cd0d8 100644 --- a/src/main/java/model/file/FileShopImpl.java +++ b/src/main/java/model/file/FileShopImpl.java @@ -2,20 +2,36 @@ import java.io.BufferedReader; import java.io.BufferedWriter; +import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.TreeSet; +import java.util.stream.Collectors; public class FileShopImpl implements FileStrategy { private static final String SHOP_FILE = "Shop.txt"; private Set list = new TreeSet<>(); + private File createFile() { + try { + File myObj = new File(SHOP_FILE); + myObj.createNewFile(); + return myObj; + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + @Override public Set fileReader() { try(BufferedReader reader = new BufferedReader(new FileReader(SHOP_FILE))) { @@ -51,7 +67,9 @@ public String searchInFile(String target) { try { Set lines = fileReader(); for(String line : lines) { - if(line.contains(target.toLowerCase())) { + String[] data = line.split("\t"); + String barcode = data[0]; + if(barcode.contains(target.toLowerCase())) { return line; } } @@ -63,12 +81,19 @@ public String searchInFile(String target) { } @Override - /** - * Disabled in shop payments. - */ public boolean deleteLine(String target) { - // TODO Auto-generated method stub - return false; + try { + File file = createFile(); + List out = Files.lines(file.toPath()) + .filter(line -> !line.split("\t")[0].contains(target.toLowerCase())) + .collect(Collectors.toList()); + + Files.write(file.toPath(), out, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; + } } @Override diff --git a/src/main/java/model/file/FileUserImpl.java b/src/main/java/model/file/FileUserImpl.java index 498e571..dfc83c6 100644 --- a/src/main/java/model/file/FileUserImpl.java +++ b/src/main/java/model/file/FileUserImpl.java @@ -88,7 +88,7 @@ public boolean deleteLine(String target) { try { File file = createFile(); List out = Files.lines(file.toPath()) - .filter(line -> !line.contains(target.toLowerCase())) + .filter(line -> !line.split(";")[0].contains(target.toLowerCase())) .collect(Collectors.toList()); Files.write(file.toPath(), out, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); diff --git a/src/main/java/view/EditItemView.java b/src/main/java/view/EditItemView.java index 0b218bf..3b22388 100644 --- a/src/main/java/view/EditItemView.java +++ b/src/main/java/view/EditItemView.java @@ -172,7 +172,7 @@ public void actionPerformed(ActionEvent e) { String strP = textField_Price.getText(); price = (!strP.isEmpty()) ? Double.parseDouble(strP) : 0.0; - ItemImpl itemToAdd = new ItemImpl(barcode, name, quantity, price, null, null, category); + Item itemToAdd = new ItemImpl(barcode, name, quantity, price, null, null, category); controller.updateItem(itemToAdd); comboBox_ItemId.setSelectedIndex(0); diff --git a/src/main/java/view/InvoiceView.java b/src/main/java/view/InvoiceView.java index b445e80..a32e16e 100644 --- a/src/main/java/view/InvoiceView.java +++ b/src/main/java/view/InvoiceView.java @@ -225,9 +225,10 @@ public void actionPerformed(ActionEvent arg0) { if(!strTot.isBlank()) { Double tot = Double.parseDouble(strTot); int userId = Integer.parseInt(String.valueOf(comboBox_CustomerId.getSelectedItem())); - if(shopController.addPayment(userId, tot)) { + boolean payCheck = shopController.addPayment(userId, tot); + boolean opCheck = invoiceController.checkout(); + if(payCheck && opCheck) { JOptionPane.showMessageDialog(null, "Operation ended successfully!"); - invoiceController.newInvoice(); comboBox_CustomerId.setSelectedIndex(0); comboBox_Quantity.setSelectedIndex(0); comboBox_ItemId.setSelectedIndex(0);