<?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/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 14 May 2026 08:01:35 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Tue, 12 May 2026 17:59:47 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36528 – Notifications APIs for marking notifications as read</title><description>&lt;div&gt;&lt;strong&gt;vikas – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Notifications APIs for marking notifications as read&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/Notification.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/UserCampaign.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/UserCampaignRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/UserCampaignRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/NotificationController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2HomeController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2NotificationController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36528</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36528</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=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36519</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&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=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36518</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36518</guid></item>
<item><pubDate>Sun, 10 May 2026 02:06:27 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36508 – code committed for scheme and offers earning for v2</title><description>&lt;div&gt;&lt;strong&gt;ranu – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;code committed for scheme and offers earning for v2&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/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-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSchemeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SchemeController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36508</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36508</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=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36502</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36502</guid></item>
<item><pubDate>Wed, 06 May 2026 19:37:59 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36482 – V2 Weekly feedback and All Brands API</title><description>&lt;div&gt;&lt;strong&gt;vikas – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;V2 Weekly feedback and All Brands API&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/BrandCategoryRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/BrandCategoryRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/BrandsService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/BrandsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2BrandController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LeadController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36482</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36482</guid></item>
<item><pubDate>Mon, 04 May 2026 19:38:09 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36471 – V2 Profile Update APIs</title><description>&lt;div&gt;&lt;strong&gt;vikas – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;V2 Profile Update APIs&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoPartnerDocument.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/FranchiseeBankAccount.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoPartnerDocumentRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoPartnerDocumentRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/FranchiseeBankAccountService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/FranchiseeBankAccountServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoBankAccountController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPartnerDocumentController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoProfileUpdateController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36471</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36471</guid></item>
<item><pubDate>Mon, 04 May 2026 13:15:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36464 – Add vendor pricing changes Excel download report on Vendor Price ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add vendor pricing changes Excel download report on Vendor Price Circular page. Flat file with Vendor/Date/Model/CatalogId/TP/DP/MOP columns, filterable by vendor. Shows baseline pricing as of start date plus subsequent TP changes within period for all non-internal suppliers.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/inventory/VendorCatalogPricingLog.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/VendorCatalogPricingLogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/VendorCatalogPricingLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/VendorController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/vendor-catalog.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/vendor-price-circular.vm&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoVendorController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36464</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36464</guid></item>
<item><pubDate>Fri, 01 May 2026 11:46:01 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36438 – Fix SD Credit over-utilization: use live loan SUM + row ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix SD Credit over-utilization: use live loan SUM + row lock + sanction guard&lt;br /&gt;
&lt;br /&gt;
- blockLoan: use SELECT FOR UPDATE to prevent concurrent orders from both passing credit check&lt;br /&gt;
- processLoanRequest: replace stored utilized_limit counter with live SUM(pending_amount) from loan table&lt;br /&gt;
- processLoanRequest + getAvailableAmount: only add sanction amount if not already used today&lt;br /&gt;
- Prevents credit limit from going negative due to counter drift or race conditions&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-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=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36438</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36438</guid></item>
<item><pubDate>Fri, 01 May 2026 11:22:17 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36437 – Fix</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/Mongo.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36437</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36437</guid></item>
<item><pubDate>Wed, 29 Apr 2026 16:17:41 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36428 – Fix:Partner Stock Api</title><description>&lt;div&gt;&lt;strong&gt;aman – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Partner Stock Api&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/TagListing.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/TagListingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/TagListingRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/StoreController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36428</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36428</guid></item>
<item><pubDate>Mon, 27 Apr 2026 19:54:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36407 – Sale-return reversal: cancellability gate, CN on approve, INV reject, ROI ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Sale-return reversal: cancellability gate, CN on approve, INV reject, ROI semantics&lt;br /&gt;
&lt;br /&gt;
GstProService.isIrnCancellable(invoiceNumber): predicate extracted from&lt;br /&gt;
the inline 24h check used in cancelInvoiceGst, so callers outside the&lt;br /&gt;
service can decide branching without duplicating the rule. DC and no-IRN&lt;br /&gt;
cases return false — those paths use EWB cancel / credit-note issuance.&lt;br /&gt;
&lt;br /&gt;
PurchaseReturnServiceImpl: split single-phase return-receive into&lt;br /&gt;
submitReceiptForApproval + applyReceipt. Submit persists per-item return&lt;br /&gt;
type on PurchaseReturnItem so apply (called inline on auto-approve, or&lt;br /&gt;
later from refundOrder when finance clicks Process Refund) can replay&lt;br /&gt;
the scan loop without the original itemReturnTypes map.&lt;br /&gt;
&lt;br /&gt;
processInvoiceReturn(autoApprove=true) no longer creates a PRO. Routes&lt;br /&gt;
through new cancelInvoiceFully which calls gstProService.cancelInvoiceGst&lt;br /&gt;
(the canonical IRN-cancel path setting Order.status=INVOICE_CANCELLED)&lt;br /&gt;
and adds wallet credit + warehouse-stock restoration. Cancellations now&lt;br /&gt;
live on Order/EInvoiceDetails screens, not in the returns ledger —&lt;br /&gt;
matches standard ERP practice and the existing cancelInvoiceGst flow.&lt;br /&gt;
&lt;br /&gt;
processInvoiceReturn(autoApprove=false) creates an INV-prefix PRO in&lt;br /&gt;
pending state and calls notifyFinanceApprovalPending (Finance L1+L2&lt;br /&gt;
emails resolved dynamically from PositionRepository).&lt;br /&gt;
&lt;br /&gt;
approveInvoiceReturn now runs applyInvoiceReturnViaCreditNote — raises&lt;br /&gt;
local CreditNote + CreditNoteLine rows (sequential CN# from&lt;br /&gt;
SellerWarehouse), issues CRN at GST via generateCreditNoteIrn, restores&lt;br /&gt;
warehouse stock, populates ReturnOrderInfo (this path IS a customer&lt;br /&gt;
return without DN — ROI is the right anchor), credits wallet. Drops the&lt;br /&gt;
old applyInvoiceReturnEffects helper which mishandled both cancel and&lt;br /&gt;
return-via-CN as the same path.&lt;br /&gt;
&lt;br /&gt;
rejectInvoiceReturn: new method for finance to reject pending INV PROs.&lt;br /&gt;
Sale stands — only stamps reject_timestamp/reject_remark. No inventory,&lt;br /&gt;
no wallet, no GST action, no ROI. Closes the gap where finance had&lt;br /&gt;
Approve as the only option on a pending INV PRO.&lt;br /&gt;
&lt;br /&gt;
refundOrder gains a refund guard (PRO must exist, not refunded, not&lt;br /&gt;
rejected) and applyReceipt-if-needed at the top — Finance&apos;s existing&lt;br /&gt;
Process Refund button now drives approve+refund atomically.&lt;br /&gt;
&lt;br /&gt;
PurchaseReturnOrderRepository.selectByWarehouseIdsAndDateRange: Hibernate&lt;br /&gt;
query for a date-range listing on /return/invoice (default last 30&lt;br /&gt;
days, limit 200).&lt;br /&gt;
&lt;br /&gt;
@Transactional(rollbackFor=Exception.class) at class level —&lt;br /&gt;
ProfitMandiBusinessException is checked, so Spring&apos;s default rollback&lt;br /&gt;
didn&apos;t fire on guard failures, allowing partial commits. Closing that&lt;br /&gt;
silently broken behaviour.&lt;br /&gt;
&lt;br /&gt;
LineItemImei N+1 fix: receiveDebitNoteItems / refundOrder / rejectReturn&lt;br /&gt;
each iterated orders calling selectByLineItemId per row. Switched to the&lt;br /&gt;
existing batch selectByLineItemIds(List).&lt;br /&gt;
&lt;br /&gt;
Email template finance-receipt-approval-pending.vm and SQL migration&lt;br /&gt;
migration_imei_net_margin_modal_api.sql added (registers the&lt;br /&gt;
/getImeiNetMarginModal endpoint in dtr.api and grants access to the&lt;br /&gt;
roles that currently access /order).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnService.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/resources/finance-receipt-approval-pending.vm&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_imei_net_margin_modal_api.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36407</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36407</guid></item>
<item><pubDate>Mon, 27 Apr 2026 17:41:14 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36405 – Fix duplicate SchemeInOut on concurrent GRN: SELECT FOR UPDATE on ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix duplicate SchemeInOut on concurrent GRN: SELECT FOR UPDATE on inventory_item before createSchemeInOut to serialise concurrent GRN calls per IMEI&lt;/div&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/service/scheme/SchemeServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36405</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36405</guid></item>
<item><pubDate>Mon, 27 Apr 2026 14:57:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36403 – Add catalog.catalog_monitor_type table, entity, and repository for per-catalog focused/normal monitor ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add catalog.catalog_monitor_type table, entity, and repository for per-catalog focused/normal monitor type tagging&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/CatalogMonitorType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/MonitorType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CatalogMonitorTypeRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CatalogMonitorTypeRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/catalog_monitor_type.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36403</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36403</guid></item>
<item><pubDate>Mon, 27 Apr 2026 14:52:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36399 – Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked</title><description>&lt;div&gt;&lt;strong&gt;amit – 21 file(s) modified&lt;/strong&gt;&lt;br/&gt;Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked&lt;/div&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/service/BidServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OtpProcessor.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/TrialServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/AuthServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/CustomerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/EmailService.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/mail/MailOutboxService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/BulkOrderService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PerformanceServiceImpl.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/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/scheduled/SDCreditScheduler.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/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/UserServiceImpl.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=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36399</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36399</guid></item>
<item><pubDate>Mon, 27 Apr 2026 14:38:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36397 – Scheme item windowing: add startDate/endDate per scheme_item.  Each fofo.scheme_item ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Scheme item windowing: add startDate/endDate per scheme_item.&lt;br /&gt;
&lt;br /&gt;
Each fofo.scheme_item row now carries an optional [start_date, end_date]&lt;br /&gt;
window so the same (scheme_id, catalog_id) pair can be applicable for&lt;br /&gt;
different date ranges. Backward compatible: NULL window = always active.&lt;br /&gt;
&lt;br /&gt;
- SchemeItem entity: composite (schemeId, catalogId) PK -&gt; surrogate&lt;br /&gt;
  long id (IDENTITY), unique (catalog_id, scheme_id, start_date, end_date),&lt;br /&gt;
  audit cols (updatedBy, updatedOn).&lt;br /&gt;
