<?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/dao/entity/fofo/</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Thu, 08 Oct 2026 06:53:28 +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%2Fdao%2Fentity%2Ffofo%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%2Fdao%2Fentity%2Ffofo%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%2Fdao%2Fentity%2Ffofo%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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37850</guid></item>
<item><pubDate>Tue, 29 Sep 2026 00:19:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37804 – fix(fofo-store): store every GSTIN in upper case at the entity ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix(fofo-store): store every GSTIN in upper case at the entity setter&lt;br /&gt;
&lt;br /&gt;
FofoStore.setGstNumber now normalises through StringUtils.normalizeGstNumber,&lt;br /&gt;
so no write path can store a mixed-case GSTIN. Only the partner-update path&lt;br /&gt;
normalised before; the LOI and trial-form paths wrote the field directly,&lt;br /&gt;
which is how 06bmlpk3545g1z0 and 03AAccn9802g1zp reached the table. NIC&lt;br /&gt;
expects upper case, and case-sensitive comparisons (including the own-seller&lt;br /&gt;
GSTIN check behind a NIC refusal) silently failed to match.&lt;br /&gt;
&lt;br /&gt;
uppercase_fofo_store_gstin_20260928.sql corrects the four rows already on&lt;br /&gt;
record; it is already applied on hadb1 (0 mixed-case GSTINs remain).&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/resources/sql/uppercase_fofo_store_gstin_20260928.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37804</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37804</guid></item>
<item><pubDate>Mon, 28 Sep 2026 14:34:01 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37790 – Return refund as B2C when NIC refuses the buyer&apos;s GSTIN ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 13 file(s) modified&lt;/strong&gt;&lt;br/&gt;Return refund as B2C when NIC refuses the buyer&apos;s GSTIN&lt;br /&gt;
&lt;br /&gt;
A return whose credit note NIC refuses because the BUYER&apos;s GSTIN is&lt;br /&gt;
cancelled or invalid could not be settled at all: the approval threw, and&lt;br /&gt;
with it went the refund, the stock and the return rows (NSUPDL5176, Mobile&lt;br /&gt;
Hub, GSTIN 08DCUPD7948K1ZP). Where the invoice itself had never been filed&lt;br /&gt;
the return was instead refunded with no credit note at all, leaving the&lt;br /&gt;
refund undocumented.&lt;br /&gt;
&lt;br /&gt;
Raising the note automatically is not the answer - it is Finance&apos;s call,&lt;br /&gt;
and the GST on a cancelled-GSTIN sale is not recoverable, so paying the&lt;br /&gt;
full value back loses it. Both flows therefore record the refusal and stop.&lt;br /&gt;
&lt;br /&gt;
GstProService: getIrnFailureReason (NIC&apos;s refusal for an invoice),&lt;br /&gt;
isInvalidBuyerGstin (that refusal is about the buyer&apos;s registration -&lt;br /&gt;
deliberately NOT a state-code mismatch, which is a data error to fix and&lt;br /&gt;
retry, nor anything naming our own seller GSTIN) and briefIrnReason (one&lt;br /&gt;
plain-ASCII line of 128 chars; credit_note is latin1 and sql_mode is empty,&lt;br /&gt;
so anything else would store as &apos;?&apos;).&lt;br /&gt;
&lt;br /&gt;
PurchaseReturnServiceImpl: both the invoice-return and the debit-note&lt;br /&gt;
refund detect that refusal, record it through ReturnIrnFailureRecorder and&lt;br /&gt;
throw ReturnIrnGstinFailureException. The recorder commits in REQUIRES_NEW&lt;br /&gt;
because the approval it records is about to roll back, and it only inserts -&lt;br /&gt;
return_irn_failure carries no foreign key on purpose, since an FK check&lt;br /&gt;
would take a shared lock on the very PurchaseReturnOrder row the dying&lt;br /&gt;
transaction may still hold.&lt;br /&gt;
&lt;br /&gt;
Finance may then settle the return as B2C for the rest of that calendar day:&lt;br /&gt;
refundAsB2c credits the value NET of GST in whole rupees (B2cRefundQuote,&lt;br /&gt;
HALF_UP per line, so the line table and the total always agree), restores&lt;br /&gt;
the stock and issues a local credit note for exactly that amount with no tax&lt;br /&gt;
on its lines, no IRN and NIC&apos;s reason recorded. The amount is fixed - the&lt;br /&gt;
caller must pass back the quoted figure - and a remark and explicit consent&lt;br /&gt;
are required. On a later day the option only reopens after a fresh approval&lt;br /&gt;
attempt is refused again, so NIC is always re-checked first.&lt;br /&gt;
&lt;br /&gt;
Mails: every refusal notifies Accounts L2 and above; the B2C settlement&lt;br /&gt;
notifies them and the partner&apos;s Warehouse L1/L2, both tabulated.&lt;br /&gt;
&lt;br /&gt;
The partner account statement is unaffected: it skips RETURNS notes and&lt;br /&gt;
credits returns from returnorderinfo, so the new notes cannot double-credit.&lt;br /&gt;
&lt;br /&gt;
DEPLOY ORDER: apply sql/add_return_b2c_refund_20260921.sql BEFORE any war&lt;br /&gt;
built from this dao. CreditNote now maps irn_skip_reason and b2c, so every&lt;br /&gt;
credit-note read in web, fofo and cron fails until the columns exist.&lt;br /&gt;
Untested beyond compilation.&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ReturnIrnFailure.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/CreditNote.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnIrnFailureRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ReturnIrnFailureRepositoryImpl.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/inventory/B2cRefundQuote.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnNotificationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnNotificationServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/PurchaseReturnService.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/ReturnIrnFailureRecorder.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/inventory/ReturnIrnGstinFailureException.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_return_b2c_refund_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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37790</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37790</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%2Fdao%2Fentity%2Ffofo%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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37776</guid></item>
<item><pubDate>Thu, 24 Sep 2026 17:21:58 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37764 – feat(store-closure): require reason, remark and approval mail to close a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;feat(store-closure): require reason, remark and approval mail to close a store; mail closure report&lt;br /&gt;
&lt;br /&gt;
- fofo.store_closure audit table (reason, remark, approval document, closed_by); migration applied on hadb1&lt;br /&gt;
- StoreClosureService: validates and closes, queues closure report with approval attached to the&lt;br /&gt;
  partner&apos;s Sales L2, top 3 Sales levels, top Accounts level and the closer&lt;br /&gt;
