<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; //trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 20:25:14 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Mon, 05 Oct 2026 18:48:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37845 – feat(warehouse): ACTIVE/SUSPENDED/INACTIVE status + label on sellerwarehouse replace WAREHOUSE_MAP - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 33 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(warehouse): ACTIVE/SUSPENDED/INACTIVE status + label on sellerwarehouse replace WAREHOUSE_MAP - BillingWarehouseService (active for dashboards, active+suspended for warehouse screens, names in every state, 5 min cache); setup service: guarded status change (no suspend while franchise stores or brand mapping route there, no close while stock/unshipped orders), rename, all-warehouse overview with usage; partner store assignable only to an active warehouse; daily stock alert for suspended/inactive warehouses to logistics/accounts top 2 staffed levels + leadership; dashboard warehouse list = active (replaces r37834 stock-holding loop); migration sellerwarehouse_status_display_name_20261005.sql (applied on hadb1)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/SellerWarehouse.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/warehouse/WarehouseStatus.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/PhysicalWarehouseView.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/WarehouseStockLine.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/WarehouseUsage.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/FofoStoreRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/InventoryWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/SaholicInventoryCISRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/SaholicInventoryCISRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/WarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/solr/FofoSolr.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/AdminUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/authentication/JWTUtil.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingWarehouseService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingWarehouseServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalDigestServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupValidator.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/sellerwarehouse_status_display_name_20261005.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/BillingWarehouseServiceImplTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertServiceImplTest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImplTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37845</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37845</guid></item>
<item><pubDate>Thu, 01 Oct 2026 21:06:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37822 – feat(warehouse): physical warehouse setup service, supplier mapping PO guard, address ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 24 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(warehouse): physical warehouse setup service, supplier mapping PO guard, address active flag&lt;br /&gt;
&lt;br /&gt;
- WarehouseSetupService + WarehouseSetupValidator: create seller (state from GSTIN,&lt;br /&gt;
  unique label/GSTIN), address master (city stored last, 6-digit pin, contact),&lt;br /&gt;
  physical warehouse (OURS/BAD vendor 40 + Dummy/G + sellerwarehouse + mapping in&lt;br /&gt;
  one transaction), activate/deactivate (sellerwarehouse.is_active), remap address&lt;br /&gt;
  with internal store sync. Limits follow column sizes (sql_mode is empty).&lt;br /&gt;
- WarehouseAddressMaster.active: only active addresses are offered for assignment.&lt;br /&gt;
  Migration sql/20261001_warehouseaddressmaster_active.sql (applied on hadb1).&lt;br /&gt;
- PO guard: createPurchaseOrder refuses a supplier with no OURS/GOOD vendor&lt;br /&gt;
  warehouse at the destination (GRN could never receive it).&lt;br /&gt;
  InventoryWarehouseRepository.hasGoodSupplierWarehouse / selectSupplierIdsWithGoodWarehouse&lt;br /&gt;
  use existence checks; 67 pairs carry duplicate OURS/GOOD rows.&lt;br /&gt;
- SellerService.syncInternalStoreAddress(store); RetailerServiceImpl syncs an&lt;br /&gt;
  INTERNAL store&apos;s address when it moves warehouse or becomes internal.&lt;br /&gt;
- Record of 2026-10-01 HR Gurugram setup SQL (seller 21, warehouses 13368/13370/13372).&lt;br /&gt;
- Tests: WarehouseSetupValidatorTest (10), WarehouseSetupServiceImplTest (7).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/WarehouseAddressMaster.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/NewPhysicalWarehouseRequest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/NewSellerRequest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/NewWarehouseAddressRequest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/PhysicalWarehouseView.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/WarehouseAddressView.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/InventoryWarehouseRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/InventoryWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/WarehouseAddressMappingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/WarehouseAddressMappingRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupValidator.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20261001_delete_hrgn1715_hr_uk_store.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20261001_hr_gurugram_vendor_warehouses.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20261001_hr_gurugram_virtual_warehouses.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20261001_warehouseaddressmaster_active.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImplTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/WarehouseSetupValidatorTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37822</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37822</guid></item>
<item><pubDate>Wed, 30 Sep 2026 16:43:15 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37817 – fix(movement): shelf stock before arriving, one PO per cost, close ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(movement): shelf stock before arriving, one PO per cost, close PO on invoice cancel&lt;br /&gt;
&lt;br /&gt;
- Internal movement fills from shelf stock before stock still arriving (a pending PO dated at&lt;br /&gt;
  midnight ranked ahead of same-day receipts, pricing movements from units that never shipped).&lt;br /&gt;