- Scheme + TagListing named queries: gated by&lt;br /&gt;
  &apos;(si.start_date is null or :onDate between si.start_date and si.end_date)&apos;.&lt;br /&gt;
- SchemeItemRepository: + selectById, selectBySchemeId,&lt;br /&gt;
  existsOverlapping (half-open, with self-exclude), selectItemsOutsideWindow.&lt;br /&gt;
- SchemeService: + updateSchemeItemWindow / addSchemeItemWithDates /&lt;br /&gt;
  clampSchemeItems with containment + overlap validation; drop dead&lt;br /&gt;
  getTotalMargin.&lt;br /&gt;
- SchemeServiceImpl.processSchemeOut: pin scheme resolution to each&lt;br /&gt;
  IMEI&apos;s GRN billing date (Purchase -&gt; Order.billingTimestamp via&lt;br /&gt;
  PurchaseService.getBillingDateOfPurchase) instead of fofoOrder&lt;br /&gt;
  createTimestamp, aligning OUT with the existing IN behaviour.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Scheme.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/TagListing.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeItem.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/scheme/SchemeService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/scheme/SchemeServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36397</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36397</guid></item>
<item><pubDate>Fri, 24 Apr 2026 16:44:47 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36376 – Feat:Cart Api Implementation</title><description>&lt;div&gt;&lt;strong&gt;aman – 43 file(s) modified&lt;/strong&gt;&lt;br/&gt;Feat:Cart Api Implementation&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/BlockerType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartBlocker.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartContent.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartEventType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartHydrationService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartHydrationServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartLifecycleStatus.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartReservationConstants.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartReservationService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartReservationServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartValidationService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartValidationServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CartWarning.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CheckoutValidationResult.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/CouponState.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/HydratedCart.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/HydratedLine.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/InsuranceBinding.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/LineReservation.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/LineStatus.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/LiveInventory.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/LivePrice.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/OpenCartValidationResult.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/PricingBreakup.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/Reservation.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/SaleType.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/TaxBreakup.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/WarningType.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/Cart.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/CartLine.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/dtr/AccountType.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/UserAccountRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/UserAccountRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CartRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CartRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-web/docs&lt;br /&gt;+ /trunk/profitmandi-web/docs/tests&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/OrderController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/StoreController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2BillingController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2CartController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2OrderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36376</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36376</guid></item>
<item><pubDate>Fri, 24 Apr 2026 15:23:35 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36374 – schemes and offer for v2 version</title><description>&lt;div&gt;&lt;strong&gt;ranu – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;schemes and offer for v2 version&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Scheme.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/OfferRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/OfferRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/SchemeRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/SchemeRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOfferController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSchemeController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36374</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36374</guid></item>
<item><pubDate>Fri, 24 Apr 2026 12:46:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36372 – Wallet: SELECT FOR UPDATE on user_wallet mutations to close lost-update ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Wallet: SELECT FOR UPDATE on user_wallet mutations to close lost-update hole&lt;br /&gt;
&lt;br /&gt;
addAmountToWallet/consumeAmountFromWallet(x2)/rollbackAmountFromWallet all&lt;br /&gt;
follow a read-modify-write pattern on user_wallet with no pessimistic lock&lt;br /&gt;
and no @Version, so two concurrent tx for the same partner both read the&lt;br /&gt;
same pre-snapshot amount, compute their own deltas, and commit - the second&lt;br /&gt;
UPDATE silently overwrites the first&apos;s credit/debit. user_wallet_history&lt;br /&gt;
still gets both rows, so balance drifts vs sum(history) with no exception.&lt;br /&gt;
&lt;br /&gt;
Replaces the misnamed (and body-broken) selectByIdForUpdate - whose&lt;br /&gt;
implementation was a plain selectById, not a lock - with a new&lt;br /&gt;
selectByRetailerIdForUpdate that issues SELECT ... FOR UPDATE via&lt;br /&gt;
LockModeType.PESSIMISTIC_WRITE, mirroring the idiom already used in&lt;br /&gt;
GenericRepositoryImpl.selectByIdForUpdate and OrderRepositoryImpl.&lt;br /&gt;
Preserves the create-on-missing behavior of selectByRetailerId so&lt;br /&gt;
first-time partners keep working.&lt;br /&gt;
&lt;br /&gt;
Switches the four read-modify-write call sites in WalletServiceImpl from&lt;br /&gt;
selectByRetailerId to the new locking variant. Read-only callers&lt;br /&gt;
(getUserWalletByUserId, getUserWalletHistoryByUserId, etc.) keep using&lt;br /&gt;
the non-locking selectByRetailerId - MVCC snapshot reads stay non-blocking&lt;br /&gt;
for display/statement endpoints.&lt;br /&gt;
&lt;br /&gt;
Also drops the stale commented-out selectByIdForUpdate line in&lt;br /&gt;
rollbackAmountFromWallet and removes the broken method from the&lt;br /&gt;
UserWalletRepository interface / impl - it had zero live callers.&lt;br /&gt;
&lt;br /&gt;
Blast radius: every write call to these three wallet methods now holds&lt;br /&gt;
an X-lock on the target user_wallet row for the rest of the outer tx.&lt;br /&gt;
Concurrent write tx for the same partner will briefly serialize at the&lt;br /&gt;
SELECT FOR UPDATE - correct serialization instead of silent drift.&lt;br /&gt;
Read-only traffic is unaffected (MVCC).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36372</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36372</guid></item>
<item><pubDate>Fri, 24 Apr 2026 12:10:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36371 – HDFC webhook: INSERT IGNORE on hdfc_payment to fix concurrent-duplicate 500 ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;HDFC webhook: INSERT IGNORE on hdfc_payment to fix concurrent-duplicate 500 storm&lt;br /&gt;
&lt;br /&gt;
Replaces persist() with a native INSERT IGNORE so concurrent same-UTR webhook&lt;br /&gt;
retries serialize on the unique-index check, and the loser gets a 0-row no-op&lt;br /&gt;
(warning, not exception). Outer @Transactional session stays clean, Spring&lt;br /&gt;
commits normally, HDFC sees 200 on both the winner (Success) and the loser&lt;br /&gt;
(Duplicate) - retry amplification ends.&lt;br /&gt;
&lt;br /&gt;
Flow:&lt;br /&gt;
  persist(hdfcPayment)  -&gt;  insertIgnore(hdfcPayment) + selectByUtrNo(utr)&lt;br /&gt;
  - inserted == 1: proceed with wallet / sidbi side-effects using fetched id&lt;br /&gt;
  - inserted == 0: respond Duplicate, skip side-effects (owned by winning tx)&lt;br /&gt;
  - defensive: log warn if insertIgnore returned 0 but selectByUtrNo finds&lt;br /&gt;
    no row (could mean IGNORE swallowed a non-duplicate issue like truncation)&lt;br /&gt;
