<?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/profitmandi-web/src/main/java/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 17 Sep 2026 14:37:55 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37666</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37666</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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37657</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=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=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37649</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37649</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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37641</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37641</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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37635</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37635</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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37633</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37632</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37632</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=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37629</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37629</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=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37624</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37624</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=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37621</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37621</guid></item>
<item><pubDate>Sat, 12 Sep 2026 17:01:11 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37605 – Use the derived movement price in the v2 vendor controller ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Use the derived movement price in the v2 vendor controller too&lt;br /&gt;
&lt;br /&gt;
Same change as the fofo controller: /getPricing returns the movement price for internal&lt;br /&gt;
suppliers, and addVendorPricingIfMissing is gone. This copy is component-scanned, so&lt;br /&gt;
leaving it behind would have kept writing the pricing rows the fofo side stopped writing.&lt;br /&gt;
&lt;br /&gt;
Requires profitmandi-dao r37603.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoVendorController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37605</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37605</guid></item>
<item><pubDate>Fri, 11 Sep 2026 17:30:13 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37591 – Route V2 admin wallet adjustment through WalletServiceImpl  Byte-identical duplicate ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Route V2 admin wallet adjustment through WalletServiceImpl&lt;br /&gt;
&lt;br /&gt;
Byte-identical duplicate of the fofo /walletUpdate handler, with the same missing&lt;br /&gt;
row lock. Points at the shared walletService.applyManualAdjustment so both&lt;br /&gt;
modules share one code path.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37591</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37591</guid></item>
<item><pubDate>Wed, 09 Sep 2026 12:01:03 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37548 – v2 version some fixes</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2 version some fixes&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%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37548</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37548</guid></item>
<item><pubDate>Wed, 09 Sep 2026 11:58:50 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37547 – v2 switch version fixes on server side</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2 switch version fixes on server side&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/NotificationController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37547</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37547</guid></item>
<item><pubDate>Tue, 01 Sep 2026 12:20:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37490 – errors: separate business, integration and bug -- three failures logged ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;errors: separate business, integration and bug -- three failures logged three ways&lt;br /&gt;
&lt;br /&gt;
Everything was logged identically: ERROR, titled &apos;Internal Server Error&apos;, and in&lt;br /&gt;
web stack-traced twice (log4j2 plus printStackTrace, the second copy landing in&lt;br /&gt;
catalina.out). A partner mistyping an IMEI produced the same output as a&lt;br /&gt;
NullPointerException.&lt;br /&gt;
&lt;br /&gt;
That makes the error stream unalertable. Measured over six hours across web and&lt;br /&gt;
fofo: 909 ERROR lines, of which 294 (32%) were ProfitMandiBusinessException --&lt;br /&gt;
HTTP 400s where the user is simply told what to fix. Any rule on ERROR rate&lt;br /&gt;
fires constantly, and an error tracker would rank &apos;insufficient balance&apos; as the&lt;br /&gt;
top issue.&lt;br /&gt;
&lt;br /&gt;
  business    WARN,  no stack trace, 4xx  -- expected, user-correctable&lt;br /&gt;
  integration ERROR + dependency name     -- ours is fine, theirs is not&lt;br /&gt;
  anything else ERROR + stack trace, 500  -- a bug&lt;br /&gt;
&lt;br /&gt;
New IntegrationException carries getDependency(), so two hundred failures of one&lt;br /&gt;
gateway group as one problem rather than two hundred unrelated traces. That&lt;br /&gt;
category did not exist: such failures were previously either a bare Exception&lt;br /&gt;
(indistinguishable from our own bug) or a business exception (which wrongly&lt;br /&gt;
blames the user).&lt;br /&gt;
&lt;br /&gt;
printStackTrace removed from the web handler -- it was writing a second copy of&lt;br /&gt;
every trace to catalina.out.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for wiring the GlitchTip appender, which must not be attached until&lt;br /&gt;
ERROR means something.&lt;/div&gt;+ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/exception/IntegrationException.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/GlobalExceptionHandler.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/GlobalExceptionHandler.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37490</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37490</guid></item>
<item><pubDate>Mon, 31 Aug 2026 17:55:16 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37480 – mail: correct a wrong claim in r37479 -- the Google ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;mail: correct a wrong claim in r37479 -- the Google app password IS valid&lt;br /&gt;
&lt;br /&gt;
r37479 stated googleMailSender&apos;s app password was rejected. That was wrong. The&lt;br /&gt;
test behind it resolved smtp.gmail.com over IPv6; repeating it over IPv4 with&lt;br /&gt;
the same credential gives AUTH OK on both 465 and 587.&lt;br /&gt;
&lt;br /&gt;
The real fault is not the credential and not the bean config, both of which are&lt;br /&gt;
correct. SMTP from this host works over IPv4 only:&lt;br /&gt;
&lt;br /&gt;
  smtp.gmail.com   IPv4 -&gt; AUTH OK        IPv6 -&gt; 535 5.7.8 Username and Password not accepted&lt;br /&gt;
  smtp-relay       IPv4 -&gt; 250 MAIL FROM  IPv6 -&gt; 550 5.7.1 Invalid credentials for relay&lt;br /&gt;
