From 9b8d5258333d1572b5b096cb5b40699f781b90fd Mon Sep 17 00:00:00 2001 From: "usama.jameel" Date: Tue, 24 Jun 2025 12:06:03 +0500 Subject: [PATCH] add po status flag to the po edit screen and po online status screen --- .../dao/ctp/PurchaseOrderCTPDao.java | 22 ++++++++++++++----- .../dao/ctp/PurchaseOrderCTPRowMapper.java | 1 + .../model/ctp/PurchaseOrderCTP.java | 9 ++++++++ .../service/ReportingService.java | 8 ++++++- .../purchaseOrder/purchase-order-form.html | 7 +++++- .../purchaseOrder/purchase-order-list.html | 7 ++++++ 6 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPDao.java b/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPDao.java index 77356d7..3afe727 100644 --- a/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPDao.java +++ b/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPDao.java @@ -27,18 +27,20 @@ public class PurchaseOrderCTPDao { private final String SELECT_BY_PO_CODE = String.format( "SELECT * FROM %s WHERE purchase_order_code = :purchase_order_code", TABLE_NAME ); private final String DELETE_QUERY = String.format( "DELETE FROM %s WHERE id = :id", TABLE_NAME ); private final String INSERT_QUERY = String.format( - "INSERT INTO %s (id, purchase_order_code, purchase_order_quantity, purchase_order_quantity_required, article_name, created_by, status) " + - "VALUES (:id, :purchase_order_code, :purchase_order_quantity, :purchase_order_quantity_required, :article_name, :created_by, :status) " + + "INSERT INTO %s (id, purchase_order_code, purchase_order_quantity, purchase_order_quantity_required, article_name, created_by, status, po_status) " + + "VALUES (:id, :purchase_order_code, :purchase_order_quantity, :purchase_order_quantity_required, :article_name, :created_by, :status, :po_status) " + "ON DUPLICATE KEY UPDATE " + "purchase_order_code = VALUES(purchase_order_code), " + "purchase_order_quantity = VALUES(purchase_order_quantity), " + "purchase_order_quantity_required = VALUES(purchase_order_quantity_required), " + "article_name = VALUES(article_name), " + "created_by = VALUES(created_by), " + - "status = VALUES(status)", + "status = VALUES(status)," + + "po_status = VALUES(po_status)", TABLE_NAME); + private final String SELECT_BY_LIMIT = String.format( "SELECT * FROM %s WHERE created_by = :created_by ORDER BY id ASC limit :limit", TABLE_NAME ); - private final String SELECT_BY_TERM = String.format( "SELECT * FROM %s WHERE purchase_order_code LIKE :term limit 100 offset 0", TABLE_NAME ); + private final String SELECT_BY_TERM = String.format( "SELECT * FROM %s WHERE purchase_order_code LIKE :term AND po_status = false limit 100 offset 0", TABLE_NAME ); // prepare query params @@ -50,7 +52,8 @@ public class PurchaseOrderCTPDao { .addValue("purchase_order_quantity_required", purchaseOrderCTP.getPurchaseOrderQuantityRequired()) .addValue("article_name", purchaseOrderCTP.getArticleName()) .addValue("created_by", purchaseOrderCTP.getCreatedBy()) - .addValue("status", purchaseOrderCTP.getStatus()); + .addValue("status", purchaseOrderCTP.getStatus()) + .addValue("po_status", purchaseOrderCTP.getPoStatus()); return params; } @@ -96,10 +99,16 @@ public class PurchaseOrderCTPDao { return namedParameterJdbcTemplate.update( DELETE_QUERY, params ) > 0; } + /* + * find by query + * */ public List findByQuery(String query ){ return namedParameterJdbcTemplate.query( query, new PurchaseOrderCTPRowMapper() ); } + /* + * find by created by + * */ public List findByUserAndLimit(String createdBy, Long limit ){ MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("limit", limit.intValue() ); @@ -107,6 +116,9 @@ public class PurchaseOrderCTPDao { return namedParameterJdbcTemplate.query( SELECT_BY_LIMIT, params, new PurchaseOrderCTPRowMapper() ); } + /* + * find by po code + * */ public List findByPoCode(String poCode){ MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("purchase_order_code", poCode); diff --git a/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPRowMapper.java b/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPRowMapper.java index d1ec8e6..a74ef84 100644 --- a/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPRowMapper.java +++ b/src/main/java/com/utopiaindustries/dao/ctp/PurchaseOrderCTPRowMapper.java @@ -19,6 +19,7 @@ public class PurchaseOrderCTPRowMapper implements RowMapper { } PurchaseOrderCTP.setCreatedBy(rs.getString("created_by")); PurchaseOrderCTP.setStatus(rs.getString("status")); + PurchaseOrderCTP.setPoStatus(rs.getBoolean("po_status")); return PurchaseOrderCTP; } } diff --git a/src/main/java/com/utopiaindustries/model/ctp/PurchaseOrderCTP.java b/src/main/java/com/utopiaindustries/model/ctp/PurchaseOrderCTP.java index cbe772f..f4011f1 100644 --- a/src/main/java/com/utopiaindustries/model/ctp/PurchaseOrderCTP.java +++ b/src/main/java/com/utopiaindustries/model/ctp/PurchaseOrderCTP.java @@ -14,6 +14,7 @@ public class PurchaseOrderCTP { private long purchaseOrderQuantity; private long purchaseOrderQuantityRequired; private String articleName; + private boolean poStatus; private String createdBy; private LocalDateTime createdAt; private String status; @@ -81,4 +82,12 @@ public class PurchaseOrderCTP { public void setStatus(String status) { this.status = status; } + + public boolean getPoStatus() { + return poStatus; + } + + public void setPoStatus(boolean poStatus) { + this.poStatus = poStatus; + } } diff --git a/src/main/java/com/utopiaindustries/service/ReportingService.java b/src/main/java/com/utopiaindustries/service/ReportingService.java index 562bfd8..2cec9ef 100644 --- a/src/main/java/com/utopiaindustries/service/ReportingService.java +++ b/src/main/java/com/utopiaindustries/service/ReportingService.java @@ -437,6 +437,9 @@ public class ReportingService { return barChartData; } + /* + * find all po for po-online-status + * */ public List getAllPOs(String poCode, String size, String color) { List pOsDetailsList = new ArrayList<>(); @@ -523,13 +526,16 @@ public class ReportingService { pOsDetails.setShippedScan(packagingItems); pOsDetails.setShippedNet(packagingItems); pOsDetails.setPackagingStock(0); - pOsDetails.setPoStatus(false); + pOsDetails.setPoStatus(pos.getPoStatus()); pOsDetailsList.add(pOsDetails); } } return pOsDetailsList; } + /* + * find all job cards of specific po + * */ public HashMap> getAllPoJobCards(long poId, String selectDate) { String startDate = selectDate != null && !selectDate.isEmpty() ? selectDate + " 00:00:01": null; String endDate = selectDate != null && !selectDate.isEmpty() ? selectDate + " 23:59:59": null; diff --git a/src/main/resources/templates/purchaseOrder/purchase-order-form.html b/src/main/resources/templates/purchaseOrder/purchase-order-form.html index 7582723..c5e9b33 100644 --- a/src/main/resources/templates/purchaseOrder/purchase-order-form.html +++ b/src/main/resources/templates/purchaseOrder/purchase-order-form.html @@ -10,7 +10,6 @@
Info
@@ -34,6 +33,12 @@
+
+ +
+ +
+
diff --git a/src/main/resources/templates/purchaseOrder/purchase-order-list.html b/src/main/resources/templates/purchaseOrder/purchase-order-list.html index d95b5ed..4faeb3d 100644 --- a/src/main/resources/templates/purchaseOrder/purchase-order-list.html +++ b/src/main/resources/templates/purchaseOrder/purchase-order-list.html @@ -28,6 +28,7 @@ Created At Created By Status + PO Status Action @@ -44,6 +45,12 @@ - + + OPEN +
+ CLOSE +
+