<?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-fofo/src/test/java/com/spice/profitmandi/service/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 15:09:26 +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-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Mon, 05 Oct 2026 19:44:43 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37851 – fix(warehouse): warehouse partner drill-down lists ACTIVE warehouses instead of forcing ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(warehouse): warehouse partner drill-down lists ACTIVE warehouses instead of forcing 7573; courier/rider admin default warehouse 13368; MovementPurchaseOrderSplitTest uses splitByWarehouseAndCost (renamed in r37830, fofo tests compile again)&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/DashboardController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/provider/ProviderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse_rider/WarehouseRiderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/MovementPurchaseOrderSplitTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37851</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37851</guid></item>
<item><pubDate>Wed, 30 Sep 2026 16:43:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37818 – feat(movement): allow full movable qty on PO screen, split raised ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(movement): allow full movable qty on PO screen, split raised as separate POs&lt;br /&gt;
&lt;br /&gt;
- Cap the movement quantity at everything that can move; stock at more than one cost is&lt;br /&gt;
  raised as one PO per cost on create (dao r37817). Note replaces &apos;raise a separate PO&apos;.&lt;br /&gt;
- Tests: split by cost, multi-item PO grouping, same-warehouse refusal, shelf before arriving.&lt;br /&gt;
- jsVersion 440.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/MovementPurchaseOrderSplitTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37818</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37818</guid></item>
<item><pubDate>Tue, 29 Sep 2026 13:36:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37807 – test(returns): B2C settlement after a GSTIN refusal, end to end ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(returns): B2C settlement after a GSTIN refusal, end to end&lt;br /&gt;
&lt;br /&gt;
ReturnB2cRefundTest (Spring context, local dev DB, invoice NSNOI5746) covers&lt;br /&gt;
the r37790 flow: the quote is the value net of GST (33,439 -&gt; 28,338); a&lt;br /&gt;
refused approval refunds nothing and records the attempt in its own&lt;br /&gt;
transaction; a wrongly typed amount and a missing remark or consent are&lt;br /&gt;
refused; settling as B2C refunds net of GST and issues a local credit note.&lt;br /&gt;
Seeded data rolls back; the refusal row it must commit is cleaned up by the&lt;br /&gt;
test. 5/5 pass.&lt;/div&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/inventory/ReturnB2cRefundTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37807</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37807</guid></item>
<item><pubDate>Fri, 25 Sep 2026 13:17:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37780 – feat(partner-access): demo partner access page + validation  - Demo ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(partner-access): demo partner access page + validation&lt;br /&gt;
&lt;br /&gt;
- Demo Partner Access page (Admin Control): grant partners to a Sales person,&lt;br /&gt;
  list and revoke active grants; server-guarded by canManage&lt;br /&gt;
- Partner access dropdown: position partners + active demo partners &quot;(Demo)&quot;;&lt;br /&gt;
  shared cached mapping is copied, never mutated&lt;br /&gt;
- /login-as-partner-readonly: partner must be in caller&apos;s positions or demo&lt;br /&gt;
  grants (was unchecked; Partner access is its only caller)&lt;br /&gt;
- /mobileapp?emailId=: Sales position holders get the partner app token only&lt;br /&gt;
  for position/demo partners; other admins (Partner Info) unchanged&lt;br /&gt;