&lt;br /&gt;
The JVM prefers IPv4, which is the only reason mail leaves this box at all.&lt;br /&gt;
Anything that prefers IPv6 fails on both paths.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37480</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37480</guid></item>
<item><pubDate>Mon, 31 Aug 2026 17:49:38 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37479 – mail: make the relay the default sender, not the Google ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;mail: make the relay the default sender, not the Google identity&lt;br /&gt;
&lt;br /&gt;
Correcting r37474-37476. Those made googleMailSender @Primary on the assumption&lt;br /&gt;
its credentials worked. Tested against the live servers from the prod host:&lt;br /&gt;
&lt;br /&gt;
  googleMailSender  535 5.7.8 Username and Password not accepted (BadCredentials)&lt;br /&gt;
                    -- the app password in the source is no longer valid&lt;br /&gt;
  relay over IPv4   250 OK for MAIL FROM:&amp;lt;&lt;a href=&quot;mailto:noreply@smartdukaan.com&quot;&gt;noreply@smartdukaan.com&lt;/a&gt;&gt;&lt;br /&gt;
  relay over IPv6   550 5.7.1 Invalid credentials for relay&lt;br /&gt;
&lt;br /&gt;
So promoting google would have replaced one broken default with another. The&lt;br /&gt;
relay is what actually delivers today and it becomes &apos;mailSender&apos;. It does not&lt;br /&gt;
authenticate -- Workspace authorises it by allowlisted source IP -- so sending&lt;br /&gt;
as noreply@ is legitimate there and AuthenticatedIdentityMailSender correctly&lt;br /&gt;
leaves it alone.&lt;br /&gt;
&lt;br /&gt;
googleMailSender stays available by qualifier. Point the default back at it once&lt;br /&gt;
a valid app password is issued for &lt;a href=&quot;mailto:sdtech@smartdukaan.com&quot;&gt;sdtech@smartdukaan.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Also noted in the javadoc: the relay allowlist covers the IPv4 address only, so&lt;br /&gt;
anything that prefers IPv6 will be refused.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37479</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37479</guid></item>
<item><pubDate>Mon, 31 Aug 2026 17:11:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37475 – mail: delete the dead SendGrid bean from web, make the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;mail: delete the dead SendGrid bean from web, make the authenticated identity primary&lt;br /&gt;
&lt;br /&gt;
Removes the live SendGrid bean plus two commented-out corpses (an old&lt;br /&gt;
&lt;a href=&quot;mailto:build@shop2020.in&quot;&gt;build@shop2020.in&lt;/a&gt; sender and a dead alias). googleMailSender is now @Primary and&lt;br /&gt;
answers to &apos;mailSender&apos;, so unqualified injections get the working authenticated&lt;br /&gt;
sender instead of one that rejects with 535.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37475</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37475</guid></item>
<item><pubDate>Sat, 29 Aug 2026 07:24:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37454 – Build googleMailSender as AuthenticatedIdentityMailSender  The bean authenticates as sdtech@smartdukaan.com, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Build googleMailSender as AuthenticatedIdentityMailSender&lt;br /&gt;
&lt;br /&gt;
The bean authenticates as &lt;a href=&quot;mailto:sdtech@smartdukaan.com&quot;&gt;sdtech@smartdukaan.com&lt;/a&gt;, so Google Workspace only permits&lt;br /&gt;
that address in From. Callers hardcode noreply@, which Gmail refuses with 535&lt;br /&gt;
&apos;Authenticated user is not authorized to send mail&apos;, silently dropping every alert&lt;br /&gt;
sent through it. The sender now rewrites From to its own username at send time.&lt;br /&gt;
&lt;br /&gt;
See profitmandi-common r37451.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37454</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37454</guid></item>
<item><pubDate>Wed, 26 Aug 2026 13:46:51 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37415 – Whatsapp Apis</title><description>&lt;div&gt;&lt;strong&gt;vikas – 14 file(s) modified&lt;/strong&gt;&lt;br/&gt;Whatsapp Apis&lt;/div&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/Optin.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/OptinRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/OptinRepositoryImpl.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/CpassWhatsappService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/GupshupWhatsappService.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappListRow.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappListSection.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappProvider.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappProviderResolver.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappReplyButton.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappTemplateSender.java&lt;br /&gt;x /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/WhatsappProviderResolverTest.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/CpassTestController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/CpassWebhookController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37415</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37415</guid></item>
<item><pubDate>Wed, 26 Aug 2026 13:16:24 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37412 – Whatsapp Apis</title><description>&lt;div&gt;&lt;strong&gt;vikas – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Whatsapp Apis&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/WebMVCConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/BotPenguinTestController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoLiquidationController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoUpSaleController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/prod.properties&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/staging.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37412</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37412</guid></item>
<item><pubDate>Wed, 26 Aug 2026 13:13:33 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37411 – v2 version some fixes</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2 version some fixes&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2InsuranceController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37411</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37411</guid></item>
<item><pubDate>Tue, 25 Aug 2026 22:59:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37404 – Serve the canonical state list from inventory.statemaster  Add GET ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Serve the canonical state list from inventory.statemaster&lt;br /&gt;
&lt;br /&gt;
Add GET /master-data/states returning each state&apos;s name and GST state code.&lt;br /&gt;
&lt;br /&gt;
Clients were each carrying their own hardcoded state list, which drifted from the&lt;br /&gt;
master. Anything we store is later resolved back through that master by name, so a&lt;br /&gt;
drifted list writes values nothing can resolve - which is how customer addresses&lt;br /&gt;
ended up with states like &apos;Daman &amp; Diu&apos; that the master no longer holds, leaving&lt;br /&gt;
those invoices unable to generate. Serving the list means a correction to the&lt;br /&gt;
master reaches every client without a release.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/MasterDataController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37404</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37404</guid></item>
<item><pubDate>Tue, 25 Aug 2026 20:30:12 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37399 – Use the shared insurance invoice line builder for standalone policy ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Use the shared insurance invoice line builder for standalone policy invoices&lt;br /&gt;
&lt;br /&gt;
Replace the duplicated CustomInsurancePolicy block with InsuranceInvoiceLine.&lt;br /&gt;
Drop the setTotalAmount call - the renderer derives totals from the item lines,&lt;br /&gt;
so the value was never read - and the repository field it orphaned.&lt;br /&gt;
&lt;br /&gt;
Derive and set the invoice state codes, as the partner invoice already does, so&lt;br /&gt;
the place of supply prints when billing a registered buyer.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/InsuranceController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37399</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37399</guid></item>
<item><pubDate>Mon, 24 Aug 2026 18:37:54 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37392 – Whatsapp Apis</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Whatsapp Apis&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37392</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37392</guid></item>
<item><pubDate>Mon, 24 Aug 2026 18:11:52 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37391 – Whatsapp Apis</title><description>&lt;div&gt;&lt;strong&gt;vikas – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Whatsapp Apis&lt;/div&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/services/RemarkAlertService.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/services/RemarkSimilarity.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37391</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37391</guid></item>
<item><pubDate>Mon, 24 Aug 2026 16:49:11 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37388 – Whatsapp Apis</title><description>&lt;div&gt;&lt;strong&gt;vikas – 28 file(s) modified&lt;/strong&gt;&lt;br/&gt;Whatsapp Apis&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/web/client/RestClient.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/NotificationServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/BotPenguinPayloads.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/BotPenguinTemplateInfo.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/BotPenguinWhatsappService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/CpassWhatsappService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/GupshupWhatsappService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappFlow.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappNumbers.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappProvider.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappProviderResolver.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappTemplateComponent.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappTemplateParam.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappTemplateRequest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/whatsapp/WhatsappTemplateSender.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-dao/src/test/java/com/spice/profitmandi/service/whatsapp&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/BotPenguinPayloadTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/BotPenguinResponseTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/BotPenguinTemplateResolutionTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/WhatsappNumbersTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/whatsapp/WhatsappProviderResolverTest.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/WebMVCConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/BeatTrackingController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/BotPenguinTestController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/BotPenguinWebhookController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37388</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37388</guid></item>
<item><pubDate>Mon, 24 Aug 2026 15:36:31 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37387 – Disable UPI data</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Disable UPI data&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37387</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37387</guid></item>
<item><pubDate>Mon, 24 Aug 2026 11:06:54 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37383 – Disable UPI data</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Disable UPI data&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37383</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37383</guid></item>
<item><pubDate>Fri, 21 Aug 2026 18:52:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37382 – Unbreak profitmandi-web: pass the optional fofoId r37377 added  r37377 ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Unbreak profitmandi-web: pass the optional fofoId r37377 added&lt;br /&gt;
&lt;br /&gt;
r37377 widened PurchaseReturnOrderRepository.selectByWarehouseIdsAndDateRange&lt;br /&gt;
with an optional fofoId so the FOFO Sale Returns partner filter could be a&lt;br /&gt;
predicate rather than a post-filter. r37378 updated the FOFO caller; this web&lt;br /&gt;
caller was missed, so it still passed 4 arguments to a 5-argument method and&lt;br /&gt;
profitmandi-web has not compiled since - the web war could not be built at all.&lt;br /&gt;
&lt;br /&gt;
/return/invoice has no partner picker (its only params are fromDate/toDate; the&lt;br /&gt;
fofoId param elsewhere in this controller belongs to searchDebitNotes), so null&lt;br /&gt;
is the right value: the impl only adds the fofoId predicate when non-null, which&lt;br /&gt;
is exactly this endpoint&apos;s pre-r37377 behaviour. No listing change.&lt;br /&gt;
&lt;br /&gt;
The other three methods r37377 added - selectPendingByWarehouseIds,&lt;br /&gt;
selectUnreceivedSince, selectEarliestCreateTimestamp - have no web callers; the&lt;br /&gt;
pending-queue screen is FOFO-only, so nothing else was left half-migrated.&lt;br /&gt;
&lt;br /&gt;
Verified all five modules compile.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseReturnController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37382</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37382</guid></item>
<item><pubDate>Fri, 21 Aug 2026 18:44:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37381 – Guard empty item IN () and null billing address on ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Guard empty item IN () and null billing address on the app sale-details paths&lt;br /&gt;
&lt;br /&gt;
Mirrors fofo r37380 on the profitmandi-web side, where the same two defects exist.&lt;br /&gt;
&lt;br /&gt;
V2FofoOrderController (live mobile-app API, not the dormant fofo V2):&lt;br /&gt;
- sale details built itemIds from fofoOrderItems and passed them straight to&lt;br /&gt;
  itemRepository.selectByIds. An insurance-only sale has no fofo_order_item row,&lt;br /&gt;
  so the list is empty and selectAllByInOrderByDesc throws &quot;List should not be&lt;br /&gt;
  empty&quot;. The sibling sale-search method in this same file was already guarded;&lt;br /&gt;
  the detail method was not.&lt;br /&gt;
