| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 37387 |
48 d 7 h |
vikas |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
Disable UPI data |
|
| 37383 |
48 d 11 h |
vikas |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
Disable UPI data |
|
| 37382 |
51 d 4 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Unbreak profitmandi-web: pass the optional fofoId r37377 added
r37377 widened PurchaseReturnOrderRepository.selectByWarehouseIdsAndDateRange
with an optional fofoId so the FOFO Sale Returns partner filter could be a
predicate rather than a post-filter. r37378 updated the FOFO caller; this web
caller was missed, so it still passed 4 arguments to a 5-argument method and
profitmandi-web has not compiled since - the web war could not be built at all.
/return/invoice has no partner picker (its only params are fromDate/toDate; the
fofoId param elsewhere in this controller belongs to searchDebitNotes), so null
is the right value: the impl only adds the fofoId predicate when non-null, which
is exactly this endpoint's pre-r37377 behaviour. No listing change.
The other three methods r37377 added - selectPendingByWarehouseIds,
selectUnreceivedSince, selectEarliestCreateTimestamp - have no web callers; the
pending-queue screen is FOFO-only, so nothing else was left half-migrated.
Verified all five modules compile. |
|
| 37381 |
51 d 4 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Guard empty item IN () and null billing address on the app sale-details paths
Mirrors fofo r37380 on the profitmandi-web side, where the same two defects exist.
V2FofoOrderController (live mobile-app API, not the dormant fofo V2):
- sale details built itemIds from fofoOrderItems and passed them straight to
itemRepository.selectByIds. An insurance-only sale has no fofo_order_item row,
so the list is empty and selectAllByInOrderByDesc throws "List should not be
empty". The sibling sale-search method in this same file was already guarded;
the detail method was not.
- customerBillingAddressObj was put into the response unconditionally, so an
order with customerAddressId 0 (no address is required for a plain POS sale)
returned null and the app had no name or phone to show. Fall back to the
customer's own name and mobile, matching the invoice PDF. Applied at both sites.
CustomerController: same empty-IN exposure in the customer order-history batch
fetch, where a customer whose only order is an insurance sale yields no order
items. Adds the java.util.HashMap import this file needed (it imports java.util
members individually).
Verified profitmandi-web compiles clean with these changes. Note trunk currently
does NOT build: V2FofoPurchaseReturnController:635 still calls the 4-arg
selectByWarehouseIdsAndDateRange that r37377 widened to 5 args (r37378 updated
the fofo caller but not this one). That break is untouched here and needs its
own fix before a web war can be built. |
|
| 37373 |
52 d 7 h |
vikas |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
Active Scratch Offers |
|
| 37369 |
52 d 11 h |
amit |
/trunk/ |
Fixed mail sender everywhere |
|
| 37367 |
53 d 2 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 9 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 9 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 8 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 4 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 6 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/ |
v2 version some fixes |
|
| 37313 |
58 d 10 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
v2 version some fixes |
|
| 37305 |
59 d 5 h |
ranu |
/trunk/ |
carry bag for silver at 1 |
|
| 37304 |
59 d 5 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
v2 version some fixes |
|
| 37298 |
60 d 0 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 7 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
external api v2: docs - color removed from all record shapes |
|
| 37293 |
60 d 11 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 11 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 7 h |
amit |
/trunk/profitmandi-web/src/main/resources/ |
external api v2: document addedOn field for new-SKU partial sync |
|