&lt;br /&gt;
Also drops HdfcProcessingHelper (r36366) which used REQUIRES_NEW for the same&lt;br /&gt;
goal; that approach required a second JDBC connection and is no longer needed&lt;br /&gt;
with SQL-level idempotency.&lt;br /&gt;
&lt;br /&gt;
Does NOT touch the wallet-side lost-update hole (user_wallet read-modify-write&lt;br /&gt;
without FOR UPDATE). That is a separate commit.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/HdfcPaymentRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/HdfcPaymentRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/HdfcProcessingHelper.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/HdfcPaymentController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36371</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36371</guid></item>
<item><pubDate>Wed, 22 Apr 2026 17:16:50 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36356 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm rating dashboard view commited&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RbmRating.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RbmRatingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RbmRatingRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36356</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36356</guid></item>
<item><pubDate>Wed, 22 Apr 2026 16:17:20 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36354 – DB-backed concurrent-run guard for OfferBatchService.processOfferWithBatch. Adds CronBatchRepository.selectRunningForOffer(offerId) — single HQL ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;DB-backed concurrent-run guard for OfferBatchService.processOfferWithBatch. Adds CronBatchRepository.selectRunningForOffer(offerId) — single HQL query for RUNNING cron_batch rows named processSellinOffer-N or processActivationOffer-N. OfferBatchService early-returns (with a log) if any such row exists. Covers the three gaps the in-memory guard can&apos;t: JVM restart, multi-JVM, cron CLI + user click racing. Applies to both sync (cron --processOffersWithBatch) and async (/offer/process HTTP) paths.&lt;/div&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/offers/OfferBatchService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36354</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36354</guid></item>
<item><pubDate>Wed, 22 Apr 2026 15:00:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36351 – Add CronBatchRepository.selectRecent(limit) and CronBatchItemRepository.selectByBatchId(batchId) for admin batch review UI. selectRecent ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add CronBatchRepository.selectRecent(limit) and CronBatchItemRepository.selectByBatchId(batchId) for admin batch review UI. selectRecent returns most-recent-first via selectAllOrderByDescPaginated(&apos;id&apos;); selectByBatchId uses selectAllByEqualOrderByDesc.&lt;/div&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;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36351</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36351</guid></item>
<item><pubDate>Wed, 22 Apr 2026 11:46:23 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36336 – sales dispostion updated</title><description>&lt;div&gt;&lt;strong&gt;ranu – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;sales dispostion updated&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RbmRating.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SalesRating.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RbmRatingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RbmRatingRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SalesRatingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SalesRatingRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36336</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36336</guid></item>
<item><pubDate>Tue, 21 Apr 2026 16:10:52 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36330 – Fix getWarehousewiseCollection: add timestamp index, drop misleading FORCE INDEX  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix getWarehousewiseCollection: add timestamp index, drop misleading FORCE INDEX&lt;br /&gt;
&lt;br /&gt;
EXPLAIN on hadb1 showed the query was full-scanning transaction.userwallethistory&lt;br /&gt;
(1.9M rows) despite FORCE INDEX (idx_uwh_wallet_timestamp). The composite&lt;br /&gt;
(wallet_id, timestamp) needs an equality predicate on wallet_id to be usable,&lt;br /&gt;
but this query filters by uwh.timestamp at the scan level with no wallet_id —&lt;br /&gt;
driven from fofo_store via joins. Optimizer correctly rejected the hint and&lt;br /&gt;
picked ALL. Query averaged 773 ms across 4,095 calls (3,167 s cumulative).&lt;br /&gt;
&lt;br /&gt;
- add_idx_uwh_timestamp_reftype.sql: new index on (timestamp, reference_type)&lt;br /&gt;
  so the range scan narrows by time and reference_type filters inline.&lt;br /&gt;