- A quantity spanning stock at different costs is raised as one PO per cost at once instead of&lt;br /&gt;
  being refused (first PO takes every item&apos;s oldest cost, the next the following cost).&lt;br /&gt;
- Refuse a movement from a warehouse to itself.&lt;br /&gt;
- Cancelling a movement&apos;s invoice/DC takes the order&apos;s qty off its PO and pre-closes it when&lt;br /&gt;
  nothing is left open, as refunds already did.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InternalMovementAvailabilityModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37817</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37817</guid></item>
<item><pubDate>Thu, 24 Sep 2026 20:16:26 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37776 – returns: reverse a refunded debit-note return whose goods never reached ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;returns: reverse a refunded debit-note return whose goods never reached the warehouse&lt;br /&gt;
&lt;br /&gt;
Once a return was refunded nothing could undo it - rejectReturn refuses an already&lt;br /&gt;
refunded one - so a return booked and paid for goods that never arrived left phantom&lt;br /&gt;
warehouse stock, the unit missing from partner stock, the order marked returned, a&lt;br /&gt;
wallet credit and a filed credit note, with no way back.&lt;br /&gt;
&lt;br /&gt;
ReturnReversalService.reverse(imei, reason, by, dryRun) undoes exactly one unit:&lt;br /&gt;
the warehouse return scan (row deleted so a genuine return later is not rejected as a&lt;br /&gt;
duplicate) and the stock it added, partner stock with its schemes/price drop/offers,&lt;br /&gt;
the order&apos;s return quantity and status, the wallet refund as a REVERSAL entry, and the&lt;br /&gt;
return item / debit note. Guards refuse anything that has moved since the refund, and a&lt;br /&gt;
dry run reports the plan without writing.&lt;br /&gt;
&lt;br /&gt;
The credit note follows movement and the NIC clock: inside the 24h window, and only&lt;br /&gt;
when the note credits nothing but this unit, its IRN is cancelled and the note marked&lt;br /&gt;
cancelled; past it a DBN with its own IRN is issued against the note&lt;br /&gt;
(CreditNoteService.issueReturnReversalDebitNote, stored as CN_CANCELLATION with no&lt;br /&gt;
margin month so the statement does not show it twice - the wallet REVERSAL is the&lt;br /&gt;
statement line); a note never filed at NIC is voided locally. Every local write happens&lt;br /&gt;
first and NIC last, so a refusal rolls the whole reversal back.&lt;br /&gt;
&lt;br /&gt;
fofo.return_reversal (return_reversal_20260921.sql) records each reversal and, unique&lt;br /&gt;
per return item, makes it once-only. Also adds cancelled=0 to the RETURNS_CN branches of&lt;br /&gt;
the account statement queries, without which a cancelled note keeps crediting the&lt;br /&gt;
statement - no current effect, no RETURNS note is cancelled today.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ReturnReversal.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/return_reversal_20260921.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37776</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37776</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37769 – fix(movement): receive a movement invoice only against its own PO, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(movement): receive a movement invoice only against its own PO, stop auto-closing movements, cancel reduces the PO line&lt;br /&gt;
&lt;br /&gt;
- GRN: movement invoice resolves invoice -&gt; orders -&gt; transaction -&gt; its own movement PO (or a receive-only PO&lt;br /&gt;
  from the billing warehouse); supplier/warehouse keyed at entry must match; scanned IMEIs must be the billed ones&lt;br /&gt;
