<?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-cron/src/main/java/com/smartdukaan/cron/Application.java</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 03 Sep 2026 04:55:05 +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-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;max=40&amp;peg=37503</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;peg=37503&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Tue, 01 Sep 2026 16:35:38 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37503 – sales target and achievement added cron and flags</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;sales target and achievement added cron and flags&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37503&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37503&amp;peg=37503</guid></item>
<item><pubDate>Tue, 01 Sep 2026 16:09:28 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37499 – sales target and achievement added cron and flags</title><description>&lt;div&gt;&lt;strong&gt;ranu – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;sales target and achievement added cron and flags&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/inventory/SalesTargets.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/SalesTargetsRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/SalesTargetsRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/icicilombard/IciciLombardService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37499&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37499&amp;peg=37503</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-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37480&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37480&amp;peg=37503</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-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37479&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37479&amp;peg=37503</guid></item>
<item><pubDate>Mon, 31 Aug 2026 17:11:26 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37474 – mail: delete the dead SendGrid bean from cron, make the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;mail: delete the dead SendGrid bean from cron, make the authenticated identity primary&lt;br /&gt;
&lt;br /&gt;
The @Primary bean named &apos;mailSender&apos; was SendGrid, so every unqualified&lt;br /&gt;
JavaMailSender injection got it -- and SendGrid rejects with 535, which is what&lt;br /&gt;
was failing 10 report/notification cron jobs (dailyTrackingReport,&lt;br /&gt;
monthlyTargetForPartner, sendFeebackSalesAndRbm and others). 420 occurrences in&lt;br /&gt;
one log.&lt;br /&gt;
&lt;br /&gt;
googleMailSender now answers to both &apos;googleMailSender&apos; and &apos;mailSender&apos; and is&lt;br /&gt;
@Primary, so those injections resolve to a sender that works and whose From is&lt;br /&gt;
rewritten to the authenticated identity. No call site changes.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/MailOutboxScheduler.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37474&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37474&amp;peg=37503</guid></item>
<item><pubDate>Mon, 31 Aug 2026 16:08:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37472 – IMEI activation: one snapshotted daily pass per brand, on one ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 12 file(s) modified&lt;/strong&gt;&lt;br/&gt;IMEI activation: one snapshotted daily pass per brand, on one thread, with per-brand metrics&lt;br /&gt;
&lt;br /&gt;
Four @Scheduled jobs every 5 minutes become two daily passes. Oppo and realme&lt;br /&gt;
share one thread and alternate in 25-imei chunks, so exactly one ChromeDriver is&lt;br /&gt;
alive at a time instead of four; vivo keeps its own thread since it is direct&lt;br /&gt;
HTTP and does not contend for a browser.&lt;br /&gt;
&lt;br /&gt;
The pass snapshots its pool before any browser starts and walks that list to the&lt;br /&gt;
end. It never re-queries, and that is the actual fix. A failed lookup never&lt;br /&gt;
reaches dateMap.put, so no row is written, so createTimestamp is not bumped, so&lt;br /&gt;
the imei was eligible again on the next tick five minutes later. Measured 29-Aug:&lt;br /&gt;
realme issued 4,524 requests against 1,004 distinct imeis -- 4.5 asks each, 78%&lt;br /&gt;
of the day&apos;s budget spent re-asking -- while oppo, which rarely fails, sat at&lt;br /&gt;
1.03. More requests hardened the block, which caused more failures. A pass bounds&lt;br /&gt;
that: a failure costs one retry tomorrow, never one in five minutes.&lt;br /&gt;
&lt;br /&gt;
This supersedes the r37447/r37448/r37449 argument about driver count, which was&lt;br /&gt;
about the wrong variable. That argument blamed realme&apos;s collapse on CPU&lt;br /&gt;
contention pushing the captcha render past the element waits. The logs do not&lt;br /&gt;
support it: on 29-Aug oppo took ZERO canvas timeouts across all 24 hours on the&lt;br /&gt;
same box, same six cores, same driver count, same captcha vendor, load average&lt;br /&gt;
0.9 -- including the 15:00-23:00 window in which realme solved nothing at all.&lt;br /&gt;
Realme&apos;s own canvas wait is 15s against oppo&apos;s 8s, so the longer wait is the one&lt;br /&gt;
expiring. What realme&apos;s timeout rate tracks is its own daily request volume, and&lt;br /&gt;
it resets at midnight: 920/day -&gt; 0.3%, 3,467/day -&gt; 28%, 4,524/day -&gt; 75%. That&lt;br /&gt;
is realme.com declining to serve the widget.&lt;br /&gt;
&lt;br /&gt;
DAYS=0 is deliberate and is not an off-by-one: the pool filter is&lt;br /&gt;
createTimestamp &amp;lt; now().atStartOfDay().minusDays(DAYS), so DAYS=1 measures&lt;br /&gt;
against yesterday midnight and silently yields a two-day cadence, which is what&lt;br /&gt;
oppo and realme were running.&lt;br /&gt;
&lt;br /&gt;
Sizing measured on prod for a midnight start: oppo 4,133 and realme 2,118 imeis,&lt;br /&gt;
11.7h + 8.4h = 20.1 hours of a single thread. It fits with no slack; if the&lt;br /&gt;
&apos;pass finished&apos; counts come in short of &apos;pass starting&apos;, the lever is DAYS=1&lt;br /&gt;
rather than a second thread.&lt;br /&gt;
&lt;br /&gt;
Observability: ImeiActivationGauges publishes the funnel per brand on&lt;br /&gt;
/actuator/prometheus, which alloy already scrapes on this host -- due, churned,&lt;br /&gt;
captcha_shown, captcha_solved, answered, dates_found, errors, run_seconds and&lt;br /&gt;
last_finish_epoch. Each stage fails differently and says what broke. Rates are&lt;br /&gt;
left to PromQL. The stage that matters for health is answered: churned&gt;0 with&lt;br /&gt;
answered==0 is precisely the shape of both silent outages this year (oppo wrote&lt;br /&gt;
nothing for a week; the vivo captcha solver was dead for 46 days). dates_found is&lt;br /&gt;
deliberately NOT a health signal -- when the multi-year backlog drained at the&lt;br /&gt;
end of August, yield fell from ~100% to 2-3% on the same day across all three&lt;br /&gt;
brands with nothing broken.&lt;br /&gt;
&lt;br /&gt;
Nagios cleanup: the Nagios server and every NRPE daemon are gone, so&lt;br /&gt;
WriteToPropertiesFile and the commented-out blocks that fed&lt;br /&gt;
nagios-cron.properties are deleted, and NagiosMonitorTasks is renamed&lt;br /&gt;
BalanceMonitorTasks for the transport it actually uses. Noted there that nothing&lt;br /&gt;
calls it -- there is no @Scheduled entry and no other caller -- which is why both&lt;br /&gt;
balance gauges have always read -1.&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/monitored/BalanceGauges.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/BalanceMonitorTasks.java &lt;i&gt;(copied from /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java@37471)&lt;/i&gt;&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/ImeiActivationGauges.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/monitored/NagiosMonitorTasks.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/properties/WriteToPropertiesFile.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/StandAlone.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37472&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37472&amp;peg=37503</guid></item>
<item><pubDate>Mon, 31 Aug 2026 15:50:16 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37470 – Remove dead Itel/Tecno SAP activation services  Both services call ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead Itel/Tecno SAP activation services&lt;br /&gt;
&lt;br /&gt;
Both services call SAP OData endpoints that Transsion decommissioned on 2024-11-20:&lt;br /&gt;
&lt;br /&gt;
  ItelImeiActivationService  -&gt; cms.itel-mobile.com:8099/.../ZTERTIARY_SALES_REPRT_SRV&lt;br /&gt;
  TecnoImeiActivation        -&gt; cms.tecno-mobile.com:8099/.../ZTERTIARY_SALES_REPRT_SRV&lt;br /&gt;
