<?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; /</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Fri, 17 Jul 2026 15:44:19 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2F&amp;max=40&amp;peg=36353</link><atom:link href="https://svn.smartdukaan.com/rss.php?peg=36353&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Wed, 22 Apr 2026 15:02:02 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36353 – Login issue</title><description>&lt;div&gt;&lt;strong&gt;vikas – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Login issue&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/GoogleLoginRequest.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/WebMVCConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36353&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36353&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 15:00:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36352 – Add admin cron batch review UI at /admin/cron-batches. Single page ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add admin cron batch review UI at /admin/cron-batches. Single page lists recent 200 batches grouped by date (most recent on top), clicking a row opens a modal with per-partner items (fofoId, partner, status, error, timestamps). Manual Refresh button re-fetches JSON. Admin-only via roleManager.isAdmin. Uses existing velocity layout (1-line passthrough). Three endpoints: GET /admin/cron-batches (HTML), /list (JSON), /{batchId}/items (JSON). Uses dao r36351 repo methods.&lt;/div&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/CronBatchAdminController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/cron-batches.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36352&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36352&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36351&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36351&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 14:57:24 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36350 – Fix:Add brand commitment, ASM details, and finance option in WOD ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Add brand commitment, ASM details, and finance option in WOD initiation email&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36350&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36350&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 14:44:11 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36349 – V2 /offer/process/{offerId} now fire-and-forget via submitBatchAsync (dao r36347). Response adds ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;V2 /offer/process/{offerId} now fire-and-forget via submitBatchAsync (dao r36347). Response adds a &apos;message&apos; field alongside success=true so the UI can surface &apos;Offer N submitted for processing&apos; or &apos;already being processed&apos;.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOfferController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36349&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36349&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 14:44:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36348 – /offer/process/{offerId} now fire-and-forget: calls offerBatchService.submitBatchAsync (dao r36347) and returns the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;/offer/process/{offerId} now fire-and-forget: calls offerBatchService.submitBatchAsync (dao r36347) and returns the status message immediately. User no longer waits on the 5+ min batch run; duplicate clicks for the same offer return &apos;already being processed&apos; instead of spawning parallel deadlocking batches.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/OfferController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36348&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36348&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 14:43:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36347 – Add submitBatchAsync for fire-and-forget /offer/process — schedules processOfferWithBatch on a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add submitBatchAsync for fire-and-forget /offer/process — schedules processOfferWithBatch on a bounded background pool (3 daemon threads) and returns immediately with a human-readable message. In-memory ConcurrentHashMap.newKeySet() per-offerId guard prevents duplicate concurrent runs for the same offer (the scenario that caused offer 8802 deadlocks). Sync processOfferWithBatch kept unchanged for cron CLI (--processOffersWithBatch).&lt;/div&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=%2F&amp;isdir=1&amp;rev=36347&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36347&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 13:47:10 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36346 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 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/model/WarehouseAgingStockModel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36346&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36346&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:31:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36345 – Route V2 /offer/process/{offerId} through OfferBatchService (dao r36342). Same motivation as ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route V2 /offer/process/{offerId} through OfferBatchService (dao r36342). Same motivation as fofo r36344: per-partner REQUIRES_NEW eliminates lock contention seen on offer 8802 and isolates failures.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOfferController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36345&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36345&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:31:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36344 – Route /offer/process/{offerId} through OfferBatchService (dao r36342). Per-partner REQUIRES_NEW replaces the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route /offer/process/{offerId} through OfferBatchService (dao r36342). Per-partner REQUIRES_NEW replaces the single outer transaction — fixes lock-acquisition failures (e.g. offer 8802) by releasing row locks between partners and isolating per-partner failures in cron_batch_item instead of aborting the whole run.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/OfferController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36344&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36344&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:30:54 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36343 – Delegate processOfferWithBatch to OfferBatchService (dao r36342). Removes the two private ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Delegate processOfferWithBatch to OfferBatchService (dao r36342). Removes the two private offer-processing privates now living in the shared orchestrator; drops unused OfferService/OfferProcessingHelper autowires. CLI entrypoint (--processOffersWithBatch) behavior unchanged.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36343&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36343&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:30:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36342 – Add OfferBatchService orchestrator — shared batch entrypoint for offer processing, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add OfferBatchService orchestrator — shared batch entrypoint for offer processing, used by cron CLI and /offer/process controllers. Loads offer, calls calculate*Payouts (read), creates cron_batch, runs each partner in REQUIRES_NEW via OfferProcessingHelper, finalizes batch and emails on partial failure. No @Transactional on the class — must not carry outer tx.&lt;/div&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=%2F&amp;isdir=1&amp;rev=36342&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36342&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:29:25 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36341 – Fix:Remove Fin-service team from wod request mail</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Remove Fin-service team from wod request mail&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/FinServiceController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36341&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36341&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:14:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36340 – Narrow downloadInvoice: release JDBC before PDF streaming + clean error ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Narrow downloadInvoice: release JDBC before PDF streaming + clean error codes&lt;br /&gt;
&lt;br /&gt;
OrderManagementController has class-level @Transactional(rollbackFor=Throwable),&lt;br /&gt;
so every downloadInvoice request held a Hikari connection for the entire HTTP&lt;br /&gt;
response duration — including the PDF streaming phase over a user&apos;s (often&lt;br /&gt;
slow) mobile network. The endpoint is the #1 JDBC-slot holder in production.&lt;br /&gt;
&lt;br /&gt;
- Method-level @Transactional(propagation = NOT_SUPPORTED) suspends the&lt;br /&gt;
  class-level tx for this endpoint so no connection is held by default.&lt;br /&gt;
