<?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/migrations/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Wed, 07 Oct 2026 13:20:08 +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%2Fmigrations%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Tue, 06 Oct 2026 19:30:52 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37862 – rbm ranking modal for september</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm ranking modal for september&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37862</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37862</guid></item>
<item><pubDate>Tue, 06 Oct 2026 17:28:12 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37858 – remove tarun sir email from some storetimline tat email</title><description>&lt;div&gt;&lt;strong&gt;ranu – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;remove tarun sir email from some storetimline tat email&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MTDAchievedTargetModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/RbmWeeklyBillingModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/WarehouseRbmTargetModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/monitors/RbmPerformanceRankingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37858</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37858</guid></item>
<item><pubDate>Tue, 06 Oct 2026 16:26:24 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37857 – remove tarun sir email from some storetimline tat email</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;remove tarun sir email from some storetimline tat email&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37857</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37857</guid></item>
<item><pubDate>Mon, 05 Oct 2026 18:48:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37848 – feat(warehouse): daily 10:00 mail of stock in suspended/inactive warehouses (--sendSuspendedWarehouseStockAlert ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(warehouse): daily 10:00 mail of stock in suspended/inactive warehouses (--sendSuspendedWarehouseStockAlert for a one-off); Shopify sync warehouse from shopify.warehouseId (default 13372 HR-NSSPL/UPW) instead of WAREHOUSE_NAME_MAP UP-WEST/NOIDA&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/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%2Fmigrations%2F&amp;isdir=1&amp;rev=37848</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37848</guid></item>
<item><pubDate>Fri, 02 Oct 2026 02:48:44 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37833 – feat(cron): --retryIrn re-files rejected e-invoices after their data is corrected ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cron): --retryIrn re-files rejected e-invoices after their data is corrected - reset and filing in one transaction so the scheduled IRN job cannot race it&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/IrnRetrier.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37833</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37833</guid></item>
<item><pubDate>Fri, 02 Oct 2026 02:02:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37832 – feat(cron): --closeMovementPO closes movement POs the way the PO screen&apos;s ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cron): --closeMovementPO closes movement POs the way the PO screen&apos;s Close does (refund live orders, preclose); dry run by default&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/MovementPoCreator.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementPoTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37832</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37832</guid></item>
<item><pubDate>Fri, 02 Oct 2026 01:53:52 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37831 – feat(cron): movement billing takes only units at the order&apos;s price; ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cron): movement billing takes only units at the order&apos;s price; PO dry run names each PO&apos;s vendor warehouse&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementBiller.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementPoTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37831</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37831</guid></item>
<item><pubDate>Fri, 02 Oct 2026 00:46:22 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37828 – fix(cron): movement billing looks POs up inside a transaction (driver ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(cron): movement billing looks POs up inside a transaction (driver has none - &apos;Could not obtain transaction-synchronized Session&apos;); failure message no longer claims nothing was raised&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/MovementBiller.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementBillingTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37828</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37828</guid></item>
<item><pubDate>Fri, 02 Oct 2026 00:03:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37827 – feat(cron): --autoCreateMovementPO raises an internal movement PO from an upload ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cron): --autoCreateMovementPO raises an internal movement PO from an upload file as the operator; dry run previews every PO, line, price and origin; --bill dry-runs billing of the raised POs&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/MovementPoCreator.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementPoTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37827</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37827</guid></item>
<item><pubDate>Thu, 01 Oct 2026 23:38:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37825 – feat(cron): --autoBillMovement bills internal movement POs (dry run by default) ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cron): --autoBillMovement bills internal movement POs (dry run by default)&lt;br /&gt;
&lt;br /&gt;
Bills the orders a movement PO raised the way the order management screen does:&lt;br /&gt;
orders parked on the Dummy (brand without a source mapping) are re-pointed to the&lt;br /&gt;
source vendor warehouse holding the stock (split when it spans several), serialized&lt;br /&gt;
units take IMEIs oldest first at qty 1 with a good last scan, then acceptOrders -&gt;&lt;br /&gt;
addBillingDetailsForGrouppedOrders -&gt; checkOrderDispatchEligibility, one invoice per&lt;br /&gt;
transaction, all-or-nothing. IRN / e-way bill follow from the existing cron job.&lt;br /&gt;
&lt;br /&gt;
Usage: --autoBillMovement --pos=PO1,PO2 --email=&amp;lt;operator&gt; --provider=&amp;lt;id&gt; [--live]&lt;br /&gt;
Dry run (default) plans and validates only - billing opens its own REQUIRES_NEW&lt;br /&gt;
transaction (createLoanForBilling) that a rollback would not undo. Refuses a&lt;br /&gt;
transaction over 900 invoice lines (NIC caps an IRN at 1000). Prints the invoice&lt;br /&gt;
list for --autoGrnInternal.&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/MovementBiller.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/MovementBillingTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37825</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37825</guid></item>
<item><pubDate>Wed, 23 Sep 2026 19:16:30 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37751 – aging po approval mail to some collected users</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;aging po approval mail to some collected users&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/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/service/warehouse/PoStockApprovalDigestServiceImpl.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37751</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37751</guid></item>
<item><pubDate>Mon, 21 Sep 2026 12:33:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37735 – Remove dead third-party integrations: cron  - Toffee: attachToffeeInvoices (schedule ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead third-party integrations: cron&lt;br /&gt;
&lt;br /&gt;
- Toffee: attachToffeeInvoices (schedule already commented out), toffeeRollback&lt;br /&gt;
  and the --tc option; tofee.* keys in run.properties&lt;br /&gt;
- Bharti Assist: sendBAGPendingPolicies, testBag/mapBag and the --bag /&lt;br /&gt;
  --mapbag options&lt;br /&gt;
- HyperTrack geofence one-offs (--createGeofence, --getAllGeofences,&lt;br /&gt;
  --deleteGeofences) and their hardcoded account keys&lt;br /&gt;
- SmartPing injection in ScheduledTasks; leftover DTDC comment&lt;br /&gt;
- aramex.tracking.url in run.properties&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/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/resources/META-INF/run.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37735</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37735</guid></item>
<item><pubDate>Thu, 17 Sep 2026 18:16:36 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37693 – rbm ranking mailer</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm ranking mailer&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37693</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37693</guid></item>
<item><pubDate>Thu, 17 Sep 2026 18:11:39 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37691 – rbm rankijng mail</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm rankijng mail&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37691</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37691</guid></item>
<item><pubDate>Thu, 17 Sep 2026 18:01:08 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37690 – notification scheduler</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;notification scheduler&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37690</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37690</guid></item>
<item><pubDate>Thu, 17 Sep 2026 18:00:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37689 – notification scheduler</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;notification scheduler&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37689</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37689</guid></item>
<item><pubDate>Thu, 17 Sep 2026 17:59:01 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37687 – rbm ranking mailer</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm ranking mailer&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%2Fmigrations%2F&amp;isdir=1&amp;rev=37687</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37687</guid></item>
<item><pubDate>Thu, 17 Sep 2026 17:56:53 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37686 – for rbm ranking mail on month end</title><description>&lt;div&gt;&lt;strong&gt;ranu – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;for rbm ranking mail on month end&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-dao/src/main/java/com/spice/profitmandi/service/monitors&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/monitors/RbmPerformanceRankingService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/monitors/RbmPerformanceRankingServiceImpl.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37686</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37686</guid></item>
<item><pubDate>Thu, 17 Sep 2026 14:52:14 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37675 – Remove the dead Samsung and Amazon Selenium paths  Both ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove the dead Samsung and Amazon Selenium paths&lt;br /&gt;
&lt;br /&gt;
Both were manual one-shots that nothing runs any more, and each started an&lt;br /&gt;
850MB chrome tree that now has to queue on the browser lane, so they are cost&lt;br /&gt;
without a caller.&lt;br /&gt;
&lt;br /&gt;
Evidence they are dead rather than merely idle:&lt;br /&gt;
 - No crontab entry, no cron.d file and no script references --samsung or&lt;br /&gt;
   --amazonPurchase, and neither flag appears even once in cron.log.&lt;br /&gt;
 - fofo.activated_imei has ZERO Samsung rows written by the cron (auth_id 0) in&lt;br /&gt;
   the last 90 days. All 2,331 Samsung rows in that window are auth_id 307, i.e.&lt;br /&gt;
   the human CSV upload, most recently 16-Sep. The scraper is not what keeps&lt;br /&gt;
   Samsung current; people are.&lt;br /&gt;
 - ScheduledSkeleton.fetchImeiActivation() had already been retired in place --&lt;br /&gt;
   its @Scheduled was commented out with &apos;No longer scheduled&apos;.&lt;br /&gt;
 - RunOnceTasks.amazonPurchase() reads /Users/amit/Downloads/amazon.xlsx, a&lt;br /&gt;
   laptop path that cannot exist on the server.&lt;br /&gt;
&lt;br /&gt;
Removed: SamsungIMEIActivationService, the whole scheduled/amazon package&lt;br /&gt;
(AmazonPurchaseService, OrderSummary, OrderRow, AmazonUser), their RunOnceTasks&lt;br /&gt;
callers and helpers (fetchImeiActivation, amazonPurchase, getOrderSummary,&lt;br /&gt;
parseRow), the two Application CLI blocks and the retired ScheduledSkeleton&lt;br /&gt;
wrapper. The amazon package had no importers outside RunOnceTasks.&lt;br /&gt;
&lt;br /&gt;
Both also leaked a chrome profile dir on every run -- AmazonPurchaseService&lt;br /&gt;
never called quit() at all, and SamsungIMEIActivationService called it outside&lt;br /&gt;
any finally -- so this removes two leak sources rather than fixing them.&lt;br /&gt;
&lt;br /&gt;
Untouched: RunOnceTasks.mailDashboardScreenshots() is a third dead Selenium&lt;br /&gt;
one-shot (also zero invocations) but it mails a report, so it is left for a&lt;br /&gt;
separate decision.&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;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/amazon&lt;br /&gt;x /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/SamsungIMEIActivationService.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37675</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37675</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:15:12 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37658 – Remove Mandii onboarding tasks from cron (r37655)  RunOnceTasks loses ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove Mandii onboarding tasks from cron (r37655)&lt;br /&gt;
&lt;br /&gt;
RunOnceTasks loses mandiiUser/mandiiUsers, their setCreditAccount helper and&lt;br /&gt;
the now-unused encodeFileToBase64Binary, plus the MandiiService autowire -&lt;br /&gt;
133 lines that pushed partner KYC into Mandii and wrote back MANDII credit&lt;br /&gt;
accounts. The matching --mandiiUser / --mandiiUsers CLI options are dropped&lt;br /&gt;
from Application. ScheduledTasks had an unused MandiiService field.&lt;br /&gt;
OnBoardingRelatedSchelduleTask imports follow services.mandii -&gt; services.kyc.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37658</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37658</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37636 – refactor(cron): remove vendoritempricing one-offs; log catalog migration listing prices  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;refactor(cron): remove vendoritempricing one-offs; log catalog migration listing prices&lt;br /&gt;
&lt;br /&gt;
- Remove migrateVendorItemPricing (2023 one-off) and its flag; fixOrders no longer reads vendoritempricing&lt;br /&gt;
- CatalogMigration sets listing prices via TagListingPriceService&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/runnables/CatalogMigration.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37636</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37636</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37631 – feat(mail): wire inactive-recipient filter, clean addresses, remove attendance alerts  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): wire inactive-recipient filter, clean addresses, remove attendance alerts&lt;br /&gt;
&lt;br /&gt;
Wire MailRecipientFilter into both mail senders. Remove inactive hardcoded recipients, fix typo addresses, send market-share reminder to tech@. Delete sendAttendanceMorningAlert/EveningAlert, sendMailToHR and their CLI options.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/Application.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/razorpay/FetchPartnersDisbursementTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasksTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37631</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37631</guid></item>
<item><pubDate>Mon, 14 Sep 2026 05:37:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37617 – Undo an internal GRN so its invoice can be received ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Undo an internal GRN so its invoice can be received again&lt;br /&gt;
&lt;br /&gt;
A receipt taken before the serials were split left stock that cannot be corrected in place: a&lt;br /&gt;
serialised unit is held one to a row, so an invoice that should have created several rows created one,&lt;br /&gt;
and the rows that are missing cannot be added without also unpicking the running figures the receipt&lt;br /&gt;
moved. Reversing the receipt and taking it again through the same path is the only way to arrive at&lt;br /&gt;
what the invoice actually says.&lt;br /&gt;
&lt;br /&gt;
The reversal removes what receiving created - the scans, the inventory units, the invoice items, the&lt;br /&gt;
purchase and the supplier invoice - and gives back the two running figures it moved: the warehouse&lt;br /&gt;
availability, and the quantity taken off the purchase order line. Both are worked out from the rows&lt;br /&gt;
being deleted rather than recomputed, so whatever the receipt added is exactly what comes off. A&lt;br /&gt;
purchase order the receipt closed is opened again. Availability is kept only as a running count with&lt;br /&gt;
nothing to rebuild it from, which is why it is adjusted by what is known to have been added rather&lt;br /&gt;
than by anything inferred.&lt;br /&gt;
&lt;br /&gt;
An invoice whose stock has moved since is refused, not worked around. A unit that has been scanned out&lt;br /&gt;
or partly consumed is no longer the receipt&apos;s to remove, and deleting around it would leave the&lt;br /&gt;
warehouse holding stock that no record explains. Each invoice is reversed on its own so one refusal&lt;br /&gt;
leaves the rest untouched, and a dry run reports everything it would delete and every figure it would&lt;br /&gt;
change without writing.&lt;br /&gt;
&lt;br /&gt;
Invoices are named explicitly rather than selected by date, so a reversal can only ever touch what it&lt;br /&gt;
was given.&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/InternalGrnReverser.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/InternalGrnTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37617</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37617</guid></item>
<item><pubDate>Mon, 14 Sep 2026 05:28:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37616 – Split a line item&apos;s serials into one inventory unit each ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Split a line item&apos;s serials into one inventory unit each&lt;br /&gt;
&lt;br /&gt;
A serialised line item carries one serial per unit in serial_number, comma separated. The internal&lt;br /&gt;
GRN passed that whole field across as a single serial, so a line of four units became one unit whose&lt;br /&gt;
serial was the four serials joined together - a string no scan can ever match. Where the joined&lt;br /&gt;
string ran past the 128 characters the inventory column allows, the receipt failed outright; where it&lt;br /&gt;
fitted, it was accepted and the stock was quietly understated.&lt;br /&gt;
&lt;br /&gt;
The serials are now split out and each unit is received on its own, which is what grnPoModels expects&lt;br /&gt;
- it creates one inventory row per serial.&lt;br /&gt;
&lt;br /&gt;
A serial count that does not match the line&apos;s quantity now skips the invoice. Receiving fewer units&lt;br /&gt;
than were billed is exactly the failure this had, and it is not something to infer a best guess from:&lt;br /&gt;
the invoice is left for someone to look at instead.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/InternalGrnReceiver.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37616</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37616</guid></item>
<item><pubDate>Mon, 14 Sep 2026 04:56:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37615 – Receive internal transfers the way the portal does, not via ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Receive internal transfers the way the portal does, not via the Excel upload&lt;br /&gt;
&lt;br /&gt;
The live run failed on every invoice with &quot;Column &apos;status&apos; cannot be null&quot;. The Excel upload path it&lt;br /&gt;
was calling, addPORowModels, persists a supplier invoice without ever setting a status, and the&lt;br /&gt;
column does not allow one to be absent, so that route cannot complete a receipt at all.&lt;br /&gt;
&lt;br /&gt;
Rather than change a path the portal shares, this follows what the Receive Invoice screens actually&lt;br /&gt;
do: record the supplier invoice, record its items through InvoiceService.createInvoiceItem, then hand&lt;br /&gt;
it to PurchaseOrderService.grnPoModels, the call behind the Create GRN button. grnPoModels sets the&lt;br /&gt;
invoice to received itself, so the status is never left for the caller to remember.&lt;br /&gt;
&lt;br /&gt;
Recording the invoice items matters beyond the receipt: warehouse.invoice_item is what the buying&lt;br /&gt;
reports join against, and the Excel path never wrote those rows either.&lt;br /&gt;
&lt;br /&gt;
An invoice is carried as one entry per item rather than one per order, since that is the shape&lt;br /&gt;
grnPoModels expects - every serial of an item arrives together and a non serialised item arrives as a&lt;br /&gt;
single quantity. There is no supplier document to attach, which is ordinary here; most existing&lt;br /&gt;
warehouse invoices carry none.&lt;br /&gt;
&lt;br /&gt;
Resolving the purchase order now uses the mapping recorded when the internal PO was raised - the&lt;br /&gt;
transaction it created, held on the purchase order - instead of walking every order to find it.&lt;br /&gt;
An invoice whose orders do not share that one transaction is skipped rather than guessed at.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/InternalGrnReceiver.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37615</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37615</guid></item>
<item><pubDate>Mon, 14 Sep 2026 04:46:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37614 – Run each internal GRN in a transaction that is actually ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Run each internal GRN in a transaction that is actually applied&lt;br /&gt;
&lt;br /&gt;
The internal GRN one-off failed immediately with &quot;no transaction is in progress&quot;, thrown while&lt;br /&gt;
flushing the Hibernate session at commit.&lt;br /&gt;
&lt;br /&gt;
The per invoice method was annotated to start its own transaction, but it sat in the same bean as&lt;br /&gt;
the loop that called it. Spring applies @Transactional through a proxy, and a call from one method&lt;br /&gt;
of a bean to another never leaves the object, so the annotation was inert - the receiving ran with&lt;br /&gt;
no transaction at all while the driver had suspended the surrounding one. The repositories still&lt;br /&gt;
bound a session to the thread, and the flush at commit then found nothing to flush into.&lt;br /&gt;
&lt;br /&gt;
The receiving moves to its own bean, so the driver now reaches it through the proxy and the&lt;br /&gt;
transaction is real. The driver keeps no transaction of its own, which is what lets one invoice&lt;br /&gt;
fail without disturbing those already received.&lt;br /&gt;
&lt;br /&gt;
No change to what is received or to the conditions under which an invoice is skipped.&lt;/div&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/InternalGrnReceiver.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/InternalGrnTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37614</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37614</guid></item>
<item><pubDate>Mon, 14 Sep 2026 03:20:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37613 – Receive internal transfer stock that was billed but never GRNed ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Receive internal transfer stock that was billed but never GRNed&lt;br /&gt;
&lt;br /&gt;
Stock moved between our own warehouses is dispatched against an internal purchase order and&lt;br /&gt;
billed, but the destination warehouse still has to receive it by hand through the portal. Where&lt;br /&gt;
that never happened the units exist on an invoice and nowhere in inventory, and there is no way&lt;br /&gt;
to clear a backlog of them short of keying each invoice in again.&lt;br /&gt;
&lt;br /&gt;
This adds a cron one-off that receives them. Per invoice it builds the rows the Excel GRN upload&lt;br /&gt;
would have carried and hands them to PurchaseOrderService.addPORowModels, which creates the&lt;br /&gt;
supplier invoice, the purchase and the inventory items in a single call, so none of receiving is&lt;br /&gt;
reimplemented here - the portal and this take the same path and can only ever agree.&lt;br /&gt;
&lt;br /&gt;
It is deliberately narrow about what it will touch. Only INTERNAL buyers, because nothing should&lt;br /&gt;
be able to receive a partner&apos;s goods on their behalf. Only invoices with no supplier invoice&lt;br /&gt;
already recorded, so a repeat run skips what it has already done rather than receiving twice.&lt;br /&gt;
Only invoices resolving to a single purchase order, since addPORowModels resolves one order for&lt;br /&gt;
the whole map it is given and would otherwise attribute an invoice to the wrong one - for the&lt;br /&gt;
same reason each invoice is passed on its own. A serialized line whose serial number is missing&lt;br /&gt;
aborts its invoice instead of creating a unit no scan could ever match.&lt;br /&gt;
&lt;br /&gt;
Each invoice commits or rolls back on its own, so one bad invoice cannot undo the ones already&lt;br /&gt;
received, and a dry run reports what it would receive without writing anything.&lt;br /&gt;
&lt;br /&gt;
The receipt is recorded against the destination warehouse, which is what warehouse inventory is&lt;br /&gt;
keyed by. The buyer on the order is read only to confirm the store is internal; partner side&lt;br /&gt;
inventory is a separate receipt and is not touched.&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/InternalGrnTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=37613</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37613</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%2Fmigrations%2F&amp;isdir=1&amp;rev=37326</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37326</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%2Fmigrations%2F&amp;isdir=1&amp;rev=37058</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=37058</guid></item>
<item><pubDate>Wed, 17 Jun 2026 00:22:00 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36863 – Updated Redesigned Tracking Report</title><description>&lt;div&gt;&lt;strong&gt;vikas – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Updated Redesigned Tracking Report&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.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%2Fmigrations%2F&amp;isdir=1&amp;rev=36863</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36863</guid></item>
<item><pubDate>Mon, 18 May 2026 11:58:19 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36585 – code commit for levwel wise trcking report</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;code commit for levwel wise trcking report&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=36585</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36585</guid></item>
<item><pubDate>Mon, 18 May 2026 11:46:50 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36584 – code commit for levwel wise trcking report</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;code commit for levwel wise trcking report&lt;/div&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;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.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%2Fmigrations%2F&amp;isdir=1&amp;rev=36584</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36584</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%2Fmigrations%2F&amp;isdir=1&amp;rev=36554</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36554</guid></item>
<item><pubDate>Tue, 28 Apr 2026 18:18:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36420 – OkHttp→RestClient migration for IMEI activation services (Itel, Tecno, Vivo). Added ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;OkHttp→RestClient migration for IMEI activation services (Itel, Tecno, Vivo). Added test deps. Updated RunOnceTasks, ScheduledTasks, OrderTrackingService.&lt;/div&gt;~ /trunk/profitmandi-cron/build.gradle&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/ItelImeiActivationNewService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/ItelImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/itelImeiActivation/TecnoImeiActivation.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/ordertracking/OrderTrackingService.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/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%2Fmigrations%2F&amp;isdir=1&amp;rev=36420</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36420</guid></item>
<item><pubDate>Mon, 27 Apr 2026 14:53:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36402 – Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/OnBoardingRelatedSchelduleTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/razorpay/FetchPartnersDisbursementTask.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/Reconciliation.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasksTest.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/TicketRelatedScheduledTask.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%2Fmigrations%2F&amp;isdir=1&amp;rev=36402</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36402</guid></item>
<item><pubDate>Tue, 24 Mar 2026 18:01:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36053 – Fix cancelDn: bug fixes, wallet reversal, RETURNED guard, recreatePri option ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix cancelDn: bug fixes, wallet reversal, RETURNED guard, recreatePri option&lt;br /&gt;
&lt;br /&gt;
- Fix itemId bug in CurrentInventorySnapshot (was using inventoryItem PK instead of catalog itemId)&lt;br /&gt;
- Fix NoSuchElementException on missing PURCHASE_RET scan record (findFirst().get() -&gt; ifPresent)&lt;br /&gt;
- Reverse wallet refund via consumeAmountFromWallet if DN was already refunded&lt;br /&gt;
- Block cancellation if any PRI has RETURNED status (already refunded to wallet)&lt;br /&gt;
- Add recreatePri flag: true resets PRIs to CREATED for re-initiation, false deletes them&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%2Fmigrations%2F&amp;isdir=1&amp;rev=36053</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=36053</guid></item>
<item><pubDate>Wed, 25 Feb 2026 15:32:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35848 – Refactor investment logic to use own investment (total - utilized), ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;Refactor investment logic to use own investment (total - utilized), remove minimumInvestmentOld, add OK_INVESTMENT_SHORT_PERCENTAGE constant, update thresholds CUTOFF_INVESTMENT=10 MIN_INVESTMENT_PERCENTAGE=5&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.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/InvestmentRelatedTasks.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/fofo/CurrentPartnerDailyInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoStore.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerDailyInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/SchemeRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/FofoUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerStatsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PerformanceController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SchemeController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/SDCreditController.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%2Fmigrations%2F&amp;isdir=1&amp;rev=35848</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=35848</guid></item>
<item><pubDate>Thu, 19 Feb 2026 17:25:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35797 – Margin scheme (Rule 32(5)) support for refurbished category (10007)  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Margin scheme (Rule 32(5)) support for refurbished category (10007)&lt;br /&gt;
&lt;br /&gt;
- FofoSolr: Add 10007 to CATEGORY_MASTER, stop remapping to categoryId 3&lt;br /&gt;
- TransactionServiceImpl: Use RF- invoice prefix (fits NIC 16-char limit)&lt;br /&gt;
- InvoiceService: Margin calculation (GST on margin only), separate regular/margin items, purchase price lookup, restructured saveInvoice flow&lt;br /&gt;
- GstProService: Use InvoicePdfModel for correct taxable values, OthChrg for non-taxable component so TotInvVal = full selling price (GSTR1 &amp; EWB compliance), safe Optional check for EWBPPD, email alert on missing EWB&lt;br /&gt;
- LogisticsServiceImpl: Null checks for shipment sequence and provider to prevent NPE in EWB details&lt;br /&gt;
- RunOnceTasks: Fix testIrnLive to generate InvoicePdfModel before calling getEInvoice&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/migrations/RunOnceTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/solr/FofoSolr.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/LogisticsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=35797</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=35797</guid></item>
<item><pubDate>Wed, 28 Jan 2026 17:51:06 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35613 – Fix: Remove method-level @Transactional, use class-level transaction management</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: Remove method-level @Transactional, use class-level transaction management&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=35613</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=35613</guid></item>
<item><pubDate>Wed, 28 Jan 2026 17:47:55 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35612 – Fix: Add @Transactional(propagation=REQUIRES_NEW) to resolveOldEscalationTickets to fix Hibernate session error</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix: Add @Transactional(propagation=REQUIRES_NEW) to resolveOldEscalationTickets to fix Hibernate session error&lt;/div&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%2Fmigrations%2F&amp;isdir=1&amp;rev=35612</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fmigrations%2F&amp;isdir=1&amp;rev=35612</guid></item>
</channel></rss>