- Cancelling an unbilled movement order takes its qty off the PO line; PO CLOSED/PRECLOSED once nothing is open&lt;br /&gt;
- reopenedAt removed (movements no longer auto-close); PO records createdBy&lt;br /&gt;
- SupplierStateResolver: a supplier&apos;s state is derived from its GSTIN on save&lt;br /&gt;
- sql: add_po_created_by (applied), drop_po_reopened_at (run AFTER fofo/cron/web deploy)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/WarehousePurchaseOrder.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InvoiceServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SupplierStateResolver.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_po_created_by_20260924.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/drop_po_reopened_at_20260924.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/SupplierStateResolverTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37769</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37769</guid></item>
<item><pubDate>Fri, 18 Sep 2026 05:07:16 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37715 – SD credit: stop read paths writing utilized_limit - the SD ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;SD credit: stop read paths writing utilized_limit - the SD Credit admin page and V2 getLoans mutated managed SDCreditRequirement entities to show recomputed utilization, so Hibernate dirty-checking flushed an UPDATE per partner at commit; fofo now feeds the view from display maps and getLoans detaches before the display write, leaving output identical&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SDCreditRequirementRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SDCreditRequirementRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SDCreditController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/sd-credit-requirement-row.vm&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSDCreditController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37715</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37715</guid></item>
<item><pubDate>Fri, 18 Sep 2026 04:37:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37709 – Cancelling a movement&apos;s last order now closes its purchase order ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Cancelling a movement&apos;s last order now closes its purchase order&lt;br /&gt;
&lt;br /&gt;
An internal movement is raised as a purchase order and a transaction together, but only the&lt;br /&gt;
transaction was ever cancelled. The PO stayed open and read as live work until the auto-close&lt;br /&gt;
sweep aged it out days later - and that sweep writes CLOSED, which is what a PO that actually&lt;br /&gt;
received its stock gets. Eight movements raised between 15 and 17 September sat this way, 59&lt;br /&gt;
units and Rs 10.68 lakh, every one cancelled the same day it was raised because the model or&lt;br /&gt;
colour was discontinued.&lt;br /&gt;
&lt;br /&gt;
refundOrder now pre-closes the movement PO once every order on its transaction is refunded -&lt;br /&gt;
every one, because a transaction can carry several and the movement is only over when the last&lt;br /&gt;
goes. PRECLOSED, not CLOSED: nothing was received, and the difference is what keeps it&lt;br /&gt;
distinguishable from a real completion in every report that reads the status.&lt;br /&gt;
&lt;br /&gt;
Refunds reaching here are already validated as never billed, so no dispatched stock is involved&lt;br /&gt;
and nothing is closed out from under stock in transit. Both lookups it needs already existed.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37709</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37709</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:52:54 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37644 – Cron batch infra: count real SUCCESS rows instead of deriving ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Cron batch infra: count real SUCCESS rows instead of deriving them, add INCOMPLETE status for runs that died mid-loop, stale-batch reaper, admin force-finalize; markItemSuccess joins the work transaction&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/transaction/CronBatchStatus.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/cron/CronBatchService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/CronBatchAdminController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37644</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37644</guid></item>
<item><pubDate>Fri, 11 Sep 2026 20:40:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37600 – Replace entity loads with scalar aggregates in the investment sweep ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Replace entity loads with scalar aggregates in the investment sweep&lt;br /&gt;
&lt;br /&gt;
Order.lineItem is a ManyToOne with FetchType.EAGER, so getInTransitOrders() and&lt;br /&gt;
selectPendingGrnOrders() pulled ~6,865 Order entities plus a LineItem for each&lt;br /&gt;
into the session every two minutes - all dirty-checked at flush - when the sweep&lt;br /&gt;
only reads getRetailerId() and getTotalAmount(). That, plus ~1,690 FofoStore and&lt;br /&gt;
~984 PartnerInvestment rows, put roughly 17,000 entities in one session per pass&lt;br /&gt;
and is most of the ~10s each sweep was taking.&lt;br /&gt;
&lt;br /&gt;
Adds two scalar named queries returning (retailerId, sum(totalAmount)) grouped by&lt;br /&gt;
partner. A projection never hydrates the entity, so the eager association never&lt;br /&gt;
fires - about 13,700 entities become ~1,000 rows. The predicates copy&lt;br /&gt;
selectOrders(ids, pendingOrderStatus) and selectPendingGrnOrders(ids) exactly,&lt;br /&gt;
including the SD_START_DATE floor, and the comment on the named queries says to&lt;br /&gt;
change them together.&lt;br /&gt;
&lt;br /&gt;
Deliberately NOT done by making lineItem lazy: that mapping is shared by every&lt;br /&gt;
Order consumer in the codebase and flipping it globally is a far wider change than&lt;br /&gt;
this needs.&lt;br /&gt;
&lt;br /&gt;
Entity-returning variants are untouched for their existing callers. Drops the now&lt;br /&gt;
unused sumOrderAmounts helper and the TransactionService dependency.&lt;br /&gt;
&lt;br /&gt;
Not a fix for a problem - the sweep was comfortably inside its 120s window at ~8%&lt;br /&gt;
duty. It removes waste that would matter if the cadence were ever shortened.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentSweepService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37600</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37600</guid></item>
<item><pubDate>Fri, 11 Sep 2026 17:29:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37588 – Serve partner investment from a 2-minute snapshot instead of a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 17 file(s) modified&lt;/strong&gt;&lt;br/&gt;Serve partner investment from a 2-minute snapshot instead of a 3-hour cache&lt;br /&gt;
&lt;br /&gt;
getInvestment() was @Cacheable on a 3-hour Redis cache that addAmountToWallet&lt;br /&gt;
evicted but consumeAmountFromWallet did not. A partner whose advance payment was&lt;br /&gt;
swept straight to a loan had the money counted twice - once as a still-cached&lt;br /&gt;
wallet balance, once as the reduced utilisation - overstating their credit limit&lt;br /&gt;
by the payment x their tier until the cache expired.&lt;br /&gt;
&lt;br /&gt;
Replaced with fofo.partner_investment, refreshed every 2 minutes by&lt;br /&gt;
PartnerInvestmentSweepService. Every coupled term is read in one pass, so wallet&lt;br /&gt;
and utilisation (and in-stock and aged-Apple) can never come from different&lt;br /&gt;
moments. A shorter TTL would only have made the error rarer - it scales with the&lt;br /&gt;
payment, not the delay.&lt;br /&gt;
&lt;br /&gt;
- PartnerInvestment entity/repository + partner_investment_snapshot.sql&lt;br /&gt;
- PartnerInvestmentSweepService: 9 batched reads, stores base_value for change&lt;br /&gt;
  detection, refreshes aged-Apple for partners whose stock moved intra-day&lt;br /&gt;
