| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 38030 |
24 m |
amit |
/trunk/profitmandi-common/src/ |
Phase 0 partner-app tracking: Actor/ClientInfo models, UserInfo.launchId, LAUNCH_ID claim constant (no callers yet) |
|
| 38029 |
16 h 2 m |
amit |
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ |
fix(credit): Credit Details status filter emptied after revisiting the page; shorter cleared label
- The page fragment is re-injected on every visit and each load pushed another DataTables search function
bound to that load's table; stale copies AND-filtered rows away (e.g. 'Loan Default - cleared' showed nothing
for partners who repaid after an earlier visit). Remove the earlier copy before adding, and read the row from
the table being drawn (settings.aoData) instead of a captured instance.
- Green line now reads just 'Default cleared.' |
|
| 38028 |
16 h 53 m |
amit |
/trunk/profitmandi-fofo/src/main/ |
fix(credit): clearer Loan Default messaging on Credit Details
- Block reason shown grey as history: 'Blocked <date> by <who>: <reason>'
- Loan Default with no defaulted dues shows green 'Default cleared. Can be unblocked.'
- Amber 'Also overdue: <amount> on N loan(s), becomes default on <date>' for loans past due but not yet defaulted
- Filter option renamed 'Loan Default - cleared'
Needs dao r38027. |
|
| 38027 |
16 h 53 m |
amit |
/trunk/profitmandi-dao/src/ |
feat(credit): overdue (not yet defaulted) dues for the Credit Details screen
- SDCreditService.getOverdueDuesByFofo: principal + interest on Loan.isOverdue loans, with the earliest default date
- LoanDefaultDues carries defaultsOn; dues calculation shared between defaulted and overdue loans
- Tests for overdue amount and default date |
|
| 38026 |
17 h 17 m |
amit |
/trunk/profitmandi-fofo/src/main/ |
feat(credit): Credit Details status filter, block reason and default dues
- Status filter on /getCreditDetail (Active, Loan Default, Loan Default - nothing due, Blocked, Awaiting Activation)
- Latest block reason under the inactive label
- LOAN_DEFAULT rows show in red the principal + interest needed to close defaulted loans; nothing when 0
- Row redraw after block/unblock/activate carries the same details
Needs dao r38025. |
|
| 38025 |
17 h 17 m |
amit |
/trunk/profitmandi-dao/src/ |
feat(credit): default dues and latest block reason for the Credit Details screen
- SDCreditService.getDefaultDuesByFofo: principal + interest needed to close every defaulted loan
(same isDefault() set as the LOAN_DEFAULT block; total from loan_statement as settleLoan reads it)
- SDCreditService.getLatestBlockLogs + CreditBlockLogRepository.selectByFofoIds (bulk, typed HQL)
- LoanDefaultDues model; SDCreditServiceDefaultDuesTest |
|
| 38024 |
21 h 47 m |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/ |
fix(cart): drop delisted or missing items from cart in getCartValidation
A line whose item is missing or whose tag_listing is inactive (active=0) is now
removed from the cart and reported as a PRODUCT_UNAVAILABLE cart message, so
createOrder (which rejects on any cart message) no longer bills a delisted item.
Runs before the carry bag allowance so removed phones earn no free bags.
Stock and the 400 max-qty cap are unchanged. |
|
| 38023 |
22 h 1 m |
ranu |
/trunk/profitmandi-fofo/src/main/ |
visit history given on brand wise placement page |
|
| 38022 |
1 d 15 h |
ranu |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/ |
call history given on brand wise placement page |
|
| 38021 |
1 d 15 h |
ranu |
/trunk/ |
call history given on brand wise placement page |
|
| 38020 |
1 d 19 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ |
diwali offer live |
|
| 38019 |
2 d 18 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ |
diwali offer live |
|
| 38018 |
5 d 18 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ |
diwali online scratch offer, otp send to email |
|
| 38017 |
6 d 10 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Hide switched-off payment options in partner app (web v2)
/v2/fofo/getPartnerServices listed every payment option and created a PENDING
partner_service row for each one missing, so switched-off IDFC (21) kept coming
back after r38012/r38013. Use selectAllActive there and in /userProfile, matching
the fofo screens. |
|
| 38016 |
6 d 15 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Hot Deals admin UI rework + Brand Identifier CSV upload (needs dao r38015)
Hot Deals (Catalog > Hot Deals):
- every Hot Deal model listed, incl. ones with no attributes saved; stat cards + Needs attention filter
- OEM brand dropdown (form + per row), pre-filled from model name, required on save
- row save keeps the OEM model mapping; Clear button; Updated By column
Content page: Brand Identifier CSV (itemId,brandIdentifier) -> catalog.item.brand_identifier
- POST /catalog/brandIdentifier/upload?apply= : preview (NEW/REPLACE/UNCHANGED/ERROR) then apply; replaces existing values
- all-or-nothing; rejects unknown/duplicate items, blank or >100 chars, Hot Deal and Any Colour items; max 5000 rows
- GET /catalog/brandIdentifier/template.csv
jsVersion 453 |
|
| 38015 |
6 d 15 h |
amit |
/trunk/profitmandi-dao/src/ |
Hot Deals admin: list every Hot Deal model (incl. ones with no attributes row), needs-attention filter + stats, and OEM brand set on save
- ModelHotDealRepository: list/count driven from Catalog (brand = Hot Deal) LEFT JOIN model_hot_deal; needsAttentionOnly = no row or NULL oem_brand; countStats()
- ModelHotDealService: saveAttributes takes oemBrand (requested > stored > suggested from catalog.model_name); must be a brand master name, never Hot Deal; stored in master spelling. Root cause of Ai+ models missing from the partner-app brand filter (NULL oem_brand -> no oem_brand_s in Solr)
- oemBrandNames(), suggestOemBrand(), stats()
- ModelHotDeal: transient suggestedOemBrand, isSaved()
- Tests: 18 passing |
|
| 38014 |
7 d 16 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/service/ |
diwali offer live |
|
| 38013 |
7 d 17 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
fix(finance): list only active payment options on finance-service screens
Uses PaymentOptionRepository.selectAllActive() (dao) for the finance-services grids,
partner finance-services page, add-partner service/brand-service dropdowns and the
partner payment-option profile, so switched-off options (e.g. IDFC id 21) are hidden
and no partner_service rows are created for them. createService saves the new
option as active. |
|
| 38012 |
7 d 17 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
fix(finance): list only active payment options on finance-service screens
Finance-service setup, grids, add-brand dropdown, partner payment-option page and
paper-finance lists (LOI form, WOD mapping report) used selectAll(), ignoring
payment_option.active. Switched-off options kept showing, and every finance-services
page open created a PENDING partner_service row for them (IDFC id 21, inactive since
2022, had 1,786). New PaymentOptionRepository.selectAllActive(); selectAllPaperFinanceOption
is active-only. Name lookups for existing payments/invoices still use selectAll().
Services created from the UI are now saved active (were saved active=0). |
|
| 38011 |
7 d 18 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/ |
fix(credit-note): margin CN dry run must not consume CN/DN numbers or lock sellerwarehouse
The 06:00-on-1st monthlyMarginsCnDryRun (dryRun=true) bumped cn_sequence / fofo_dn_sequence for
every document it would issue and committed them, so each live run started after a burned block:
every gap Jul-Nov 2026 equals that month's live margin CN count per prefix (e.g. CN-NSDL13802..13976
never issued for Oct). It also held the sellerwarehouse rows billing locks.
- issueMarginsCNForPartner marks its REQUIRES_NEW transaction rollback-only when !runActual.
- Dry run reads sellerwarehouse without FOR UPDATE; live keeps selectByPrefixForUpdate. |
|