diff --git a/src/main/java/org/example/petshopdesktop/DTOs/PurchaseOrderDTO.java b/src/main/java/org/example/petshopdesktop/DTOs/PurchaseOrderDTO.java index 5bd3e4b6..11c5d330 100644 --- a/src/main/java/org/example/petshopdesktop/DTOs/PurchaseOrderDTO.java +++ b/src/main/java/org/example/petshopdesktop/DTOs/PurchaseOrderDTO.java @@ -1,57 +1,25 @@ package org.example.petshopdesktop.DTOs; +import javafx.beans.property.*; + public class PurchaseOrderDTO { - private int purchaseOrderId; - private String supplierName; - private String productName; - private int quantity; - private double unitCost; - private String orderDate; - private String status; + private IntegerProperty purchaseOrderId; + private StringProperty supplierName; + private StringProperty orderDate; + private StringProperty status; - public PurchaseOrderDTO(int purchaseOrderId, - String supplierName, - String productName, - int quantity, - double unitCost, - String orderDate, - String status) { + public PurchaseOrderDTO(int id, String supplierName, + String orderDate, String status) { - this.purchaseOrderId = purchaseOrderId; - this.supplierName = supplierName; - this.productName = productName; - this.quantity = quantity; - this.unitCost = unitCost; - this.orderDate = orderDate; - this.status = status; + this.purchaseOrderId = new SimpleIntegerProperty(id); + this.supplierName = new SimpleStringProperty(supplierName); + this.orderDate = new SimpleStringProperty(orderDate); + this.status = new SimpleStringProperty(status); } - public int getPurchaseOrderId() { - return purchaseOrderId; - } - - public String getSupplierName() { - return supplierName; - } - - public String getProductName() { - return productName; - } - - public int getQuantity() { - return quantity; - } - - public double getUnitCost() { - return unitCost; - } - - public String getOrderDate() { - return orderDate; - } - - public String getStatus() { - return status; - } + public int getPurchaseOrderId() { return purchaseOrderId.get(); } + public String getSupplierName() { return supplierName.get(); } + public String getOrderDate() { return orderDate.get(); } + public String getStatus() { return status.get(); } } \ No newline at end of file diff --git a/src/main/java/org/example/petshopdesktop/controllers/PurchaseOrderController.java b/src/main/java/org/example/petshopdesktop/controllers/PurchaseOrderController.java index 669d3a42..0f0246bd 100644 --- a/src/main/java/org/example/petshopdesktop/controllers/PurchaseOrderController.java +++ b/src/main/java/org/example/petshopdesktop/controllers/PurchaseOrderController.java @@ -2,26 +2,53 @@ package org.example.petshopdesktop.controllers; import javafx.fxml.FXML; import javafx.scene.control.*; +import javafx.scene.control.cell.PropertyValueFactory; +import org.example.petshopdesktop.DTOs.PurchaseOrderDTO; +import org.example.petshopdesktop.database.PurchaseOrderDB; public class PurchaseOrderController { @FXML private Button btnRefresh; - @FXML private TextField txtSearch; - @FXML private TableView tvPurchaseOrders; + @FXML private TableView tvPurchaseOrders; - @FXML private TableColumn colOrderId; - @FXML private TableColumn colSupplier; - @FXML private TableColumn colOrderDate; - @FXML private TableColumn colStatus; + @FXML private TableColumn colOrderId; + @FXML private TableColumn colSupplier; + @FXML private TableColumn colOrderDate; + @FXML private TableColumn colStatus; @FXML public void initialize() { - // View-only page for now + + colOrderId.setCellValueFactory( + new PropertyValueFactory<>("purchaseOrderId")); + + colSupplier.setCellValueFactory( + new PropertyValueFactory<>("supplierName")); + + colOrderDate.setCellValueFactory( + new PropertyValueFactory<>("orderDate")); + + colStatus.setCellValueFactory( + new PropertyValueFactory<>("status")); + + loadPurchaseOrders(); + } + + private void loadPurchaseOrders() { + try { + tvPurchaseOrders.setItems( + PurchaseOrderDB.getPurchaseOrders() + ); + } catch (Exception e) { + e.printStackTrace(); + new Alert(Alert.AlertType.ERROR, + "Unable to load purchase orders").showAndWait(); + } } @FXML void btnRefresh() { - // Later: reload data + loadPurchaseOrders(); } -} +} \ No newline at end of file diff --git a/src/main/java/org/example/petshopdesktop/database/PurchaseOrderDB.java b/src/main/java/org/example/petshopdesktop/database/PurchaseOrderDB.java index 1c59b8a9..2dea4de4 100644 --- a/src/main/java/org/example/petshopdesktop/database/PurchaseOrderDB.java +++ b/src/main/java/org/example/petshopdesktop/database/PurchaseOrderDB.java @@ -18,16 +18,12 @@ public class PurchaseOrderDB { String sql = """ SELECT po.purchaseOrderId, - s.supCompany AS supplierName, - p.prodName AS productName, - poi.quantity, - poi.unitCost, + s.supCompany, po.orderDate, po.status FROM purchaseOrder po JOIN supplier s ON po.supId = s.supId - JOIN purchaseOrderItem poi ON po.purchaseOrderId = poi.purchaseOrderId - JOIN product p ON poi.prodId = p.prodId + ORDER BY po.purchaseOrderId """; Statement stmt = conn.createStatement(); @@ -37,10 +33,7 @@ public class PurchaseOrderDB { list.add(new PurchaseOrderDTO( rs.getInt("purchaseOrderId"), - rs.getString("supplierName"), - rs.getString("productName"), - rs.getInt("quantity"), - rs.getDouble("unitCost"), + rs.getString("supCompany"), rs.getString("orderDate"), rs.getString("status") ));