- customerBillingAddressObj was put into the response unconditionally, so an&lt;br /&gt;
  order with customerAddressId 0 (no address is required for a plain POS sale)&lt;br /&gt;
  returned null and the app had no name or phone to show. Fall back to the&lt;br /&gt;
  customer&apos;s own name and mobile, matching the invoice PDF. Applied at both sites.&lt;br /&gt;
&lt;br /&gt;
CustomerController: same empty-IN exposure in the customer order-history batch&lt;br /&gt;
fetch, where a customer whose only order is an insurance sale yields no order&lt;br /&gt;
items. Adds the java.util.HashMap import this file needed (it imports java.util&lt;br /&gt;
members individually).&lt;br /&gt;
&lt;br /&gt;
Verified profitmandi-web compiles clean with these changes. Note trunk currently&lt;br /&gt;
does NOT build: V2FofoPurchaseReturnController:635 still calls the 4-arg&lt;br /&gt;
selectByWarehouseIdsAndDateRange that r37377 widened to 5 args (r37378 updated&lt;br /&gt;
the fofo caller but not this one). That break is untouched here and needs its&lt;br /&gt;
own fix before a web war can be built.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/CustomerController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOrderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37381</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37381</guid></item>
<item><pubDate>Thu, 20 Aug 2026 15:49:15 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37373 – Active Scratch Offers</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Active Scratch Offers&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2WalletController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37373</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37373</guid></item>
<item><pubDate>Thu, 20 Aug 2026 11:21:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37369 – Fixed mail sender everywhere</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed mail sender everywhere&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37369</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37369</guid></item>
<item><pubDate>Wed, 19 Aug 2026 20:33:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37367 – Mail: raise SMTP timeouts and rotate the sdtech app password ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Mail: raise SMTP timeouts and rotate the sdtech app password&lt;br /&gt;
&lt;br /&gt;
The 10s read timeout was cutting off larger attachment sends (policy PDFs, invoice&lt;br /&gt;
attachments) and surfacing as a send failure the outbox then retried. Raised to 30s&lt;br /&gt;
connect / 120s read-write on both senders. App password rotated to match the current&lt;br /&gt;
Google account credential.&lt;br /&gt;
&lt;br /&gt;
Also fills in new.solr.url and store.app.url in staging.properties - staging carries no&lt;br /&gt;
fallback to dev/prod, so a missing key stops the context from starting.&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/resources/META-INF/staging.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37367</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37367</guid></item>
<item><pubDate>Wed, 19 Aug 2026 13:22:05 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 37354 – AI lead intake: pool is BGC L1 (category 20), not ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;AI lead intake: pool is BGC L1 (category 20), not Sales L1 - BGC is the desk that works AI leads&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37354</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37354</guid></item>
<item><pubDate>Wed, 19 Aug 2026 13:16:59 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 37353 – AI lead intake: assign new leads to a random active ...</title><description>&lt;div&gt;&lt;strong&gt;aman – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;AI lead intake: assign new leads to a random active Sales L1 instead of fixed auth id 53&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/LeadController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37353</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37353</guid></item>
<item><pubDate>Tue, 18 Aug 2026 14:52:54 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37341 – fix(rbm-dashboard): return full partner book and exclude inactive stores  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(rbm-dashboard): return full partner book and exclude inactive stores&lt;br /&gt;
&lt;br /&gt;
/v2/fofo/rbm-dashboard capped partners/alerts at 50 by default. The RBM home&lt;br /&gt;
searches and filters client-side, so any partner outside that slice was&lt;br /&gt;
unfindable while summary.totalPartners reported the real (much larger) count.&lt;br /&gt;
&lt;br /&gt;
- limit now defaults to 0 = uncapped; an explicit ?limit=n is still honoured&lt;br /&gt;
  up to RBM_DASHBOARD_MAX_LIMIT (200)&lt;br /&gt;
