Subversion Repositories SmartDukaan

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
37780 13 d 14 h amit /trunk/profitmandi-fofo/src/ feat(partner-access): demo partner access page + validation

- Demo Partner Access page (Admin Control): grant partners to a Sales person,
list and revoke active grants; server-guarded by canManage
- Partner access dropdown: position partners + active demo partners "(Demo)";
shared cached mapping is copied, never mutated
- /login-as-partner-readonly: partner must be in caller's positions or demo
grants (was unchecked; Partner access is its only caller)
- /mobileapp?emailId=: Sales position holders get the partner app token only
for position/demo partners; other admins (Partner Info) unchanged
- DemoPartnerAccessTest (5, local DB, rolled back)
- jsVersion 437

Needs dao r37779 and migration_demo_partner_access.sql applied.
 
37692 21 d 9 h vikas /trunk/ LMS + Airtel Calling  
37526 35 d 9 h amit /trunk/profitmandi-fofo/src/ offer circular: scope config screen, resolve screen, web offer sync (fofo)

Screens (each its own endpoint, under the OFFER CIRCULAR menu):
- /offerCircularScope - add/edit divisions, take a brand in or out of scope,
register label aliases. 'Remove' is in_scope=0 + a required reason, never a
DELETE: offer.division_id is an FK and the history would go with it.
- /offerCircularResolve - the product queue, split out of the review screen. The
editor was a <td colspan=6> pretending to be a form, which is why it never
aligned; it is now master-detail. Naming and Coverage are separate tabs because
an alias cannot answer a bundle at all - the coverage panel says so and offers
the two answers that ARE safe (ignore, or reclassify as naming).

Ingest:
- ScopeConfig resolves division aliases and carries the canonical label on
Decision. insertOffer and ProductAliases.find use it; offer_raw_row keeps the
verbatim label, being the source of truth for re-parsing.
- CircularIngestRunner publishes to dtr.web_offer after the document is marked
PUBLISHED, in its own transaction with exceptions swallowed - a circular that
parsed correctly must stay published even if the web sync fails.

Review screen:
- the ingest summary was a raw Map.toString() inside a nowrap span and ran off
the card; now parsed into chips with the drop reasons behind a disclosure.

