Subversion Repositories SmartDukaan

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
35716 93 d 5 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()