- StoreAccess: single home for store close/deactivate/activate/extend-billing access lists;&lt;br /&gt;
  neeraj.gupta can close, mohit.gulati removed from extend billing&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/StoreClosure.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/fofo/StoreClosureReason.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/StoreClosureRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/StoreClosureRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreAccess.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreClosureService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_store_closure.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37764</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37764</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%2Fdao%2Fentity%2Ffofo%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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37656</guid></item>
<item><pubDate>Fri, 11 Sep 2026 20:09:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37599 – Reuse the managed snapshot row in the sweep instead of ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Reuse the managed snapshot row in the sweep instead of building a second instance&lt;br /&gt;
&lt;br /&gt;
Every sweep after the first failed with &apos;A different object with the same&lt;br /&gt;
identifier value was already associated with the session :&lt;br /&gt;
PartnerInvestment#107198&apos; and wrote nothing.&lt;br /&gt;
&lt;br /&gt;
selectByFofoIds returns managed entities. The loop then constructed a fresh&lt;br /&gt;
PartnerInvestment for the same id and called saveOrUpdate on it, which Hibernate&lt;br /&gt;
rejects. Sweep one survived only because the table was empty, so no row was&lt;br /&gt;
managed - the failure could not appear until a second run.&lt;br /&gt;
&lt;br /&gt;
Now mutates the row already in the session when there is one, falling back to a&lt;br /&gt;
new instance only for partners with no snapshot. The previous base and gross stock&lt;br /&gt;
are captured before mutation, since comparing the row against itself afterwards&lt;br /&gt;
would report nothing as ever changed.&lt;br /&gt;
&lt;br /&gt;
persist() is kept: a no-op for the managed rows (dirty checking flushes them), and&lt;br /&gt;
still the INSERT for partners appearing between sweeps.&lt;br /&gt;
&lt;br /&gt;
Drops baseDiffersFrom(), now unused - the comparison is against the captured prior&lt;br /&gt;
value, still rounded to paise by the setter on both sides.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentSweepService.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37599</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37599</guid></item>
<item><pubDate>Fri, 11 Sep 2026 19:19:38 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37592 – Fix live-demo deduction lost in the investment snapshot; maintain aged-Apple ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix live-demo deduction lost in the investment snapshot; maintain aged-Apple qty&lt;br /&gt;
&lt;br /&gt;
BUG FIX to r37588. InventoryService.getTotalAmountInStock() returns stock net of&lt;br /&gt;
live-demo units held past 90 days, and both original investment paths assigned&lt;br /&gt;
that netted value to inStockAmount - which is why&lt;br /&gt;
PartnerDailyInvestment.getTotalInvestment() carries no separate demo term. The&lt;br /&gt;
sweep stored the RAW snapshot sum and never applied the deduction, overstating&lt;br /&gt;
investment for 328 partners by Rs 5.19 crore and their limits by roughly Rs 1.3&lt;br /&gt;
crore. Maxwell validated clean earlier only because he holds no demo stock.&lt;br /&gt;
&lt;br /&gt;
Fixed by storing what is measured and deriving what is computed: the column is&lt;br /&gt;
now in_stock_gross_amount and getNetInStockAmount() applies the haircut. The demo&lt;br /&gt;
holding moves on its own daily clock, so storing the netted figure would have&lt;br /&gt;
meant re-netting it in three places every time the haircut changed - the same&lt;br /&gt;
&apos;two things must move together&apos; trap behind the original cache bug. Deriving it&lt;br /&gt;
means a daily demo refresh flows through to stock and base with nothing to sync.&lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
- aged_apple_qty stored on the snapshot and maintained on the same daily cycle as&lt;br /&gt;
  aged_apple_stock_amount, so the partner banner reads a saved count instead of&lt;br /&gt;
  running a count query per dashboard load, and count and value can never disagree&lt;br /&gt;
