<?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>Wed, 07 Oct 2026 02:57:47 +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=37781</link><atom:link href="https://svn.smartdukaan.com/rss.php?peg=37781&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Fri, 25 Sep 2026 13:17:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37781 – feat(partner-access): demo partners in app switcher + impersonate  - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(partner-access): demo partners in app switcher + impersonate&lt;br /&gt;
&lt;br /&gt;
- /getPartners, /getPartnersList: position partners + active demo partners&lt;br /&gt;
  (copies the cached getAuthUserPartnerEmailMapping set, never mutates it)&lt;br /&gt;
- /impersonate: an active demo grant also passes the access check&lt;br /&gt;
&lt;br /&gt;
Needs dao r37779 and migration_demo_partner_access.sql applied.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/UserController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoAuthUserController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37781&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37781&amp;peg=37781</guid></item>
<item><pubDate>Fri, 25 Sep 2026 13:17:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37780 – feat(partner-access): demo partner access page + validation  - Demo ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(partner-access): demo partner access page + validation&lt;br /&gt;
&lt;br /&gt;
- Demo Partner Access page (Admin Control): grant partners to a Sales person,&lt;br /&gt;
  list and revoke active grants; server-guarded by canManage&lt;br /&gt;
- Partner access dropdown: position partners + active demo partners &quot;(Demo)&quot;;&lt;br /&gt;
  shared cached mapping is copied, never mutated&lt;br /&gt;
- /login-as-partner-readonly: partner must be in caller&apos;s positions or demo&lt;br /&gt;
  grants (was unchecked; Partner access is its only caller)&lt;br /&gt;
- /mobileapp?emailId=: Sales position holders get the partner app token only&lt;br /&gt;
  for position/demo partners; other admins (Partner Info) unchanged&lt;br /&gt;
- DemoPartnerAccessTest (5, local DB, rolled back)&lt;br /&gt;
- jsVersion 437&lt;br /&gt;
&lt;br /&gt;
Needs dao r37779 and migration_demo_partner_access.sql applied.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/DemoPartnerAccessController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoginController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RetailerController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/resources/js/demo-partner-access.js&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/demo-partner-access.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/include-scripts.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-readonly-info.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/cs&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/cs/DemoPartnerAccessTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37780&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37780&amp;peg=37781</guid></item>
<item><pubDate>Fri, 25 Sep 2026 13:16:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37779 – feat(cs): demo partner access for sales team  New cs.demo_partner_access ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cs): demo partner access for sales team&lt;br /&gt;
&lt;br /&gt;
New cs.demo_partner_access binding (sales auth user -&gt; partner) used only to&lt;br /&gt;
open a partner&apos;s dashboard/app for demos. Read only at partner-view entry&lt;br /&gt;
points; CsService position mappings are untouched, so performance, targets,&lt;br /&gt;
reports and cron mails are unaffected.&lt;br /&gt;
&lt;br /&gt;
- DemoPartnerAccess entity + repository&lt;br /&gt;
- DemoPartnerAccessService: grant (sales-only, active store, skips duplicate&lt;br /&gt;
  and position-mapped), soft revoke, isAllowed (position OR demo),&lt;br /&gt;
  demo emails for app lists, canManage (mirrors sidebar menu rule)&lt;br /&gt;
- AdminUser.ALL_MENU_EMAILS extracted so canManage and the sidebar share it&lt;br /&gt;
- migration_demo_partner_access.sql: table + &quot;Demo Partner Access&quot; menu&lt;br /&gt;
  under Admin Control (NOT yet applied on hadb1)&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/cs/DemoPartnerAccess.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/DemoPartnerAccessRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/DemoPartnerAccessRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/DemoPartnerAccessService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/DemoPartnerAccessServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/AdminUser.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_demo_partner_access.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37779&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37779&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 22:37:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37778 – fix(catalog): delist cron retires only models it darkened in the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(catalog): delist cron retires only models it darkened in the same run&lt;br /&gt;