&lt;br /&gt;
Both hosts now refuse connections outright (verified from the prod app server).&lt;br /&gt;
That decommissioning is what stopped Itel and Tecno activation ingest within the&lt;br /&gt;
same hour on 2024-11-20; everything since has arrived via manual CSV upload.&lt;br /&gt;
Neither service has produced a row in 21 months and neither can again.&lt;br /&gt;
&lt;br /&gt;
Removed:&lt;br /&gt;
  - both service classes&lt;br /&gt;
  - ScheduledTasks.checkItelImeiActivation / .checkTecnoImeiActivation, their&lt;br /&gt;
    @Autowired fields and imports (the only callers)&lt;br /&gt;
  - the --checkItelImeiActivation / --checkTecnoImeiActivation startup args&lt;br /&gt;
&lt;br /&gt;
Unaffected: ItelImeiActivationNewService and checkItelImeiActivationNew, which&lt;br /&gt;
target the current imwav portal and were fixed in r37467.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/ItelImeiActivationService.java&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/TecnoImeiActivation.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37470&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37470&amp;peg=37503</guid></item>
<item><pubDate>Sat, 29 Aug 2026 07:24:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37453 – 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-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37453&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37453&amp;peg=37503</guid></item>
<item><pubDate>Wed, 26 Aug 2026 13:56:04 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37416 – Port two cron WhatsApp call sites left behind by r37409/r37415. ...</title><description>&lt;div&gt;&lt;strong&gt;vikas – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Port two cron WhatsApp call sites left behind by r37409/r37415.&lt;br /&gt;
&lt;br /&gt;
OrderTrackingService sends the ORDER_DELIVERED template with the airway bill&lt;br /&gt;
as its only variable; the push notification on the same loop keeps its&lt;br /&gt;
formatted sentence, since template wording lives in Meta, not the call site.&lt;br /&gt;
Application drops the userMobileNumberOptIn and authUserMobileNumberOptIn CLI&lt;br /&gt;
options, whose NotificationService.optIn backing went with the Gupshup gateway.&lt;br /&gt;
&lt;br /&gt;
ScheduledTasks.java is deliberately not in this commit: locally it also carries&lt;br /&gt;
unrelated in-flight remark-scoring work whose package is still unversioned, so&lt;br /&gt;
committing it would put @Autowired RemarkScoreRunner into trunk with no such&lt;br /&gt;
class. Its two WhatsApp call sites (optIn at ~4618, sendWhatsappMessage at&lt;br /&gt;
~5276) therefore still fail to compile at HEAD and need a follow-up.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ordertracking/OrderTrackingService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37416&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37416&amp;peg=37503</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-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37369&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37369&amp;peg=37503</guid></item>
<item><pubDate>Wed, 19 Aug 2026 20:33:28 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37368 – Cron: raise SMTP timeouts, rotate app password, add offer-circular ingest ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Cron: raise SMTP timeouts, rotate app password, add offer-circular ingest keys&lt;br /&gt;
&lt;br /&gt;
- SMTP 10s -&gt; 30s connect / 120s read-write on both senders; the 10s read timeout was&lt;br /&gt;
  cutting off larger attachment sends. App password rotated to match the current&lt;br /&gt;
  Google account credential.&lt;br /&gt;
