<?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-dao/src/test/java/com/spice/profitmandi/service/transaction/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 13:01:01 +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-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?isdir=1&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Mon, 28 Sep 2026 15:37:36 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37792 – feat(cart): carry bag at Rs 1 per smartphone over Rs ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 11 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(cart): carry bag at Rs 1 per smartphone over Rs 12,000, extras at listing price&lt;br /&gt;
&lt;br /&gt;
One carry bag (item 32046) is priced at Rs 1 for each smartphone (category&lt;br /&gt;
10006) in the cart selling above Rs 12,000; bags beyond that count are priced&lt;br /&gt;
at the carry bag&apos;s listing price, and Bronze partners pay listing for all.&lt;br /&gt;
Closes the leak where bag-only carts of hundreds of bags at Rs 1 were placed&lt;br /&gt;
from the old app. CarryBagQuote (via CartService.getCarryBagQuote) is the&lt;br /&gt;
single rule; the cart carries it as one line at a blended price.&lt;br /&gt;
&lt;br /&gt;
- CartService/CartServiceImpl, CartResponse, OpenCartValidationResult: expose&lt;br /&gt;
  the quote on the cart.&lt;br /&gt;
- OrderLineAllocator: an item may now have more than one cart line (the flat&lt;br /&gt;
  and listing-priced parts); its units fill the lines in order.&lt;br /&gt;
- TransactionServiceImpl: item quantities merge instead of failing on a&lt;br /&gt;
  duplicate item id.&lt;br /&gt;
- PurchaseServiceImpl: partner GRN creates one stock record per billed price;&lt;br /&gt;
  the GRN screen shows the blended unit price; dead&lt;br /&gt;
  createScannedNonSerializedItem removed.&lt;br /&gt;
- PurchaseReturnServiceImpl: debit-note PDF picks the order billed at the&lt;br /&gt;
  returned stock&apos;s price; refundOrder spreads a non-serialized return over the&lt;br /&gt;
  item&apos;s orders with room left (same price first) instead of loading it all&lt;br /&gt;
  on the first order.&lt;br /&gt;
&lt;br /&gt;
Tests: CarryBagQuoteTest 6/6, OrderLineAllocatorTest 13/13.&lt;br /&gt;
Deploy with profitmandi-web (same change) and the partner apps.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/CartServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/v2/OpenCartValidationResult.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CarryBagQuote.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CartResponse.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/OrderLineAllocator.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/CarryBagQuoteTest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/OrderLineAllocatorTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37792</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37792</guid></item>
<item><pubDate>Thu, 24 Sep 2026 18:24:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37767 – fix(orders): movements ship from their source only; a row reserved ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(orders): movements ship from their source only; a row reserved beyond its stock gives nothing&lt;br /&gt;
&lt;br /&gt;
Internal movement orders were allocated by the partner allocator, which spills a source&lt;br /&gt;
shortfall to every warehouse the brand mapping links to the destination - stock billed&lt;br /&gt;
there has no PO to be received against (PO 54279: 3 units put on Jaipur for a UP-&gt;Delhi&lt;br /&gt;
movement). createTransactionInternally now keeps the source&apos;s own rows only; a shortfall&lt;br /&gt;
still parks on the source&apos;s Dummy.&lt;br /&gt;
&lt;br /&gt;
getItemQty took min(qty, netAvailability) on a row reserved beyond its stock - always the&lt;br /&gt;
case on a Dummy holding an open order - so a -1 row added a unit to the shortfall, which&lt;br /&gt;
then parked on the Dummy as an extra order (24 Sep: 9 units raised for a movement of 8,&lt;br /&gt;
refused by the cart-value guard). Rows with nothing free are now skipped and no longer&lt;br /&gt;
offset another row&apos;s free stock in the warehouse total.&lt;br /&gt;
&lt;br /&gt;
Removes the empty, uncalled markOrdersAsGrnCompleted.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/GetItemQtyTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37767</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37767</guid></item>
<item><pubDate>Fri, 18 Sep 2026 16:39:30 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37721 – fix(orders): price each order by the cart line that asked ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(orders): price each order by the cart line that asked for it, not the first line of its model&lt;br /&gt;
&lt;br /&gt;
Orders were priced from one cart line per catalog, so colours of one model at different&lt;br /&gt;
prices all took an arbitrary one. Internal movements (cost layers) failed with WLT_1000&lt;br /&gt;
when the dearer line won and were silently under-billed when the cheaper one did.&lt;br /&gt;
fulfillQty now prices from the item&apos;s own line, newColorQty from the model&apos;s any-colour&lt;br /&gt;
line; same-price output is unchanged. Refuse the transaction if orders do not total the cart.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/OrderLineAllocator.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/OrderLineAllocatorTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37721</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37721</guid></item>
<item><pubDate>Sat, 14 Feb 2026 18:44:19 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35766 – Fix fresh money calculation to use per-day paired approach instead ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix fresh money calculation to use per-day paired approach instead of pooled 7-day window. Orders from earlier days no longer consume deposits from later days.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/FRESH_MONEY_README.md&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/transaction/SDCreditServiceFreshMoneyTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=35766</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Ftest%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=35766</guid></item>
</channel></rss>