<?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>Thu, 17 Sep 2026 04:34:03 +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=37657</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2F&amp;peg=37657&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<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=%2F&amp;isdir=1&amp;rev=37657&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37657&amp;peg=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=%2F&amp;isdir=1&amp;rev=37656&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37656&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37655&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37655&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37654&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37654&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37653&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37653&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37652&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37652&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37651&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37651&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37650&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37650&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37649&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37649&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37648&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37648&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37647&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37647&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37646&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37646&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37645&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37645&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37644&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37644&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37643&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37643&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37642&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37642&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37641&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37641&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37640&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37640&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37639&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37639&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37638&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37638&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37637&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37637&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37636&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37636&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37635&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37635&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37634&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37634&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37633&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37633&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37632&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37632&amp;peg=37657</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=%2F&amp;isdir=1&amp;rev=37631&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37631&amp;peg=37657</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:02 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37630 – feat(mail): wire inactive-recipient filter and clean hardcoded addresses  Wire ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): wire inactive-recipient filter and clean hardcoded addresses&lt;br /&gt;
&lt;br /&gt;
Wire MailRecipientFilter into googleMailSender and gmailRelaySender. Remove inactive/unknown addresses from recipient and access lists, bulk uploader gate to akhil.kumar.&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/LeadController.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;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RefferalController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RetailerController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ServiceConfigContoller.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WebListingController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37630&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37630&amp;peg=37657</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:01 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37629 – feat(mail): wire inactive-recipient filter and clean hardcoded addresses  Wire ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): wire inactive-recipient filter and clean hardcoded addresses&lt;br /&gt;
&lt;br /&gt;
Wire MailRecipientFilter into googleMailSender and gmailRelaySender. Remove inactive/unknown addresses from recipient and access lists, fix typo addresses, bulk uploader gate to akhil.kumar, V2 brand fee gate to kamini.sharma.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&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/ContactUsController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/StoreController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/UserController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoDashboardController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLeadController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLoiFormController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMonitorController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRefferalController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoRetailerController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoServiceConfigController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWalletController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWebListingController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37629&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37629&amp;peg=37657</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37628 – feat(mail): filter inactive auth users from outgoing mail  InactiveAuthUserRecipientFilter ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): filter inactive auth users from outgoing mail&lt;br /&gt;
&lt;br /&gt;
InactiveAuthUserRecipientFilter drops @smartdukaan.com recipients whose auth.auth_user is inactive (cached, 5 min refresh, fail-open). Remove inactive hardcoded recipients (sm@, praveen.sharma, tejus.lohani).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PendingOrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.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/service/mail/InactiveAuthUserRecipientFilter.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/serviceConfig/ServiceConfigServiceImpl.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/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/mail&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/mail/InactiveAuthUserRecipientFilterTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37628&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37628&amp;peg=37657</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:15:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37627 – feat(mail): drop inactive recipients before send  Add MailRecipientFilter and ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): drop inactive recipients before send&lt;br /&gt;
&lt;br /&gt;
Add MailRecipientFilter and RecipientFilteringMailSender, which strips To/Cc/Bcc addresses the filter reports inactive and skips a mail left with no recipients instead of failing. AuthenticatedIdentityMailSender now extends it.&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/AuthenticatedIdentityMailSender.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/MailRecipientFilter.java&lt;br /&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/services/RecipientFilteringMailSender.java&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/services&lt;br /&gt;+ /trunk/profitmandi-common/src/test/java/com/spice/profitmandi/common/services/RecipientFilteringMailSenderTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37627&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37627&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 18:57:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37626 – test(billing): assert internal transfer and billing resolve the same external ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(billing): assert internal transfer and billing resolve the same external origin vendor&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37626&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37626&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 18:57:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37625 – fix(internal-movement): trace serial origin to the latest external purchase, matching ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(internal-movement): trace serial origin to the latest external purchase, matching billing&lt;br /&gt;
&lt;br /&gt;
- resolveInternalMovementPrices orders the serial&apos;s external purchases newest first (was oldest), so transfers and billing name the same original vendor; no in-stock unit on prod changes (0 of 3,734)&lt;br /&gt;
- Restore resolveInternalMovementPrices javadoc onto its own method&lt;br /&gt;
- Add drop_internal_vendor_catalog_pricing_20260914.sql, as run on prod 2026-09-14 17:33 (15 New Spice internal suppliers; backups _bak_vcp/_bak_vcpl_internal_20260914)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InternalMovementPriceModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/drop_internal_vendor_catalog_pricing_20260914.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37625&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37625&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:10:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37624 – feat(price-drop): auto-approve V2 price drop DP/MOP into external vendor catalog ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(price-drop): auto-approve V2 price drop DP/MOP into external vendor catalog pricing&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPriceDropController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37624&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37624&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:10:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37623 – feat(price-drop): auto-approve price drop DP/MOP into external vendor catalog pricing ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(price-drop): auto-approve price drop DP/MOP into external vendor catalog pricing&lt;br /&gt;
&lt;br /&gt;
- PriceDropController calls VendorCatalogPricingService.applyPriceDrop with the affected date and logged-in user&lt;br /&gt;
- BillingPricingServiceTest: local-DB integration tests (rolled back) for origin-based billing prices, catalog fallback and re-billed orders&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PriceDropController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37623&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37623&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:10:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37622 – feat(billing): price warehouse billing from the external supplier of the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(billing): price warehouse billing from the external supplier of the billed stock; auto-approve price drop DP/MOP into vendor catalog pricing&lt;br /&gt;
&lt;br /&gt;
- BillingPricingService resolves TP/NLC per order from vendor_catalog_pricing of the most recent external supplier of the units scanned out (serial trace, else own external PO); units reversed by SALE_RET are ignored&lt;br /&gt;
- Falls back to the latest approved external catalog price when no supplier can be traced; vendorId stays the warehouse vendor&lt;br /&gt;
- addBillingDetailsForGrouppedOrders no longer reads vendoritempricing (removes NPE when the row is missing); order.vendorId set to the origin supplier&lt;br /&gt;
- VendorCatalogPricingService.applyPriceDrop writes approved pricing logs for external vendors with the price drop DP/MOP, keeping each vendor&apos;s TP on the effective date&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/BillingPriceModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InventoryItemExternalOriginModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/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/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingPricingService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37622&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37622&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:09:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37621 – V2 /entity honours activeOnly, defaulting to false  Same defect ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;V2 /entity honours activeOnly, defaulting to false&lt;br /&gt;
&lt;br /&gt;
Same defect as the fofo endpoint fixed in profitmandi-fofo r37620: the flag was&lt;br /&gt;
accepted and ignored. Defaulting to false keeps callers that omit it unchanged.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoContentController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37621&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37621&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:08:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37620 – Offer creation suggests only active models unless asked for all ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Offer creation suggests only active models unless asked for all&lt;br /&gt;
&lt;br /&gt;
/entity accepted activeOnly but always searched with false, so the offer&lt;br /&gt;
screen&apos;s model picker listed every catalog of the brand, delisted ones included.&lt;br /&gt;
It now honours the flag. The default becomes false so the pages that never pass&lt;br /&gt;
it keep their current results; the notification product search, which already&lt;br /&gt;
asked for active-only, now gets it.&lt;br /&gt;
&lt;br /&gt;
Each item-criteria block gets an Include inactive checkbox, off by default.&lt;br /&gt;
Ticking Exclude ticks it too: a brand-level offer still pays on delisted models&lt;br /&gt;
partners hold stock of, and they cannot be excluded if they cannot be picked.&lt;br /&gt;
Inactive models are labelled, and reloading the list keeps picks still present.&lt;br /&gt;
&lt;br /&gt;
The reload flag is now per block; the old global one let a brand change in one&lt;br /&gt;
block be consumed by opening another, leaving the first with a stale list.&lt;br /&gt;
Brand names are URL-encoded so a brand like Ai+ is not sent as &apos;Ai &apos;.&lt;br /&gt;
&lt;br /&gt;
Requires profitmandi-common r37619 for the inactive label.&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/webapp/resources/js/scheme_offer.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/scheme_offer.vm&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37620&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37620&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:08:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37619 – Return active_b in the unlimited content search  The offer ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Return active_b in the unlimited content search&lt;br /&gt;
&lt;br /&gt;
The offer screen&apos;s model picker needs to mark delisted models as inactive when&lt;br /&gt;
it is asked to include them. The other unlimited-search callers read only&lt;br /&gt;
catalogId_i and title_s, so the extra field changes nothing for them.&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=%2F&amp;isdir=1&amp;rev=37619&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37619&amp;peg=37657</guid></item>
<item><pubDate>Mon, 14 Sep 2026 15:12:29 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37618 – logger added</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;logger added&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37618&amp;peg=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2F&amp;isdir=1&amp;rev=37618&amp;peg=37657</guid></item>
</channel></rss>