- deactivated stores are skipped for the whole computation, not just alerts:&lt;br /&gt;
  they have no target, scored 0% and sorted to the top of the action list&lt;br /&gt;
- summary.limit reports 0 when uncapped instead of Integer.MAX_VALUE&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoMonitorController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37341</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37341</guid></item>
<item><pubDate>Fri, 14 Aug 2026 18:17:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37319 – Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed order header&lt;br /&gt;
&lt;br /&gt;
The tertiary panel summed fofo_order.total_amount - a price typed at the partner POS&lt;br /&gt;
and never validated against the catalogue - and attributed each whole order to its&lt;br /&gt;
first line item&apos;s brand via .get(0). One mistyped digit inflated reported sell-out&lt;br /&gt;
10x, and mixed-brand orders booked 100% to the first brand, leaving the rest at zero.&lt;br /&gt;
Defect dates from r32000/r32034 (May 2023); the panel was the only tertiary consumer&lt;br /&gt;
diverging from the qty*mop basis.&lt;br /&gt;
&lt;br /&gt;
- New FofoOrder.selectMonthlyBrandTertiary: sum(quantity*mop) grouped by&lt;br /&gt;
  (year*100+month) and item brand - the same basis selectPartnerTertiarySales&lt;br /&gt;
  already uses for the DSR and the partner tier calculation&lt;br /&gt;