- offer.circular.ingest.enabled / offer.circular.review.url added to dev, staging and&lt;br /&gt;
  prod. Off by default in all three: enabling it makes the job pick up DRAFT circulars&lt;br /&gt;
  uploaded from the FOFO portal, parse them and mail the uploader, which should only be&lt;br /&gt;
  switched on once offer.circular.dir is a real path in that environment. There is no&lt;br /&gt;
  fallback between profiles, so the key has to exist in each one.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/resources/META-INF/dev.properties&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/resources/META-INF/prod.properties&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/resources/META-INF/staging.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37368&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37368&amp;peg=37503</guid></item>
<item><pubDate>Tue, 18 Aug 2026 14:46:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37340 – Fixed max limit to 15 lac for Credit limit</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed max limit to 15 lac for Credit limit&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37340&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37340&amp;peg=37503</guid></item>
<item><pubDate>Mon, 17 Aug 2026 17:23:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37326 – Add --backfillMissingEwb cron arg  Runs InvoiceService.backfillMissingEwb over an explicit ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --backfillMissingEwb cron arg&lt;br /&gt;
&lt;br /&gt;
Runs InvoiceService.backfillMissingEwb over an explicit invoice list:&lt;br /&gt;
  --backfillMissingEwb --invoiceNumbers=A,B,C [--dryRun]&lt;br /&gt;