&lt;br /&gt;
Step 4 scanned every mobile model with no active listing and moved it to OTHER,&lt;br /&gt;
so new launches (categorised before listing) and hand-paused models were retired&lt;br /&gt;
the next morning, e.g. Nothing Phone 4 1026596-603 on 2026-09-15. Scope it to&lt;br /&gt;
models whose listing this run delisted (_delist_audit run_date = today).&lt;br /&gt;
Add fix_dark_model_retire_20260924.sql to restore the 16 models still stuck on OTHER.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/CatalogDelistServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/sql/delist_inactive_listings_rolling_24m.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/fix_dark_model_retire_20260924.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37778&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37778&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 20:16:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37777 – returns: finance endpoint to reverse a return whose goods never ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;returns: finance endpoint to reverse a return whose goods never reached the warehouse&lt;br /&gt;
&lt;br /&gt;
PUT /return/reverse?imei=&amp;reason=&amp;dryRun= calls ReturnReversalService (r37776) for one&lt;br /&gt;
IMEI. Finance only, same canRefund gate as the refund it undoes, and dryRun defaults to&lt;br /&gt;
true so a call without it reports the plan and writes nothing.&lt;br /&gt;
&lt;br /&gt;
ReturnReversalTest covers the four cases against the local database with NIC on the&lt;br /&gt;
sandbox: the dry run writes nothing, a note past its 24h window issues a DBN and undoes&lt;br /&gt;
every effect of the refund (warehouse scan and stock, partner stock and offers, order&lt;br /&gt;
status, wallet, return item, debit note, audit row), a note inside the window has its IRN&lt;br /&gt;
cancelled and drops out of the statement, and bad input or a second reversal is refused.&lt;br /&gt;
Run it as `gradle :test --tests ...` - without the colon the filter also reaches&lt;br /&gt;
profitmandi-common and fails with &quot;No tests found&quot;.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PurchaseReturnController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/inventory&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/inventory/ReturnReversalTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37777&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37777&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 20:16:26 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37776 – returns: reverse a refunded debit-note return whose goods never reached ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;returns: reverse a refunded debit-note return whose goods never reached the warehouse&lt;br /&gt;
&lt;br /&gt;
Once a return was refunded nothing could undo it - rejectReturn refuses an already&lt;br /&gt;
refunded one - so a return booked and paid for goods that never arrived left phantom&lt;br /&gt;
warehouse stock, the unit missing from partner stock, the order marked returned, a&lt;br /&gt;
wallet credit and a filed credit note, with no way back.&lt;br /&gt;
&lt;br /&gt;
ReturnReversalService.reverse(imei, reason, by, dryRun) undoes exactly one unit:&lt;br /&gt;
the warehouse return scan (row deleted so a genuine return later is not rejected as a&lt;br /&gt;
duplicate) and the stock it added, partner stock with its schemes/price drop/offers,&lt;br /&gt;
the order&apos;s return quantity and status, the wallet refund as a REVERSAL entry, and the&lt;br /&gt;
return item / debit note. Guards refuse anything that has moved since the refund, and a&lt;br /&gt;
dry run reports the plan without writing.&lt;br /&gt;
&lt;br /&gt;
The credit note follows movement and the NIC clock: inside the 24h window, and only&lt;br /&gt;
when the note credits nothing but this unit, its IRN is cancelled and the note marked&lt;br /&gt;
cancelled; past it a DBN with its own IRN is issued against the note&lt;br /&gt;
(CreditNoteService.issueReturnReversalDebitNote, stored as CN_CANCELLATION with no&lt;br /&gt;
margin month so the statement does not show it twice - the wallet REVERSAL is the&lt;br /&gt;
statement line); a note never filed at NIC is voided locally. Every local write happens&lt;br /&gt;
first and NIC last, so a refusal rolls the whole reversal back.&lt;br /&gt;
&lt;br /&gt;
fofo.return_reversal (return_reversal_20260921.sql) records each reversal and, unique&lt;br /&gt;
per return item, makes it once-only. Also adds cancelled=0 to the RETURNS_CN branches of&lt;br /&gt;
the account statement queries, without which a cancelled note keeps crediting the&lt;br /&gt;
statement - no current effect, no RETURNS note is cancelled today.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ReturnReversal.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/return_reversal_20260921.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37776&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37776&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 19:40:34 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37775 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/TodayAchievedMovementModel.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/RbmDrrDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm-drr-dashboard.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37775&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37775&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 19:22:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37774 – feat: show sanction request investment numbers as whole rupees  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat: show sanction request investment numbers as whole rupees&lt;br /&gt;
&lt;br /&gt;
Adds a global $nf0 Velocity formatter (en-IN grouping, 0 decimals, HALF_UP) and&lt;br /&gt;
uses it for Total/Short Investment on the sanction request and RBM L2 screens.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/approved-sanction-request-row.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm-l2-approved-sanction-request.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm-l2-pending-sanction-request.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/sanction-request-row.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37774&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37774&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 19:11:55 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37773 – fix: show live partner investment on sanction request approval screens ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix: show live partner investment on sanction request approval screens&lt;br /&gt;
&lt;br /&gt;
Total/short investment on /getSanctionRequest, /getRbmL2SanctionRequest and the&lt;br /&gt;
row re-render after submit now read the 2-minute partner_investment snapshot via&lt;br /&gt;
PartnerInvestmentService instead of yesterday&apos;s partner_daily_investment row.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SDCreditController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37773&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37773&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37772 – fix(supplier): V2 supplier save derives state from GSTIN</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(supplier): V2 supplier save derives state from GSTIN&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSupplierController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37772&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37772&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37771 – fix(movement): movement POs no longer auto-close; open movement PO digest ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(movement): movement POs no longer auto-close; open movement PO digest to Warehouse L1/L2 at 09:00 and 17:00&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/purchaseorder/POScheduler.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37771&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37771&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37770 – fix(movement): GRN of a movement invoice validated against its own ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(movement): GRN of a movement invoice validated against its own PO + billed IMEIs; Reopen removed; PO list shows Created By; supplier state from GSTIN; jsVersion 436&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SupplierController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/GrnController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/PurchaseOrderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-grn-request-items.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-purchase-order.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37770&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37770&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37769 – fix(movement): receive a movement invoice only against its own PO, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(movement): receive a movement invoice only against its own PO, stop auto-closing movements, cancel reduces the PO line&lt;br /&gt;
&lt;br /&gt;
- GRN: movement invoice resolves invoice -&gt; orders -&gt; transaction -&gt; its own movement PO (or a receive-only PO&lt;br /&gt;
  from the billing warehouse); supplier/warehouse keyed at entry must match; scanned IMEIs must be the billed ones&lt;br /&gt;
