<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; /trunk/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Wed, 16 Sep 2026 22:56:13 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Wed, 16 Sep 2026 20:29:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37670 – Check GSTIN shape on the onboarding screen before submit (jsVersion ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Check GSTIN shape on the onboarding screen before submit (jsVersion 425)&lt;br /&gt;
&lt;br /&gt;
Both GST boxes are validated client-side and must match, so ops see the problem on the screen&lt;br /&gt;
instead of discovering it when NIC refuses the first invoice. Server-side guard in dao r37669&lt;br /&gt;
is what actually enforces it.&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/update-retailer-details.js&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37670</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37670</guid></item>
<item><pubDate>Wed, 16 Sep 2026 20:29:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37669 – Reject an invalid or mismatched partner GSTIN before it is ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Reject an invalid or mismatched partner GSTIN before it is saved&lt;br /&gt;
&lt;br /&gt;
The onboarding screen carries the GSTIN in two boxes both labelled GST NUMBER - the retailer&lt;br /&gt;
one (dtr.retailer.number) and the store one (fofo_store.gst_number, which billing reads).&lt;br /&gt;
Neither was validated, so DLSH1660 was saved with the LOI&apos;s pincode in the store box while the&lt;br /&gt;
retailer box held the real GSTIN, and its first invoice would have been refused by NIC.&lt;br /&gt;
&lt;br /&gt;
validateGstNumbers runs before any write (covers the fofo portal, the V2 API and the partner&lt;br /&gt;
app, which all funnel through updateRetailerDetails): both values are normalised, both must be&lt;br /&gt;
valid GSTINs, and when both are present they must agree - across 1,800 partners on record they&lt;br /&gt;
already do, bar the one that caused this. Needs common r37668.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37669</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37669</guid></item>
<item><pubDate>Wed, 16 Sep 2026 20:29:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37668 – Validate GSTIN shape, state code and checksum  isValidGstNumber accepted ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Validate GSTIN shape, state code and checksum&lt;br /&gt;
&lt;br /&gt;
isValidGstNumber accepted any 15-character string, so a pincode (110095, rejected only for&lt;br /&gt;
length) and junk (Hdjiekwbdbsjskz) reached fofo_store.gst_number, which billing sends to NIC&lt;br /&gt;
as the recipient - the invoice is then refused and the goods cannot ship.&lt;br /&gt;
&lt;br /&gt;
Now: 2-digit state code + PAN + entity + Z + mod-36 check digit, trimmed and upper-cased.&lt;br /&gt;
Blank still passes (the field is optional); callers needing one present check that themselves.&lt;br /&gt;
Checked against live data: 1,569 of 1,570 well-formed partner GSTINs pass, the one that fails&lt;br /&gt;
(HRSP330) has a genuinely wrong check digit.&lt;br /&gt;
&lt;br /&gt;
Adds RTLR_1020 / RTLR_1021 for the invalid and mismatched cases.&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/util/StringUtils.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/resources/response-codes.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37668</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37668</guid></item>
<item><pubDate>Wed, 16 Sep 2026 19:22:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37667 – chore(sql): drop vendor catalog pricing for supplier 1 Hotspot, flagged ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;chore(sql): drop vendor catalog pricing for supplier 1 Hotspot, flagged internal 2026-09-16 (as run on prod; backups _bak_vcp/_vcpl_internal_hotspot_20260916)&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/drop_internal_vendor_catalog_pricing_hotspot_20260916.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37667</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37667</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:56:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37666 – Hot Deal brand: /fofo/hotDeals/brands accepts categoryId, so the brand chips ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: /fofo/hotDeals/brands accepts categoryId, so the brand chips match the active tab&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/DealsController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37666</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37666</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:56:29 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37665 – Hot Deal brand: optional categoryId on the brand facet, so ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: optional categoryId on the brand facet, so the chips can be scoped to one tab&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/solr/SolrService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37665</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37665</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:48:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37664 – loi new revival process</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;loi new revival process&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/LoiFormRepositoryImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37664</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37664</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:20:03 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37663 – Added exception to method sign</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added exception to method sign&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoiFormController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37663</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37663</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:12:41 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37662 – LMS click to call</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;LMS click to call&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/RecordingArchiveFailureRecorder.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37662</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37662</guid></item>
<item><pubDate>Wed, 16 Sep 2026 18:10:20 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37661 – Fix trunk: RestClient was left behind by r37655  r37655 ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix trunk: RestClient was left behind by r37655&lt;br /&gt;
&lt;br /&gt;
r37655 deleted MandiiResponse but omitted RestClient from the commit, so&lt;br /&gt;
trunk did not compile - RestClient still imported the deleted class.&lt;br /&gt;
&lt;br /&gt;
RestClient now uses RawHttpResponse: executeMandii is renamed executeRaw and&lt;br /&gt;
postWithResponse returns the new type. The dead getMandii helper is removed;&lt;br /&gt;
its only caller was MandiiService.&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/web/client/RestClient.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37661</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37661</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:50:44 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37660 – ticket download option given and some enhancement on notification panel</title><description>&lt;div&gt;&lt;strong&gt;ranu – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;ticket download option given and some enhancement on notification panel&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AgreementEsignRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AgreementEsignRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/StoreTimelinetbRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/StoreTimelinetbRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoiFormController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PartnerOnBoardingPanelController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37660</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37660</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:22:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37659 – Remove the Mandii callback from fofo (r37655)  Drops the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove the Mandii callback from fofo (r37655)&lt;br /&gt;
&lt;br /&gt;
Drops the /mandii payment-notification stub from HdfcPaymentController - it&lt;br /&gt;
only logged the body - and its three entries in the WebConfig auth whitelist.&lt;br /&gt;
PartnerOnBoardingPanelController imports follow services.mandii -&gt;&lt;br /&gt;
services.kyc for Gender/MaritalStatus/AddressProofType.&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/controller/hdfc/HdfcPaymentController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PartnerOnBoardingPanelController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37659</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37659</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:15:12 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37658 – Remove Mandii onboarding tasks from cron (r37655)  RunOnceTasks loses ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove Mandii onboarding tasks from cron (r37655)&lt;br /&gt;
&lt;br /&gt;
RunOnceTasks loses mandiiUser/mandiiUsers, their setCreditAccount helper and&lt;br /&gt;
the now-unused encodeFileToBase64Binary, plus the MandiiService autowire -&lt;br /&gt;
133 lines that pushed partner KYC into Mandii and wrote back MANDII credit&lt;br /&gt;
accounts. The matching --mandiiUser / --mandiiUsers CLI options are dropped&lt;br /&gt;
from Application. ScheduledTasks had an unused MandiiService field.&lt;br /&gt;
OnBoardingRelatedSchelduleTask imports follow services.mandii -&gt; services.kyc.&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/OnBoardingRelatedSchelduleTask.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=%2Ftrunk%2F&amp;isdir=1&amp;rev=37658</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37658</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:15:01 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37657 – Remove Mandii checkout, status and callback paths (r37655)  OrderController: ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove Mandii checkout, status and callback paths (r37655)&lt;br /&gt;
&lt;br /&gt;
OrderController: the paymentOption MANDII branch and createMandiiOrder are&lt;br /&gt;
gone. GatewayController: the MANDII branch of payment/gateway/status is gone;&lt;br /&gt;
the SDDIRECT branch it sat in front of is untouched and still returns&lt;br /&gt;
AccountStatusResponseOut.&lt;br /&gt;
&lt;br /&gt;
API endpoints removed, all of them Mandii-only:&lt;br /&gt;
- /cart/payment (CartController + its V2CartController delegate) existed&lt;br /&gt;
  solely to poll Mandii for an order status and credit the wallet. It called&lt;br /&gt;
  mandiiService unconditionally, so it already failed for any other gateway.&lt;br /&gt;
- /mandii, the payment-notification callback, a no-op logging stub in both&lt;br /&gt;
  HdfcPaymentController and V2FofoHdfcPaymentController, and dropped from the&lt;br /&gt;
  WebConfig auth whitelist in the fofo commit.&lt;br /&gt;
&lt;br /&gt;
V2 twins touched only where they would otherwise keep a dead route alive or&lt;br /&gt;
fail to compile.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/CartController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/OrderController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/GatewayController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/SmartCartController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoHdfcPaymentController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPartnerOnBoardingPanelController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2CartController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37657</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:14:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37656 – Point dao at the relocated KYC and SD Credit types ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Point dao at the relocated KYC and SD Credit types (r37655)&lt;br /&gt;
&lt;br /&gt;
Imports follow services.mandii -&gt; services.kyc / services.sdcredit, and&lt;br /&gt;
RecordingService takes RawHttpResponse in place of MandiiResponse.&lt;br /&gt;
&lt;br /&gt;
Gateway.MANDII is kept, with a comment saying why: it is persisted as a&lt;br /&gt;
string on FofoPayment.gateway and CreditAccount.gateway, and 740 historical&lt;br /&gt;
fofo.payment rows still carry it - removing the constant would make&lt;br /&gt;
Hibernate throw when reading them.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoKyc.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/Supplier.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/fofo/Gateway.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/SDCreditResponseOut.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/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37656</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37656</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:14:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37655 – Remove the dead Mandii BNPL integration (common)  Mandii has ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 21 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove the dead Mandii BNPL integration (common)&lt;br /&gt;
&lt;br /&gt;
Mandii has taken no payment since 2022-08-23 and holds no credit account, so&lt;br /&gt;
MandiiService and the 29 classes only it used are deleted.&lt;br /&gt;
&lt;br /&gt;
The package had become a home for live types, which are moved out rather than&lt;br /&gt;
lost: Gender/MaritalStatus/AddressProofType -&gt; services.kyc (they back&lt;br /&gt;
@Enumerated columns on user.fofo_kyc, 317 rows), and the SD Credit account&lt;br /&gt;
status model - AccountStatusResponseOut and its 10 dependencies -&gt; &lt;br /&gt;
services.sdcredit, still served by GatewayController for SDDIRECT.&lt;br /&gt;
&lt;br /&gt;
MandiiResponse was a generic body+status holder named after the integration;&lt;br /&gt;
renamed RawHttpResponse, still used by RestClient for Kommuno recordings.&lt;br /&gt;
Its dead getMandii() helper is gone. AccountStatusResponseOut no longer&lt;br /&gt;
carries the hardcoded merchant.mandii.com URL it shipped to the app.&lt;br /&gt;
&lt;br /&gt;
FundfinaService was logging under MandiiService.class - fixed.&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/FofoKycModel.java&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/MandiiResponse.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/RawHttpResponse.java&lt;br /&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/fundfina/FundfinaService.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/kyc&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/kyc/AddressProofType.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/AddressProofType.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/kyc/Gender.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/Gender.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/kyc/MaritalStatus.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/MaritalStatus.java@37654)&lt;/i&gt;&lt;br /&gt;x /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/AccountStatusResponseOut.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/AccountStatusResponseOut.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/CurrentStageEnum.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/CurrentStageEnum.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/Details.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/Details.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/Documents.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/Documents.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/DocumentStatusEnum.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/DocumentStatusEnum.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/DocumentTypesEnum.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/DocumentTypesEnum.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/EligibilityStatusEnum.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/EligibilityStatusEnum.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/RepaymentDetails.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/RepaymentDetails.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/VirtualAccountDetails.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/VirtualAccountDetails.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/VirtualBankAccount.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/VirtualBankAccount.java@37654)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/sdcredit/VirtualUPI.java &lt;i&gt;(copied from /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/mandii/VirtualUPI.java@37654)&lt;/i&gt;&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37655</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37655</guid></item>
<item><pubDate>Wed, 16 Sep 2026 16:29:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37654 – Sync internal store addresses at the mapping write  /createNewWarehouse ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Sync internal store addresses at the mapping write&lt;br /&gt;
&lt;br /&gt;
/createNewWarehouse now calls syncInternalStoreAddresses right after&lt;br /&gt;
persisting the WarehouseAddressMapping, inside the same transaction, so the&lt;br /&gt;
rule lives at the mutation site rather than in an endpoint someone has to&lt;br /&gt;
remember to call. A brand new warehouse has no internal store yet so it is a&lt;br /&gt;
no-op today, but any later path that sets a mapping now cannot leave an&lt;br /&gt;
internal store billing to the previous address.&lt;br /&gt;
&lt;br /&gt;
/syncWarehouseInternalAddress stays for remediating mappings repointed&lt;br /&gt;
directly in the database. Follows r37652/r37653.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SellerController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37654</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37654</guid></item>
<item><pubDate>Wed, 16 Sep 2026 15:32:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37653 – Add POST /syncWarehouseInternalAddress  Realigns the INTERNAL stores of a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add POST /syncWarehouseInternalAddress&lt;br /&gt;
&lt;br /&gt;
Realigns the INTERNAL stores of a warehouse with its currently mapped&lt;br /&gt;
address. The warehouse address mapping has no edit screen - it is repointed&lt;br /&gt;
directly in the database - so a branch move never reached the internal&lt;br /&gt;
store&apos;s user.address and orders kept billing to the old premises. Run this&lt;br /&gt;
after changing a warehouse address mapping. Pairs with r37652.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SellerController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37653</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37653</guid></item>
<item><pubDate>Wed, 16 Sep 2026 15:32:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37652 – Internal store buyer address: always read user.address  An INTERNAL ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Internal store buyer address: always read user.address&lt;br /&gt;
&lt;br /&gt;
An INTERNAL store is the buying identity of a warehouse, so order creation&lt;br /&gt;
resolved its address from transaction.warehouseaddressmaster while every&lt;br /&gt;
screen read transaction.addId -&gt; user.address. The Delhi warehouses moved to&lt;br /&gt;
warehouseaddressmaster 26 in Sept 2024 and nothing carried that across, so&lt;br /&gt;
user.address still held the 2021 L-222 premises: same buyer, two addresses.&lt;br /&gt;
&lt;br /&gt;
user.address for active internal stores is now aligned with the mapped&lt;br /&gt;
warehouse address (sql/20260916_sync_internal_store_addresses.sql), split&lt;br /&gt;
exactly as getCustomAddress() does so the next invoice is unchanged. With&lt;br /&gt;
that true, createTransactionForWarehouse no longer special-cases internal.&lt;br /&gt;
&lt;br /&gt;
SellerService.syncInternalStoreAddresses carries a warehouse address remap&lt;br /&gt;
through to its internal stores - the mapping has no edit screen and is&lt;br /&gt;
repointed directly in the database, which is why nothing propagated before.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20260916_sync_internal_store_addresses.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37652</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37652</guid></item>
<item><pubDate>Wed, 16 Sep 2026 15:13:38 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37651 – LMS click to call</title><description>&lt;div&gt;&lt;strong&gt;vikas – 63 file(s) modified&lt;/strong&gt;&lt;br/&gt;LMS click to call&lt;/div&gt;~ /trunk/profitmandi-dao/build.gradle&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/config/AsyncConfig.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/auth/VonageAgent.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/LeadActivity.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/LeadCall.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/LeadDnd.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/LeadRecordingAccess.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/MetaLead.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/MetaLeadImport.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/dtr/LeadCallProvider.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/dtr/LeadCallStatus.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/dtr/MetaLeadDistribution.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/dtr/MetaLeadOutcome.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/auth/VonageAgentRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/auth/VonageAgentRepositoryImpl.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/LeadDndRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadDndRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRecordingAccessRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/LeadRecordingAccessRepositoryImpl.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/repository/dtr/MetaLeadRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/MetaLeadRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/vbc&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/integrations/vonage/vbc/VbcTokenService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/VonageDialerProvider.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/VonageJwtService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/vonage/VonageVoiceService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/LmsDialerProvider.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/meta&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/meta/MetaLeadFileParser.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/lms/meta/MetaLeadRow.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/RecordingAccessService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/RecordingArchiveService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/lms/RecordingArchiveWorker.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LmsDashboardService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/storage&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/storage/ObjectStoreService.java&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;~ /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/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/java/com/spice/profitmandi/web/controller/LmsRecordingController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/MetaLeadImportController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/RecordingArchiveScheduler.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/util/CatalogMonitorTypeCsvValidator.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/resources/META-INF/env.property&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/lead.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/admin.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/edit-lead.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/lead-record.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/lms-dashboard-standalone.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/meta-lead-import.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/web/util/CatalogMonitorTypeCsvValidatorTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37651</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37651</guid></item>
<item><pubDate>Wed, 16 Sep 2026 09:28:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37650 – SQL to retire user.counter / user.privatedealuser / address mapping after ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;SQL to retire user.counter / user.privatedealuser / address mapping after r37648-49 deploy (rename, reversible)&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/retire_counter_privatedealuser_20260916.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37650</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37650</guid></item>
<item><pubDate>Wed, 16 Sep 2026 09:28:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37649 – Retire user.counter / user.privatedealuser write path (web)  createRetailer no ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Retire user.counter / user.privatedealuser write path (web)&lt;br /&gt;
&lt;br /&gt;
createRetailer no longer creates a Counter, PrivateDealUser or address mapping; the&lt;br /&gt;
non-found branch keeps only the saholic-user address write it also did. Pairs with&lt;br /&gt;
dao r37648.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/RetailerController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37649</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37649</guid></item>
<item><pubDate>Wed, 16 Sep 2026 09:28:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37648 – Retire user.counter / user.privatedealuser write path  Partner GST moved ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;Retire user.counter / user.privatedealuser write path&lt;br /&gt;
&lt;br /&gt;
Partner GST moved to fofo.fofo_store.gst_number in the Feb-2026 migration; counter.gstin&lt;br /&gt;
has had no reader since (Counter.getGstin() had no callers) and privatedealuser is only&lt;br /&gt;
read to decide its own insert-vs-update. Both were write-only bookkeeping.&lt;br /&gt;
&lt;br /&gt;
- RetailerServiceImpl: drop createPrivateDealUser/createCounter and their two call sites&lt;br /&gt;
- MigrationUtil.migrateUserToRetailer: drop the same legacy block&lt;br /&gt;
- Delete Counter / PrivateDealUser / PrivateDealUserAddressMapping entities + repositories&lt;br /&gt;
&lt;br /&gt;
No reader is affected: the 240 Reportico reports on static0 reference neither table&lt;br /&gt;
(the &apos;counter&apos; hits are fofo_store.counter_size). Tables stay in place until this is&lt;br /&gt;
deployed, then get renamed out of the way.&lt;/div&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/Counter.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/PrivateDealUser.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/PrivateDealUserAddressMapping.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserAddressMappingRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserAddressMappingRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/util/MigrationUtil.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37648</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37648</guid></item>
<item><pubDate>Tue, 15 Sep 2026 21:38:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37647 – Invoice/DN return: file credit note at NIC only when the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Invoice/DN return: file credit note at NIC only when the invoice IRN was filed&lt;br /&gt;
&lt;br /&gt;
- GstProService.hasFiledIrn: invoice has a real IRN with ack date (DCs excluded)&lt;br /&gt;
- applyInvoiceReturnViaCreditNote: filed IRN -&gt; CN + NIC CRN as before;&lt;br /&gt;
  not filed + INTERNAL buyer -&gt; CN issued locally, NIC skipped;&lt;br /&gt;
  not filed + other buyer -&gt; refund without CN, CN sequence untouched&lt;br /&gt;