- UserWalletRepositoryImpl:110: drop FORCE INDEX hint; let optimizer choose.&lt;br /&gt;
  Updated comment to explain why.&lt;br /&gt;
&lt;br /&gt;
Left PartnerCollectionPlanRepositoryImpl.getCommitmentCollectionSummary:117&lt;br /&gt;
untouched — that query drives from pcp → userwallet → userwallethistory and&lt;br /&gt;
the join has wallet_id = uw.id known at scan, so (wallet_id, timestamp) is&lt;br /&gt;
the right index there; FORCE INDEX remains appropriate.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_idx_uwh_timestamp_reftype.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36330</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36330</guid></item>
<item><pubDate>Tue, 21 Apr 2026 14:55:02 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36328 – Remove @Cacheable from getFirstBillingDate — LocalDateTime + Redis incompatibility  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove @Cacheable from getFirstBillingDate — LocalDateTime + Redis incompatibility&lt;br /&gt;
&lt;br /&gt;
The redisOneDayCacheManager (CacheConfig.java:109-116) is configured with&lt;br /&gt;
enableDefaultTyping(NON_FINAL, JsonTypeInfo.As.PROPERTY). That embeds type info&lt;br /&gt;
as a JSON object property, which is only valid for objects ({}) — not arrays.&lt;br /&gt;
JavaTimeModule serializes LocalDateTime as an array ([y,m,d,h,m,s]), so the&lt;br /&gt;
write drops type metadata and reads fail with MismatchedInputException&lt;br /&gt;
(&apos;need JSON String that contains type id&apos;).&lt;br /&gt;
&lt;br /&gt;
The underlying NamedQuery (Order.selectFirstBillingByRetailer) uses MIN() on&lt;br /&gt;
the idx_order_customer_billing composite index — EXPLAIN reports &apos;Select tables&lt;br /&gt;
optimized away&apos;. Per-call latency is microseconds even uncached, so Redis&lt;br /&gt;
caching was optimization rather than requirement. Simpler to drop the annotation&lt;br /&gt;
than reconfigure the shared cache manager.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36328</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36328</guid></item>
<item><pubDate>Tue, 21 Apr 2026 13:35:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36327 – Fix currentinventorysnapshot/currentreservationsnapshot deadlock and optimize getFirstBillingDate  - SaholicInventoryServiceImpl: enforce ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix currentinventorysnapshot/currentreservationsnapshot deadlock and optimize getFirstBillingDate&lt;br /&gt;
&lt;br /&gt;
- SaholicInventoryServiceImpl: enforce reservation-snapshot → inventory-snapshot&lt;br /&gt;
  lock order in addReservationCount and reduceReservationCount via explicit&lt;br /&gt;
  session.flush(); eliminates the hadb1 deadlock recorded 2026-04-20 19:43:24&lt;br /&gt;
  between these two methods&apos; opposite-order writes.&lt;br /&gt;