- selectPartnerStockCountMap mirrors selectPartnerStockValueMap, including the&lt;br /&gt;
  activated exclusion&lt;br /&gt;
- selectAgedAppleStock lists the units behind the haircut for the partner view&lt;br /&gt;
- FofoUser exposes aged_apple_stock / aged_apple_qty&lt;br /&gt;
- stock-moved detection compares GROSS: a demo unit crossing 90 days changes net&lt;br /&gt;
  stock but nothing physically moved, and that is the daily refresh&apos;s job&lt;br /&gt;
&lt;br /&gt;
Schema: partner_investment_snapshot.sql updated (in_stock_gross_amount,&lt;br /&gt;
aged_apple_qty). Applied to prod - the table was empty, so it was dropped and&lt;br /&gt;
recreated from the script.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerDailyInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/FofoUser.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentSweepService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/resources/sql/partner_investment_snapshot.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37592</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37592</guid></item>
<item><pubDate>Fri, 11 Sep 2026 17:29:49 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37588 – Serve partner investment from a 2-minute snapshot instead of a ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 17 file(s) modified&lt;/strong&gt;&lt;br/&gt;Serve partner investment from a 2-minute snapshot instead of a 3-hour cache&lt;br /&gt;
&lt;br /&gt;
getInvestment() was @Cacheable on a 3-hour Redis cache that addAmountToWallet&lt;br /&gt;
evicted but consumeAmountFromWallet did not. A partner whose advance payment was&lt;br /&gt;
swept straight to a loan had the money counted twice - once as a still-cached&lt;br /&gt;
wallet balance, once as the reduced utilisation - overstating their credit limit&lt;br /&gt;
by the payment x their tier until the cache expired.&lt;br /&gt;
&lt;br /&gt;
Replaced with fofo.partner_investment, refreshed every 2 minutes by&lt;br /&gt;
PartnerInvestmentSweepService. Every coupled term is read in one pass, so wallet&lt;br /&gt;
and utilisation (and in-stock and aged-Apple) can never come from different&lt;br /&gt;
moments. A shorter TTL would only have made the error rarer - it scales with the&lt;br /&gt;
payment, not the delay.&lt;br /&gt;
&lt;br /&gt;
- PartnerInvestment entity/repository + partner_investment_snapshot.sql&lt;br /&gt;
- PartnerInvestmentSweepService: 9 batched reads, stores base_value for change&lt;br /&gt;
  detection, refreshes aged-Apple for partners whose stock moved intra-day&lt;br /&gt;
- getInvestment/getInvestmentsForFofoStores both read the snapshot, so the two&lt;br /&gt;
  paths no longer disagree; live compute retained as fallback&lt;br /&gt;
- selectActivatedStockAmountByFofoIds: batches an N+1 that cost 233ms x 1690&lt;br /&gt;
  partners (6.6 min -&gt; 1.0 s)&lt;br /&gt;
- getFirstBillingDates: batches another N+1 (4.6 s -&gt; 0.67 s)&lt;br /&gt;
- selectPendingGrnOrders(List) now applies the same SD_START_DATE floor as the&lt;br /&gt;
  single-partner overload; the two were reporting different GRN-pending&lt;br /&gt;
- selectPartnerStockValueMap takes excludeActivated: an activated Apple handset&lt;br /&gt;
  held past the aging window was added once to in-stock and subtracted twice&lt;br /&gt;
  (activated stock, then the aged haircut). 90 units, 24 partners, Rs 65.19 lakh&lt;br /&gt;
  double-deducted. Live-demo passes false - no overlap there.&lt;br /&gt;
- applyManualAdjustment: routes the two hand-rolled admin wallet adjustments&lt;br /&gt;
  through WalletServiceImpl so they take the FOR UPDATE lock&lt;br /&gt;
