<?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/main/java/com/spice/profitmandi/service/transaction/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 20:39: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%2Fmain%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%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Mon, 05 Oct 2026 19:44:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37850 – refactor(warehouse): retire hardcoded Delhi ids - allocation fallback vendor warehouse ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;refactor(warehouse): retire hardcoded Delhi ids - allocation fallback vendor warehouse 7573 -&gt; 13368 (central HR-NSSPL/GGN); Vivo Noida/Ghaziabad partner-sale rule 7573 -&gt; 13370; drop unused InventoryWarehouse WH_DL/WH_HR_DL/WAREHOUSE_IDS; migration 20261005_hr_ggn_central_brand_mapping.sql (13368 central for every ACTIVE warehouse, all brands except Oppo/Vivo, 532 rows, applied on hadb1)&lt;/div&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/inventory/InventoryWarehouse.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20261005_hr_ggn_central_brand_mapping.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37850</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37850</guid></item>
<item><pubDate>Mon, 05 Oct 2026 18:48:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37845 – feat(warehouse): ACTIVE/SUSPENDED/INACTIVE status + label on sellerwarehouse replace WAREHOUSE_MAP - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 33 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(warehouse): ACTIVE/SUSPENDED/INACTIVE status + label on sellerwarehouse replace WAREHOUSE_MAP - BillingWarehouseService (active for dashboards, active+suspended for warehouse screens, names in every state, 5 min cache); setup service: guarded status change (no suspend while franchise stores or brand mapping route there, no close while stock/unshipped orders), rename, all-warehouse overview with usage; partner store assignable only to an active warehouse; daily stock alert for suspended/inactive warehouses to logistics/accounts top 2 staffed levels + leadership; dashboard warehouse list = active (replaces r37834 stock-holding loop); migration sellerwarehouse_status_display_name_20261005.sql (applied on hadb1)&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/SellerWarehouse.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/warehouse/WarehouseStatus.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/PhysicalWarehouseView.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/WarehouseStockLine.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/warehouse/WarehouseUsage.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/FofoStoreRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/InventoryWarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/SaholicInventoryCISRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/SaholicInventoryCISRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/inventory/WarehouseRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/SellerWarehouseRepositoryImpl.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/AdminUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/authentication/JWTUtil.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/offers/OfferServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/RetailerServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingWarehouseService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingWarehouseServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalDigestServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PoStockApprovalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseSetupValidator.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/sellerwarehouse_status_display_name_20261005.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/BillingWarehouseServiceImplTest.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/SuspendedWarehouseStockAlertServiceImplTest.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/WarehouseSetupServiceImplTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37845</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37845</guid></item>
<item><pubDate>Fri, 02 Oct 2026 01:53:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37830 – feat(movement): one PO per source vendor warehouse and cost - ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(movement): one PO per source vendor warehouse and cost - layers carry their GOOD/OURS vendor warehouse, orders are raised pinned to it, holds of pinned orders come off their own warehouse, billing takes units at the order&apos;s price first&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InternalMovementAllocationModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InternalMovementPriceModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepositoryImpl.java&lt;br /&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/main/java/com/spice/profitmandi/service/warehouse/InternalMovementPricingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/warehouse/MovementPoSplitTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37830</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37830</guid></item>
<item><pubDate>Fri, 02 Oct 2026 01:06:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37829 – fix(order): split order&apos;s line item carries its item, so the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(order): split order&apos;s line item carries its item, so the split can be billed or split again in the same transaction (NPE at addBillingDetailsForGrouppedOrders)&lt;/div&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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37829</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37829</guid></item>
<item><pubDate>Wed, 30 Sep 2026 16:02:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37816 – fix(einvoice): save the e-way bill whenever NIC returns EwbNo, not ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(einvoice): save the e-way bill whenever NIC returns EwbNo, not only with the EWBPPD note&lt;br /&gt;
&lt;br /&gt;
GstProService saved EWB details only when InfoDtls held EWBPPD. NIC sends that&lt;br /&gt;
note (its pin-to-pin distance) only when we pass Distance=0, and the DUPIRN&lt;br /&gt;
get-by-IRN response carries no InfoDtls at all. So every partner with a&lt;br /&gt;
warehouse_partner_distance_mapping row, and every IRN recovered after a&lt;br /&gt;
timeout, lost its EWB although NIC had filed it (13 + 2 invoices in 30 days,&lt;br /&gt;
backfilled 2026-09-30), and a false &quot;EWB Not Generated&quot; mail was sent.&lt;br /&gt;
&lt;br /&gt;
- Key on EwbNo; distance from EWBPPD, else the distance we sent, else none.&lt;br /&gt;
- Invoice PDF prints the &quot;[distance]&quot; suffix only when a distance is known&lt;br /&gt;
  (was &quot;[null]&quot;).&lt;/div&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/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37816</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37816</guid></item>