&lt;br /&gt;
Explicit list rather than a date window so the backfill only touches the invoices known&lt;br /&gt;
to have lost their EWB. NOT_SUPPORTED on the RunOnceTasks wrapper suspends the&lt;br /&gt;
class-level transaction, keeping the NIC lookups outside one.&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;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37326&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37326&amp;peg=37503</guid></item>
<item><pubDate>Thu, 06 Aug 2026 16:30:37 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37258 – Schedule syncHotDealFlags daily 00:20 (ScheduledSkeleton) + --syncHotDealFlags CLI arg: completes ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Schedule syncHotDealFlags daily 00:20 (ScheduledSkeleton) + --syncHotDealFlags CLI arg: completes r37255 - without the skeleton trigger the tag_listing.hot_deals mirror never runs, so deal windows would not start/expire in Solr&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37258&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37258&amp;peg=37503</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:22:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37238 – Add --regenMarginIrns one-time CLI (dry-run default, --live to run) for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --regenMarginIrns one-time CLI (dry-run default, --live to run) for generating missing IRNs on issued margin CN/DNs&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37238&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37238&amp;peg=37503</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:06:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37236 – Add --cancelMarginDnIrns one-time CLI (dry-run default, --live to cancel) for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --cancelMarginDnIrns one-time CLI (dry-run default, --live to cancel) for margin DN IRN cancellation before corrected reissue&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37236&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37236&amp;peg=37503</guid></item>
<item><pubDate>Tue, 04 Aug 2026 19:04:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37232 – Add --corrMarginCNs one-time CLI option (dry-run by default, --live to ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --corrMarginCNs one-time CLI option (dry-run by default, --live to issue) invoking issueCorrectiveMarginCNs for correcting margin DNs inflated by the abs sign bug&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37232&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37232&amp;peg=37503</guid></item>
<item><pubDate>Tue, 04 Aug 2026 18:36:36 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 37228 – Updated Gmail Timeout</title><description>&lt;div&gt;&lt;strong&gt;vikas – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Updated Gmail Timeout&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37228&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37228&amp;peg=37503</guid></item>
<item><pubDate>Thu, 30 Jul 2026 12:34:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37172 – PJP agenda instances: nightly 23:45 sync cron + manual run ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;PJP agenda instances: nightly 23:45 sync cron + manual run arg&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37172&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37172&amp;peg=37503</guid></item>
<item><pubDate>Wed, 29 Jul 2026 16:30:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37159 – Nightly partner identity integrity monitor (7 violation classes over fofo_store/user.user/user_accounts/user_role ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Nightly partner identity integrity monitor (7 violation classes over fofo_store/user.user/user_accounts/user_role incl. same-GST/mobile multi-open-store mandate checks); scheduled 07:00 + CLI trigger partnerIdentityIntegrityMonitor&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/PartnerIdentityIntegrityMonitor.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37159&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37159&amp;peg=37503</guid></item>
<item><pubDate>Fri, 10 Jul 2026 13:53:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37058 – Add regenerateBilledInvoices CLI task (--fromTime/--toTime) to re-generate invoice PDFs over ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add regenerateBilledInvoices CLI task (--fromTime/--toTime) to re-generate invoice PDFs over a billing window; qualify InvoicePdfModel reference after the PdfUtils/DocumentRenderer refactor&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/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37058&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37058&amp;peg=37503</guid></item>
<item><pubDate>Thu, 09 Jul 2026 13:15:44 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37040 – on billing delay partner map to focus and revival</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;on billing delay partner map to focus and revival&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37040&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=37040&amp;peg=37503</guid></item>
<item><pubDate>Thu, 02 Jul 2026 13:15:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36993 – Thread dryRun through sendCreditNote; --sendCreditNote defaults to dry-run (--live for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Thread dryRun through sendCreditNote; --sendCreditNote defaults to dry-run (--live for real); add 06:00-on-1st monthlyMarginsCnDryRun scheduled job&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36993&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36993&amp;peg=37503</guid></item>
<item><pubDate>Wed, 01 Jul 2026 14:35:55 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36979 – changeList</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;changeList&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasksTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36979&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36979&amp;peg=37503</guid></item>
<item><pubDate>Mon, 01 Jun 2026 00:14:09 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36745 – code commited miss beat</title><description>&lt;div&gt;&lt;strong&gt;ranu – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;code commited miss beat&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/beatmiss&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/beatmiss/BeatMissDetectorRunner.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36745&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36745&amp;peg=37503</guid></item>
<item><pubDate>Sat, 16 May 2026 13:23:48 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36564 – Flagship credit: add @Scheduled cron for expired flagship limit conversion ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Flagship credit: add @Scheduled cron for expired flagship limit conversion (daily 1 AM)&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36564&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36564&amp;peg=37503</guid></item>
<item><pubDate>Sat, 16 May 2026 06:09:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36554 – feat: one-off credit note posting for duplicate invoice NSNOI8965 against ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat: one-off credit note posting for duplicate invoice NSNOI8965 against NSNOI8966&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;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36554&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36554&amp;peg=37503</guid></item>
<item><pubDate>Fri, 15 May 2026 18:38:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36545 – mail out box queue added in default loans</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;mail out box queue added in default loans&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36545&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36545&amp;peg=37503</guid></item>
<item><pubDate>Sun, 10 May 2026 16:20:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36511 – Add daily inventory snapshot reconciliation cron - syncs currentinventorysnapshot with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add daily inventory snapshot reconciliation cron - syncs currentinventorysnapshot with scan truth for active tag_listing items - emails drift report via googleMailSender to sdtech - runs daily at 5:30 AM, CLI trigger: --reconcileInventorySnapshot&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledSkeleton.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/WarehouseStockReconciliation.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36511&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36511&amp;peg=37503</guid></item>
<item><pubDate>Fri, 08 May 2026 22:43:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36503 – Add --genDNsForCNs CLI arg for explicit cancelled CN debit note ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --genDNsForCNs CLI arg for explicit cancelled CN debit note generation&lt;br /&gt;
&lt;br /&gt;
- Wire genDNsForCNs(List&amp;lt;String&gt;) in ScheduledTasks and Application&lt;br /&gt;
- Accepts comma-separated CN numbers: --genDNsForCNs=CN-NSPRJ5033,CN-NSLCK4326&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36503&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36503&amp;peg=37503</guid></item>
<item><pubDate>Tue, 05 May 2026 19:57:17 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36476 – Remove CLI entry points and ScheduledTasks methods for reissue/recover/resendCN (removed ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove CLI entry points and ScheduledTasks methods for reissue/recover/resendCN (removed from CreditNoteService in r36475)&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36476&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36476&amp;peg=37503</guid></item>
<item><pubDate>Wed, 29 Apr 2026 23:03:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36433 – Fix: move testReissueOneCN and reissueMarginsCN CLI triggers out of morning ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: move testReissueOneCN and reissueMarginsCN CLI triggers out of morning block so they can run standalone&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36433&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36433&amp;peg=37503</guid></item>
<item><pubDate>Wed, 29 Apr 2026 22:41:27 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36432 – Add testReissueOneCN and reissueMarginsCN CLI triggers for credit note reissue</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add testReissueOneCN and reissueMarginsCN CLI triggers for credit note reissue&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36432&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36432&amp;peg=37503</guid></item>
<item><pubDate>Sun, 19 Apr 2026 07:58:05 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36306 – Batch processing: BatchScheduledTasks, helpers for offer/sellin/partnerLimit, CronBatchService, OpenCV fix for ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Batch processing: BatchScheduledTasks, helpers for offer/sellin/partnerLimit, CronBatchService, OpenCV fix for Apple Silicon, CLI triggers&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/BatchScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckOppoWarrantyTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CheckRealmeWarrantyTask.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/CronBatchService.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OfferProcessingHelper.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/PartnerLimitHelper.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36306&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36306&amp;peg=37503</guid></item>
<item><pubDate>Sun, 12 Apr 2026 10:30:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36254 – Add stdout error handling for --genDNs CLI arg — logs ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add stdout error handling for --genDNs CLI arg — logs go to log4j which has no appender in CLI mode, so exceptions were silently swallowed. Now prints to stderr for debugging.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36254&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36254&amp;peg=37503</guid></item>
<item><pubDate>Sun, 12 Apr 2026 07:34:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36248 – Add gmailRelaySender bean for Google Workspace SMTP Relay</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add gmailRelaySender bean for Google Workspace SMTP Relay&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36248&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36248&amp;peg=37503</guid></item>
<item><pubDate>Wed, 08 Apr 2026 12:22:20 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36220 – Cron: add --genDNs CLI arg for monthly debit note generation. ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Cron: add --genDNs CLI arg for monthly debit note generation. Use SDCreditServiceImpl.computeInterestStartDate for daily interest accrual (single source of truth, fixes off-by-one that delayed accrual by 1 day).&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36220&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36220&amp;peg=37503</guid></item>
<item><pubDate>Mon, 06 Apr 2026 19:23:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36197 – Add --recoverCreditNote and --resendCNReport CLI args for credit note recovery ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --recoverCreditNote and --resendCNReport CLI args for credit note recovery and report resend&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36197&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36197&amp;peg=37503</guid></item>
<item><pubDate>Sat, 04 Apr 2026 15:17:09 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36188 – Revert rerenderCNs CLI option - downloadCN already re-renders on the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Revert rerenderCNs CLI option - downloadCN already re-renders on the fly&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36188&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36188&amp;peg=37503</guid></item>
<item><pubDate>Sat, 04 Apr 2026 14:35:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36187 – Add --rerenderCNs CLI option to re-generate old CN PDFs with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add --rerenderCNs CLI option to re-generate old CN PDFs with new format&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36187&amp;peg=37503</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2FApplication.java&amp;rev=36187&amp;peg=37503</guid></item>
</channel></rss>