- SaholicInventorySnapshot: add @DynamicUpdate so UPDATEs only rewrite the&lt;br /&gt;
  changed column instead of all three — cuts redo/binlog write amplification&lt;br /&gt;
  and makes deadlock dumps pinpoint the actual business path.&lt;br /&gt;
- TransactionRepositoryImpl.getFirstBillingDate: replace filesort-over-all-billed-&lt;br /&gt;
  orders with MIN(billingTimestamp) via new Order.selectFirstBillingByRetailer&lt;br /&gt;
  named query (Select tables optimized away). Preserves 2017-01-01 cutoff and&lt;br /&gt;
  null-for-unbilled-partner semantics.&lt;br /&gt;
- Add @Cacheable on redisOneDayCacheManager keyed by fofoId (unless null) so the&lt;br /&gt;
  8 call sites stop piling up identical SELECTs on the order table — this was&lt;br /&gt;
  the query pinning Hikari slots at 150-460s each in recent processlist dumps.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/inventory/SaholicInventorySnapshot.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/transaction/TransactionRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/SaholicInventoryServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36327</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36327</guid></item>
<item><pubDate>Mon, 20 Apr 2026 19:11:40 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36318 – Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + Debit Notes) into FOFO&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ImeiVerificationResult.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/PurchaseReturn.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/PurchaseReturnSettlementEntity.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseReturnRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseReturnRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseReturnSettlementRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseReturnSettlementRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_unsettled_purchase_return_menu.sql&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/create-purchase-return.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/unsettled-purchase-returns.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36318</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36318</guid></item>
<item><pubDate>Mon, 20 Apr 2026 19:00:06 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36316 – Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + Debit Notes) into FOFO&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/DebitNoteType.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PurchaseReturnController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/business/return.js&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36316</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36316</guid></item>
<item><pubDate>Mon, 20 Apr 2026 00:16:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36309 – Route phantom orders to per-region Dummy warehouse; complete applyColorChange rename ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route phantom orders to per-region Dummy warehouse; complete applyColorChange rename&lt;br /&gt;
&lt;br /&gt;
- Phantom allocations in getFulfillments route to the Dummy/GOOD/OURS warehouse under&lt;br /&gt;
  vendor 40 for the partner&apos;s billing region. WarehouseServiceImpl.ensureDummyForBillingRegion&lt;br /&gt;
  returns the existing Dummy or creates one on the fly. createVendorWarehouse hook auto-seeds&lt;br /&gt;
  a Dummy when a new billing region&apos;s first warehouse is created.&lt;br /&gt;
