<?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, 02 Oct 2026 21:03:45 +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=37765</link><atom:link href="https://svn.smartdukaan.com/rss.php?peg=37765&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37765&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37764&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37763&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37762&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37761&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37760&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37759&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37758&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37757&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37756&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37755&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37754&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37753&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37752&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37751&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37750&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37749&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37748&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37747&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37746&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37745&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37744&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37743&amp;peg=37765</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=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37742&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 15:19:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37741 – fix(fofo): show Pine Labs monthly EMI in rupees, not paise ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(fofo): show Pine Labs monthly EMI in rupees, not paise&lt;br /&gt;
&lt;br /&gt;
Plural sends Money.value in paise; the EMI offers modal printed it raw&lt;br /&gt;
(185959 INR instead of Rs 1,859.59). Converted at the view only - the&lt;br /&gt;
web API hands the same DTO to the app, which expects paise.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/catalog.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/order-index.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37741&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37741&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 13:39:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37740 – SD credit: getAvailableAmount no longer writes utilized_limit - it is ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;SD credit: getAvailableAmount no longer writes utilized_limit - it is a read path, but the managed entity was dirty-checked so every availability query (gateway callback, both sanction screens, bulk order creation) flushed an UPDATE; availability is now computed locally as limit - liveUtilization, same value&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37740&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37740&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 13:36:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37739 – GstProService: drop imports only the removed Perfios block used  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;GstProService: drop imports only the removed Perfios block used&lt;br /&gt;
&lt;br /&gt;
HttpHostConnectException and JSONObject had no other use after r37736.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37739&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37739&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 13:01:48 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37738 – LMS checklist for call</title><description>&lt;div&gt;&lt;strong&gt;vikas – 5 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/entity/user/LeadCallAnswer.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/LeadCallQuestion.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadCallChecklistRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadCallChecklistRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/bootstrap/LeadCallChecklistBootstrap.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37738&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37738&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:59:40 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37737 – LMS checklist for call</title><description>&lt;div&gt;&lt;strong&gt;vikas – 14 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/LeadActivityRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadActivityRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadCallRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadCallRepositoryImpl.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/dao/service/TrialServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/meta/MetaLeadImportService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LmsAssignmentService.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/LeadController.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/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=37737&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37737&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:44:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37736 – Remove dead Perfios GST-return OTP block from GstProService  Commented-out ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead Perfios GST-return OTP block from GstProService&lt;br /&gt;
&lt;br /&gt;
Commented-out since it was added; the Perfios UAT URL and auth key were the&lt;br /&gt;
only trace of that integration. Part of the dead-integrations cleanup&lt;br /&gt;
(r37730-37735).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37736&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37736&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37735 – Remove dead third-party integrations: cron  - Toffee: attachToffeeInvoices (schedule ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: cron&lt;br /&gt;
&lt;br /&gt;
- Toffee: attachToffeeInvoices (schedule already commented out), toffeeRollback&lt;br /&gt;
  and the --tc option; tofee.* keys in run.properties&lt;br /&gt;
- Bharti Assist: sendBAGPendingPolicies, testBag/mapBag and the --bag /&lt;br /&gt;
  --mapbag options&lt;br /&gt;
- HyperTrack geofence one-offs (--createGeofence, --getAllGeofences,&lt;br /&gt;
  --deleteGeofences) and their hardcoded account keys&lt;br /&gt;
- SmartPing injection in ScheduledTasks; leftover DTDC comment&lt;br /&gt;
- aramex.tracking.url in run.properties&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-cron/src/main/resources/META-INF/run.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37735&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37735&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37734 – Remove dead third-party integrations: fofo  - SpiceMoney: controller, spiceform.vm, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 21 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: fofo&lt;br /&gt;
&lt;br /&gt;
- SpiceMoney: controller, spiceform.vm, logo, the Quick Links popover on&lt;br /&gt;
  analysisDashboard / dashboard-readonly (its button was already commented&lt;br /&gt;
  out in dashboard1.vm) and the /spicemoney/callback auth exclusions&lt;br /&gt;
- FundFina controller and the /fundfina/** auth exclusions&lt;br /&gt;
- Wiseapp: the Quick Links popover on 12dashboard34 (its only entry) and logos&lt;br /&gt;
- SmartPing injection in WebHookController; the Knowlarity webhooks keep&lt;br /&gt;
  working with the models now in kommuno/model&lt;br /&gt;
- Unused Toffee model reference in WarehouseController&lt;br /&gt;
- tofee.* keys, aramex.tracking.url and the PAYU PAY payment option in&lt;br /&gt;
  main and test resources&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/WebConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/WebSecurityConfig.java&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/FundFinaController.java&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/spicemoney&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/WarehouseController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WebHookController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/payment-options.json&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/prod.properties&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/webapp/resources/images/icons/provider-logos/spicemoney.jpg&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/webapp/resources/images/icons/provider-logos/wise.jpeg&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/webapp/resources/images/icons/provider-logos/wiseapp.jpg&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/12dashboard34.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/analysisDashboard.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/dashboard-readonly.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/dashboard1.vm&lt;br /&gt;x /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/spiceform.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/up-sale-call.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/resources/META-INF/dev.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/resources/META-INF/payment-options.json&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/resources/META-INF/prod.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/resources/META-INF/staging.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37734&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37734&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37733 – Remove dead third-party integrations: web  - PayU: /payu-pay and ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 33 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: web&lt;br /&gt;
&lt;br /&gt;
- PayU: /payu-pay and the payu-pay-response/cancelled handlers (bodies were&lt;br /&gt;
  already commented out), PayuHandler, payment/ helpers, PayU POJOs, and the&lt;br /&gt;
  PAYU PAY option served by checkout/payment-options.&lt;br /&gt;
  PayuPayController stays: it holds the live CCAvenue, Razorpay and Pine Labs&lt;br /&gt;
  callbacks.&lt;br /&gt;
- SmartPing: GET /click2call/{toMobile} (v1 + v2) and the caller-ID hook&lt;br /&gt;
  /smartping/receipt + /v2/hookCallerID, which only logged&lt;br /&gt;
- HyperTrack: device location, partner location and geofence endpoints plus&lt;br /&gt;
  HyperTrackService. The attendance endpoints (/getPunchHistory,&lt;br /&gt;
  /employee/attendance) never called HyperTrack and are kept, moved to&lt;br /&gt;
  EmployeeAttendanceController / V2EmployeeAttendanceController.&lt;br /&gt;
- Affiliate click-outs and live pricing (Amazon/Flipkart/Snapdeal via OMG):&lt;br /&gt;
  ClicksController, LivePricingController and v2 wrappers. Live pricing was&lt;br /&gt;
  already returning an empty list.&lt;br /&gt;
- Thriwe controller (fully commented out), SpiceMoney and FundFina v2 controllers&lt;br /&gt;
- Aramex branch of /track; tofee.* keys in dev/prod properties&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/WebMVCConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/OrderController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/PayuHandler.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/PayuPayController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/PayuPayResponseController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/SmartPingReceiptModel.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ClicksController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/EmployeeAttendanceController.java &lt;i&gt;(copied from /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/HyperTrackController.java@37732)&lt;/i&gt;&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/HyperTrackController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/HyperTrackService.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LivePricingController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LogisticsTrackingController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ThriweController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/TicketChatActivityController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/payment&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/req/PayuPayResponsePojo.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/res/AddClickReponse.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/res/LivePricingResponse.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/res/order/PayuPayPojo.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/res/order/PayuResponseParams.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoFundFinaController.java&lt;br /&gt;x /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/V2FofoWebHookController.java&lt;br /&gt;x /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/V2EmployeeAttendanceController.java &lt;i&gt;(copied from /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2HyperTrackController.java@37732)&lt;/i&gt;&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2HyperTrackController.java&lt;br /&gt;x /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/V2PayuPayController.java&lt;br /&gt;x /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/V2TicketChatActivityController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/dev.properties&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/payment-options.json&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/prod.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37733&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37733&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:17 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37732 – purchase return: look up the open return against a document ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;purchase return: look up the open return against a document&lt;br /&gt;
&lt;br /&gt;
selectOpenByDocumentReference returns the return still outstanding against a&lt;br /&gt;
document reference - neither refunded nor rejected - or null when none is.&lt;br /&gt;
&lt;br /&gt;
Backs a duplicate guard on the invoice-return submit path: the same invoice was&lt;br /&gt;
being submitted twice, the closest pair eight seconds apart, and finance was&lt;br /&gt;
rejecting the extras by hand. A settled return deliberately does not count, since&lt;br /&gt;
rejecting a return is precisely what frees the invoice to be raised again.&lt;br /&gt;
&lt;br /&gt;
Repository lands first so the method exists before the caller uses it.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PurchaseReturnOrderRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37732&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37732&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37731 – Remove dead third-party integrations: dao  Nothing removed here had ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 39 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: dao&lt;br /&gt;
&lt;br /&gt;
Nothing removed here had a live caller. No tables are touched.&lt;br /&gt;
&lt;br /&gt;
- Toffee Insurance client + models, and the tofee.* keys in shared-*.properties&lt;br /&gt;
- Bharti Assist (BAG) service and its certificate/brand models. BagPlanModel&lt;br /&gt;
  and PlanVariant stay in bharti/model: OneAssist and ICICI Lombard use them.&lt;br /&gt;
- Private, uncalled Toffee/BAG request builders in InsuranceServiceImpl&lt;br /&gt;
- Wiseapp insurance client and ZestResponseModel&lt;br /&gt;
- SmartPing client. CallDetailModel and PushCallLogModel move to&lt;br /&gt;
  kommuno/model because the Knowlarity webhooks still parse them.&lt;br /&gt;
- SpiceMoney SSO (2-partner pilot), Thriwe stub + DTOs, DTDC/Shipsy (demo&lt;br /&gt;
  URLs only), Blue Dart SOAP stubs, legacy Pine Labs v1 client&lt;br /&gt;
- FundFina pre-approval entity/repository, HyperTrack key entity/repository,&lt;br /&gt;
  affiliate Click entity/repository&lt;br /&gt;
- Speqtra SMS constant; aramex.tracking.url keys&lt;br /&gt;
- PAYU PAY entry in payment-options.json&lt;br /&gt;
&lt;br /&gt;
Gateway.MANDII and Gateway.FUNDFINA stay: historical fofo.payment rows.&lt;/div&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/Click.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/FundFinaPreApproval.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/HypertrackKey.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/HyperTrackKeyModel.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/thriwe&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/ClickRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/ClickRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/FundFinaPreApprovalRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/FundFinaPreApprovalRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/HypertrackKeyRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/HypertrackKeyRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/dtdc&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OtpProcessor.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/thriwe&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/BAGService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/model/BAGInsuranceModel.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/model/BrandModel.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/model/CreateCertificateRequestModel.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/model/CreateCertificateResponseModel.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bharti/model/Sample.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/bluedart&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/kommuno/model&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/kommuno/model/CallDetailModel.java &lt;i&gt;(copied from /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/smartping/model/CallDetailModel.java@37730)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/kommuno/model/PushCallLogModel.java &lt;i&gt;(copied from /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/smartping/model/PushCallLogModel.java@37730)&lt;/i&gt;&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/pinelabs/PinelabsOrderService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/PineLabsPaymentService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/smartping&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/spicemoney&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/toffee&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/zest/InsuranceServiceImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/zest/WiseappInsuranceServiceImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/zest/WiseappWebService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/zest/ZestResponseModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/META-INF/payment-options.json&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/shared-dev.properties&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/shared-prod.properties&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/shared-staging.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37731&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37731&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:32:52 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37730 – Remove dead third-party integrations: common  Part of the integrations ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: common&lt;br /&gt;
&lt;br /&gt;
Part of the integrations cleanup across all modules. Nothing here had a&lt;br /&gt;
live caller.&lt;br /&gt;
&lt;br /&gt;
- Snapdeal product-page parser and UserMessagePojo (affiliate live pricing)&lt;br /&gt;
- FundFina request/response DTOs (inbound lender API, removed)&lt;br /&gt;
- Aramex XML tracking client (only reachable via /track provider=2)&lt;br /&gt;
- WiseApp insurance model&lt;br /&gt;
- URL constants for PayU, the SmartPing caller-ID hook, affiliate clicks and&lt;br /&gt;
  live pricing; the SmartPing agent map&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.java&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/UserMessagePojo.java&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/WiseAppInsuaranceModel.java&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/AramexTrackingService.java&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/fundfina&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/SnapdealProductPageParser.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37730&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37730&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:31:43 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37729 – lead: one workable lead per mobile, with a 6-month supersede ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 13 file(s) modified&lt;/strong&gt;&lt;br/&gt;lead: one workable lead per mobile, with a 6-month supersede and an L2+ override&lt;br /&gt;
&lt;br /&gt;
There was no choke point for lead creation. Ten sites did `new Lead()` across four&lt;br /&gt;
modules -- three in web&apos;s LeadController, two in V2FofoLeadController, three in fofo&apos;s&lt;br /&gt;
LeadController, one in TrialServiceImpl and one in the cron LeadSyncRunner -- and only&lt;br /&gt;
ONE of them (fofo /createLead) checked for an existing lead at all. Result on live data:&lt;br /&gt;
5,137 mobiles carrying duplicate leads over 12,156 rows, worst case 29 on one number,&lt;br /&gt;
and two agents unknowingly working the same shop.&lt;br /&gt;
&lt;br /&gt;
THE RULE, in new LeadCreationService, which all ten now route through:&lt;br /&gt;
&lt;br /&gt;
  no active lead on the number      -&gt; create&lt;br /&gt;
  active, last activity &gt;= 6 months -&gt; retire the old one, create the new one, SILENTLY&lt;br /&gt;
  active, last activity &amp;lt;  6 months -&gt; BLOCK; only an L2+ user may override&lt;br /&gt;
&lt;br /&gt;
Active = status in (pending, followUp) AND the assignee is still an active auth_user.&lt;br /&gt;
Last activity = GREATEST(lead.updated/created, MAX(lead_activity.created)).&lt;br /&gt;
&lt;br /&gt;
The stale branch is deliberately quiet. A shop enquiring again after six months is a&lt;br /&gt;
handover, not a clash, and mailing on it would train the desk to ignore the alert -- so&lt;br /&gt;
only a genuine collision notifies. Live split: 195 stale against 1,241 fresh, and roughly&lt;br /&gt;
three blocks a month.&lt;br /&gt;
&lt;br /&gt;
WHY &quot;ACTIVE&quot; ALSO MEANS A LIVE OWNER&lt;br /&gt;
&lt;br /&gt;
331 open leads are assigned to 11 DEACTIVATED accounts (157 to &lt;a href=&quot;mailto:sm@smartdukaan.com&quot;&gt;sm@smartdukaan.com&lt;/a&gt; alone,&lt;br /&gt;
whose newest lead is from 2022). Counting them as active would block fresh enquiries&lt;br /&gt;
behind an account nobody can log in to and therefore nobody can close. Requiring a live&lt;br /&gt;
owner defuses all 331 without retiring a single row. Retirement here is only ever&lt;br /&gt;
REACTIVE -- triggered by a new entry on the same number. Nothing runs on a schedule.&lt;br /&gt;
&lt;br /&gt;
ASSUMPTION worth flagging: a superseded lead becomes status=notInterested (stage DROPPED)&lt;br /&gt;
with closure_timestamp and reason &apos;Superseded after 6 months inactivity&apos;, rather than a&lt;br /&gt;
new `expired` status. &quot;Closed&quot; is an explicit allow-list in the UI --&lt;br /&gt;
Arrays.asList(notInterested, finalized) at V2FofoLeadController:150 and fofo&lt;br /&gt;
LeadController:313 -- and there are ~107 references to specific LeadStatus values, so a&lt;br /&gt;
new enum value would make these leads vanish from BOTH the open and closed screens.&lt;br /&gt;
Stage DROPPED keeps the nuance (the shop never said no) and still maps to notInterested&lt;br /&gt;
via LeadStage.toLegacyStatus().&lt;br /&gt;
&lt;br /&gt;
OVERRIDE is L2+ in ANY team, not Call Center only: Sales L1 owns 1,063 of the 1,776 open&lt;br /&gt;
leads, so a Call-Center-only gate would funnel every team&apos;s collisions through three&lt;br /&gt;
people. The MAIL still goes to Call Center L2+, resolved from cs.position at send time&lt;br /&gt;
rather than hardcoded. An override is a TAKEOVER -- it closes the existing lead -- because&lt;br /&gt;
a second live lead is the exact thing the rule exists to prevent.&lt;br /&gt;
&lt;br /&gt;
UNATTENDED CALLERS (cron sync, CSV upload, trial registration, AI intake) have nobody to&lt;br /&gt;
offer an override to, so they use createUnattended: skip the colliding row and mail the&lt;br /&gt;
desk rather than throwing. CSV reports imported/duplicateSkipped/duplicateMobiles back to&lt;br /&gt;
the operator instead of failing the whole file over one number.&lt;br /&gt;
&lt;br /&gt;
ALSO FIXES selectByMobileNumber, which called getSingleResult and therefore threw&lt;br /&gt;
NonUniqueResultException on any mobile with more than one lead -- GlitchTip #99 and #1359,&lt;br /&gt;
both still firing. It now prefers the open lead, then the most recently touched.&lt;br /&gt;
&lt;br /&gt;
NOT INCLUDED, deliberately: no DB unique constraint. 10 mobiles already carry more than&lt;br /&gt;
one open lead and would have to be resolved by hand first, which conflicts with the&lt;br /&gt;
no-auto-retirement rule. The service enforces the invariant going forward.&lt;br /&gt;
&lt;br /&gt;
NEEDS A DBA STEP: user.lead.mobile is unindexed on 37,580 rows, so this check is a full&lt;br /&gt;
scan on every create. Index DDL is in the accompanying note; it has NOT been applied.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/leadsync/LeadSyncRunner.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CreateRefferalRequest.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/dao/service/lead&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/lead/LeadCreationService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/lead/LeadCreationServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/lead/LeadDuplicateDecision.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/lead/LeadDuplicateNotifier.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/TrialServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&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/v2/controller/fofo/V2FofoLeadController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37729&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37729&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:18:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37728 – logging: stop three non-defects reporting to the error board as ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;logging: stop three non-defects reporting to the error board as ERROR&lt;br /&gt;
&lt;br /&gt;
log4j2.xml ships ERROR and above to GlitchTip, so the log level IS the filter.&lt;br /&gt;
Three sources of ordinary, expected behaviour were logging at ERROR and between&lt;br /&gt;
them accounted for 51,244 events -- 43% of the whole board -- none of them a bug.&lt;br /&gt;
GlobalExceptionHandler already logs ProfitMandiBusinessException at WARN and is&lt;br /&gt;
unchanged; every leak below bypassed it.&lt;br /&gt;
&lt;br /&gt;
1. Session state (27,302 events, 23% of the board). CookiesProcessor and the two&lt;br /&gt;
   interceptors logged a missing or expired cookie at ERROR. A logged-out or&lt;br /&gt;
   anonymous visitor is the normal case -- the code already handles it by&lt;br /&gt;
   redirecting to /login or returning 403 -- and each of these sits in a class&lt;br /&gt;
   whose surrounding lines already log at DEBUG. These never reach the handler,&lt;br /&gt;
   which is why its WARN-level treatment never applied. Now DEBUG.&lt;br /&gt;
&lt;br /&gt;
2. Client disconnect (19,349 events). There was no handler for it, so a client&lt;br /&gt;
   hanging up mid-response fell through to @ExceptionHandler(Exception.class) and&lt;br /&gt;
   was recorded as an unhandled server bug. Adds an IOException handler to both&lt;br /&gt;
   GlobalExceptionHandlers that logs a disconnect at DEBUG and everything else at&lt;br /&gt;
   ERROR with its 500 intact.&lt;br /&gt;
&lt;br /&gt;
   ⚠ ClientAbortException CANNOT be imported here: catalina is provided by the&lt;br /&gt;
   container and is not on either module&apos;s compileClasspath (verified against&lt;br /&gt;
   the configuration, not assumed). The match is therefore on the simple class&lt;br /&gt;
   name plus the &quot;broken pipe&quot;/&quot;connection reset&quot; messages, walked down the cause&lt;br /&gt;
   chain. A genuine IOException matches none of those and keeps its ERROR.&lt;br /&gt;
&lt;br /&gt;
   The handler returns null for a disconnect rather than a body: the connection&lt;br /&gt;
   that would carry it is already closed, and writing to it is what raised the&lt;br /&gt;
   exception. Null is the supported way to say &quot;handled, no body&quot; --&lt;br /&gt;
   HttpEntityMethodProcessor marks the request handled before reading the value.&lt;br /&gt;
&lt;br /&gt;
3. Business exceptions re-logged at ERROR (11 sites). Each catches a&lt;br /&gt;
   ProfitMandiBusinessException, logs it, and CONTINUES with a fallback -- a&lt;br /&gt;
   missing wallet history defaults to an empty list, a user not found by primary&lt;br /&gt;
   email is retried against the secondary. That is an expected outcome being&lt;br /&gt;
   reported as a failure, and logging it at ERROR pre-empted the handler that&lt;br /&gt;
   would have logged it at WARN. Now WARN.&lt;br /&gt;
&lt;br /&gt;
Selenium/WebDriver (58,776 events) is deliberately untouched: that is a genuinely&lt;br /&gt;
broken ChromeDriver, and muting it would hide Oppo/Realme IMEI activation failing.&lt;br /&gt;
It looks like noise only because one broken thing repeated 52,000 times.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/GlobalExceptionHandler.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/WalletController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/interceptor/AuthenticationInterceptor.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/interceptor/RoleInterceptor.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/util/CookiesProcessor.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/AddressController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/BrandController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/GlobalExceptionHandler.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37728&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37728&amp;peg=37765</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:14:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37727 – Fixed mail sender everywhere</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed mail sender everywhere&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37727&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37727&amp;peg=37765</guid></item>
<item><pubDate>Sat, 19 Sep 2026 16:08:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37726 – sentry: stop developer laptops reporting to the live GlitchTip board ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;sentry: stop developer laptops reporting to the live GlitchTip board&lt;br /&gt;
&lt;br /&gt;
GlitchTip #586 was 57 events tagged environment=production whose stack read&lt;br /&gt;
/opt/homebrew/Cellar/tomcat@8/8.5.100/libexec/... with server_name set to a&lt;br /&gt;
developer&apos;s machine. Nothing was wrong on prod: a laptop was posting into the&lt;br /&gt;
production project and was indistinguishable from it.&lt;br /&gt;
&lt;br /&gt;
Two things combined to allow that. The DSN lives in log4j2.xml, which ships inside&lt;br /&gt;
every build, so any machine running this code can report. And the Sentry SDK&lt;br /&gt;
defaults `environment` to &quot;production&quot; when it is not set -- which it never was --&lt;br /&gt;
so local runs arrived pre-labelled as prod.&lt;br /&gt;
&lt;br /&gt;
Adds sentry.properties to each module, read off the classpath by the SDK itself&lt;br /&gt;
(io.sentry.config.PropertiesProviderFactory) and merged over the appender&apos;s config.&lt;br /&gt;
Both keys used here are honoured by io.sentry.ExternalOptions in 7.22.6 (verified&lt;br /&gt;
against the jar): `enabled` and `environment`.&lt;br /&gt;
&lt;br /&gt;
The COMMITTED values are the safe ones -- enabled=false, environment=dev -- so a&lt;br /&gt;
plain local build is silent. build.gradle rewrites both from -Penv= alongside the&lt;br /&gt;
env.property it already writes, so only a deliberate -Penv=staging|prod build&lt;br /&gt;
reports, and it carries the right environment tag. tasks.build.doLast restores the&lt;br /&gt;
safe default afterwards, mirroring the existing handling of env.property.&lt;br /&gt;
&lt;br /&gt;
Verified both directions: default build leaves enabled=false/environment=dev,&lt;br /&gt;
-Penv=prod yields enabled=true/environment=prod.&lt;br /&gt;
&lt;br /&gt;
Note this makes the board trustworthy rather than merely quieter: events can now be&lt;br /&gt;
filtered on environment, and anything unlabelled is a build that predates this.&lt;/div&gt;~ /trunk/profitmandi-cron/build.gradle&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/resources/sentry.properties&lt;br /&gt;~ /trunk/profitmandi-fofo/build.gradle&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/resources/sentry.properties&lt;br /&gt;~ /trunk/profitmandi-web/build.gradle&lt;br /&gt;+ /trunk/profitmandi-web/src/main/resources/sentry.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37726&amp;peg=37765</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37726&amp;peg=37765</guid></item>
</channel></rss>