<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%2Fmain%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%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37792</guid></item>
<item><pubDate>Thu, 24 Sep 2026 20:16:26 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37776 – returns: reverse a refunded debit-note return whose goods never reached ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;returns: reverse a refunded debit-note return whose goods never reached the warehouse&lt;br /&gt;
&lt;br /&gt;
Once a return was refunded nothing could undo it - rejectReturn refuses an already&lt;br /&gt;
refunded one - so a return booked and paid for goods that never arrived left phantom&lt;br /&gt;
warehouse stock, the unit missing from partner stock, the order marked returned, a&lt;br /&gt;
wallet credit and a filed credit note, with no way back.&lt;br /&gt;
&lt;br /&gt;
ReturnReversalService.reverse(imei, reason, by, dryRun) undoes exactly one unit:&lt;br /&gt;
the warehouse return scan (row deleted so a genuine return later is not rejected as a&lt;br /&gt;
duplicate) and the stock it added, partner stock with its schemes/price drop/offers,&lt;br /&gt;
the order&apos;s return quantity and status, the wallet refund as a REVERSAL entry, and the&lt;br /&gt;
return item / debit note. Guards refuse anything that has moved since the refund, and a&lt;br /&gt;
dry run reports the plan without writing.&lt;br /&gt;
&lt;br /&gt;
The credit note follows movement and the NIC clock: inside the 24h window, and only&lt;br /&gt;
when the note credits nothing but this unit, its IRN is cancelled and the note marked&lt;br /&gt;
cancelled; past it a DBN with its own IRN is issued against the note&lt;br /&gt;
(CreditNoteService.issueReturnReversalDebitNote, stored as CN_CANCELLATION with no&lt;br /&gt;
margin month so the statement does not show it twice - the wallet REVERSAL is the&lt;br /&gt;
statement line); a note never filed at NIC is voided locally. Every local write happens&lt;br /&gt;
first and NIC last, so a refusal rolls the whole reversal back.&lt;br /&gt;
&lt;br /&gt;
fofo.return_reversal (return_reversal_20260921.sql) records each reversal and, unique&lt;br /&gt;
per return item, makes it once-only. Also adds cancelled=0 to the RETURNS_CN branches of&lt;br /&gt;
the account statement queries, without which a cancelled note keeps crediting the&lt;br /&gt;
statement - no current effect, no RETURNS note is cancelled today.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ReturnReversal.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnReversalRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/CreditNoteRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/InventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnReversalServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/WarehouseInventoryServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/return_reversal_20260921.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37776</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37776</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%2Fmain%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%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37767</guid></item>
<item><pubDate>Mon, 21 Sep 2026 13:39:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37740 – SD credit: getAvailableAmount no longer writes utilized_limit - it is ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;SD credit: getAvailableAmount no longer writes utilized_limit - it is a read path, but the managed entity was dirty-checked so every availability query (gateway callback, both sanction screens, bulk order creation) flushed an UPDATE; availability is now computed locally as limit - liveUtilization, same value&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37740</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37740</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%2Fmain%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%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37721</guid></item>
<item><pubDate>Wed, 16 Sep 2026 17:14:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37656 – Point dao at the relocated KYC and SD Credit types ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Point dao at the relocated KYC and SD Credit types (r37655)&lt;br /&gt;
&lt;br /&gt;
Imports follow services.mandii -&gt; services.kyc / services.sdcredit, and&lt;br /&gt;
RecordingService takes RawHttpResponse in place of MandiiResponse.&lt;br /&gt;
&lt;br /&gt;
Gateway.MANDII is kept, with a comment saying why: it is persisted as a&lt;br /&gt;
string on FofoPayment.gateway and CreditAccount.gateway, and 740 historical&lt;br /&gt;
fofo.payment rows still carry it - removing the constant would make&lt;br /&gt;
Hibernate throw when reading them.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoKyc.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/warehouse/Supplier.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/fofo/Gateway.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/SDCreditResponseOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/kommuno/RecordingService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37656</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37656</guid></item>
<item><pubDate>Wed, 16 Sep 2026 15:32:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37652 – Internal store buyer address: always read user.address  An INTERNAL ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Internal store buyer address: always read user.address&lt;br /&gt;
&lt;br /&gt;
An INTERNAL store is the buying identity of a warehouse, so order creation&lt;br /&gt;
resolved its address from transaction.warehouseaddressmaster while every&lt;br /&gt;
screen read transaction.addId -&gt; user.address. The Delhi warehouses moved to&lt;br /&gt;
warehouseaddressmaster 26 in Sept 2024 and nothing carried that across, so&lt;br /&gt;
user.address still held the 2021 L-222 premises: same buyer, two addresses.&lt;br /&gt;
&lt;br /&gt;
user.address for active internal stores is now aligned with the mapped&lt;br /&gt;
warehouse address (sql/20260916_sync_internal_store_addresses.sql), split&lt;br /&gt;
exactly as getCustomAddress() does so the next invoice is unchanged. With&lt;br /&gt;
that true, createTransactionForWarehouse no longer special-cases internal.&lt;br /&gt;
&lt;br /&gt;
SellerService.syncInternalStoreAddresses carries a warehouse address remap&lt;br /&gt;
through to its internal stores - the mapping has no edit screen and is&lt;br /&gt;
repointed directly in the database, which is why nothing propagated before.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/SellerServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/20260916_sync_internal_store_addresses.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37652</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37652</guid></item>
<item><pubDate>Tue, 15 Sep 2026 13:16:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37628 – feat(mail): filter inactive auth users from outgoing mail  InactiveAuthUserRecipientFilter ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(mail): filter inactive auth users from outgoing mail&lt;br /&gt;
&lt;br /&gt;
InactiveAuthUserRecipientFilter drops @smartdukaan.com recipients whose auth.auth_user is inactive (cached, 5 min refresh, fail-open). Remove inactive hardcoded recipients (sm@, praveen.sharma, tejus.lohani).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PendingOrderServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/LocationTrackingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/loiForm/LoiFormServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/mail/InactiveAuthUserRecipientFilter.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/serviceConfig/ServiceConfigServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/mail&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/mail/InactiveAuthUserRecipientFilterTest.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37628</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37628</guid></item>
<item><pubDate>Mon, 14 Sep 2026 17:10:35 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37622 – feat(billing): price warehouse billing from the external supplier of the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(billing): price warehouse billing from the external supplier of the billed stock; auto-approve price drop DP/MOP into vendor catalog pricing&lt;br /&gt;
&lt;br /&gt;
- BillingPricingService resolves TP/NLC per order from vendor_catalog_pricing of the most recent external supplier of the units scanned out (serial trace, else own external PO); units reversed by SALE_RET are ignored&lt;br /&gt;
- Falls back to the latest approved external catalog price when no supplier can be traced; vendorId stays the warehouse vendor&lt;br /&gt;
- addBillingDetailsForGrouppedOrders no longer reads vendoritempricing (removes NPE when the row is missing); order.vendorId set to the origin supplier&lt;br /&gt;
- VendorCatalogPricingService.applyPriceDrop writes approved pricing logs for external vendors with the price drop DP/MOP, keeping each vendor&apos;s TP on the effective date&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/BillingPriceModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/InventoryItemExternalOriginModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/warehouse/WarehouseInventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/VendorCatalogPricingService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/VendorCatalogPricingServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingPricingService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/BillingPricingServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37622</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37622</guid></item>
<item><pubDate>Mon, 14 Sep 2026 15:12:29 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37618 – logger added</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;logger added&lt;/div&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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37618</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37618</guid></item>
<item><pubDate>Tue, 01 Sep 2026 16:59:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37504 – Stop invoice read paths creating directories (AccessDeniedException 500s)  getInvoicePath ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Stop invoice read paths creating directories (AccessDeniedException 500s)&lt;br /&gt;
&lt;br /&gt;
getInvoicePath called Files.createDirectories, and getInvoiceFile called it on every&lt;br /&gt;
download. Invoices are generated by the cron app as root, so /SaholicInvoices/&amp;lt;month&gt;&lt;br /&gt;
is 755 root-owned; a download served by Tomcat cannot create a retailer subdirectory&lt;br /&gt;
and threw AccessDeniedException.&lt;br /&gt;
&lt;br /&gt;
It threw on line 1 of getInvoiceFile, before the Files.exists check, so the&lt;br /&gt;
ProfitMandiBusinessException on the next line was unreachable and the callers&apos;&lt;br /&gt;
deliberate 404 handler (&quot;Invoice not yet generated, please retry shortly&quot;) never ran.&lt;br /&gt;
Downloads for a not-yet-generated invoice 500ed instead of 404ing - the exact log&lt;br /&gt;
noise that handler was added to remove.&lt;br /&gt;
&lt;br /&gt;
Split the path computation out: resolveInvoicePath is side-effect free and used by&lt;br /&gt;
getInvoiceFile; getInvoicePath keeps the mkdir for the two generation callers&lt;br /&gt;
(InvoiceService:558, GstProService:952). The legacy relocation branch creates the&lt;br /&gt;
target directory only when there is actually a file to move.&lt;br /&gt;
&lt;br /&gt;
No ops change needed - generation as root already works.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37504</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37504</guid></item>
<item><pubDate>Sat, 29 Aug 2026 07:42:55 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37456 – Block billing when NIC rejects the transporter GSTIN for e-way ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Block billing when NIC rejects the transporter GSTIN for e-way bills&lt;br /&gt;
&lt;br /&gt;
NIC files the e-way bill alongside the IRN, so a deregistered transporter&lt;br /&gt;
GSTIN returns Status=1 with InfoDtls[InfCd=EWBERR] (3029 &quot;GSTIN - ... is&lt;br /&gt;
not active&quot;): the IRN is valid while ewb_no stays null. Nothing downstream&lt;br /&gt;
reads that as a failure, so invoices kept being issued for goods that&lt;br /&gt;
could not legally move.&lt;br /&gt;
&lt;br /&gt;
Cache the rejected transporter GSTIN in Redis and refuse to bill through&lt;br /&gt;
it. The block is keyed on the GSTIN, since one GSTIN is shared by several&lt;br /&gt;
warehouse_provider rows, and it carries the day it was raised so it lapses&lt;br /&gt;
at midnight and each new day re-tests NIC once. Correcting the GSTIN in&lt;br /&gt;
the provider panel lifts it immediately.&lt;br /&gt;
&lt;br /&gt;
Only errors that are the transporter&apos;s fault block billing - NIC&apos;s 3029,&lt;br /&gt;
or any message naming the GSTIN we sent as TransId. Every other EWBERR&lt;br /&gt;
behaves as before: the IRN is filed and the e-way bill is retried later.&lt;br /&gt;
&lt;br /&gt;
Guard sits in addBillingDetailsForGrouppedOrders before the pessimistic&lt;br /&gt;
lock and before any mutation, mirroring LogisticsServiceImpl#getEwbDetails&lt;br /&gt;
(order&apos;s own warehouse; self-pickup and runner skipped, as they travel on&lt;br /&gt;
a vehicle number rather than a transporter id).&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/EwbTransporterFailureCache.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/transaction/TransactionServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/service/integrations/gstpro/EwbTransporterFailureCacheTest.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/provider/ProviderController.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37456</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37456</guid></item>
<item><pubDate>Wed, 26 Aug 2026 16:47:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37421 – EWB: recover existing e-way bill on NIC 604 instead of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;EWB: recover existing e-way bill on NIC 604 instead of storing a placeholder&lt;br /&gt;
&lt;br /&gt;
DCNSUPDL948 generated EWB 451765074092 at NIC, then the transaction rolled back and&lt;br /&gt;
the number was lost. Every retry hit 604 and stored the literal EXISTING-LOOKUP-NEEDED&lt;br /&gt;
with no validity date, which routed the PDF down the transporter branch and NPE&apos;d on a&lt;br /&gt;
self-pickup dispatch with no warehouse_provider row. ~640 retries in 55 minutes, and&lt;br /&gt;
because the failure surfaced as an Error it escaped catch(Exception) and blocked six&lt;br /&gt;
other documents behind it.&lt;br /&gt;
&lt;br /&gt;
- GstProService: on 604, look the bill up via GetEwayBillsByDate + docNo match and&lt;br /&gt;
  return it in GENEWAYBILL shape; stamp NIC&apos;s generation time instead of now().&lt;br /&gt;
  Throw when it cannot be recovered rather than persist a placeholder.&lt;br /&gt;