- DN refund path: not filed + INTERNAL buyer -&gt; local CN, NIC skipped&lt;br /&gt;
Fixes approval failing with &apos;Recipient GSTIN state code does not match&apos; on&lt;br /&gt;
internal invoices whose IRN was never generated (NSPRJ41943, NSPRJ41950).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37647</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37647</guid></item>
<item><pubDate>Tue, 15 Sep 2026 18:40:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37646 – Hot Deal brand: dedupe model_hot_deal to one row per catalog ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: dedupe model_hot_deal to one row per catalog before the unique key (prod had one Realme duplicate from the old windowed model)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/resources/sql/hot_deal_brand_migration.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37646</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37646</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:55:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37645 – ticket download option given and some enhancement on notification panel</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;ticket download option given and some enhancement on notification panel&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=%2Ftrunk%2F&amp;isdir=1&amp;rev=37645</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37645</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:52:54 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37644 – Cron batch infra: count real SUCCESS rows instead of deriving ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Cron batch infra: count real SUCCESS rows instead of deriving them, add INCOMPLETE status for runs that died mid-loop, stale-batch reaper, admin force-finalize; markItemSuccess joins the work transaction&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/transaction/CronBatchStatus.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CronBatchRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/cron/CronBatchService.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/CronBatchAdminController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37644</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37644</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:40:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37643 – Hot Deal brand: admin edits attributes + optional OEM catalog ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: admin edits attributes + optional OEM catalog mapping; brand/date/cap controls removed; jsVersion 424&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/HotDealController.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/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=%2Ftrunk%2F&amp;isdir=1&amp;rev=37643</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37643</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:39:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37642 – Hot Deal brand: remove the 00:20 window-sync job and its ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: remove the 00:20 window-sync job and its CLI flag - no date windows any more&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37642</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37642</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:39:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37641 – Hot Deal brand: badge from brand, /fofo/hotDeals/brands facet, real availability ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: badge from brand, /fofo/hotDeals/brands facet, real availability on every listing, drop legacy hot-deals pause endpoints&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/DealsController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/services/HotDealEnrichmentService.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoIndentController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37641</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37641</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:39:20 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37640 – Hot Deal brand: brand-driven membership, model_hot_deal reduced to attributes + ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 14 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: brand-driven membership, model_hot_deal reduced to attributes + oem_brand + oem_catalog_id, migration SQL&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartServiceImpl.java&lt;br /&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/entity/catalog/TagListing.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CatalogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CatalogRepositoryImpl.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/dao/service/solr/FofoSolr.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/main/java/com/spice/profitmandi/service/pricing/PricingServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/hot_deal_brand_migration.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/hot_deal_brand_schema.sql&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=%2Ftrunk%2F&amp;isdir=1&amp;rev=37640</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37640</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:38:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37639 – chore(sql): second internal vendor catalog pricing cleanup, as run on ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;chore(sql): second internal vendor catalog pricing cleanup, as run on prod 2026-09-15&lt;br /&gt;
&lt;br /&gt;
- 100 internal rows recreated 2026-09-14 18:07 for 325/326/371/382/406 (guard r37634 not yet deployed) and supplier 452, switched to internal 2026-09-15&lt;br /&gt;
- Backups _bak_vcp_internal_20260915 (251) / _bak_vcpl_internal_20260915 (367)&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/drop_internal_vendor_catalog_pricing_20260915.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37639</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37639</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:38:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37638 – Hot Deal brand: HOT_DEAL_BRAND constant, oem_brand_s facet and hot-deal brand ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Hot Deal brand: HOT_DEAL_BRAND constant, oem_brand_s facet and hot-deal brand filter routing&lt;/div&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/solr/SolrService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37638</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37638</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:17 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37637 – feat(pricing): log tag_listing price changes; reference TP instead of vendoritempricing ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(pricing): log tag_listing price changes; reference TP instead of vendoritempricing in price drop and tag listing&lt;br /&gt;
&lt;br /&gt;
- Add Pricing and price drop set DP/MOP/MRP via TagListingPriceService (logged with user; price drop logs carry price_drop_id)&lt;br /&gt;
- Price drop no longer writes vendoritempricing or vendor catalog pricing; old TP and prefill TP from reference TP&lt;br /&gt;
- Tag listing download TP from reference TP; drop unused VendorItemPricingRepository&lt;br /&gt;
- TagListingPricingTest: local-DB tests for the price log, reference TP and internal supplier guard&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PriceDropController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/TagListingController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/OrderManagementController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/tag&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/tag/TagListingPricingTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37637</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37637</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37636 – refactor(cron): remove vendoritempricing one-offs; log catalog migration listing prices  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;refactor(cron): remove vendoritempricing one-offs; log catalog migration listing prices&lt;br /&gt;
&lt;br /&gt;
- Remove migrateVendorItemPricing (2023 one-off) and its flag; fixOrders no longer reads vendoritempricing&lt;br /&gt;
- CatalogMigration sets listing prices via TagListingPriceService&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/runnables/CatalogMigration.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=%2Ftrunk%2F&amp;isdir=1&amp;rev=37636</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37636</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37635 – feat(pricing): V2 log tag_listing price changes; reference TP instead of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(pricing): V2 log tag_listing price changes; reference TP instead of vendoritempricing in price drop and tag listing&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOrderManagementController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPriceDropController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoTagListingController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37635</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37635</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:02 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37634 – feat(pricing): tag_listing price change log; retire vendoritempricing writes/reads in dao; ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 14 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(pricing): tag_listing price change log; retire vendoritempricing writes/reads in dao; price drops no longer touch vendor catalog pricing&lt;br /&gt;
&lt;br /&gt;
- New catalog.tag_listing_price_log (sql/create_tag_listing_price_log_20260915.sql, applied on prod 2026-09-15) + TagListingPriceService: the single setter for tag_listing DP/MOP/MRP, logging old/new values, source and user&lt;br /&gt;
- Remove applyPriceDrop (r37622): price drops write only price_drop + tag_listing; sql/revert_price_drop_vendor_catalog_pricing_20260915.sql restores the 30 rows it wrote (run on prod)&lt;br /&gt;
- VendorCatalogPricingService: reference TP = latest approved external TP (single + batched); internal suppliers rejected on create, bulk upload and approval&lt;br /&gt;
- Stop copying pricing into vendoritempricing on approval and item upload; tag listing detail TP from reference TP; indent DP from tag_listing only&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/TagListingPriceLog.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/inventory/SaholicInventoryCIS.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/TagListingPriceLogRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/TagListingPriceLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/VendorCatalogPricingLogRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/VendorCatalogPricingLogRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/catalog/ItemLoaderService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/VendorCatalogPricingService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/VendorCatalogPricingServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/tag/TagListingPriceService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/tag/TagListingPriceServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/tag/TagServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/create_tag_listing_price_log_20260915.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/revert_price_drop_vendor_catalog_pricing_20260915.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37634</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37634</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:14:31 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37633 – preffered app version revert  on server side it will ...</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;preffered app version revert  on server side it will be client side&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/User.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2UserController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37633</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37633</guid></item>
<item><pubDate>Tue, 15 Sep 2026 14:15:39 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 37632 – fix(loi): don&apos;t leave an LOI half signed when the signed ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(loi): don&apos;t leave an LOI half signed when the signed PDF fails to save&lt;br /&gt;
&lt;br /&gt;
Confirm Sign stores the partner OTP (/validateLoiOtp) before the browser builds and uploads the&lt;br /&gt;
signed PDF (/saveLoiDoc). When that second step failed - html2pdf not loaded from cdnjs, upload&lt;br /&gt;
rejected, tab closed, server error - nothing was shown, no LOI mail went out, no onboarding was&lt;br /&gt;
created, and because loiOtpPresent hid Generate LOI the filler could never re-sign (LOI 734).&lt;br /&gt;
&lt;br /&gt;
- pendingFormList: loiOtpPresent only when OTP AND loiDoc are both saved; new loiSignIncomplete&lt;br /&gt;
  flag shows a red &quot;signed LOI not saved&quot; note on the Pending LOI list (web + V2 app).&lt;br /&gt;