- add_idx_order_grn_pending.sql: covering index, GRN query 1320ms -&gt; 514ms&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/InventoryItem.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PartnerInvestmentRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/PartnerInvestmentRepositoryImpl.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/dao/repository/transaction/TransactionRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionRepositoryImpl.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/PartnerInvestmentServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/PartnerInvestmentSweepService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/add_idx_order_grn_pending.sql&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/partner_investment_snapshot.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37588</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37588</guid></item>
<item><pubDate>Mon, 31 Aug 2026 17:59:05 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37481 – imei activation: one 2-day billing floor for every brand, and ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;imei activation: one 2-day billing floor for every brand, and drop two dead methods&lt;br /&gt;
&lt;br /&gt;
The pending pool is a UNION of two channels, not an intersection: an imei qualifies&lt;br /&gt;
if WE billed it to the partner (selectImeiActivationByBrand) or the PARTNER billed it&lt;br /&gt;
on to the end customer (selectImeiActivationByBrandTertiary). The two are disjoint by&lt;br /&gt;
construction -- the secondary query excludes anything carrying a FofoLineItem -- so a&lt;br /&gt;
unit moves from one to the other as it sells through and is never asked about twice.&lt;br /&gt;
Said so on the interface, since the pairing was only documented at the call sites.&lt;br /&gt;
&lt;br /&gt;
billedBefore moves from now-1d to now-2d, so both channels ask only about stock billed&lt;br /&gt;
MORE THAN 2 DAYS ago. Anything sold in the last 48 hours has essentially never been&lt;br /&gt;
activated yet, so the lookup is spent for nothing; it is not lost, the same imei comes&lt;br /&gt;
back into the pool as soon as it crosses the floor, and again every day after that&lt;br /&gt;
until it activates. Kept in the repository rather than per caller so vivo, oppo, realme,&lt;br /&gt;
motorola and the new carlcare pass inherit one rule instead of drifting apart.&lt;br /&gt;
&lt;br /&gt;
Costs almost nothing today -- secondary pool, old floor vs new:&lt;br /&gt;
&lt;br /&gt;
  itel 1550 -&gt; 1550    realme    849 -&gt;  849    oppo     2021 -&gt; 2019&lt;br /&gt;
  vivo 5018 -&gt; 5016    motorola 1168 -&gt; 1153    tecno     502 -&gt;  495&lt;br /&gt;
&lt;br /&gt;
26 rows across six brands, each deferred by one day.&lt;br /&gt;
&lt;br /&gt;
Removed as dead:&lt;br /&gt;
&lt;br /&gt;
  selectImeiActivationPendingByRealme -- a verbatim duplicate of&lt;br /&gt;
  selectImeiActivationPendingByBrand down to the named query and the parameters. Nothing&lt;br /&gt;
  called it; StandAlone already used the brand-generic method for realme and said so in&lt;br /&gt;
  a comment, which is now updated.&lt;br /&gt;
&lt;br /&gt;
  selectImeiSoldNotActivatedByBrand -- interface, impl and named query. No callers&lt;br /&gt;
  anywhere in web, fofo, cron or dao.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37481</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37481</guid></item>