- InvoiceService: saveInvoiceInNewTransaction no longer propagates. It commits&lt;br /&gt;
  irn_generated=0 with the reason so a failed document stops churning; already-filed&lt;br /&gt;
  invoices being re-rendered are left untouched.&lt;br /&gt;
- InvoiceService: cron loop catches Throwable so one bad document cannot skip the batch.&lt;br /&gt;
- InvoiceService: null-guard warehouse_provider; omit the transporter line instead of&lt;br /&gt;
  failing the PDF.&lt;br /&gt;
- recordIrnFailure: transport failures now park at 0 for escalation rather than&lt;br /&gt;
  requeueing for unbounded retry.&lt;/div&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/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37421</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37421</guid></item>
<item><pubDate>Wed, 19 Aug 2026 17:59:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37356 – Fixed max limit to 15 lac for Credit limit</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fixed max limit to 15 lac for Credit limit&lt;/div&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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37356</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37356</guid></item>
<item><pubDate>Wed, 19 Aug 2026 09:52:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37350 – Fix SD Credit daily statement showing zero interest on overdue ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix SD Credit daily statement showing zero interest on overdue loans&lt;br /&gt;
&lt;br /&gt;
sdDirectService classified each day&apos;s interest by exact-matching the&lt;br /&gt;
loan_statement description (&apos;Interest On Loan Per Day&apos; /&lt;br /&gt;
&apos;Penalty On Loan Per Day&apos;). Once a loan crossed its due date the cron&lt;br /&gt;
switches the label to &apos;Overdue Interest On Loan Per Day&apos;, which matched&lt;br /&gt;
neither filter, so the daily statement reported 0.00 interest for every&lt;br /&gt;
overdue day even though the charge was booked correctly in&lt;br /&gt;
loan_statement and loan.interest_accured.&lt;br /&gt;
&lt;br /&gt;
Classify by tenure window against loan.getPenaltyDate() instead - the&lt;br /&gt;
same test addInterest() uses to pick the rate - and net the day&apos;s full&lt;br /&gt;
interest out of the opening balance so penalty days are consistent too.&lt;br /&gt;
&lt;br /&gt;
Seen on loan 120277 (invoice NSLCK35860): Rs.73-83/day accruing from&lt;br /&gt;
08-Aug, displayed as 0.00.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/SDCreditServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37350</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37350</guid></item>
<item><pubDate>Mon, 17 Aug 2026 17:23:32 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37325 – Add EWB backfill for invoices whose IRN was recovered via ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add EWB backfill for invoices whose IRN was recovered via DUPIRN&lt;br /&gt;
&lt;br /&gt;
When GenerateIRN carries EwbDtls, NIC files the IRN and e-way bill together and reports&lt;br /&gt;
the EWB back only in that response, flagged by InfoDtls[InfCd=EWBPPD]. A read timeout&lt;br /&gt;
sends the retry down the DUPIRN path, which recovers the IRN via the get-e-invoice&lt;br /&gt;
endpoint — that response carries neither InfoDtls nor EWB fields. The EWB therefore&lt;br /&gt;
exists at NIC while ewb_no stays null locally, and since updatePdfModelWithIrnDetails&lt;br /&gt;
gates the entire e-way bill section on ewb_no, the stored PDF omits it altogether.&lt;br /&gt;
&lt;br /&gt;
backfillMissingEwb() looks the EWB up by (seller GSTIN, ack date), matches on docNo, and&lt;br /&gt;
takes actualDist from the per-EWB call since the distance is printed on the invoice. It&lt;br /&gt;
then re-renders the PDF; generateIrnForInvoices returns early once irn_generated is set,&lt;br /&gt;
so nothing is re-filed at NIC.&lt;br /&gt;
&lt;br /&gt;
NIC is queried with the transaction suspended (NOT_SUPPORTED); the write and the&lt;br /&gt;
re-render each run in their own REQUIRES_NEW transaction.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37325</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37325</guid></item>
<item><pubDate>Mon, 17 Aug 2026 16:28:39 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37323 – Drop irn_attempt_count; IRN transport retry is unbounded  Removes the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Drop irn_attempt_count; IRN transport retry is unbounded&lt;br /&gt;
&lt;br /&gt;
Removes the attempt counter added in r37322 along with its pending ALTER TABLE, so the&lt;br /&gt;
change no longer carries a schema dependency.&lt;br /&gt;
&lt;br /&gt;
NIC outages resolve within the day, and an invoice legally requires an IRN, so capping&lt;br /&gt;
the retry would not remove the obligation — it would only stop trying. Transport failures&lt;br /&gt;
now stay queued (irn_generated NULL) until the provider recovers; only a genuine rejection&lt;br /&gt;
from NIC is terminal. The failure reason is still recorded in irn_error_message, which&lt;br /&gt;
distinguishes a requeued transport failure from an invoice never yet attempted.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/EInvoiceDetails.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/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37323</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37323</guid></item>
<item><pubDate>Mon, 17 Aug 2026 15:45:41 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37322 – Stop treating IRN transport timeouts as terminal; isolate NIC calls ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Stop treating IRN transport timeouts as terminal; isolate NIC calls from batch transaction&lt;br /&gt;
&lt;br /&gt;
A read timeout to GSTPro/NIC was recorded as a final verdict (irn_generated=false),&lt;br /&gt;
so 79 invoices billed on 2026-08-17 were left permanently without an IRN even though&lt;br /&gt;
NIC may well have filed them. A timeout means the call never completed, not that the&lt;br /&gt;
document was rejected.&lt;br /&gt;
&lt;br /&gt;
- markEInvoiceFailed -&gt; recordIrnFailure(invoiceNumber, Throwable): transport failures&lt;br /&gt;
  leave irn_generated NULL so the cron retries (DUPIRN recovers anything NIC did file);&lt;br /&gt;
  only a genuine rejection is terminal. Alert email now fires only when terminal.&lt;br /&gt;
