| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 37373 |
52 d 11 h |
vikas |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
Active Scratch Offers |
|
| 37369 |
52 d 15 h |
amit |
/trunk/ |
Fixed mail sender everywhere |
|
| 37367 |
53 d 6 h |
amit |
/trunk/profitmandi-web/src/main/ |
Mail: raise SMTP timeouts and rotate the sdtech app password
The 10s read timeout was cutting off larger attachment sends (policy PDFs, invoice
attachments) and surfacing as a send failure the outbox then retried. Raised to 30s
connect / 120s read-write on both senders. App password rotated to match the current
Google account credential.
Also fills in new.solr.url and store.app.url in staging.properties - staging carries no
fallback to dev/prod, so a missing key stops the context from starting. |
|
| 37354 |
53 d 13 h |
aman |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
AI lead intake: pool is BGC L1 (category 20), not Sales L1 - BGC is the desk that works AI leads |
|
| 37353 |
53 d 13 h |
aman |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
AI lead intake: assign new leads to a random active Sales L1 instead of fixed auth id 53 |
|
| 37341 |
54 d 12 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
fix(rbm-dashboard): return full partner book and exclude inactive stores
/v2/fofo/rbm-dashboard capped partners/alerts at 50 by default. The RBM home
searches and filters client-side, so any partner outside that slice was
unfindable while summary.totalPartners reported the real (much larger) count.
- limit now defaults to 0 = uncapped; an explicit ?limit=n is still honoured
up to RBM_DASHBOARD_MAX_LIMIT (200)
- deactivated stores are skipped for the whole computation, not just alerts:
they have no target, scored 0% and sorted to the top of the action list
- summary.limit reports 0 when uncapped instead of Integer.MAX_VALUE |
|
| 37319 |
58 d 8 h |
amit |
/trunk/ |
Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed order header
The tertiary panel summed fofo_order.total_amount - a price typed at the partner POS
and never validated against the catalogue - and attributed each whole order to its
first line item's brand via .get(0). One mistyped digit inflated reported sell-out
10x, and mixed-brand orders booked 100% to the first brand, leaving the rest at zero.
Defect dates from r32000/r32034 (May 2023); the panel was the only tertiary consumer
diverging from the qty*mop basis.
- New FofoOrder.selectMonthlyBrandTertiary: sum(quantity*mop) grouped by
(year*100+month) and item brand - the same basis selectPartnerTertiarySales
already uses for the DSR and the partner tier calculation
- PerformanceController: replaces two entity-loading queries (every FofoOrder and
FofoOrderItem for 6 months) with one aggregate; all items now count, each under
its own brand
- Month labels unchanged - toMonthLabel rebuilds the MMM''uu key, template untouched
- Remove V2FofoPerformanceController, the /v2/fofo JSON copy carrying the same defect
Verified against dev DB for fofo_id 175139501: Jul 2026 now 16,94,939 (panel
previously showed 50,92,440); all six months match the qty*mop basis. |
|
| 37318 |
58 d 10 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/ |
v2 version some fixes |
|
| 37313 |
58 d 14 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
v2 version some fixes |
|
| 37305 |
59 d 9 h |
ranu |
/trunk/ |
carry bag for silver at 1 |
|
| 37304 |
59 d 9 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
v2 version some fixes |
|
| 37298 |
60 d 4 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Default subCategoryId to 0 on endpoints that declare it required=false
subCategoryId is a primitive int, so a required=false declaration with no
defaultValue makes Spring throw when the param is omitted:
Optional int parameter 'subCategoryId' is present but cannot be translated
into a null value due to being declared as a primitive type.
v1 DealsController and GuestController already default it to 0; their v2
wrappers dropped that, and StoreController never had it on either version. Any
caller omitting the param got a 500 with a message that does not name the
parameter at fault.
Adding the default only removes that failure path — every currently working
caller already sends a value, so no existing behaviour changes. |
|
| 37296 |
60 d 11 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
external api v2: docs - color removed from all record shapes |
|
| 37293 |
60 d 15 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Fix region-ALL (fofoId=0 sentinel) handling on RBM home
active-offers: regionId resolved via rows.get(0).getFofoId(), which is 0 for
region ALL, so selectByRetailerId(0) threw FOFOSTR_1000 'Fofo store not found'
(400) for every region-ALL user. Now filters fofoId>0, picks an active store,
and falls back to the caller's fofoId when a region resolves to nothing.
rbm-regions: dropdown now lists only regions holding an active retailer (with
activePartners count), which drops the ALL pseudo-region; users carrying the
sentinel get every live region as assignedRegionIds instead of an empty set.
rbm-dashboard: expand the sentinel like CsServiceImpl does (row region ->
its partners; region ALL -> all active stores) so the partners tile stops
reporting 0/1. Scope-wide batches limited to stores/targets/purchases/
last-billed; name, wallet and loan lookups now run only over the returned
slice. partners and alerts capped via ?limit (default 50, max 200) with
partnersReturned/totalAlerts/alertsReturned/limit added to summary. Partners
with no target this month rank after those actually missing a target, so the
capped slice is not filled by unset-target stores. |
|
| 37291 |
61 d 15 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
external api v2: docs - parameters-at-a-glance table, per-endpoint optional/required params, clamp semantics |
|
| 37280 |
62 d 11 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
external api v2: document addedOn field for new-SKU partial sync |
|
| 37273 |
62 d 15 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Apply same idempotent super-catalog mapping save to V2 controller
Keeps V2FofoSuperCatalogController in step with the fofo SuperCatalogController
fix (r37272) so the dormant endpoint cannot violate the new
UNIQUE(catalog_id, super_catalog_id) constraint if it is ever enabled. |
|
| 37269 |
62 d 16 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/services/ |
Hot deals enrichment: Fresh pill (green tick when device unused, greyed cross otherwise) replacing Activated; class hd-fresh |
|
| 37267 |
63 d 7 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
v2 version some fixes |
|
| 37260 |
65 d 23 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Hot deals API: fix /fofo 500 when subCategoryId omitted (primitive int + required=false cannot bind null; defaultValue 0, same in GuestController); /fofo/hotDeals/categories facet endpoint for filter chips; hotDeal listing honors explicit categoryId only (cross-category default); enrichment pills - constant names with hd-yes/hd-no + hd-good/hd-off state classes, not-activated is the green state |
|