- WarehouseRepository.selectByVendorBillingAndType supports the lookup.&lt;br /&gt;
- OrderService interface: rename notifyColorChange -&gt; applyColorChange to match r36305&apos;s impl&lt;br /&gt;
  rename (r36305 renamed only the impl, leaving trunk inconsistent).&lt;br /&gt;
- PurchaseOrderServiceImpl: remove auto-rebalance on PO receive. Real-wh rebalancing and&lt;br /&gt;
  phantom-to-real binding are now ops-driven via the order billing UI&lt;br /&gt;
  (changeFulfillmentWarehouse / applyColorChange / moveOrdersFulfilmentWarehouse).&lt;br /&gt;
- migration_dummy_warehouses.sql: idempotent seeding script for 14 Dummy/GOOD/OURS warehouses&lt;br /&gt;
  under vendor 40, one per WAREHOUSE_MAP billing region that lacked one. Already applied to&lt;br /&gt;
  hadb1 and local.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/WarehouseRepository.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/warehouse/BrandRegionMappingRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/OrderService.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/WarehouseService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_dummy_warehouses.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36309</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36309</guid></item>
<item><pubDate>Sun, 19 Apr 2026 07:57:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36305 – Batch processing infrastructure + per-partner offer processing + partner limit ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 21 file(s) modified&lt;/strong&gt;&lt;br/&gt;Batch processing infrastructure + per-partner offer processing + partner limit optimization + investment cache eviction on billing/payment/cancellation with 3hr TTL&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/config/CacheConfig.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/CronBatch.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/CronBatchItem.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/transaction/CronBatchItemStatus.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/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferPartnerPayoutData.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferService.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/offers/SellinPartnerPayoutData.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/PartnerInvestmentService.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/transaction/PartnerLimitUpdateData.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/wallet/WalletServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/create_cron_batch_tables.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36305</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36305</guid></item>
<item><pubDate>Fri, 17 Apr 2026 18:15:45 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36302 – Add 2-min cache on Catalog.selectAllGoodStockBrandWise  Hottest query right now ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add 2-min cache on Catalog.selectAllGoodStockBrandWise&lt;br /&gt;
&lt;br /&gt;
Hottest query right now on the DB: 3851 execs x 297ms = ~1143 s over&lt;br /&gt;
2.9h uptime. Fired once per target-slab in TodayOfferServiceImpl&apos;s&lt;br /&gt;
findAllTodayOffer loop whenever the slab has no explicit catalog IDs.&lt;br /&gt;
&lt;br /&gt;
Input is a single String brand (only ~10 brands), output is a list of&lt;br /&gt;
Catalog entities with no associations (all primitive/String columns,&lt;br /&gt;
no lazy-init risk) and the caller only invokes getBrand/getId on the&lt;br /&gt;
results. Safe to cache in the existing in-memory Caffeine&lt;br /&gt;
twoMintimeoutCacheManager.&lt;br /&gt;
&lt;br /&gt;
Default Spring key (= brand) is stable; unless skips empty results.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CatalogRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36302</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36302</guid></item>
<item><pubDate>Fri, 17 Apr 2026 15:23:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36296 – Add 2-min cache on dashboard-family queries  Three queries dominate ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add 2-min cache on dashboard-family queries&lt;br /&gt;
&lt;br /&gt;
Three queries dominate dashboard DB time (~830 s / 30 min combined) because&lt;br /&gt;
they re-execute on every dashboard refresh with near-identical parameters:&lt;br /&gt;
&lt;br /&gt;
- OrderRepositoryImpl.selectPartnersBilledBetweenDates: dynamic endDate is&lt;br /&gt;
  LocalDateTime.now(), so cache key bucketed to 2-minute boundaries via SpEL&lt;br /&gt;
  (endDate.toEpochSecond / 120) so calls in the same bucket share an entry.&lt;br /&gt;