jsVersion -> 417 (merged with r37525's 412; cssVersion 53 kept from that commit).
 
37331 52 d 3 h amit /trunk/profitmandi-fofo/src/main/ Add offer circular review and curation screen

Shows the nine verbatim PDF columns beside what the parser made of them, uploads a
new monthly circular, and resolves the products the matcher could not.

Upload deliberately does not parse - it stores the PDF, sha256-deduped, and
registers it DRAFT, so an upload can never half-populate the offer tables. The cron
ingest job picks it up from there.

The curation queue groups by distinct (division, raw text) because that is the
product_alias key: one answer clears every row carrying that text, on this circular
and on every later one. On the Aug'26 circular that turns 152 unresolved rows into
106 decisions. Three actions mirror product_alias.action - PIN to a catalog id,
REWRITE to the catalog's spelling and match again, or IGNORE.

- Writes product_alias only, so nothing the screen does can set manually_curated
and lock a circular against re-ingest. Coverage decisions, which do need that,
are listed but visibly parked rather than offered a naming answer.
- A saved decision changes nothing until re-ingest, because aliases are read at
ingest time; the queue says so and the re-ingest button puts the document back
to DRAFT for the scheduler. The portal cannot run the ingest itself - that lives
in profitmandi-cron, which fofo does not depend on.
- The closest rejected match is shown for context and never pre-selected. Four new
OnePlus models each "nearly" matched a 2015 OnePlus 2 at 0.80-0.84, and offering
that as a suggestion invites a reviewer to confirm it. Where the catalog has no
such SKU the search says so and steers to IGNORE.
- aliasExport emits every decision as replayable SQL, because the portal writes to
one database and environments would otherwise drift apart silently.

Access is an email allowlist AND the admin role. Both are enforced in the
controller; the sidebar entry repeats the allowlist because visibility in auth.menu
is role-driven and cannot express a per-email rule.

No jsVersion bump: offer-circular-review.js is a new file that was never cached,
so it needs no cache-buster, and churning that shared counter only conflicts with
whoever is mid-edit on it.
 
37222 65 d 11 h amit /trunk/profitmandi-fofo/src/main/ external api v2: Technology > External API Clients admin screen (read-only client/store/category mappings), jsVersion 392  
37212 65 d 14 h amit /trunk/profitmandi-fofo/src/main/ Hot Deals: Category-team page under Catalog menu - brand-wise hot deal models with inline date editing (manage-hot-deals)  
36877 111 d 12 h vikas /trunk/ Location Tracking Dashboard: Add BeatJourneyController  
36645 138 d 14 h vikas /trunk/ Added Beat Report  
36618 140 d 16 h ranu /trunk/profitmandi-fofo/src/main/ route plan map  
36563 145 d 13 h amit /trunk/profitmandi-fofo/src/main/ Flagship credit: admin UI for date-wise flagship model management, jsVersion bump to 338  
36394 164 d 13 h amit /trunk/profitmandi-fofo/src/main/ Add IMEI net-margin modal on order-index billing panel.

New /getImeiNetMarginModal endpoint: given an IMEI, derives the
purchase-billed date from the IMEI's purchase order
(InventoryItem.purchaseId -> Purchase.purchaseReference -> Order.billingTimestamp),
fetches schemes applicable on that date via PriceCircular, and shows
per-scheme contribution, NLC, and net margin in a slim modal.

Effective DP = inventory_item.unit_price - max(0, price_drop_amount)
to match SchemeServiceImpl.createSchemeInOut/PriceCircularService.getPayouts.
Offers are intentionally excluded. Per-IMEI price-drop history is
shown for reference.
 
36152 189 d 15 h aman /trunk/ Feat:Request Panel for brand dealer registration,Admin panel for managing WOD request templates  
35629 251 d 9 h amit /trunk/ Fixed SchemeService  
35549 266 d 14 h ranu /trunk/ bulletin updated on dashboard and give access category department  
35503 282 d 13 h vikas /trunk/ Shopify : Orders  
35396 296 d 1 h amit /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ Improveed offer logic  
35289 327 d 17 h amit /trunk/ Added trial franchisee feature  
35268 332 d 10 h aman /trunk/profitmandi-fofo/src/main/webapp/ Added scratch offer removed Scratch as directry  
34881 422 d 9 h aman /trunk/ Feat:Affiliate Service  
34859 428 d 9 h vikas /trunk/ Web Pages Management  
34814 444 d 7 h vikas /trunk/ Category Management  
34505 526 d 11 h ranu /trunk/profitmandi-fofo/src/main/ code committed for placement dashboard view  
34474 532 d 7 h aman.kumar /trunk/ Scratch Offer  
34387 548 d 8 h vikas.jangra /trunk/ Liquidation/Bidding initial work  
34258 584 d 15 h ranu /trunk/profitmandi-fofo/src/main/ sweet alert swal js locally stored  
34149 625 d 10 h tejus.lohani /trunk/ New panel for partner Brand commitments , add commitment , update commitment and view partner commitments, Now in DMS code panel team only view commitment instead of update mean it read only  
33988 685 d 9 h tejus.lohani /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ now old chart.min.js chart use as chart1 instead of chart , and now chart.js chart use as chart  
33973 686 d 8 h tejus.lohani /trunk/ Added super catalogs  
33879 720 d 12 h tejus.lohani /trunk/ new verification process introduce and like two-step verification soft approve and then final approve and at the time of soft approval , approver need to upload required brand NOC or mark not receive/not required , In partner Acquisition option add one new panel add for NOC upload and soft approve  
33869 724 d 11 h tejus.lohani /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ give hard_limit field in sd credit panal for tarun sir  
33661 787 d 15 h ranu /trunk/profitmandi-fofo/src/main/webapp/ suggested po and upsell js with include script commit  
33609 806 d 9 h ranu /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ cdn js download  
33580 814 d 6 h ranu /trunk/profitmandi-fofo/src/main/ toastify.js updated  
33577 814 d 15 h tejus.lohani /trunk/ fix Some bugs,Improve some Vm,Show pending LoiForm how fill the form and correct some spelling mistakes  
33540 825 d 15 h tejus.lohani /trunk/profitmandi-fofo/src/main/ commit similarModel related file  
33539 825 d 15 h tejus.lohani /trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ add similar js  
33507 831 d 9 h tejus.lohani /trunk/ These files are related to Loi form and LOI form data flow to the required tables  
33443 847 d 11 h ranu /trunk/ print resource and order cancel by partner and cron dao mail shoot for Live Demo  
33257 898 d 9 h ranu /trunk/ warehouse billing phase 1 for testing  
33245 901 d 13 h ranu /trunk/ added signature