- New einvoice_details.irn_attempt_count bounds that retry at 10 attempts, reset on&lt;br /&gt;
  success, so a prolonged NIC outage still converges instead of looping forever.&lt;br /&gt;
  Requires the matching ALTER TABLE before deploy.&lt;br /&gt;
- New saveInvoiceInNewTransaction(invoiceNumber): REQUIRES_NEW per invoice, reloading&lt;br /&gt;
  orders inside it. RunOnceTasks has class-level @Transactional wrapping the whole&lt;br /&gt;
  batch loop, so every NIC call previously ran inside one transaction holding write&lt;br /&gt;
  locks on all orders in the batch; at 60s per call that window is unacceptable.&lt;br /&gt;
  updateIrnsToInvoices and regenerateBilledInvoices now carry only invoice numbers,&lt;br /&gt;
  keeping the batch transaction read-only.&lt;br /&gt;
- Route all NIC calls (IRN gen, auth, cancel, EWB) through the 60s regulator profile&lt;br /&gt;
  via GstProAuthService.nicRestClient(). getGstDetails stays on the 10s default since&lt;br /&gt;
  it runs on request threads.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/EInvoiceDetails.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/integrations/gstpro/GstProAuthService.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/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37322</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37322</guid></item>
<item><pubDate>Thu, 13 Aug 2026 13:55:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37302 – Split refurbished (margin scheme) items into their own order at ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Split refurbished (margin scheme) items into their own order at placement&lt;br /&gt;
&lt;br /&gt;
Refurbished lines are invoiced on the RF- series, but only the partner checkout path&lt;br /&gt;
split them out. Internal POs and bulk orders raised a single mixed transaction, which&lt;br /&gt;
billed as one invoice on whichever series its first line happened to resolve to&lt;br /&gt;
(NSPJB2757, NSPJB3212, NSUPDL3898/3899/4365/4366).&lt;br /&gt;
&lt;br /&gt;
- PurchaseOrderServiceImpl: split a mixed internal PO into a regular PO and a margin&lt;br /&gt;
  scheme PO, each with its own PO number, PDF and internal transaction. External vendor&lt;br /&gt;
  POs raise no transaction, so they are left intact.&lt;br /&gt;