<item><pubDate>Mon, 31 Aug 2026 16:07:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37471 – IMEI activation pools: skip stock billed today or yesterday  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;IMEI activation pools: skip stock billed today or yesterday&lt;br /&gt;
&lt;br /&gt;
Both pool named queries now exclude serials whose sale is inside the last 48&lt;br /&gt;
hours -- o.billingTimestamp for the secondary path, fo.createTimestamp for the&lt;br /&gt;
tertiary one. A handset sold in the last two days has essentially never been&lt;br /&gt;
activated yet, so the lookup is spent for nothing: measured on prod, the&lt;br /&gt;
sold-within-180-days cohort returns an activation date on 2.4% (vivo) to 8.4%&lt;br /&gt;
(oppo) of lookups, against 43-97% for stock sold over a year ago.&lt;br /&gt;
&lt;br /&gt;
billedBefore is set in ActivatedImeiRepositoryImpl rather than passed by the&lt;br /&gt;
caller, so no method signature changes and every brand inherits it -- vivo,&lt;br /&gt;
oppo, realme and motorola all draw from these two queries and nothing outside&lt;br /&gt;
profitmandi-cron uses them.&lt;br /&gt;
&lt;br /&gt;
This is correctness rather than capacity: it trims 30 imeis from the oppo pool&lt;br /&gt;
and 9 from realme.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37471</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37471</guid></item>
<item><pubDate>Mon, 31 Aug 2026 11:10:00 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37464 – Track aged Apple stock on partner investment; add category filter ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Track aged Apple stock on partner investment; add category filter to stock value lookup&lt;br /&gt;
&lt;br /&gt;
selectPartnerStockValueMap now takes a nullable categoryId so the same query&lt;br /&gt;
serves both the existing Live Demo exclusion (null = all categories) and the&lt;br /&gt;
new Apple handset lookup (category 10006). Existing callers pass null and are&lt;br /&gt;
behaviourally unchanged.&lt;br /&gt;
&lt;br /&gt;
PartnerDailyInvestment carries agedAppleStockAmount, populated in both the&lt;br /&gt;
single and batch investment paths. It is JPA-@Transient, so no schema change,&lt;br /&gt;
and it still travels through the partnerStat.tmp serialization the FOFO&lt;br /&gt;
investment screen reads. Deliberately not part of getTotalInvestment() -- the&lt;br /&gt;
deduction is a credit-limit policy, so stock value is unchanged for checkout,&lt;br /&gt;
the investment-OK gates and partner-facing screens.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerDailyInvestment.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.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/PartnerInvestmentServiceImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37464</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37464</guid></item>
<item><pubDate>Wed, 26 Aug 2026 12:38:10 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37408 – Vivo IMEI activation: stop spending captchas on line items with ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Vivo IMEI activation: stop spending captchas on line items with no IMEI&lt;br /&gt;
&lt;br /&gt;
76% of production captcha rejections were line items whose serial number is&lt;br /&gt;
null. Vivo answers those with {&quot;msg&quot;:&quot;参数为空&quot;} -- &quot;parameter is empty&quot; --&lt;br /&gt;
and status 0, which this code recorded as a captcha failure. So a correctly&lt;br /&gt;
solved captcha looked wrong, no activated_imei row was written, the line item&lt;br /&gt;
stayed pending, and it came back every 5 minutes indefinitely. Those rows were&lt;br /&gt;
permanently consuming roughly 43% of the run quota, which is why every tick ran&lt;br /&gt;
full at 20/20 and the backlog never drained.&lt;br /&gt;
&lt;br /&gt;
It also made the model look far worse than it is: measured accept rate 44%,&lt;br /&gt;
while the same solver scores 85-93% when the IMEI is present. True captcha&lt;br /&gt;
accuracy is around 77%.&lt;br /&gt;
&lt;br /&gt;
Fixed at source: both named queries now exclude null and blank serial numbers,&lt;br /&gt;
so such line items never enter the pool (this also covers the Realme caller).&lt;br /&gt;
The loop additionally skips them before fetching a captcha, so no captcha,&lt;br /&gt;
solver call or Vivo request is spent discovering it.&lt;br /&gt;
&lt;br /&gt;
Found via the diagnostics added in r37407 -- the previous log line recorded&lt;br /&gt;
five words and discarded the response that named the cause.&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/VivoImeiActivationService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37408</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37408</guid></item>
<item><pubDate>Fri, 14 Aug 2026 18:17:18 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37319 – Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed order header&lt;br /&gt;
&lt;br /&gt;
The tertiary panel summed fofo_order.total_amount - a price typed at the partner POS&lt;br /&gt;
and never validated against the catalogue - and attributed each whole order to its&lt;br /&gt;
first line item&apos;s brand via .get(0). One mistyped digit inflated reported sell-out&lt;br /&gt;
10x, and mixed-brand orders booked 100% to the first brand, leaving the rest at zero.&lt;br /&gt;
Defect dates from r32000/r32034 (May 2023); the panel was the only tertiary consumer&lt;br /&gt;
diverging from the qty*mop basis.&lt;br /&gt;
&lt;br /&gt;
- New FofoOrder.selectMonthlyBrandTertiary: sum(quantity*mop) grouped by&lt;br /&gt;
  (year*100+month) and item brand - the same basis selectPartnerTertiarySales&lt;br /&gt;
  already uses for the DSR and the partner tier calculation&lt;br /&gt;
- PerformanceController: replaces two entity-loading queries (every FofoOrder and&lt;br /&gt;
  FofoOrderItem for 6 months) with one aggregate; all items now count, each under&lt;br /&gt;
  its own brand&lt;br /&gt;