- Cancelling an unbilled movement order takes its qty off the PO line; PO CLOSED/PRECLOSED once nothing is open&lt;br /&gt;
- reopenedAt removed (movements no longer auto-close); PO records createdBy&lt;br /&gt;
- SupplierStateResolver: a supplier&apos;s state is derived from its GSTIN on save&lt;br /&gt;
- sql: add_po_created_by (applied), drop_po_reopened_at (run AFTER fofo/cron/web deploy)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/WarehousePurchaseOrder.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/InvoiceServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SupplierStateResolver.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_po_created_by_20260924.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/drop_po_reopened_at_20260924.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/SupplierStateResolverTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37769&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37769&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:54:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37768 – feat(supplier): GstinUtil - read state code / PAN from a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(supplier): GstinUtil - read state code / PAN from a GSTIN so the GSTIN decides a supplier&apos;s state&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/util/GstinUtil.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37768&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37768&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:24:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37767 – fix(orders): movements ship from their source only; a row reserved ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(orders): movements ship from their source only; a row reserved beyond its stock gives nothing&lt;br /&gt;
&lt;br /&gt;
Internal movement orders were allocated by the partner allocator, which spills a source&lt;br /&gt;
shortfall to every warehouse the brand mapping links to the destination - stock billed&lt;br /&gt;
there has no PO to be received against (PO 54279: 3 units put on Jaipur for a UP-&gt;Delhi&lt;br /&gt;
movement). createTransactionInternally now keeps the source&apos;s own rows only; a shortfall&lt;br /&gt;
still parks on the source&apos;s Dummy.&lt;br /&gt;
&lt;br /&gt;
getItemQty took min(qty, netAvailability) on a row reserved beyond its stock - always the&lt;br /&gt;
case on a Dummy holding an open order - so a -1 row added a unit to the shortfall, which&lt;br /&gt;
then parked on the Dummy as an extra order (24 Sep: 9 units raised for a movement of 8,&lt;br /&gt;
refused by the cart-value guard). Rows with nothing free are now skipped and no longer&lt;br /&gt;
offset another row&apos;s free stock in the warehouse total.&lt;br /&gt;
&lt;br /&gt;
Removes the empty, uncalled markOrdersAsGrnCompleted.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/GetItemQtyTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37767&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37767&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 17:22:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37766 – feat(store-closure): V2 closeStore goes through StoreClosureService; access checks read StoreAccess ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(store-closure): V2 closeStore goes through StoreClosureService; access checks read StoreAccess&lt;br /&gt;
&lt;br /&gt;
Same rules as the fofo portal (dao r37764): reason, remark and approval mail required; mohit.gulati&lt;br /&gt;
removed from extend billing.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRetailerController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37766&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37766&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 17:22:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37765 – feat(store-closure): closure popup with reason, remark and approval mail upload ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(store-closure): closure popup with reason, remark and approval mail upload&lt;br /&gt;
&lt;br /&gt;
- Close Store (inactive stores page and deactivate flow) opens one shared popup; /closeStore&lt;br /&gt;
  delegates to StoreClosureService (dao r37764)&lt;br /&gt;