- BulkOrderService: raise one transaction per billing group, each with its own loan&lt;br /&gt;
  sized to the wallet balance left to it. Pricing, combo, credit availability and the&lt;br /&gt;
  first-PO gates still validate the order as a whole, so a split first PO cannot block&lt;br /&gt;
  its own second half.&lt;br /&gt;
- TransactionServiceImpl: drop the float narrowing of walletUsed in&lt;br /&gt;
  createTransactionForCartLines - the field is a double and the cart total is validated&lt;br /&gt;
  within 0.001, so any total carrying paise was rejected.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/BulkOrderService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/PurchaseOrderServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37302</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37302</guid></item>
<item><pubDate>Tue, 11 Aug 2026 02:29:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37290 – Credit Note IRN: credit only the returned units, not the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Credit Note IRN: credit only the returned units, not the whole invoice&lt;br /&gt;
&lt;br /&gt;
refundOrder persisted the CreditNote and its lines from the returned&lt;br /&gt;
inventory items, but then called generateCreditNoteIrn(invoiceNumber, ...),&lt;br /&gt;
which rebuilt the NIC payload by re-reading the original invoice - every&lt;br /&gt;
line at billed quantity. A 1-pc DOA return against NSDL37092 therefore&lt;br /&gt;
tried to register a CN covering the full invoice (2 phones + 27 carry&lt;br /&gt;
bags, Rs 26,664.27) against a Rs 13,332 wallet refund, and the legacy&lt;br /&gt;
4-digit HSN on the carry-bag line failed NIC validation with error 2311.&lt;br /&gt;
&lt;br /&gt;
The wallet credit, the CreditNote row and its lines were always correct;&lt;br /&gt;
only the e-invoice payload was wrong.&lt;br /&gt;
&lt;br /&gt;
- InvoiceService.getInvoicePdfModelForIrn: optional returnedQtyByOrderId&lt;br /&gt;
  restricts the item list to the returned orders and prices each line at&lt;br /&gt;
  the returned quantity. The existing single-arg method delegates with&lt;br /&gt;
  null, so invoice PDF generation is unchanged. Margin-scheme, delivery&lt;br /&gt;
  challan, IMEI-suffix and HSN handling apply to the reduced line as-is.&lt;br /&gt;