- getInvestment/getInvestmentsForFofoStores both read the snapshot, so the two&lt;br /&gt;
  paths no longer disagree; live compute retained as fallback&lt;br /&gt;
- selectActivatedStockAmountByFofoIds: batches an N+1 that cost 233ms x 1690&lt;br /&gt;
  partners (6.6 min -&gt; 1.0 s)&lt;br /&gt;
- getFirstBillingDates: batches another N+1 (4.6 s -&gt; 0.67 s)&lt;br /&gt;
- selectPendingGrnOrders(List) now applies the same SD_START_DATE floor as the&lt;br /&gt;
  single-partner overload; the two were reporting different GRN-pending&lt;br /&gt;
- selectPartnerStockValueMap takes excludeActivated: an activated Apple handset&lt;br /&gt;
  held past the aging window was added once to in-stock and subtracted twice&lt;br /&gt;
  (activated stock, then the aged haircut). 90 units, 24 partners, Rs 65.19 lakh&lt;br /&gt;
  double-deducted. Live-demo passes false - no overlap there.&lt;br /&gt;
- applyManualAdjustment: routes the two hand-rolled admin wallet adjustments&lt;br /&gt;
  through WalletServiceImpl so they take the FOR UPDATE lock&lt;br /&gt;
- add_idx_order_grn_pending.sql: covering index, GRN query 1320ms -&gt; 514ms&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/InventoryItem.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PartnerInvestmentRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PartnerInvestmentRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentSweepService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_idx_order_grn_pending.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/partner_investment_snapshot.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37588</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37588</guid></item>
<item><pubDate>Tue, 18 Aug 2026 18:31:10 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37349 – super retailer club 5 live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;super retailer club 5 live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37349</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37349</guid></item>
<item><pubDate>Tue, 18 Aug 2026 18:26:37 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37348 – super retailer club 5 live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;super retailer club 5 live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/DashboardController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37348</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37348</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:44:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37240 – Amend cancelled-doc filtering (r37239): hide only cancelled docs WITHOUT a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Amend cancelled-doc filtering (r37239): hide only cancelled docs WITHOUT a CN_CANCELLATION reversal pairing. The 513 May-2026 cancelled CNs must stay visible so statements net original+cancellation (21 pairs cross months); NIC-cancelled docs with no reversal doc (cancel+reissue flow) are hidden everywhere&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37240</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37240</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:39:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37239 – Exclude cancelled credit notes from statement and CN-list queries (selectAll, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Exclude cancelled credit notes from statement and CN-list queries (selectAll, selectByMarginMonth, selectMarginsTypeByMonth): cancelled docs must not appear in partner statements or listings&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37239</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37239</guid></item>
<item><pubDate>Tue, 14 Jul 2026 15:07:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37089 – Optimize partnerPerformance data access: fofoId-scoped + month-bucketed query variants  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 13 file(s) modified&lt;/strong&gt;&lt;br/&gt;Optimize partnerPerformance data access: fofoId-scoped + month-bucketed query variants&lt;br /&gt;
&lt;br /&gt;
- Order: fofoId-scoped billing-avg named queries (replace all-partner scan+filter)&lt;br /&gt;
- MonthlyTarget: selectByDatesAndFofoId batches 7 per-month lookups into one&lt;br /&gt;
- SchemeInOut/OfferPayout: month-bucketed ...ByMonth earnings queries collapsing the&lt;br /&gt;
  per-month loop; new MonthlyBrandIncomeModel / MonthlyOfferPayoutModel&lt;br /&gt;
All additive; existing shared queries and their callers unchanged.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyBrandIncomeModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyOfferPayoutModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/MonthlyTargetRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/MonthlyTargetRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37089</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=37089</guid></item>
<item><pubDate>Thu, 02 Jul 2026 17:31:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36999 – Price-hike deduction (self-contained): revert hike logic from price-drop flow + ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;Price-hike deduction (self-contained): revert hike logic from price-drop flow + remove deduct_on_hike flag; add GRN hook (PurchaseServiceImpl, before schemes) and on-demand executor endpoint that debit under-charged units billed in the hike&apos;s [affected_on, created_on] window. Idempotent per (hike, imei).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/config/AsyncConfig.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/PriceDrop.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/PriceDropRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/PriceDropRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/pricecircular/PriceCircularService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/pricing/PriceDropServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/pricing/PriceHikeService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/pricing/PriceHikeServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/pricing/PriceHikeWorker.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/resources/sql/add_deduct_on_hike_to_price_drop.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36999</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36999</guid></item>
<item><pubDate>Wed, 01 Jul 2026 12:34:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36972 – changeList</title><description>&lt;div&gt;&lt;strong&gt;ranu – 20 file(s) modified&lt;/strong&gt;&lt;br/&gt;changeList&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LoanStatement.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/ReturnOrderInfo.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/UserWalletHistory.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/BrandWiseModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ReturnOrderInfoRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ReturnOrderInfoRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletHistoryRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletHistoryRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36972</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36972</guid></item>
<item><pubDate>Tue, 30 Jun 2026 15:22:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36958 – Flagship credit: fire interest-free limits at billing + per-IMEI conversion ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 12 file(s) modified&lt;/strong&gt;&lt;br/&gt;Flagship credit: fire interest-free limits at billing + per-IMEI conversion&lt;br /&gt;
&lt;br /&gt;
- createLoanForBilling now detects flagship lines inside the billing transaction (fixes the&lt;br /&gt;
  REQUIRES_NEW visibility bug where flagship detection re-queried uncommitted invoice_number and&lt;br /&gt;
  never fired). Creates one combined flagship limit (is_flagship=1, limit_block=1, 30-day deadline)&lt;br /&gt;
  plus one transaction.loan_imei row per device.&lt;br /&gt;
- convertFlagshipOnSale / IMEI activation now convert only the sold device&apos;s slice (matched by IMEI),&lt;br /&gt;
  so same-model siblings and other billing tranches keep their interest-free window; full convert at&lt;br /&gt;
  30-day expiry. Lock order aligned (loan -&gt; loan_imei) to avoid sale/expiry deadlock.&lt;br /&gt;
- New transaction.loan_imei table + LoanImei entity/repository (migration_loan_imei_table.sql).&lt;br /&gt;
- selectAllLoansByInvoice: PurchaseReturn now settles BOTH the real loan and the flagship limit on a&lt;br /&gt;
  flagship-invoice return (prevents credit leak from a stranded limit).&lt;br /&gt;
- Cap guard (flagship credit never exceeds amount drawn) and robust limit settlement (paisa threshold&lt;br /&gt;
  instead of exact float equality).&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LoanImei.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanImeiRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanImeiRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/OrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_loan_imei_table.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36958</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36958</guid></item>
<item><pubDate>Mon, 22 Jun 2026 18:16:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36898 – HID allocation: batch the requested-allocations screen (catalog-filtered HID query + ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;HID allocation: batch the requested-allocations screen (catalog-filtered HID query + batched billed/activated serial lookups) and add approved-list pagination (50/page) reusing GenericRepository paginated+count helpers&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOpeningStock.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36898</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36898</guid></item>
<item><pubDate>Mon, 22 Jun 2026 15:00:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36894 – HID allocation: requested qty is now an additional one-time allowance ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;HID allocation: requested qty is now an additional one-time allowance (purchase-limit override, HID target unchanged); add approved_by column; add 5-day billed/activated serial lookups for the edit screen&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RequestedHidAllocation.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_requested_hid_allocation_approved_by.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36894</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36894</guid></item>
<item><pubDate>Tue, 16 Jun 2026 12:41:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36850 – Account statement: anchor split-child pending indent to transaction root (any ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Account statement: anchor split-child pending indent to transaction root (any depth)&lt;br /&gt;
&lt;br /&gt;
selectPendingIndentWalletAmount now dates any split order off the split-chain ROOT&apos;s&lt;br /&gt;
createTimestamp via MIN(createTimestamp) over transactionId, replacing the one-level&lt;br /&gt;
originalOrderId parent hop (r36830). All orders of a transaction share one wallet debit&lt;br /&gt;
posted at the root order&apos;s creation, so this resolves the root at any split depth and keeps&lt;br /&gt;
multi-level split children in pending indent from the debit date. Fixes account-statement&lt;br /&gt;
FLOAT DIFF for multi-level split chains (e.g. GERMAN UPBLY836 +27,998 -&gt; 0). Correlated MIN&lt;br /&gt;
is backed by ix_order_transaction_id.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36850</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36850</guid></item>
<item><pubDate>Thu, 11 Jun 2026 14:59:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36830 – Account statement: anchor split-child pending indent to originalOrderId parent date ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Account statement: anchor split-child pending indent to originalOrderId parent date&lt;br /&gt;
&lt;br /&gt;
selectPendingIndentWalletAmount now dates a quantity-split child order (originalOrderId&lt;br /&gt;
set) off its parent&apos;s createTimestamp, so the owed split-out quantity stays in pending&lt;br /&gt;
indent from the parent&apos;s date and bridges the single wallet debit to the later billing&lt;br /&gt;
across a month boundary. Fixes account-statement FLOAT DIFF gaps for partners with&lt;br /&gt;
month-end order splits. One-level resolution (parents are chain roots).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36830</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36830</guid></item>
<item><pubDate>Fri, 05 Jun 2026 13:01:11 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36790 – Add PO_REJECTED status and release rejected-PO orders from pending indent ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add PO_REJECTED status and release rejected-PO orders from pending indent&lt;br /&gt;
&lt;br /&gt;
Rejected bulk-PO approvals refunded the wallet but left order rows in&lt;br /&gt;
status=0 (PAYMENT_PENDING) with billing/refund NULL, so they were counted&lt;br /&gt;
by pending indent forever and inflated the account-statement closing&lt;br /&gt;
balance with no matching wallet liability.&lt;br /&gt;
&lt;br /&gt;
- OrderStatus.PO_REJECTED(91) new terminal status for approval rejection&lt;br /&gt;
- OrderRepository.cancelRejectedTransactionOrders sets status + refund_timestamp&lt;br /&gt;
  on a rejected transaction&apos;s still-pending orders (side-effect free: wallet&lt;br /&gt;
  already refunded at txn level, these never-processed orders hold no reservation)&lt;br /&gt;
- backfill_po_rejected_orders.sql releases 485 historically-stranded orders&lt;br /&gt;
  (Group A: wallet already refunded). Deploy code before running.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/in/shop2020/model/v1/order/OrderStatus.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/backfill_po_rejected_orders.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36790</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36790</guid></item>
<item><pubDate>Thu, 04 Jun 2026 13:28:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36779 – Fix NPE in selectPendingIndentWalletAmount for all-partners reco: exclude null-retailerId orphan ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix NPE in selectPendingIndentWalletAmount for all-partners reco: exclude null-retailerId orphan orders (which formed a null GROUP BY key) and guard null group sums&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36779</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36779</guid></item>
<item><pubDate>Thu, 04 Jun 2026 13:14:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36778 – Fix account closing queries: cn.created_at -&gt; cn.create_timestamp in selectOpeningAmount (r36719 ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix account closing queries: cn.created_at -&gt; cn.create_timestamp in selectOpeningAmount (r36719 missed it); remove dead single-partner selectOpeningAmount overload; correct pending-indent filter to exclude orders billed-before but refunded-after closingDate&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36778</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36778</guid></item>
<item><pubDate>Thu, 04 Jun 2026 12:20:37 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36774 – Add bulk getLoanOutstandingAtDate (principal+interest per partner at a date) for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add bulk getLoanOutstandingAtDate (principal+interest per partner at a date) for account reco closing&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LoanStatement.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36774</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36774</guid></item>
<item><pubDate>Wed, 03 Jun 2026 18:18:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36769 – Account statement: select the month-end scheme/margin credit notes by margin_month ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Account statement: select the month-end scheme/margin credit notes by margin_month instead of cn_date.&lt;br /&gt;
&lt;br /&gt;
Added CreditNoteRepository.selectByMarginMonth(fofoId, YearMonth) - fofo-scoped, keyed on margin_month passed as a YearMonth so the generic repo matches it as a whole-month range (robust to the stored day). populateData now uses it for the month-end CN block. margin_month is the explicit margin-period field (always populated for MARGINS and CN_CANCELLATION; RETURNS have none and are naturally excluded, consistent with returns being sourced from returnorderinfo).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36769</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36769</guid></item>
<item><pubDate>Tue, 02 Jun 2026 12:09:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36754 – Account statement (Excel): reconcile running balance to net standing (wallet ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Account statement (Excel): reconcile running balance to net standing (wallet + pending indent - loan).&lt;br /&gt;
&lt;br /&gt;
- populateData: categorised lines, scheme/margin shown as month-end MARGINS credit note (CN_CANCELLATION and negative-net CNs rendered as debit notes), interest-accrued line as the standing-moving loan cost, and a net-pending-indent/diff line that lands the running balance on closing.&lt;br /&gt;
- Returns shown individually from returnorderinfo (one credit line per return, against its invoice on refundedAt); billing-query RETURNED/RETURNS_CN suppressed to avoid double count.&lt;br /&gt;
- Exclude PURCHASE and CREDIT_LIMIT/CREDIT_UTILIZED (loan cash legs) from the wallet body.&lt;br /&gt;
- LoanStatementRepository.getInterestAccruedBetween; ReturnOrderInfoRepository.selectReturnsBetween.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LoanStatement.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ReturnOrderInfoRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ReturnOrderInfoRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36754</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36754</guid></item>
<item><pubDate>Wed, 27 May 2026 20:18:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36719 – Add total_amount to credit_note: new column + backfill from lines, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add total_amount to credit_note: new column + backfill from lines, populate at all 5 CN/DN creation points, fix account statement query (cn.created_at -&gt; cn.create_timestamp)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/CreditNote.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36719</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36719</guid></item>
<item><pubDate>Wed, 27 May 2026 18:47:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36713 – PI idempotency fix: original_wallet_amount + order_wallet_adjustment tracking for price drops ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;PI idempotency fix: original_wallet_amount + order_wallet_adjustment tracking for price drops and splits. Modernize statement queries with INVOICE_CANCELLED and RETURNS_CN unions.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/OrderWalletAdjustment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderWalletAdjustmentRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderWalletAdjustmentRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_order_wallet_adjustment.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36713</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36713</guid></item>
<item><pubDate>Wed, 27 May 2026 15:22:22 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36704 – BI report: include INVOICE_CANCELLED (status 90) in refund deductions alongside ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;BI report: include INVOICE_CANCELLED (status 90) in refund deductions alongside RTO_REFUNDED. RTO_REFUNDED is deprecated; INVOICE_CANCELLED is the current cancellation path.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36704</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36704</guid></item>
<item><pubDate>Tue, 26 May 2026 17:31:30 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36691 – fix account statement balance gap: include pending orders with NULL ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix account statement balance gap: include pending orders with NULL billing/refund in getPendingIndentValueMap, fix double query execution in selectOpeningAmount, remove verbose logging in selectDetailsBetween, add indexes for returnorderinfo and returnorder&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_idx_account_statement_perf.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36691</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36691</guid></item>
<item><pubDate>Mon, 18 May 2026 21:25:24 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36591 – Store Image Capture &amp; Pinelabs Affordability Enhancements</title><description>&lt;div&gt;&lt;strong&gt;vikas – 20 file(s) modified&lt;/strong&gt;&lt;br/&gt;Store Image Capture &amp; Pinelabs Affordability Enhancements&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/UpdateFofoStoreLocationRequest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/dto/AffordabilityIssuer.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/dto/ImeiValidationRequest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/dto/ImeiValidationResponse.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/dto/OfferDiscoveryRequest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/dto/Tenure.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsAffordabilityService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsAffordabilityServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsApiConfig.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsAuthServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsDeviceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsDeviceServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsOfferCacheService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/pinelabs/PinelabsOrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/DealsController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMonitorController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPinelabsWebhookController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2DealsController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36591</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36591</guid></item>
<item><pubDate>Sat, 16 May 2026 12:34:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36560 – Flagship credit: sale-time conversion with FOR UPDATE locking and performance ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Flagship credit: sale-time conversion with FOR UPDATE locking and performance optimizations&lt;br /&gt;
&lt;br /&gt;
- convertFlagshipOnSale: partial conversion at billed price when retailer sells flagship stock&lt;br /&gt;
- hasActiveFlagshipLimits: cheap COUNT check to skip catalog lookup for non-flagship partners&lt;br /&gt;
- selectActiveFlagshipLimitBlocksForUpdate: pessimistic lock prevents double-conversion from concurrent sales/cron&lt;br /&gt;
- selectFlagshipLoansForConversion: added FOR UPDATE lock for cron expiry path&lt;br /&gt;
- Batch order fetch instead of per-limit queries&lt;br /&gt;
- Wired into OrderServiceImpl.createOrder after stock update&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/OrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36560</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36560</guid></item>
<item><pubDate>Sat, 16 May 2026 06:18:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36557 – feat: Flagship Credit - 30 interest-free days for flagship models ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat: Flagship Credit - 30 interest-free days for flagship models with billing split, expiry conversion, API-driven T&amp;C&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Catalog.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Loan.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/SDCreditRequirement.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/SDCreditResponseOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/flagship_credit_schema.sql&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/GatewayController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36557</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36557</guid></item>
<item><pubDate>Sat, 16 May 2026 06:09:52 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36553 – fix: prevent concurrent billing race condition - add billingTimestamp check ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix: prevent concurrent billing race condition - add billingTimestamp check in validateOrdersForBilling&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36553</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36553</guid></item>
<item><pubDate>Thu, 14 May 2026 18:02:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36541 – Fix duplicate invoice number: use scalar query to avoid Hibernate ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix duplicate invoice number: use scalar query to avoid Hibernate cache poisoning before FOR UPDATE lock&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36541</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36541</guid></item>
<item><pubDate>Mon, 11 May 2026 15:17:15 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36519 – Fix:First Po</title><description>&lt;div&gt;&lt;strong&gt;aman – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:First Po&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionApprovalRepository.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/OrderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36519</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36519</guid></item>
<item><pubDate>Mon, 11 May 2026 15:16:06 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36518 – Fix:Fix first po and edge case for bulk order</title><description>&lt;div&gt;&lt;strong&gt;aman – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Fix first po and edge case for bulk order&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/InventoryItem.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionApprovalRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/BulkOrderService.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOrderController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseReturnController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36518</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36518</guid></item>
<item><pubDate>Fri, 08 May 2026 22:43:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36502 – DN generation for cancelled MARGINS CNs + fix /A CN ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;DN generation for cancelled MARGINS CNs + fix /A CN prefix extraction NPE&lt;br /&gt;
&lt;br /&gt;
- Add generateDebitNotesForCancelled(List&amp;lt;String&gt;) for explicit CN list&lt;br /&gt;
- Add selectByCreditNoteNumbers repository method&lt;br /&gt;
- Fix GstProService sandbox: use SANDBOX_GST_NUMBER before isGstEnabled check, sandbox buyer details&lt;br /&gt;
- Fix prefix extraction NPE for /A suffixed CN numbers (getCreditNotePdfModel, existingCNMap, extractPrefix)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36502</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2Ftransaction%2F&amp;isdir=1&amp;rev=36502</guid></item>
</channel></rss>