- UserWalletRepositoryImpl.getPartnerWiseCollectionAchievement and&lt;br /&gt;
  RbmTargetServiceImpl.getWeeklyBillingDataForMonth: default Spring key&lt;br /&gt;
  (fofoIds + startDate) is stable, no bucketing needed.&lt;br /&gt;
&lt;br /&gt;
All three use the existing Caffeine &apos;twoMintimeoutCacheManager&apos; (in-memory,&lt;br /&gt;
per-JVM, expireAfterWrite=2min). unless clause skips caching empty results&lt;br /&gt;
so legitimately-empty responses don&apos;t pin a bad entry.&lt;/div&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/UserWalletRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36296</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36296</guid></item>
<item><pubDate>Fri, 17 Apr 2026 13:48:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36294 – Remove @Cacheable from getFirstBillingDate  Temporary revert while cache null-handling ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove @Cacheable from getFirstBillingDate&lt;br /&gt;
&lt;br /&gt;
Temporary revert while cache null-handling is reviewed end-to-end.&lt;br /&gt;
The method returns null for partners with no billing history; the&lt;br /&gt;
Redis cache (disableCachingNullValues) was causing log noise even&lt;br /&gt;
after unless=&quot;#result == null&quot; was added. Reverting to direct DB&lt;br /&gt;
lookup until a proper caching strategy (e.g. per-cache nulls or&lt;br /&gt;
Optional return type) is decided.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36294</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36294</guid></item>
<item><pubDate>Fri, 17 Apr 2026 13:40:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36293 – Fix IllegalArgumentException when caching null firstBillingDate  Redis cache manager ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix IllegalArgumentException when caching null firstBillingDate&lt;br /&gt;
&lt;br /&gt;
Redis cache manager (redisEternalCacheManager) has disableCachingNullValues,&lt;br /&gt;
so every partner with no billing history threw IllegalArgumentException&lt;br /&gt;
from RedisCache.put. Added unless=&quot;#result == null&quot; to skip cache writes&lt;br /&gt;
for null results; non-null results still cache normally.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36293</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36293</guid></item>
<item><pubDate>Fri, 17 Apr 2026 13:16:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36291 – Optimize slow DB queries: split fan-out join, FORCE INDEX on ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Optimize slow DB queries: split fan-out join, FORCE INDEX on wallet history&lt;br /&gt;
&lt;br /&gt;
- CurrentInventorySnapshotRepositoryImpl.getSpilitStockBatch: split&lt;br /&gt;
  LEFT-JOIN fan-out into two independent aggregates (~8x faster);&lt;br /&gt;
  fixes SUM(DISTINCT) undercounting bug where same availability/qty&lt;br /&gt;
  values across items collapsed into one.&lt;br /&gt;