- Month labels unchanged - toMonthLabel rebuilds the MMM&apos;&apos;uu key, template untouched&lt;br /&gt;
- Remove V2FofoPerformanceController, the /v2/fofo JSON copy carrying the same defect&lt;br /&gt;
&lt;br /&gt;
Verified against dev DB for fofo_id 175139501: Jul 2026 now 16,94,939 (panel&lt;br /&gt;
previously showed 50,92,440); all six months match the qty*mop basis.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOrder.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyBrandTertiaryModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/PerformanceController.java&lt;br /&gt;x /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPerformanceController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37319</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37319</guid></item>
<item><pubDate>Tue, 04 Aug 2026 12:28:23 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37204 – external api v2: category spec + client category entities, cached ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 16 file(s) modified&lt;/strong&gt;&lt;br/&gt;external api v2: category spec + client category entities, cached category exposure, title util, item.brand_identifier, ContentPojo categoryId/categorySpecs&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/CategorySpecDefinition.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Item.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ApiClientCategory.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/CategorySpecPojo.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/ContentPojo.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/ExternalTitleUtil.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CategorySpecDefinitionRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/catalog/CategorySpecDefinitionRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/external&lt;br /&gt;+ /trunk/profitmandi-dao/src/test/java/com/spice/profitmandi/dao/model/external/ExternalTitleUtilTest.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37204</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37204</guid></item>
<item><pubDate>Mon, 27 Jul 2026 14:55:11 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37149 – External partner API (dao): api_client/api_client_store auth tables + entities, store-scoped ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 24 file(s) modified&lt;/strong&gt;&lt;br/&gt;External partner API (dao): api_client/api_client_store auth tables + entities, store-scoped feed queries (ExternalFeedRepository), ApiClientAuthService + ExternalApiService, update_timestamp delta-sync columns on tag_listing/item/catalog/current_inventory_snapshot (migration_external_api_client.sql), Mongo siteContent lastModified stamp + paged reads. Prices exposed are mop/mrp only.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Catalog.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Item.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/TagListing.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ApiClient.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ApiClientStore.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/CurrentInventorySnapshot.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/CatalogContentModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/CatalogSkuModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/ExternalPage.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/ExternalStoreModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/external/StoreSkuModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/Mongo.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ApiClientRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ExternalFeedRepository.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/external/ExternalFeedRepositoryImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ApiClientAuthServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ExternalApiService.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/external/ExternalApiServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_external_api_client.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37149</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37149</guid></item>
<item><pubDate>Tue, 14 Jul 2026 15:07:47 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37089 – Optimize partnerPerformance data access: fofoId-scoped + month-bucketed query variants  ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 13 file(s) modified&lt;/strong&gt;&lt;br/&gt;Optimize partnerPerformance data access: fofoId-scoped + month-bucketed query variants&lt;br /&gt;
&lt;br /&gt;
- Order: fofoId-scoped billing-avg named queries (replace all-partner scan+filter)&lt;br /&gt;
- MonthlyTarget: selectByDatesAndFofoId batches 7 per-month lookups into one&lt;br /&gt;
- SchemeInOut/OfferPayout: month-bucketed ...ByMonth earnings queries collapsing the&lt;br /&gt;
  per-month loop; new MonthlyBrandIncomeModel / MonthlyOfferPayoutModel&lt;br /&gt;