- GstProService.generateCreditNoteIrn: 4-arg overload taking the map; the&lt;br /&gt;
  3-arg version delegates with null for whole-invoice returns.&lt;br /&gt;
- PurchaseReturnServiceImpl.refundOrder: passes orderReturnQtyMap, which&lt;br /&gt;
  was already built for the ReturnOrderInfo rows.&lt;br /&gt;
&lt;br /&gt;
Verified against the NIC sandbox using the real NSDL37092 rows: the old&lt;br /&gt;
payload is rejected with error 2311, the new payload is accepted&lt;br /&gt;
(DocTyp CRN, ItemCnt 1, MainHsnCode 85171300, TotInvVal 13331.99).&lt;br /&gt;
&lt;br /&gt;
Not covered here: applyInvoiceReturnViaCreditNote still sends the whole&lt;br /&gt;
invoice, so an invoice partially returned earlier re-credits those units.&lt;/div&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/inventory/PurchaseReturnServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37290</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37290</guid></item>
<item><pubDate>Mon, 10 Aug 2026 11:20:42 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37274 – Freeze margin-scheme purchase price on the invoice line  Refurbished ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Freeze margin-scheme purchase price on the invoice line&lt;br /&gt;
&lt;br /&gt;
Refurbished (GST Rule 32(5)) lines re-derived their purchase price by serial on&lt;br /&gt;
every read, resolving to the LATEST warehouse.inventoryItem row. A returned&lt;br /&gt;
device gets re-GRNed, sometimes at a different price, so a credit note or a&lt;br /&gt;
regenerated PDF could reverse a margin the invoice never charged. 11 already-&lt;br /&gt;
billed lines resolved to a price they were not sold at; IMEI 353917853695268&lt;br /&gt;
has been sold on six invoices at two different purchase prices.&lt;br /&gt;
&lt;br /&gt;
InvoiceService.freezeMarginPurchasePrices now stamps the value onto&lt;br /&gt;
transaction.lineitem.margin_purchase_price at billing time (saveInvoice step 0,&lt;br /&gt;
inside the billing transaction), and resolveMarginPurchasePrice reads the frozen&lt;br /&gt;
value thereafter, falling back to the live lookup only when null so pre-existing&lt;br /&gt;
lines behave exactly as before.&lt;br /&gt;
&lt;br /&gt;
Requires the column from db-scripts/add_margin_purchase_price_column.sql, which&lt;br /&gt;
must be applied before this is deployed.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LineItem.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37274</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37274</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:50:34 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37241 – Harden cancelMarginDnIrns: per-DN REQUIRES_NEW transaction (NIC cancel is irreversible; later ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Harden cancelMarginDnIrns: per-DN REQUIRES_NEW transaction (NIC cancel is irreversible; later failures must not roll back earlier cancelled flags) and treat NIC already-cancelled as success so re-runs converge DB to NIC state&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37241</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37241</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:22:56 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37237 – Net IRN payload items per GST-rate group for CN/DN docs ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Net IRN payload items per GST-rate group for CN/DN docs (NIC rejects negative AssAmt; mixed-sign docs failed CRN IRN with regex error - all 105 July mixed CNs); add regenerateMarginIrns one-time method to generate missing IRNs for issued margin docs, regenerate PDFs with IRN/QR and re-mail partners&lt;/div&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/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37237</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37237</guid></item>
<item><pubDate>Wed, 05 Aug 2026 12:06:05 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37235 – Add cancelMarginDnIrns one-time remediation: cancel NIC IRNs (24h window) of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add cancelMarginDnIrns one-time remediation: cancel NIC IRNs (24h window) of margin DNs inflated by the abs bug and mark rows cancelled so a sendCreditNote rerun reissues corrected DNs; add cancelIrn overload taking seller GSTIN (CN/DN docs have no order rows); mail partner on monthly run only when a document was generated (rerun guard)&lt;/div&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/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37235</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37235</guid></item>
<item><pubDate>Tue, 04 Aug 2026 19:03:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37231 – Fix margin DN sign reversal: negate line items instead of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix margin DN sign reversal: negate line items instead of Math.abs so opposite-sign components (scheme/offer payouts) appear as negative DN lines; add one-time issueCorrectiveMarginCNs to issue document-only corrective CNs against DNs inflated by the abs bug&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37231</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37231</guid></item>
<item><pubDate>Fri, 24 Jul 2026 16:12:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37140 – Fix NIC IRN date fields on note paths: format note ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix NIC IRN date fields on note paths: format note DocDt + preceding-invoice InvDt as dd/MM/yyyy via FormattingUtils.formatNicDate instead of StringUtils.toString (Jackson serialized LocalDate to a JSON blob in the cron classpath, breaking cancelled-CN DBN IRN with &apos;Date of preceding invoice must be 10 chars&apos;). Invoice DocDt path unchanged.&lt;/div&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/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37140</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37140</guid></item>
<item><pubDate>Sat, 18 Jul 2026 15:00:22 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37122 – Replace satish.kumar with abhishek.yadav in monthly margins CN mail recipients</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Replace satish.kumar with abhishek.yadav in monthly margins CN mail recipients&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/CreditNoteServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37122</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37122</guid></item>
<item><pubDate>Thu, 16 Jul 2026 15:24:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37102 – Remove dead Counter/PrivateDealUser code: drop unused isFofo, bulkShipmentAmountLimit, verifiedOn, documentVerified ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 10 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove dead Counter/PrivateDealUser code: drop unused isFofo, bulkShipmentAmountLimit, verifiedOn, documentVerified fields and accessors; remove dead selectByIds repo methods; drop redundant Counter/PrivateDealUser repository injections in OrderServiceImpl and InvoiceService&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/Counter.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/user/PrivateDealUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/CounterRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/PrivateDealUserRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/util/MigrationUtil.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/OrderServiceImpl.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/user/RetailerServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37102</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37102</guid></item>
<item><pubDate>Tue, 14 Jul 2026 15:00:57 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37085 – Show PO No and Order Date on transaction invoices/delivery challans ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Show PO No and Order Date on transaction invoices/delivery challans&lt;br /&gt;
&lt;br /&gt;
Populate InvoicePdfModel.orderDate (order createTimestamp) on every invoice&lt;br /&gt;
and delivery challan. Populate poNumber from the mapped warehouse PO for&lt;br /&gt;
internal-PO-derived orders, falling back to the transaction id as the PO&lt;br /&gt;
number for non-internal orders. Display-only; no e-invoice/IRN impact.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37085</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37085</guid></item>
<item><pubDate>Fri, 10 Jul 2026 14:49:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37059 – Revert order date and PO number wiring from invoice model ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Revert order date and PO number wiring from invoice model in InvoiceService&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37059</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37059</guid></item>
<item><pubDate>Fri, 10 Jul 2026 13:05:08 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37054 – Invoicing: durably record terminal IRN failures via markEInvoiceFailed (REQUIRES_NEW) with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Invoicing: durably record terminal IRN failures via markEInvoiceFailed (REQUIRES_NEW) with einvoice_details.irn_error_message; add regenerateBilledInvoices for in-place PDF regeneration over a billing window; stamp order date and mapped PO number onto transaction invoices; use the real interest-bearing loan (not the flagship limit block) for credit terms&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/invoicing/InvoiceService.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37054</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37054</guid></item>
<item><pubDate>Tue, 07 Jul 2026 14:35:21 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37030 – Add credit block/unblock audit log (dao): CreditBlockLog entity/enum/repo + blockCredit/unblockCredit/getCreditBlockLogs ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add credit block/unblock audit log (dao): CreditBlockLog entity/enum/repo + blockCredit/unblockCredit/getCreditBlockLogs service methods&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/CreditBlockAction.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/dtr/CreditBlockLog.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/CreditBlockLogRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/CreditBlockLogRepositoryImpl.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-dao/src/main/resources/sql/add_credit_block_log.sql&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37030</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37030</guid></item>
<item><pubDate>Tue, 07 Jul 2026 12:49:35 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37026 – targeted calling count on today po rbm</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;targeted calling count on today po rbm&lt;/div&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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37026</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37026</guid></item>
<item><pubDate>Mon, 06 Jul 2026 17:25:08 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37017 – revival and focus bill be active on next billing</title><description>&lt;div&gt;&lt;strong&gt;ranu – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;revival and focus bill be active on next billing&lt;/div&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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37017</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37017</guid></item>
<item><pubDate>Mon, 06 Jul 2026 17:19:52 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37016 – revival and focus bill be active on next billing</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;revival and focus bill be active on next billing&lt;/div&gt;~ /trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/enumuration/ActivationType.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-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37016</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fservice%2Ftransaction%2F&amp;isdir=1&amp;rev=37016</guid></item>
</channel></rss>