- UserWalletRepositoryImpl.getWarehousewiseCollection: HQL -&gt; native&lt;br /&gt;
  SQL with FORCE INDEX(idx_uwh_wallet_timestamp) so timestamp range&lt;br /&gt;
  filters at index level instead of row filter (~4x faster, 3.1s -&gt; 722ms).&lt;br /&gt;
- PartnerCollectionPlanRepositoryImpl.getCommitmentCollectionSummary:&lt;br /&gt;
  Criteria 3-Root CROSS JOIN -&gt; explicit INNER JOIN + FORCE INDEX&lt;br /&gt;
  (idx_uwh_wallet_timestamp) (~3.5x faster).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/auth/PartnerCollectionPlanRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/CurrentInventorySnapshotRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36291</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36291</guid></item>
<item><pubDate>Fri, 17 Apr 2026 12:38:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36288 – hadb1 perf: cache firstBillingDate, fix N+1 item query, push eInvoice ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;hadb1 perf: cache firstBillingDate, fix N+1 item query, push eInvoice filter to SQL, sort updateRisk by fofoId&lt;/div&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/TransactionRepositoryImpl.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/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36288</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36288</guid></item>
<item><pubDate>Thu, 16 Apr 2026 19:55:10 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36287 – sales dispostion updated</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;sales dispostion updated&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RatingReminder.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RatingReminderRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RatingReminderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36287</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36287</guid></item>
<item><pubDate>Thu, 16 Apr 2026 19:46:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36285 – Force idx_order_customer_billing index on spilitStock queries — optimizer picks wrong ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Force idx_order_customer_billing index on spilitStock queries — optimizer picks wrong index (978K global scan vs 902 rows per partner)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/CurrentInventorySnapshot.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/CurrentInventorySnapshotRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36285</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36285</guid></item>
<item><pubDate>Thu, 16 Apr 2026 19:38:41 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36284 – code optimization of today po rbm page</title><description>&lt;div&gt;&lt;strong&gt;ranu – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;code optimization of today po rbm page&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/RetailerContactRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/RetailerContactRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AddressRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AddressRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36284</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Frepository%2F&amp;rev=36284</guid></item>
</channel></rss>