- A short read-only TransactionTemplate scopes the single SELECT (order lookup&lt;br /&gt;
  by invoice number) inside its own tx. Connection returns to the pool as soon&lt;br /&gt;
  as the SELECT commits; file streaming then runs without any JDBC session.&lt;br /&gt;
- Bounds-check orders.isEmpty() — 2 IndexOutOfBoundsException per log window&lt;br /&gt;
  previously, now a clean 404 with message body.&lt;br /&gt;
- Invoice-not-yet-generated stops surfacing as a 500 with stack trace&lt;br /&gt;
  (1,534 occurrences in yesterday&apos;s log = #1 noise source). Now a 404 with&lt;br /&gt;
  &apos;please retry shortly&apos; JSON body. Saves log disk and error-budget.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/OrderManagementController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36340&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36340&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 12:14:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36339 – Enable Hikari leak detection on cron pool (fofo/web already had ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Enable Hikari leak detection on cron pool (fofo/web already had it)&lt;br /&gt;
&lt;br /&gt;
profitmandi-fofo and profitmandi-web DataSources already call&lt;br /&gt;
setLeakDetectionThreshold(30000); cron&apos;s DBConfig didn&apos;t. Aligning all three&lt;br /&gt;
so any future &gt;30s connection hold in cron jobs logs the holder&apos;s stack —&lt;br /&gt;
matches the observability we already have on the web tier.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/config/DBConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36339&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36339&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 11:53:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36338 – Remove CronBatchService and OfferProcessingHelper (moved to profitmandi-dao r36337); update imports ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove CronBatchService and OfferProcessingHelper (moved to profitmandi-dao r36337); update imports in BatchScheduledTasks and PartnerLimitHelper&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CronBatchService.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OfferProcessingHelper.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/PartnerLimitHelper.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36338&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36338&amp;peg=36353</guid></item>
<item><pubDate>Wed, 22 Apr 2026 11:53:38 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36337 – Move CronBatchService and OfferProcessingHelper from cron to dao so web/fofo ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Move CronBatchService and OfferProcessingHelper from cron to dao so web/fofo can reuse the batch infra; fix empty-IMEI NPE in getInventoryItemMap that broke /offer/process for partners with no billed/scanned serials&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/cron&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/cron/CronBatchService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferProcessingHelper.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36337&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36337&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36336&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36336&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 18:18:22 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36335 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 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/model/WarehouseAgingStockModel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36335&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36335&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 18:16:07 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36334 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 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/model/RbmPerformanceDashboardModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/today_po_rbm.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36334&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36334&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 18:08:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36333 – Fix IllegalStateException: drop &apos;unless&apos; when using @Cacheable(sync=true)  Spring Cache ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix IllegalStateException: drop &apos;unless&apos; when using @Cacheable(sync=true)&lt;br /&gt;
&lt;br /&gt;
Spring Cache rejects @Cacheable with both sync=true AND an &apos;unless&apos; attribute,&lt;br /&gt;
throwing IllegalStateException on every invocation. Surfaced in production log&lt;br /&gt;
on smartdukaan — MonitorController.todayPORBM:739 was returning 500 on 40&lt;br /&gt;
observed calls this session.&lt;br /&gt;
&lt;br /&gt;
Dropped &apos;unless&apos;. Caching an occasionally-empty List for 5 min is harmless:&lt;br /&gt;
months with no sales produce an empty result, which is cheaper to re-query&lt;br /&gt;
after 5 min than to keep special-casing. The real fix driver for sync=true&lt;br /&gt;
(stampede protection) is preserved.&lt;/div&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=%2F&amp;isdir=1&amp;rev=36333&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36333&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 17:37:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36332 – moveToBill: fix loop reassigning order back to worse warehouse  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;moveToBill: fix loop reassigning order back to worse warehouse&lt;br /&gt;
&lt;br /&gt;
- Break after first warehouse that covers remaining qty; loop used to&lt;br /&gt;
  fall through and overwrite fulfilment WH with every subsequent snapshot,&lt;br /&gt;
  so orders ended up pinned to the last (least-available) candidate.&lt;br /&gt;
- Sort candidates by net availability (availability - reserved) desc&lt;br /&gt;
  so the best warehouse is tried first.&lt;br /&gt;
- Track remainingQty across splits; keep current orderId on the chunk&lt;br /&gt;
  being placed and move the leftover to the deferred order.&lt;br /&gt;
- Null guard on itemSnapshots when no vendor under the billing WH has&lt;br /&gt;
  stock/reservation for the item.&lt;/div&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&amp;isdir=1&amp;rev=36332&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36332&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 16:34:45 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36331 – Fix @Cacheable name collision between getSaholicStockList variants  SaholicInventoryServiceImpl:271 and ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix @Cacheable name collision between getSaholicStockList variants&lt;br /&gt;
&lt;br /&gt;
SaholicInventoryServiceImpl:271 and :282 both used @Cacheable(value =&lt;br /&gt;
&apos;saholicCISList&apos;) on no-arg methods. Spring&apos;s default SimpleKey.EMPTY means&lt;br /&gt;
both methods shared ONE cache entry — whichever was called first poisoned the&lt;br /&gt;
cache for the other, even though they return different filtered sets:&lt;br /&gt;
&lt;br /&gt;
- getSaholicStockList (:272) runs selectWarehouseCisNew — tl.active=1 only&lt;br /&gt;
- getSaholicStockListWithoutCatalogMovingStatus (:283) runs&lt;br /&gt;
  selectWarehouseCisNewWithoutCatalogMovingStatus — includes catalog moving&lt;br /&gt;
  status join and filters out non-stocked OTHER/SLOWMOVING items&lt;br /&gt;
&lt;br /&gt;
Renamed the second cache to &apos;saholicCISListWithStatus&apos; so each method uses&lt;br /&gt;
its own namespace. Consumers of either method now get their method&apos;s actual&lt;br /&gt;
result, not a random earlier caller&apos;s.&lt;br /&gt;
&lt;br /&gt;
This is a correctness fix (wrong cached data) more than a perf fix, though&lt;br /&gt;
it does mean both caches fill independently now (tiny cold-path DB uptick,&lt;br /&gt;
already mitigated by 5-min TTL via timeoutCacheManager).&lt;/div&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=%2F&amp;isdir=1&amp;rev=36331&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36331&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36330&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36330&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 16:05:02 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36329 – Tune rbmWeeklyBilling cache: 2m→5m TTL + sync=true  The RBM ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Tune rbmWeeklyBilling cache: 2m→5m TTL + sync=true&lt;br /&gt;
&lt;br /&gt;
The RBM weekly billing aggregate query takes ~2s per call (1,924 cumulative hits&lt;br /&gt;
on hadb1 = 3,800s DB time). Previously cached for only 2 minutes with no&lt;br /&gt;
stampede protection — every 2m window, every concurrent dashboard load ran the&lt;br /&gt;
aggregate in parallel and burnt Hikari slots simultaneously.&lt;br /&gt;
&lt;br /&gt;
- 2m → 5m: this is month-level aggregate bucketed by week, doesn&apos;t need&lt;br /&gt;
  sub-minute freshness for an RBM dashboard.&lt;br /&gt;
- sync=true: single in-JVM computation per (monthStart, monthEnd) key per&lt;br /&gt;
  expiry window; concurrent misses wait for the in-flight load instead of&lt;br /&gt;
  racing to the DB.&lt;br /&gt;
&lt;br /&gt;
fiveMintimeoutCacheManager already exists in CacheConfig:73 (Caffeine, in-memory,&lt;br /&gt;
so no Redis/LocalDateTime serialization concerns).&lt;/div&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=%2F&amp;isdir=1&amp;rev=36329&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36329&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36328&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36328&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36327&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36327&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 13:21:07 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36326 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm rating dashboard view commited&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/KnowlarityInsightsService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36326&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36326&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 12:39:01 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36325 – Fix: Tier-Based Referral Payout</title><description>&lt;div&gt;&lt;strong&gt;aman – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: Tier-Based Referral Payout&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RefferalController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/refferal-approve.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36325&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36325&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 12:36:45 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36324 – Fix: Tier-Based Referral Payout</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: Tier-Based Referral Payout&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/UserController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36324&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36324&amp;peg=36353</guid></item>
<item><pubDate>Tue, 21 Apr 2026 12:22:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36323 – Fix app config</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix app config&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/resources/shared-prod.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36323&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36323&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 23:29:43 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36322 – New APIs Version 2</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;New APIs Version 2&lt;/div&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/DashboardModalService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36322&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36322&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 23:27:05 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36321 – New APIs Version 2</title><description>&lt;div&gt;&lt;strong&gt;vikas – 157 file(s) modified&lt;/strong&gt;&lt;br/&gt;New APIs Version 2&lt;/div&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model/BrandPcmDateModel.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model/EntityMediaPojo.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model/LeadWeakWiseModel.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model/PartnerPositonUpdateModel.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/model/ServiceApplicableModel.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/FofoV2BaseController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoAccessManagementController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoAffiliateController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoAnalysisDashboardController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoAuthUserController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoBrandCommitmentController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoBrandPCMController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoCatalogController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoCategoryController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoContentController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoCronController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoCsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoCustomerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoDashboardController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoDigifyController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoFileUploadController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoFinServiceController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoFundFinaController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoGrnController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoHdfcPaymentController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoHrmsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoHygieneController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoIndentController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoInventoryController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoInvoiceController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoItemLedgerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLeadController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLiquidationController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLogisticsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLogixController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLoiFormController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMapTrackController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMarginController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMessageController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMongoMigrationController.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/V2FofoNotificationController.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/V2FofoOfferEligibleImeisController.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/V2FofoOrderManagementController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPagesController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPartnerOnBoardingPanelController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPartnerPendingTasksController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPartnerTargetController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPaymentOptionController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPerformanceController.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/fofo/V2FofoPlacementPlanController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPostOfficeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPrebookingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPriceDropController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoProviderController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPunchInOutController.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/V2FofoPurchaseOrderController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseReturnController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurSaleController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRechargeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRefferalController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRegisterController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoReportController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoReporticoController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoReportsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRetailerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRoleController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoScanRecordController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSchemeBlockedImeiController.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/fofo/V2FofoScratchController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSDCreditController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSellerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoServiceConfigController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoShopifyController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSimilarModelController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSolrFailureController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSpiceMoneyController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoStoreController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSuperCatalogController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSupplierController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSupportController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoTagListingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoTaxationController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoTrialController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoUpSaleController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoVendorController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWalletController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWarehouseController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWarehouseRiderController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWebHookController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWebListingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWebOffersController.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/V2AddressController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2AffiliateController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2BannerListingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2BaseController.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/V2CartController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ClicksController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ContactUsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2CustomerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2DealsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2DevicesController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2EntityController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2FileUploaderController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2GatewayController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2GiftCouponController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2GuestController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2HyperTrackController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2InsuranceController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LeadController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LivePricingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LocationTrackingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LogisticsTrackingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2MasterDataController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2MigrationController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2NotificationController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2OrderController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2OTPController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2PageController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2PayuPayController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2PayuPayResponseController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2PostOfficeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2RechargeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2RetailerController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ScratchController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SDCreditController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ShopController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ShopifyController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ShopifyProductsController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2ShopifyWebhookController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SmartCartController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SolrSearchController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2StoreController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SupportController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2TicketChatActivityController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2TodayOfferController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2TrackingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2TransactionController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2TrialUserController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2UserController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2WalletController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/exception&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/exception/V2GlobalExceptionHandler.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/response&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/response/ApiResponse.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/response/ErrorDetail.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36321&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36321&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 19:37:19 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36320 – CORS update, accept referrer</title><description>&lt;div&gt;&lt;strong&gt;vikas – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;CORS update, accept referrer&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/web/filter/CorsFilter.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/web/interceptor/SimpleCORSInterceptor.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36320&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36320&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 19:30:36 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36319 – Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 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-fofo/src/main/webapp/WEB-INF/views/ftl/create-purchase-return.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36319&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36319&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36318&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36318&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 19:03:26 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36317 – Fix:Migrate legacy Purchase Return flow (Report + Bulk Create + ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 4 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/ImeiInvoiceGroup.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/PurchaseReturnItemRow.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/PurchaseReturnSettlementRow.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/UnsettledPurchaseReturnRow.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36317&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36317&amp;peg=36353</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=%2F&amp;isdir=1&amp;rev=36316&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36316&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 14:56:22 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36315 – rbm rating dashboard view commited</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 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/model/RbmPerformanceDashboardModel.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/KnowlarityInsightsService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/today_po_rbm.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36315&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36315&amp;peg=36353</guid></item>
<item><pubDate>Mon, 20 Apr 2026 12:09:16 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36314 – Fix Dummy warehouse creation defaults and backfill invoice receiveDate  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix Dummy warehouse creation defaults and backfill invoice receiveDate&lt;br /&gt;
&lt;br /&gt;
- ensureDummyForBillingRegion: set isAvailabilityMonitored=0, transferDelayInHours=0,&lt;br /&gt;
  source=0 explicitly; copy logisticsLocation and pincode from billing warehouse&lt;br /&gt;
  (matches createVendorWarehouse pattern)&lt;br /&gt;
- Add SQL to backfill warehouse.invoice.receiveDate from warehouse.purchase.receivedOn&lt;br /&gt;
  for received invoices where receiveDate is NULL&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/fix_invoice_receiveDate_from_purchase.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36314&amp;peg=36353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=36314&amp;peg=36353</guid></item>
</channel></rss>