<?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>Sat, 14 Nov 2026 11:59:37 +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=38040</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2F&amp;peg=38040&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Sat, 14 Nov 2026 11:41:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38040 – fix(wod): add Store.line1/Store.line2 prefill sources  Line-type fields (e.g. Address ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(wod): add Store.line1/Store.line2 prefill sources&lt;br /&gt;
&lt;br /&gt;
Line-type fields (e.g. Address Line 1) got the full store address. Add line sources from the same store&lt;br /&gt;
address (default address, else LOI billing address) and drop the PartnerOnBoardingPanel.address alias:&lt;br /&gt;
all templates were migrated to Store.address on 2026-11-14.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/FinServiceController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/fin-service/wod-template-edit.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38040&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38040&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:33:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38039 – Phase 1 partner-app tracking: /mobileapp opens partner apps via PartnerAppLauncher ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Phase 1 partner-app tracking: /mobileapp opens partner apps via PartnerAppLauncher (staff recorded in token + user_action_audit) instead of web /user/admin&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoginController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38039&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38039&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:33:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38038 – Phase 1 partner-app tracking: PartnerAppLauncher (store check, access check, launch ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Phase 1 partner-app tracking: PartnerAppLauncher (store check, access check, launch audit, token) + PartnerAccessService; JWTUtil.createLaunchToken (partner token + staff claims, 12h)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/authentication/JWTUtil.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/partnerapp&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/partnerapp/PartnerAccessService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/partnerapp/PartnerAppLauncher.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/partnerapp&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/partnerapp/PartnerAppLauncherTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38038&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38038&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:33:14 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38037 – Phase 1 partner-app tracking: RequestClientInfo reads client IP (X-Real-IP first) ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Phase 1 partner-app tracking: RequestClientInfo reads client IP (X-Real-IP first) and user agent into ClientInfo&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/web/util/RequestClientInfo.java&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/web&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/web/util&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/web/util/RequestClientInfoTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38037&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38037&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:16:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38036 – /app/update: offer the APK only to older builds  The ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;/app/update: offer the APK only to older builds&lt;br /&gt;
&lt;br /&gt;
The check was version == B2B_APP_VERSION (101), so every newer shell (the current build is 122)&lt;br /&gt;
was told an update is available, and Classic&apos;s &quot;Update App&quot; would download an older APK.&lt;br /&gt;
Now updateAvailable = version &amp;lt; B2B_APP_VERSION. /v2/app/update delegates here.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/UserController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38036&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38036&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:00:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38035 – fix(wod): drop PartnerOnBoardingPanel.address use in dormant V2 WOD controller</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(wod): drop PartnerOnBoardingPanel.address use in dormant V2 WOD controller&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoFinServiceController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38035&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38035&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:00:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38034 – fix(wod): prefill one store address; add full-name source  - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(wod): prefill one store address; add full-name source&lt;br /&gt;
&lt;br /&gt;
- Address fields use the partner&apos;s default address (user.user.default_address_id) instead of the newest&lt;br /&gt;
  user.address row (differed for 379 active stores); LOI billing address as fallback.&lt;br /&gt;
- Address text no longer repeats city/state already present in line 2.&lt;br /&gt;
- New prefill sources Store.address and LoiForm.fullName (first + last); PartnerOnBoardingPanel.address&lt;br /&gt;
  kept as an alias until templates are migrated.&lt;br /&gt;
- Stop writing partner_onboarding_panel.address from the edit and design-TAT saves (payloads never sent it).&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/FinServiceController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PartnerOnBoardingPanelController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/fin-service/wod-template-edit.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38034&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38034&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:00:15 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38033 – fix(onboarding): remove unused PartnerOnBoardingPanel.address mapping  Column never held data ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(onboarding): remove unused PartnerOnBoardingPanel.address mapping&lt;br /&gt;
&lt;br /&gt;
Column never held data (0 of 2,026 rows). Store address single source = user default address,&lt;br /&gt;
LOI billing address as fallback. Column drop: claude-data/sql-migrations/wod_store_address_single_source_20261114.sql&lt;br /&gt;
(run after deploy).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerOnBoardingPanel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38033&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38033&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 11:00:14 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38032 – fix(onboarding): drop dead address field from panel request models  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(onboarding): drop dead address field from panel request models&lt;br /&gt;
&lt;br /&gt;
CreatePartnerOnBoardingPanel / CreatePartnerOnBoardingDesignTat carried an address no form ever sent;&lt;br /&gt;
the edit and design-TAT saves copied that null onto partner_onboarding_panel.address.&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/CreatePartnerOnBoardingDesignTat.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/CreatePartnerOnBoardingPanel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38032&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38032&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 10:45:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38031 – Phase 0 partner-app tracking: JWTUtil reads staff claims (authUserId/email/launchId) without ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 13 file(s) modified&lt;/strong&gt;&lt;br/&gt;Phase 0 partner-app tracking: JWTUtil reads staff claims (authUserId/email/launchId) without impersonation flag; user_action_audit entity + ActionAuditService (no callers yet)&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/UserActionAudit.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/audit&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/audit/AuditAction.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/UserActionAuditRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/UserActionAuditRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/audit&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/audit/ActionAuditService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/audit/ActionAuditWriter.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/authentication/JWTUtil.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/audit&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/audit/ActionAuditServiceTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/authentication&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/authentication/JWTUtilStaffClaimsTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38031&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38031&amp;peg=38040</guid></item>
<item><pubDate>Sat, 14 Nov 2026 10:45:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38030 – Phase 0 partner-app tracking: Actor/ClientInfo models, UserInfo.launchId, LAUNCH_ID claim constant ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Phase 0 partner-app tracking: Actor/ClientInfo models, UserInfo.launchId, LAUNCH_ID claim constant (no callers yet)&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/Actor.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ClientInfo.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/UserInfo.java&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/model&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/model/ActorClientInfoTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38030&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38030&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 19:07:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38029 – fix(credit): Credit Details status filter emptied after revisiting the page; ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(credit): Credit Details status filter emptied after revisiting the page; shorter cleared label&lt;br /&gt;
&lt;br /&gt;
- The page fragment is re-injected on every visit and each load pushed another DataTables search function&lt;br /&gt;
  bound to that load&apos;s table; stale copies AND-filtered rows away (e.g. &apos;Loan Default - cleared&apos; showed nothing&lt;br /&gt;
  for partners who repaid after an earlier visit). Remove the earlier copy before adding, and read the row from&lt;br /&gt;
  the table being drawn (settings.aoData) instead of a captured instance.&lt;br /&gt;
- Green line now reads just &apos;Default cleared.&apos;&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail-row.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38029&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38029&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 18:16:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38028 – fix(credit): clearer Loan Default messaging on Credit Details  - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(credit): clearer Loan Default messaging on Credit Details&lt;br /&gt;
&lt;br /&gt;
- Block reason shown grey as history: &apos;Blocked &amp;lt;date&gt; by &amp;lt;who&gt;: &amp;lt;reason&gt;&apos;&lt;br /&gt;
- Loan Default with no defaulted dues shows green &apos;Default cleared. Can be unblocked.&apos;&lt;br /&gt;
- Amber &apos;Also overdue: &amp;lt;amount&gt; on N loan(s), becomes default on &amp;lt;date&gt;&apos; for loans past due but not yet defaulted&lt;br /&gt;
- Filter option renamed &apos;Loan Default - cleared&apos;&lt;br /&gt;
Needs dao r38027.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail-row.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38028&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38028&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 18:16:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38027 – feat(credit): overdue (not yet defaulted) dues for the Credit Details ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(credit): overdue (not yet defaulted) dues for the Credit Details screen&lt;br /&gt;
&lt;br /&gt;
- SDCreditService.getOverdueDuesByFofo: principal + interest on Loan.isOverdue loans, with the earliest default date&lt;br /&gt;
- LoanDefaultDues carries defaultsOn; dues calculation shared between defaulted and overdue loans&lt;br /&gt;
- Tests for overdue amount and default date&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/LoanDefaultDues.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/SDCreditServiceDefaultDuesTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38027&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38027&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 17:52:43 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38026 – feat(credit): Credit Details status filter, block reason and default dues ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(credit): Credit Details status filter, block reason and default dues&lt;br /&gt;
&lt;br /&gt;
- Status filter on /getCreditDetail (Active, Loan Default, Loan Default - nothing due, Blocked, Awaiting Activation)&lt;br /&gt;
- Latest block reason under the inactive label&lt;br /&gt;
- LOAN_DEFAULT rows show in red the principal + interest needed to close defaulted loans; nothing when 0&lt;br /&gt;
- Row redraw after block/unblock/activate carries the same details&lt;br /&gt;
Needs dao r38025.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail-row.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-credit-detail.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38026&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38026&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 17:52:37 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38025 – feat(credit): default dues and latest block reason for the Credit ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(credit): default dues and latest block reason for the Credit Details screen&lt;br /&gt;
&lt;br /&gt;
- SDCreditService.getDefaultDuesByFofo: principal + interest needed to close every defaulted loan&lt;br /&gt;
  (same isDefault() set as the LOAN_DEFAULT block; total from loan_statement as settleLoan reads it)&lt;br /&gt;
- SDCreditService.getLatestBlockLogs + CreditBlockLogRepository.selectByFofoIds (bulk, typed HQL)&lt;br /&gt;
- LoanDefaultDues model; SDCreditServiceDefaultDuesTest&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/LoanDefaultDues.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/CreditBlockLogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/CreditBlockLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/SDCreditServiceDefaultDuesTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38025&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38025&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 13:22:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38024 – fix(cart): drop delisted or missing items from cart in getCartValidation ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(cart): drop delisted or missing items from cart in getCartValidation&lt;br /&gt;
&lt;br /&gt;
A line whose item is missing or whose tag_listing is inactive (active=0) is now&lt;br /&gt;
removed from the cart and reported as a PRODUCT_UNAVAILABLE cart message, so&lt;br /&gt;
createOrder (which rejects on any cart message) no longer bills a delisted item.&lt;br /&gt;
Runs before the carry bag allowance so removed phones earn no free bags.&lt;br /&gt;
Stock and the 400 max-qty cap are unchanged.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38024&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38024&amp;peg=38040</guid></item>
<item><pubDate>Fri, 13 Nov 2026 13:08:27 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38023 – visit history given on brand wise placement page</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;visit history given on brand wise placement page&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/resources/js/price-circular.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-stock.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38023&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38023&amp;peg=38040</guid></item>
<item><pubDate>Thu, 12 Nov 2026 19:45:25 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38022 – call history given on brand wise placement page</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;call history given on brand wise placement page&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38022&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38022&amp;peg=38040</guid></item>
<item><pubDate>Thu, 12 Nov 2026 19:43:47 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38021 – call history given on brand wise placement page</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;call history given on brand wise placement page&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/IndentController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/price-circular.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-stock.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38021&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38021&amp;peg=38040</guid></item>
<item><pubDate>Thu, 12 Nov 2026 15:30:20 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38020 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OnlineScratchCouponService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ScratchService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38020&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38020&amp;peg=38040</guid></item>
<item><pubDate>Wed, 11 Nov 2026 16:45:45 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38019 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OnlineScratchCouponService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ScratchService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38019&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38019&amp;peg=38040</guid></item>
<item><pubDate>Sun, 08 Nov 2026 16:39:52 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38018 – diwali online scratch offer, otp send to email</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali online scratch offer, otp send to email&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OnlineScratchCouponService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ScratchService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38018&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38018&amp;peg=38040</guid></item>
<item><pubDate>Sun, 08 Nov 2026 00:27:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38017 – Hide switched-off payment options in partner app (web v2)  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hide switched-off payment options in partner app (web v2)&lt;br /&gt;
&lt;br /&gt;
/v2/fofo/getPartnerServices listed every payment option and created a PENDING&lt;br /&gt;
partner_service row for each one missing, so switched-off IDFC (21) kept coming&lt;br /&gt;
back after r38012/r38013. Use selectAllActive there and in /userProfile, matching&lt;br /&gt;
the fofo screens.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPaymentOptionController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoServiceConfigController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38017&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38017&amp;peg=38040</guid></item>
<item><pubDate>Sat, 07 Nov 2026 19:32:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38016 – Hot Deals admin UI rework + Brand Identifier CSV upload ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deals admin UI rework + Brand Identifier CSV upload (needs dao r38015)&lt;br /&gt;
&lt;br /&gt;
Hot Deals (Catalog &gt; Hot Deals):&lt;br /&gt;
- every Hot Deal model listed, incl. ones with no attributes saved; stat cards + Needs attention filter&lt;br /&gt;
- OEM brand dropdown (form + per row), pre-filled from model name, required on save&lt;br /&gt;
- row save keeps the OEM model mapping; Clear button; Updated By column&lt;br /&gt;
&lt;br /&gt;
Content page: Brand Identifier CSV (itemId,brandIdentifier) -&gt; catalog.item.brand_identifier&lt;br /&gt;
- POST /catalog/brandIdentifier/upload?apply= : preview (NEW/REPLACE/UNCHANGED/ERROR) then apply; replaces existing values&lt;br /&gt;
- all-or-nothing; rejects unknown/duplicate items, blank or &gt;100 chars, Hot Deal and Any Colour items; max 5000 rows&lt;br /&gt;
- GET /catalog/brandIdentifier/template.csv&lt;br /&gt;
&lt;br /&gt;
jsVersion 453&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/ContentController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/HotDealController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/BrandIdentifierUploadService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/hot-deals.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/content.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/hot-deals-table.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/hot-deals.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38016&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38016&amp;peg=38040</guid></item>
<item><pubDate>Sat, 07 Nov 2026 19:32:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38015 – Hot Deals admin: list every Hot Deal model (incl. ones ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deals admin: list every Hot Deal model (incl. ones with no attributes row), needs-attention filter + stats, and OEM brand set on save&lt;br /&gt;
&lt;br /&gt;
- ModelHotDealRepository: list/count driven from Catalog (brand = Hot Deal) LEFT JOIN model_hot_deal; needsAttentionOnly = no row or NULL oem_brand; countStats()&lt;br /&gt;
- ModelHotDealService: saveAttributes takes oemBrand (requested &gt; stored &gt; suggested from catalog.model_name); must be a brand master name, never Hot Deal; stored in master spelling. Root cause of Ai+ models missing from the partner-app brand filter (NULL oem_brand -&gt; no oem_brand_s in Solr)&lt;br /&gt;
- oemBrandNames(), suggestOemBrand(), stats()&lt;br /&gt;
- ModelHotDeal: transient suggestedOemBrand, isSaved()&lt;br /&gt;
- Tests: 18 passing&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/ModelHotDeal.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/ModelHotDealRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/ModelHotDealRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/ModelHotDealService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/ModelHotDealServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/catalog/ModelHotDealServiceImplTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38015&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38015&amp;peg=38040</guid></item>
<item><pubDate>Fri, 06 Nov 2026 18:27:15 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38014 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ScratchService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38014&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38014&amp;peg=38040</guid></item>
<item><pubDate>Fri, 06 Nov 2026 18:03:29 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38013 – fix(finance): list only active payment options on finance-service screens  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(finance): list only active payment options on finance-service screens&lt;br /&gt;
&lt;br /&gt;
Uses PaymentOptionRepository.selectAllActive() (dao) for the finance-services grids,&lt;br /&gt;
partner finance-services page, add-partner service/brand-service dropdowns and the&lt;br /&gt;
partner payment-option profile, so switched-off options (e.g. IDFC id 21) are hidden&lt;br /&gt;
and no partner_service rows are created for them. createService saves the new&lt;br /&gt;
option as active.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PaymentOptionController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ServiceConfigContoller.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38013&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38013&amp;peg=38040</guid></item>
<item><pubDate>Fri, 06 Nov 2026 18:03:22 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38012 – fix(finance): list only active payment options on finance-service screens  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(finance): list only active payment options on finance-service screens&lt;br /&gt;
&lt;br /&gt;
Finance-service setup, grids, add-brand dropdown, partner payment-option page and&lt;br /&gt;
paper-finance lists (LOI form, WOD mapping report) used selectAll(), ignoring&lt;br /&gt;
payment_option.active. Switched-off options kept showing, and every finance-services&lt;br /&gt;
page open created a PENDING partner_service row for them (IDFC id 21, inactive since&lt;br /&gt;
2022, had 1,786). New PaymentOptionRepository.selectAllActive(); selectAllPaperFinanceOption&lt;br /&gt;
is active-only. Name lookups for existing payments/invoices still use selectAll().&lt;br /&gt;
Services created from the UI are now saved active (were saved active=0).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PaymentOptionRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PaymentOptionRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/PaymentOptionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/serviceConfig/ServiceConfigServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38012&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38012&amp;peg=38040</guid></item>
<item><pubDate>Fri, 06 Nov 2026 16:19:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38011 – fix(credit-note): margin CN dry run must not consume CN/DN numbers ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(credit-note): margin CN dry run must not consume CN/DN numbers or lock sellerwarehouse&lt;br /&gt;
&lt;br /&gt;
The 06:00-on-1st monthlyMarginsCnDryRun (dryRun=true) bumped cn_sequence / fofo_dn_sequence for&lt;br /&gt;
every document it would issue and committed them, so each live run started after a burned block:&lt;br /&gt;
every gap Jul-Nov 2026 equals that month&apos;s live margin CN count per prefix (e.g. CN-NSDL13802..13976&lt;br /&gt;
never issued for Oct). It also held the sellerwarehouse rows billing locks.&lt;br /&gt;
&lt;br /&gt;
- issueMarginsCNForPartner marks its REQUIRES_NEW transaction rollback-only when !runActual.&lt;br /&gt;
- Dry run reads sellerwarehouse without FOR UPDATE; live keeps selectByPrefixForUpdate.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38011&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38011&amp;peg=38040</guid></item>
<item><pubDate>Fri, 06 Nov 2026 15:53:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38010 – fix(onboarding): retire previous brand commitments when a revival LOI completes ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(onboarding): retire previous brand commitments when a revival LOI completes&lt;br /&gt;
&lt;br /&gt;
A revival LOI completes on the store&apos;s original onboarding panel and its brand&lt;br /&gt;
commitments are attached to that panel, but the original LOI&apos;s commitments stayed&lt;br /&gt;
attached too. The panel then had two rows per re-committed brand and kept dropped&lt;br /&gt;
brands as committed, which broke /partnerDealerSubmit (toMap duplicate key) and&lt;br /&gt;
selectBrandCommitmentByOnboardingIdAndBrand (NonUniqueResult), and showed wrong&lt;br /&gt;
brands on the WOD finance mapping report.&lt;br /&gt;
&lt;br /&gt;
createPartnerOnboardingPanel now deactivates and detaches (onBoardingId=0) every&lt;br /&gt;
other commitment on the panel before attaching the revival LOI&apos;s rows; loiId keeps&lt;br /&gt;
them tied to their own LOI. Adds LoiBrandCommitmentRepository.selectAllByOnboardingId.&lt;br /&gt;
Existing data (PBFZK1322, PBSMS1240, HRMWT1158) fixed by separate SQL.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/onboarding/LoiBrandCommitmentRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/onboarding/LoiBrandCommitmentRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38010&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38010&amp;peg=38040</guid></item>
<item><pubDate>Thu, 05 Nov 2026 15:44:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38009 – chore(cron): drop CLI flags for removed one-time margin CN/DN remediation ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;chore(cron): drop CLI flags for removed one-time margin CN/DN remediation&lt;br /&gt;
&lt;br /&gt;
Removes --corrMarginCNs, --genDNs, --genDNsForCNs, --cancelMarginDnIrns, --regenMarginIrns and&lt;br /&gt;
their ScheduledTasks wrappers; the CreditNoteService methods behind them were deleted in dao.&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/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38009&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38009&amp;peg=38040</guid></item>
<item><pubDate>Thu, 05 Nov 2026 15:30:49 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38008 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/order-details.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38008&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38008&amp;peg=38040</guid></item>
<item><pubDate>Thu, 05 Nov 2026 13:39:16 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38007 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OnlineScratchCouponService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38007&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38007&amp;peg=38040</guid></item>
<item><pubDate>Thu, 05 Nov 2026 13:39:00 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38006 – diwali online scratch offer, otp send to email</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali online scratch offer, otp send to email&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OnlineScratchCouponService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38006&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38006&amp;peg=38040</guid></item>
<item><pubDate>Wed, 04 Nov 2026 19:25:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38005 – fix(credit-note): commit monthly margin CN run per partner; drop one-time ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(credit-note): commit monthly margin CN run per partner; drop one-time CN/DN remediation&lt;br /&gt;
&lt;br /&gt;
issueMonthlyMarginsCN ran as one transaction for the whole month (2026-11-04: 51 min, 1,441 docs,&lt;br /&gt;
a NIC IRN call per doc inside it). The cn_sequence/fofo_dn_sequence bump X-locked every&lt;br /&gt;
sellerwarehouse row it touched until commit, so billing&apos;s getInvoiceNumber (SELECT ... FOR UPDATE&lt;br /&gt;
on the same row) hit innodb_lock_wait_timeout.&lt;br /&gt;
&lt;br /&gt;
- issueMonthlyMarginsCN is now a NOT_SUPPORTED orchestrator: loadMarginRunInput (REQUIRES_NEW&lt;br /&gt;
  readOnly) -&gt; issueMarginsCNForPartner per fofo (REQUIRES_NEW) -&gt; queueMarginRunReports&lt;br /&gt;
  (REQUIRES_NEW). Per-partner body unchanged; the partner mail stays in the partner txn.&lt;br /&gt;
- sellerwarehouse is read with new SellerWarehouseRepository.selectByPrefixForUpdate (the lock&lt;br /&gt;
  billing takes) and prefixes are processed in sorted order.&lt;br /&gt;
- Removed one-time remediation tools, no live callers: issueCorrectiveMarginCNs (never ran live),&lt;br /&gt;
  generateDebitNotesForCancelled x2 + processSingleCancelledCnTx (last ran 2026-05-09),&lt;br /&gt;
  cancelMarginDnIrns + cancelSingleMarginDn, regenerateMarginIrns; repo&lt;br /&gt;
  selectCancelledByMonth / selectByCreditNoteNumbers.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38005&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38005&amp;peg=38040</guid></item>
<item><pubDate>Wed, 04 Nov 2026 17:56:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 38004 – perf(onboarding): drop unused joins from WOD finance mapping report query ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;perf(onboarding): drop unused joins from WOD finance mapping report query&lt;br /&gt;
&lt;br /&gt;
PartnerOnBoardingPanel.selectWodFinMapping joined store_timeline,&lt;br /&gt;
fofo_partner_payment_option and partner_service without selecting or filtering&lt;br /&gt;
on them. They only duplicated rows (12,895 -&gt; 12,246 on the prod copy), which the&lt;br /&gt;
/wodFinMappingReport controller discarded via toMap keep-first. Page output is&lt;br /&gt;
identical (634 partners, 0 cell diffs). Pairs with index&lt;br /&gt;
partner_dealer_mapping(onboarding_id, brand) for the remaining full scan.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerOnBoardingPanel.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38004&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38004&amp;peg=38040</guid></item>
<item><pubDate>Wed, 04 Nov 2026 13:22:09 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 38003 – Filtered Active + Internal fofo stores</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Filtered Active + Internal fofo stores&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/StoreController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38003&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38003&amp;peg=38040</guid></item>
<item><pubDate>Wed, 04 Nov 2026 11:54:50 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 38002 – Filtered Active + Internal fofo stores</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Filtered Active + Internal fofo stores&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/StoreController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38002&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38002&amp;peg=38040</guid></item>
<item><pubDate>Wed, 04 Nov 2026 03:30:54 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 38001 – diwali offer live</title><description>&lt;div&gt;&lt;strong&gt;ranu – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;diwali offer live&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/scratch/DiwaliCouponController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/scratch/retailer-redeem.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/order-details.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38001&amp;peg=38040</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=38001&amp;peg=38040</guid></item>
</channel></rss>