- DemoPartnerAccessTest (5, local DB, rolled back)&lt;br /&gt;
- jsVersion 437&lt;br /&gt;
&lt;br /&gt;
Needs dao r37779 and migration_demo_partner_access.sql applied.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/DemoPartnerAccessController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoginController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RetailerController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/resources/js/demo-partner-access.js&lt;br /&gt;+ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/demo-partner-access.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/include-scripts.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/partner-readonly-info.vm&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/cs&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/cs/DemoPartnerAccessTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37780</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37780</guid></item>
<item><pubDate>Thu, 24 Sep 2026 20:16:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37777 – returns: finance endpoint to reverse a return whose goods never ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;returns: finance endpoint to reverse a return whose goods never reached the warehouse&lt;br /&gt;
&lt;br /&gt;
PUT /return/reverse?imei=&amp;reason=&amp;dryRun= calls ReturnReversalService (r37776) for one&lt;br /&gt;
IMEI. Finance only, same canRefund gate as the refund it undoes, and dryRun defaults to&lt;br /&gt;
true so a call without it reports the plan and writes nothing.&lt;br /&gt;
&lt;br /&gt;
ReturnReversalTest covers the four cases against the local database with NIC on the&lt;br /&gt;
sandbox: the dry run writes nothing, a note past its 24h window issues a DBN and undoes&lt;br /&gt;
every effect of the refund (warehouse scan and stock, partner stock and offers, order&lt;br /&gt;
status, wallet, return item, debit note, audit row), a note inside the window has its IRN&lt;br /&gt;
cancelled and drops out of the statement, and bad input or a second reversal is refused.&lt;br /&gt;
Run it as `gradle :test --tests ...` - without the colon the filter also reaches&lt;br /&gt;
profitmandi-common and fails with &quot;No tests found&quot;.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PurchaseReturnController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/inventory&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/inventory/ReturnReversalTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37777</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37777</guid></item>
<item><pubDate>Wed, 23 Sep 2026 12:48:33 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37744 – test(warehouse): raising a movement order stamps the line with the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(warehouse): raising a movement order stamps the line with the stock&apos;s cost and vendor&lt;br /&gt;
&lt;br /&gt;
Covers the last untested link in the cost-layer chain: PurchaseOrderServiceImpl writing lineitem.origin_vendor_id and the line price, which is what GRN copies onto received stock.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37744</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37744</guid></item>
<item><pubDate>Fri, 18 Sep 2026 17:14:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37723 – Bulk-uploaded movement rows are validated on screen; popup shows arriving ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Bulk-uploaded movement rows are validated on screen; popup shows arriving stock per PO&lt;br /&gt;
&lt;br /&gt;
Bulk upload only fills the PO screen - the PO is created from the screen. It used to price&lt;br /&gt;
with resolvePrices(qty), so one row over what could move rejected the whole file. It now prices&lt;br /&gt;
from describeAvailability (same cost layer order creation uses) and never refuses on quantity:&lt;br /&gt;
over-cap rows turn red on render, createPO blocks while any row is red and lists them, and&lt;br /&gt;
the server checks again on create. An item with no stock and nothing arriving still fails&lt;br /&gt;
the upload (nothing to price).&lt;br /&gt;
&lt;br /&gt;
Popup reads in stock + arriving (per PO, &amp;lt;- supplier) - promised (per PO) = can move; the&lt;br /&gt;
&apos;Of these, still to arrive&apos; line is gone. Tests for the Oppo A6 UP-&gt;Noida case. jsVersion 433.&lt;br /&gt;
Needs dao r37722.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/PurchaseOrderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37723</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37723</guid></item>
<item><pubDate>Fri, 18 Sep 2026 05:05:16 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37714 – test(warehouse): receiving on an order raised before lines carried an ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(warehouse): receiving on an order raised before lines carried an origin still records the vendor&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37714</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37714</guid></item>
<item><pubDate>Fri, 18 Sep 2026 05:01:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37712 – Fix the fofo test profile, which had been failing every ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix the fofo test profile, which had been failing every context-loading test&lt;br /&gt;
&lt;br /&gt;
The test resources carry their own META-INF/dev.properties and it shadows the main one on the&lt;br /&gt;
classpath, so anything missing from it is simply unresolvable when a context is built for a test.&lt;br /&gt;
It had drifted 23 keys behind - among them prod - and a single unresolvable placeholder stops the&lt;br /&gt;
whole context. Every test that loads one failed on mailOutboxService with &apos;Could not resolve&lt;br /&gt;
placeholder prod&apos;, which read like a broken bean and was really a stale file. Missing keys copied&lt;br /&gt;
from the dev profile.&lt;br /&gt;
&lt;br /&gt;
InventoryCostLayerTest could then run for the first time since, and two of its cases still&lt;br /&gt;
described the old rules. Expected receipts can now be ordered against, so the inbound case asserts&lt;br /&gt;
a price rather than a refusal. A line stops reserving stock once its order moves past being&lt;br /&gt;
submitted for processing, so the raw unfulfilled quantity is now an upper bound: the held figure is&lt;br /&gt;
checked against what the commitments query reports, rather than by restating its SQL in the test.&lt;br /&gt;
&lt;br /&gt;
7 of 7 pass.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/resources/META-INF/dev.properties&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37712</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37712</guid></item>
<item><pubDate>Fri, 18 Sep 2026 01:05:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37701 – PO create: expected stock counts toward the quantity, popover wording ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;PO create: expected stock counts toward the quantity, popover wording follows&lt;br /&gt;
&lt;br /&gt;
Stock still to arrive is now part of what the order can take, so the breakdown reports it as a&lt;br /&gt;
qualifier on that number rather than as something set aside - &apos;Of these, still to arrive&apos; instead&lt;br /&gt;
of &apos;On the way in (not yet received)&apos;, which read as though it could not be ordered.&lt;br /&gt;
&lt;br /&gt;
Tests follow the two rule changes: expected receipts can be ordered against, a quantity beyond&lt;br /&gt;
what is held and expected together is still refused and says so, and availability counts expected&lt;br /&gt;
receipts toward what can move. 21 tests pass.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37701</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37701</guid></item>
<item><pubDate>Thu, 17 Sep 2026 22:45:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37697 – PO create: show what can move, and which orders hold ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;PO create: show what can move, and which orders hold the rest, while the quantity is typed&lt;br /&gt;
&lt;br /&gt;
Picking an item on a movement order already called getPricing, which read the sending&lt;br /&gt;
warehouse&apos;s stock and returned only a price. It now returns the availability too, so the row&lt;br /&gt;
can show it: an info marker beside the quantity box opens the breakdown - in stock, promised&lt;br /&gt;
with each holding order named by PO number and date, anything still arriving, and the quantity&lt;br /&gt;
this order can take.&lt;br /&gt;
&lt;br /&gt;
The quantity box flags the moment what is typed passes that cap, so it is corrected before&lt;br /&gt;
submitting rather than after being refused. The marker turns amber when stock is partly&lt;br /&gt;
promised and red when none can move.&lt;br /&gt;
&lt;br /&gt;
Outside vendors are unaffected: their pricing response carries no availability and their rows&lt;br /&gt;
are left exactly as they were. jsVersion bumped so the screen picks up the new script.&lt;br /&gt;
&lt;br /&gt;
Tests cover the four cases that matter: what can move with orders named, zero movable reported&lt;br /&gt;
rather than refused, this order&apos;s cap kept separate from what the warehouse holds when stock&lt;br /&gt;
came in at two costs, and a warehouse holding none of the item still refusing.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/VendorController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/warehouse-purchase.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/warehouse-purchase-order-add-item.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37697</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37697</guid></item>
<item><pubDate>Thu, 17 Sep 2026 18:19:29 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37695 – test(warehouse): cost layer tests; update movement tests for cost-based allocation ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(warehouse): cost layer tests; update movement tests for cost-based allocation&lt;br /&gt;
&lt;br /&gt;
- InventoryCostLayerTest: local-DB tests for layers vs stock on hand, movement priced at recorded cost, refusal across costs, promised stock held back, pending inbound offered but not dispatchable, and GRN recording vendor and cost&lt;br /&gt;
- InternalMovementPricingServiceTest: layers now keyed by cost, so same-cost stock moves together and a different cost needs its own order&lt;br /&gt;
- BillingPricingServiceTest: compare against recorded origins rather than the serial-trace source&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceTest.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InventoryCostLayerTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37695</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37695</guid></item>
<item><pubDate>Tue, 15 Sep 2026 17:23:17 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37637 – feat(pricing): log tag_listing price changes; reference TP instead of vendoritempricing ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(pricing): log tag_listing price changes; reference TP instead of vendoritempricing in price drop and tag listing&lt;br /&gt;
&lt;br /&gt;
- Add Pricing and price drop set DP/MOP/MRP via TagListingPriceService (logged with user; price drop logs carry price_drop_id)&lt;br /&gt;
- Price drop no longer writes vendoritempricing or vendor catalog pricing; old TP and prefill TP from reference TP&lt;br /&gt;
- Tag listing download TP from reference TP; drop unused VendorItemPricingRepository&lt;br /&gt;
- TagListingPricingTest: local-DB tests for the price log, reference TP and internal supplier guard&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PriceDropController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/TagListingController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/OrderManagementController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/tag&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/tag/TagListingPricingTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37637</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37637</guid></item>
<item><pubDate>Mon, 14 Sep 2026 18:57:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37626 – test(billing): assert internal transfer and billing resolve the same external ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;test(billing): assert internal transfer and billing resolve the same external origin vendor&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37626</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37626</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:10:46 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37623 – feat(price-drop): auto-approve price drop DP/MOP into external vendor catalog pricing ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(price-drop): auto-approve price drop DP/MOP into external vendor catalog pricing&lt;br /&gt;
&lt;br /&gt;
- PriceDropController calls VendorCatalogPricingService.applyPriceDrop with the affected date and logged-in user&lt;br /&gt;
- BillingPricingServiceTest: local-DB integration tests (rolled back) for origin-based billing prices, catalog fallback and re-billed orders&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PriceDropController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37623</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37623</guid></item>
<item><pubDate>Sun, 13 Sep 2026 01:49:52 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37611 – Pin the unrecorded-stock behaviour  Covers the shape behind the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Pin the unrecorded-stock behaviour&lt;br /&gt;
&lt;br /&gt;
Covers the shape behind the 2026-09-12 bulk-upload failures: an item with some stock&lt;br /&gt;
traceable to a vendor and some with no recorded origin must move in one order, at the&lt;br /&gt;
traceable stock&apos;s price. Two genuinely different vendors must still refuse.&lt;br /&gt;
&lt;br /&gt;
Also pins that no refusal message quotes a zero price from either side - including when the&lt;br /&gt;
oldest stock is itself the unrecorded pile, which is how &apos;at 0.00 each&apos; reached users.&lt;br /&gt;
&lt;br /&gt;
Requires profitmandi-dao r37610.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37611</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37611</guid></item>
<item><pubDate>Sat, 12 Sep 2026 17:00:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37604 – Show the derived movement price when building an internal purchase ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Show the derived movement price when building an internal purchase order&lt;br /&gt;
&lt;br /&gt;
Both places a price reaches a purchase order now use the movement price for internal&lt;br /&gt;
suppliers: the single lookup as an item is added on screen, and the per-item resolution&lt;br /&gt;
behind a bulk upload, which does the whole file in one pass instead of loading a circular&lt;br /&gt;
the sending warehouse does not have.&lt;br /&gt;
&lt;br /&gt;
Removes addVendorPricingIfMissing, which fired only when someone typed a numeric item id&lt;br /&gt;
into the search box, and only for Samsung or non-handsets, writing permanent approved&lt;br /&gt;
pricing rows onto the internal supplier from a hardcoded source vendor. Bulk upload never&lt;br /&gt;
called it at all, which is why the same item could be added on screen but rejected in a&lt;br /&gt;
file.&lt;br /&gt;
&lt;br /&gt;
Tests cover what is decided once origins are known - drawing the oldest stock first,&lt;br /&gt;
refusing a quantity that spans two original vendors while naming how many can move and&lt;br /&gt;
asking for a separate order, refusing an unmapped supplier, and falling back to the catalog&lt;br /&gt;
without ever recording an inferred vendor as though it were known.&lt;br /&gt;
&lt;br /&gt;
Requires profitmandi-dao r37603.&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/VendorController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/warehouse/PurchaseOrderController.java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37604</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=37604</guid></item>
<item><pubDate>Mon, 15 Dec 2025 14:43:31 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35379 – Fixed DP its now purchase - price drop</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed DP its now purchase - price drop&lt;/div&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/generic/GenericServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=35379</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=35379</guid></item>
<item><pubDate>Mon, 15 Jan 2018 17:38:41 +0530</pubDate><dc:creator>ashik.ali</dc:creator><title>Rev 23203 – </title><description>&lt;div&gt;&lt;strong&gt;ashik.ali – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoginController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/OrderController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/common.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/events.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/sale-history.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/generic/GenericServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23203</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23203</guid></item>
<item><pubDate>Tue, 09 Jan 2018 13:09:29 +0530</pubDate><dc:creator>ashik.ali</dc:creator><title>Rev 23173 – retailer not found redirect change to login, remove wallet history ...</title><description>&lt;div&gt;&lt;strong&gt;ashik.ali – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;retailer not found redirect change to login, remove wallet history date and invoice search box, remove new grn line, handle missing shipping details with better way&lt;/div&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/LoginController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/interceptor/RoleInterceptor.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/util/Utils.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/resources/js/common.js&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/wallet-details.vm&lt;br /&gt;~ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/generic/GenericServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23173</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23173</guid></item>
<item><pubDate>Tue, 26 Dec 2017 18:08:14 +0530</pubDate><dc:creator>ashik.ali</dc:creator><title>Rev 23112 – </title><description>&lt;div&gt;&lt;strong&gt;ashik.ali – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;&lt;/div&gt;/trunk/profitmandi-fofo/src/test&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/generic&lt;br /&gt;+ /trunk/profitmandi-fofo/src/test/java/com/spice/profitmandi/service/generic/GenericServiceTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23112</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-fofo%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2F&amp;isdir=1&amp;rev=23112</guid></item>
</channel></rss>