All additive; existing shared queries and their callers unchanged.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyBrandIncomeModel.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/MonthlyOfferPayoutModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/MonthlyTargetRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/MonthlyTargetRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37089</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37089</guid></item>
<item><pubDate>Fri, 10 Jul 2026 13:41:13 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37055 – allocation of hid and opening stock suggested qty logic updated ...</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;allocation of hid and opening stock suggested qty logic updated as per tarun sir&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOpeningStock.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/IndentController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37055</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37055</guid></item>
<item><pubDate>Fri, 03 Jul 2026 20:08:04 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37009 – Fix Selling Price - DP in IMEI drill-down to use ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix Selling Price - DP in IMEI drill-down to use actual inventory-item DP&lt;br /&gt;
&lt;br /&gt;
selectLastMonthFrontEndImei (the per-IMEI breakdown behind each brand/model row)&lt;br /&gt;
still passed foi.dp (frozen list DP) into LastMonthFrontEndImeiModel, so the&lt;br /&gt;
drill-down did not reconcile with the brand/model totals fixed in r37008. Now&lt;br /&gt;
uses ii.unitPrice-ii.priceDropAmount, matching selectLastMonthFrontEndByImei.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37009</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37009</guid></item>
<item><pubDate>Fri, 03 Jul 2026 20:07:07 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 37008 – Fix Selling Price - DP to use actual inventory-item DP ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix Selling Price - DP to use actual inventory-item DP instead of frozen list DP&lt;br /&gt;
&lt;br /&gt;
Brand-wise (selectFrontIncomeByBrand) and model-wise (selectFrontIncomeBrandWise)&lt;br /&gt;
front-income queries computed the margin as (foi.sellingPrice - foi.dp), where&lt;br /&gt;
foi.dp is the TagListing list price frozen on the sale line at order time. This&lt;br /&gt;
produced spurious negative margins (e.g. -6000 for units sold at cost). Now uses&lt;br /&gt;
the actual per-IMEI acquisition DP (ii.unitPrice - ii.priceDropAmount), the same&lt;br /&gt;
net-DP basis used elsewhere (InventoryItem.getNetPrice / scheme payout calc).&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37008</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37008</guid></item>
<item><pubDate>Thu, 02 Jul 2026 18:33:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 37001 – rbm calling target issue fix according to aquil</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;rbm calling target issue fix according to aquil&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RetailerContact.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/RetailerController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37001</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=37001</guid></item>
<item><pubDate>Wed, 01 Jul 2026 12:34:04 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36972 – changeList</title><description>&lt;div&gt;&lt;strong&gt;ranu – 20 file(s) modified&lt;/strong&gt;&lt;br/&gt;changeList&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/LoanStatement.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/Order.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/ReturnOrderInfo.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/UserWalletHistory.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/BrandWiseModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsService.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/ActivatedImeiRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOrderItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/LoanStatementRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.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/dao/repository/transaction/ReturnOrderInfoRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ReturnOrderInfoRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletHistoryRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletHistoryRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36972</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36972</guid></item>
<item><pubDate>Wed, 24 Jun 2026 18:01:37 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36920 – Remove unused Digify retailer integration (controllers, entity, repository, model, views, ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove unused Digify retailer integration (controllers, entity, repository, model, views, JS handler, assets)&lt;/div&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/DigifyRetailer.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/DigifyRetailerRepository.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/DigifyRetailerRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36920</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36920</guid></item>
<item><pubDate>Mon, 22 Jun 2026 19:29:59 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36901 – HID requested-allocations: fully batch HID computation (batched tier + SUM(current_qty) ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;HID requested-allocations: fully batch HID computation (batched tier + SUM(current_qty) + 2-day sales per pair, replacing per-partner query) and add Pending list pagination&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOpeningStock.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36901</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36901</guid></item>
<item><pubDate>Mon, 22 Jun 2026 18:16:25 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36898 – HID allocation: batch the requested-allocations screen (catalog-filtered HID query + ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;HID allocation: batch the requested-allocations screen (catalog-filtered HID query + batched billed/activated serial lookups) and add approved-list pagination (50/page) reusing GenericRepository paginated+count helpers&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOpeningStock.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/RequestedHidAllocationRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36898</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36898</guid></item>
<item><pubDate>Mon, 22 Jun 2026 15:00:50 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36894 – HID allocation: requested qty is now an additional one-time allowance ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 7 file(s) modified&lt;/strong&gt;&lt;br/&gt;HID allocation: requested qty is now an additional one-time allowance (purchase-limit override, HID target unchanged); add approved_by column; add 5-day billed/activated serial lookups for the edit screen&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/RequestedHidAllocation.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/FofoOpeningStockRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/InventoryItemRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.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/resources/sql/migration_requested_hid_allocation_approved_by.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36894</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36894</guid></item>
<item><pubDate>Wed, 03 Jun 2026 17:59:40 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36768 – Restore ActivatedImei.checked idempotency guard (revert r36579)  r36579 removed the ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Restore ActivatedImei.checked idempotency guard (revert r36579)&lt;br /&gt;
&lt;br /&gt;
r36579 removed the &apos;ai.checked = false&apos; filter from selectMissedActivationSale&lt;br /&gt;
and dropped the checked field, treating it as dead. It was not: the filter&lt;br /&gt;
prevented the daily activation-scheme sweep from re-processing the ~163K&lt;br /&gt;
already-evaluated historical activations (checked=1). Without it, the sweep&lt;br /&gt;
resurrected those old activations as PENDING scheme_in_out rows, and the&lt;br /&gt;
oldest ones (whose legacy orders have no fofo_order) made processActivation&lt;br /&gt;
throw FFORDR_1000 and roll back the entire batch every run since 2026-05-18,&lt;br /&gt;
stalling all special-support credits.&lt;br /&gt;
&lt;br /&gt;
Restores the checked field + accessors and the &apos;ai.checked = false&apos; filter.&lt;br /&gt;
checked column repopulated on fofo.activated_imei from backup; rogue PENDING&lt;br /&gt;
rows cleaned up separately.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Scheme.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36768</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36768</guid></item>
<item><pubDate>Thu, 28 May 2026 16:51:59 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36727 – beat plan info commit</title><description>&lt;div&gt;&lt;strong&gt;ranu – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;beat plan info commit&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoStore.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/BeatPlanController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36727</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36727</guid></item>
<item><pubDate>Sat, 23 May 2026 12:57:00 +0530</pubDate><dc:creator>vikas</dc:creator><title>Rev 36649 – Reverted deleted files</title><description>&lt;div&gt;&lt;strong&gt;vikas – 4 file(s) modified&lt;/strong&gt;&lt;br/&gt;Reverted deleted files&lt;/div&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpSaleAgentCollection.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpsellCallDetail.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpsellRazorpayPaymentStatus.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/UpsellRazorpayPaymentStatusRepository.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36649</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36649</guid></item>
<item><pubDate>Sat, 23 May 2026 12:38:57 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36648 – delete commit</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;delete commit&lt;/div&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpSaleAgentCollection.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpsellCallDetail.java&lt;br /&gt;x /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/UpsellRazorpayPaymentStatus.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36648</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36648</guid></item>
<item><pubDate>Mon, 18 May 2026 12:07:36 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36586 – Fix:Restructure mail send</title><description>&lt;div&gt;&lt;strong&gt;aman – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Restructure mail send&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOrder.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreTimelineTatServiceImpl.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36586</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36586</guid></item>
<item><pubDate>Sun, 17 May 2026 15:36:53 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36579 – Remove unused checked flag from ActivatedImei; remove dead ai.checked=false filter ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Remove unused checked flag from ActivatedImei; remove dead ai.checked=false filter from selectMissedActivationSale query&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/catalog/Scheme.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/ActivatedImei.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36579</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36579</guid></item>
<item><pubDate>Sat, 16 May 2026 14:34:03 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36571 – fix: add transient orderItems list field to FofoOrder for order ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 1 file(s) modified&lt;/strong&gt;&lt;br/&gt;fix: add transient orderItems list field to FofoOrder for order creation response&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOrder.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36571</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36571</guid></item>
<item><pubDate>Tue, 12 May 2026 12:24:31 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36525 – code committed for scheme and offers earning for v2</title><description>&lt;div&gt;&lt;strong&gt;ranu – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;code committed for scheme and offers earning for v2&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/SchemeEarningModel.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36525</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36525</guid></item>
<item><pubDate>Mon, 11 May 2026 18:02:13 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36524 – Fix:Fix first po and edge case for bulk order</title><description>&lt;div&gt;&lt;strong&gt;aman – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Fix first po and edge case for bulk order&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/PartnerOnBoardingPanel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/user/StoreTimelineTatService.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36524</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36524</guid></item>
<item><pubDate>Mon, 11 May 2026 15:16:06 +0530</pubDate><dc:creator>aman</dc:creator><title>Rev 36518 – Fix:Fix first po and edge case for bulk order</title><description>&lt;div&gt;&lt;strong&gt;aman – 6 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix:Fix first po and edge case for bulk order&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/InventoryItem.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/TransactionApprovalRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/order/BulkOrderService.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoOrderController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseController.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoPurchaseReturnController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36518</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36518</guid></item>
<item><pubDate>Sun, 10 May 2026 18:10:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36513 – Add running_balance to userwallethistory: persist wallet balance after each transaction ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 9 file(s) modified&lt;/strong&gt;&lt;br/&gt;Add running_balance to userwallethistory: persist wallet balance after each transaction for instant ledger display. Populate at all write paths (WalletService, adjustTransaction). Read directly in wallet statement template and CSV download. Includes backfill migration SQL. Renamed walletSummart to walletSummary.&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/FofoOrder.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/UserWalletHistory.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/WalletSummaryReportModel.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/WalletServiceImpl.java&lt;br /&gt;+ /trunk/profitmandi-dao/src/main/resources/sql/migration_running_balance_wallet_history.sql&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ReportsController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/WalletController.java&lt;br /&gt;~ /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/wallet-summary-report.vm&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoWalletController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36513</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36513</guid></item>
<item><pubDate>Sun, 10 May 2026 02:06:27 +0530</pubDate><dc:creator>ranu</dc:creator><title>Rev 36508 – code committed for scheme and offers earning for v2</title><description>&lt;div&gt;&lt;strong&gt;ranu – 8 file(s) modified&lt;/strong&gt;&lt;br/&gt;code committed for scheme and offers earning for v2&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/OfferPayoutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/fofo/SchemeInOutRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/V2FofoSchemeController.java&lt;br /&gt;+ /trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/V2SchemeController.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36508</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36508</guid></item>
<item><pubDate>Thu, 07 May 2026 17:48:24 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36489 – Fix NULL handling in CN query NOT clause — reject/rollback ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix NULL handling in CN query NOT clause — reject/rollback IS NOT NULL guard prevents SQL three-valued logic from excluding valid rows&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/PriceDropIMEI.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36489</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36489</guid></item>
<item><pubDate>Thu, 07 May 2026 15:13:26 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 36485 – Fix credit note queries: exclude same-period create+reject rows, replace BETWEEN ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 3 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix credit note queries: exclude same-period create+reject rows, replace BETWEEN with &gt;= &amp;lt;= for performance, fix AND/OR precedence bug in SchemeInOut&lt;/div&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/OfferPayout.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/fofo/SchemeInOut.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/entity/transaction/PriceDropIMEI.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%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36485</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-dao%2Fsrc%2Fmain%2Fjava%2Fcom%2Fspice%2Fprofitmandi%2Fdao%2Fentity%2Ffofo%2F&amp;isdir=1&amp;rev=36485</guid></item>
</channel></rss>