- loi-form.js Confirm Sign: every failure after the OTP says the LOI was NOT saved and how to&lt;br /&gt;
  retry; checks html2pdf is loaded; success alert only after /saveLoiDoc confirms; no double submit.&lt;br /&gt;
- /saveLoiDoc (fofo + V2): refuses a document without a verified OTP; a repeat call for an&lt;br /&gt;
  already saved LOI is a no-op (no second mail / completion).&lt;br /&gt;
- /validateLoiOtp (fofo + V2): clear message when no OTP was sent in 24h; reports the real&lt;br /&gt;
  rejection reason (e.g. OTP already used) instead of always &quot;wrong&quot;.&lt;br /&gt;
- sendSignedLoiPdfToPartner: filler without a manager no longer throws and rolls back the save.&lt;br /&gt;
- OtpProcessor.generateOtp: never hands back an already verified OTP under the 2-minute throttle.&lt;br /&gt;
- AppConfig version 423 for loi-form.js.&lt;br /&gt;
&lt;br /&gt;
Co-Authored-By: Claude Opus 5 (1M context) &amp;lt;&lt;a href=&quot;mailto:noreply@anthropic.com&quot;&gt;noreply@anthropic.com&lt;/a&gt;&gt;&lt;br /&gt;
Claude-Session: &lt;a href=&quot;https://claude.ai/code/session_01RhJD2sc6pf3Zd7f4hyGxhH&quot; target=&quot;_blank&quot;&gt;https://claude.ai/code/session_01RhJD2sc6pf3Zd7f4hyGxhH&lt;/a&gt;&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/LoiFormModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/OtpProcessor.java&lt;br /&gt;~ /trunk/profitmandi-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/LoiFormController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/loi-form.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/pendingForm.vm&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLoiFormController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37632</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37632</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37631 – feat(mail): wire inactive-recipient filter, clean addresses, remove attendance alerts  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): wire inactive-recipient filter, clean addresses, remove attendance alerts&lt;br /&gt;
&lt;br /&gt;
Wire MailRecipientFilter into both mail senders. Remove inactive hardcoded recipients, fix typo addresses, send market-share reminder to tech@. Delete sendAttendanceMorningAlert/EveningAlert, sendMailToHR and their CLI options.&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/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/razorpay/FetchPartnersDisbursementTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasksTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37631</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2F&amp;isdir=1&amp;rev=37631</guid></item>
</channel></rss>