- PerformanceController: replaces two entity-loading queries (every FofoOrder and&lt;br /&gt;
  FofoOrderItem for 6 months) with one aggregate; all items now count, each under&lt;br /&gt;
  its own brand&lt;br /&gt;
- Month labels unchanged - toMonthLabel rebuilds the MMM&apos;&apos;uu key, template untouched&lt;br /&gt;
- Remove V2FofoPerformanceController, the /v2/fofo JSON copy carrying the same defect&lt;br /&gt;
&lt;br /&gt;
Verified against dev DB for fofo_id 175139501: Jul 2026 now 16,94,939 (panel&lt;br /&gt;
previously showed 50,92,440); all six months match the qty*mop basis.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOrder.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyBrandTertiaryModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PerformanceController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPerformanceController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37319</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37319</guid></item>
<item><pubDate>Fri, 14 Aug 2026 16:04:50 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37318 – v2 version some fixes</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2 version some fixes&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/OrderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37318</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37318</guid></item>
<item><pubDate>Fri, 14 Aug 2026 12:09:49 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37313 – v2 version some fixes</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;v2 version some fixes&lt;/div&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOrderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37313</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-web%2Fsrc%2Fmain%2Fjava%2F&amp;isdir=1&amp;rev=37313</guid></item>
</channel></rss>