- store status access checks read StoreAccess lists; mohit.gulati removed from extend billing&lt;br /&gt;
- jsVersion 435&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RetailerController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/retailer.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/inactive-stores.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37765&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37765&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 17:21:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37764 – feat(store-closure): require reason, remark and approval mail to close a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(store-closure): require reason, remark and approval mail to close a store; mail closure report&lt;br /&gt;
&lt;br /&gt;
- fofo.store_closure audit table (reason, remark, approval document, closed_by); migration applied on hadb1&lt;br /&gt;
- StoreClosureService: validates and closes, queues closure report with approval attached to the&lt;br /&gt;
  partner&apos;s Sales L2, top 3 Sales levels, top Accounts level and the closer&lt;br /&gt;
- StoreAccess: single home for store close/deactivate/activate/extend-billing access lists;&lt;br /&gt;
  neeraj.gupta can close, mohit.gulati removed from extend billing&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/StoreClosure.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/fofo/StoreClosureReason.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/StoreClosureRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/StoreClosureRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreAccess.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreClosureService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_store_closure.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37764&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37764&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 15:06:01 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37763 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-po-stock-approval-detail.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37763&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37763&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 13:17:11 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37762 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37762&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37762&amp;peg=37781</guid></item>
<item><pubDate>Thu, 24 Sep 2026 12:59:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37761 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ItemAgingBreakdownModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/RbmDrrDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm-drr-dashboard.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37761&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37761&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:35:02 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37760 – Upload directory and Data correction for lead</title><description>&lt;div&gt;&lt;strong&gt;vikas – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Upload directory and Data correction for lead&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsLeadController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/lms-dashboard-standalone.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37760&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37760&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:32:08 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37759 – LMS Call for App</title><description>&lt;div&gt;&lt;strong&gt;vikas – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;LMS Call for App&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/lms&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/lms/LeadDispositionRequest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/LmsCallService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/LmsDispositionService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/LmsOutcome.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LmsDashboardService.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LmsAppCallController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2LmsAppCallController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37759&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37759&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:27:50 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37758 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ItemAgingBreakdownModel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37758&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37758&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:26:13 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37757 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/Item15DaysSoldModel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37757&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37757&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:24:55 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37756 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37756&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37756&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:23:32 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37755 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37755&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37755&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:22:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37754 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/WarehousePoStockApproval.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37754&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37754&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:21:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37753 – aging po approval process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval process&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehousePoStockApprovalRepository.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37753&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37753&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:19:42 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37752 – today po rbm view showing only for l7 and above</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;today po rbm view showing only for l7 and above&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehousePoStockApprovalRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37752&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37752&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:16:30 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37751 – aging po approval mail to some collected users</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval mail to some collected users&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalDigestServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37751&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37751&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 18:50:55 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37750 – aging sku purchasing need to approval of niranjan kala sir</title><description>&lt;div&gt;&lt;strong&gt;ranu – 15 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging sku purchasing need to approval of niranjan kala sir&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/WarehousePurchaseOrder.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CreateWarehousePurchaseOrderModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ItemAgingStockByVendorModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseOrderApprovalRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/PurchaseOrderApprovalRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalDigestService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalDigestServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.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/controller/warehouse/PoStockApprovalController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/PurchaseOrderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm-drr-dashboard.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-po-stock-approvals.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-purchase-order-add-item.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37750&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37750&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 18:00:08 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37749 – Upload directory and Data correction for lead</title><description>&lt;div&gt;&lt;strong&gt;vikas – 14 file(s) modified&lt;/strong&gt;&lt;br/&gt;Upload directory and Data correction for lead&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/kommuno/RecordingService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/vbc/VbcDialerProvider.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/vbc/VbcTelephonyService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LmsDashboardService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LeadGeoLocationController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsDialerController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsLeadController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/dev.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/prod.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/staging.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/lms-dashboard-standalone.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37749&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37749&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 15:50:05 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37748 – today po rbm view showing only for l7 and above</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;today po rbm view showing only for l7 and above&lt;/div&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=37748&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37748&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 15:16:41 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37747 – today po rbm view showing only for l7 and above</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;today po rbm view showing only for l7 and above&lt;/div&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=%2F&amp;isdir=1&amp;rev=37747&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37747&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 15:04:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37746 – feat(scheme): add Ear Buds category (10024) to scheme creation category ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(scheme): add Ear Buds category (10024) to scheme creation category list&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SchemeController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37746&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37746&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 15:04:36 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37745 – today po rbm view showing only for l7 and above</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;today po rbm view showing only for l7 and above&lt;/div&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/controller/monitors/RbmDrrDashboardController.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=37745&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37745&amp;peg=37781</guid></item>
<item><pubDate>Wed, 23 Sep 2026 12:48:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37744 – test(warehouse): raising a movement order stamps the line with the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(warehouse): raising a movement order stamps the line with the stock&apos;s cost and vendor&lt;br /&gt;
&lt;br /&gt;
Covers the last untested link in the cost-layer chain: PurchaseOrderServiceImpl writing lineitem.origin_vendor_id and the line price, which is what GRN copies onto received stock.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37744&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37744&amp;peg=37781</guid></item>
<item><pubDate>Mon, 21 Sep 2026 17:55:05 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37743 – LMS checklist for call</title><description>&lt;div&gt;&lt;strong&gt;vikas – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;LMS checklist for call&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LmsDashboardService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LmsDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/lms-dashboard-standalone.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37743&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37743&amp;peg=37781</guid></item>
<item><pubDate>Mon, 21 Sep 2026 16:51:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37742 – v2: silence client disconnects and demote 4xx, matching the v1 ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2: silence client disconnects and demote 4xx, matching the v1 taxonomy&lt;br /&gt;
&lt;br /&gt;
r37728 added a client-disconnect handler to the v1 GlobalExceptionHandler and the&lt;br /&gt;
flood did not stop: #39 went on adding events, and every one of a 50-event sample&lt;br /&gt;
was from a /v2/ URL. V2GlobalExceptionHandler is scoped&lt;br /&gt;
basePackages=&quot;com.spice.profitmandi.web.v2&quot;, so v2 responses never reached the v1&lt;br /&gt;
handler at all and fell through to its own handleGenericException at ERROR --&lt;br /&gt;
~19,900 events, the second largest source on the board.&lt;br /&gt;
&lt;br /&gt;
Worth recording because the first diagnosis was wrong. The theory was that an&lt;br /&gt;
exception raised while the response body is written cannot reach an @ExceptionHandler&lt;br /&gt;
because the response is already committed. It can: DispatcherServlet catches it out of&lt;br /&gt;
ha.handle() and still runs the resolvers. What it cannot do afterwards is WRITE the&lt;br /&gt;
substitute response. The handler runs and logs either way, which is precisely why&lt;br /&gt;
patching the wrong advice class changed nothing.&lt;br /&gt;
&lt;br /&gt;
Adds @ExceptionHandler(IOException.class) here, delegating to the same&lt;br /&gt;
isClientDisconnect test the v1 handler uses -- duplicated rather than shared because&lt;br /&gt;
catalina is provided by the container and is not on this module&apos;s compile classpath,&lt;br /&gt;
so ClientAbortException cannot be imported and is matched on simple name plus the&lt;br /&gt;
messages a dead peer actually produces. A genuine IOException (full disk, a broken&lt;br /&gt;
pipe to something that is not the client) matches none of them and keeps its ERROR&lt;br /&gt;
and its 500. Returns null for a disconnect: the connection that would carry a body is&lt;br /&gt;
already gone, and writing to it is what raised this.&lt;br /&gt;
&lt;br /&gt;
Also demotes five sibling handlers in the same file that were logging caller mistakes&lt;br /&gt;
at ERROR, which v1 has logged at WARN since the taxonomy work: business validation,&lt;br /&gt;
missing parameter, type mismatch, malformed body, method not supported, media type&lt;br /&gt;
not supported. v2 never received that pass. The business line also stops attaching a&lt;br /&gt;
stack trace -- a validation has nothing useful in one.&lt;br /&gt;
&lt;br /&gt;
Left at ERROR deliberately, because they are real defects: IllegalArgument, NPE,&lt;br /&gt;
genuine IO failure, and the two catch-alls.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/exception/V2GlobalExceptionHandler.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37742&amp;peg=37781</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37742&amp;peg=37781</guid></item>
</channel></rss>