Subversion Repositories SmartDukaan

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
36340 12 h 41 m amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ Narrow downloadInvoice: release JDBC before PDF streaming + clean error codes

OrderManagementController has class-level @Transactional(rollbackFor=Throwable),
so every downloadInvoice request held a Hikari connection for the entire HTTP
response duration — including the PDF streaming phase over a user's (often
slow) mobile network. The endpoint is the #1 JDBC-slot holder in production.

- Method-level @Transactional(propagation = NOT_SUPPORTED) suspends the
class-level tx for this endpoint so no connection is held by default.
- A short read-only TransactionTemplate scopes the single SELECT (order lookup
by invoice number) inside its own tx. Connection returns to the pool as soon
as the SELECT commits; file streaming then runs without any JDBC session.
- Bounds-check orders.isEmpty() — 2 IndexOutOfBoundsException per log window
previously, now a clean 404 with message body.
- Invoice-not-yet-generated stops surfacing as a 500 with stack trace
(1,534 occurrences in yesterday's log = #1 noise source). Now a 404 with
'please retry shortly' JSON body. Saves log disk and error-budget.
 
36299 5 d 8 h amit /trunk/profitmandi-fofo/src/main/ GRN correction: surface autoApproved flag to UI

Controller returns {status, autoApproved} JSON; JS shows an
'auto-approved' message when the request bypasses approval, otherwise
the existing 'raised for approval' message. Pairs with dao r36298.
 
36174 20 d 4 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ Fix OOS false positive for dummy serialized items in warehouse management

Serialized items without serial numbers (e.g. dummy items with bulk qty) were
always classified as out-of-stock because the ageing query requires
currentQuantity=1 and a serial number join. Added fallback to scan-based
availability check when ageing returns empty, so items with physical stock
correctly show as in-stock.
 
36135 21 d 7 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ Include correction To Item IDs in itemMap so item names resolve in approval view  
36032 32 d 8 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ avaialble status multiple times coming it has been fix  
36031 32 d 9 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ grn not able todo so fixing it  
35943 48 d 5 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/ Reduce log noise: demote interceptor/cookie per-request INFO to DEBUG, demote large object dumps and loop logging to DEBUG, fix string concatenation in log statements  
35806 62 d 4 h amit /trunk/profitmandi-fofo/src/main/ Add GRN correction controller, views, and JS. Fix XSS in correction detail template, add self-approval prevention, add null check on requestId  
35717 72 d 0 h amit /trunk/ Fix performance issues in PurchaseOrderController

- Replace supplierRepository.selectAll() with targeted selectBySupplierIds() in 2 endpoints
- Replace sellerRepository.selectAll() with new selectByIds() in 2 endpoints
- Add SellerRepository.selectByIds(List<Integer>) batch method
- Remove dead code: unused totalUnitPrice and totalPriceOfLineItem computations
 
35716 72 d 0 h amit /trunk/ Refactor GrnController and PurchaseOrderController: extract business logic into focused services and fix N+1 query performance issues

- Create InvoiceService: invoice item CRUD, validation, vendor price matching
- Create GrnRequestService: GRN request lifecycle, mismatch resolution state machine
- Create DebitNoteService: debit note generation, PDF model building
- Move PO amendment logic from PurchaseOrderController to PurchaseOrderService
- Delegate generateDebitNote from PurchaseOrderServiceImpl to DebitNoteService
- Thin GrnController from ~1215 to ~717 lines, remove 15 unused autowired dependencies
- Thin PurchaseOrderController editPurchaseOrder from 40+ lines to 3 lines

Performance fixes:
- InvoiceServiceImpl.validateInvoiceDetail: batch item/vendor pricing/GST loading (4N+3 queries -> ~5)
- DebitNoteServiceImpl: batch item loading in buildDebitNotePdfModel and generateDebitNote
- GrnController.generateDebitNote: eliminate 2 redundant DB fetches
- Replace 3x supplierRepository.selectAll() with targeted selectBySupplierIds()
 
35462 122 d 21 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fix LockAcquisitionException: Use bulk partner type fetch in controllers

Use getTypesForFofoIds() bulk method to avoid N+1 queries in:
- IndentController
- PlacementPlanController
- OrderManagementController
 
35458 123 d 4 h amit /trunk/ Revert @Transactional(readOnly=true) - keep @Transactional only at Controller level

Changes:
- profitmandi-web: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional(readOnly = true)
- profitmandi-fofo: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional
- profitmandi-dao: Removed @Transactional from services/repositories

Exceptions (called from interceptors, need own transaction):
- RoleManager: @Transactional(readOnly = true) - called from interceptor for auth
- PartnerTypeChangeServiceImpl.getBestPartner(): @Transactional - called from JWTUtil via interceptor

Fixed javax.transaction.Transactional to org.springframework.transaction.annotation.Transactional
Fixed rollbackOn to rollbackFor for Spring compatibility
 
35395 126 d 23 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fixed performance  
35173 193 d 5 h amit /trunk/ Added marked to bad  
35036 217 d 6 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ warehouse null remove  
35029 217 d 9 h ranu /trunk/profitmandi-fofo/src/main/ warehouse order partner type wise  
35020 218 d 4 h ranu /trunk/profitmandi-fofo/src/main/ category display on warehouse billing dasboard  
34376 384 d 7 h tejus.lohani /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/ fix  
34373 384 d 8 h tejus.lohani /trunk/ Distance field in billing Dashboard,when warehouse and billing address pincode are same ,then distance is required  
34180 440 d 4 h ranu /trunk/ warehouse stock table added column according to shankar sir  

Show All