| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 37823 |
7 d 2 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
feat(seller): rebuild Sellers & Warehouses screen; PO supplier filter by warehouse; internal warehouse from active sellerwarehouse
Needs dao r37822 and the warehouseaddressmaster.active migration (applied on hadb1).
- Sellers & Warehouses (menu 113): SellerController is now a thin layer over
WarehouseSetupService. Seller list; per-seller physical warehouses with internal
store / supplier / Dummy / sequences, Active toggle and Change address (internal
stores follow); address list with Active toggle; New Address with city, pin,
contact and invoice preview; New Seller with GSTIN checks; New Warehouse creates
the OURS/BAD vendor 40 + Dummy shape. JSON posts; refusals come back as 400 text.
- PO create screen: vendor search takes the selected warehouse and lists only
suppliers mapped to it (/vendors?warehouseId); changing warehouse clears the vendor.
- Supplier create/edit: internal warehouse defaults to 0 and is picked from active
physical warehouses (transaction.sellerwarehouse.is_active), not WAREHOUSE_MAP;
validated on save. Fixes the edit form ticking "Internal Warehouse" for a stored 0
and saving the first option (7720), and the create form never sending it.
- jsVersion 441. |
|
| 37564 |
28 d 20 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Creation screens request only live listings from the item typeahead
/item takes an activeOnly flag (default false, preserving current behaviour)
and passes it to getAllPartnerItemStringDescription. getItemAheadOptions takes
an optional 4th argument, so existing 3-argument callers are unaffected.
Sent true from the two creation entry points:
- warehouse purchase (PO) invoice line picker
- the new-price-drop modal (#typeaheaditem)
Left false where the screen works on records that already exist and may since
have been delisted: the price-drop pause/manage picker (#typeaheaditem1),
catalog-item, combo and prebooking.
jsVersion 419 -> 420 to cache-bust common.js / warehouse-purchase.js (419 was
already taken by another change). |
|
| 37458 |
40 d 10 h |
aman |
/trunk/profitmandi-fofo/src/main/ |
LOI payment screenshot: report upload failures instead of reporting the field as missing
Submit validated the hidden #payment-sc-docId, but a file input keeps displaying the
chosen filename regardless of what happens next - so a failed /document-upload left the
field looking attached to the operator and missing to the validator ("The following
fields are required: Payment screenshot" on a form that was in fact filled in).
The failure was silent three ways: doAjaxUploadRequestHandler had no error handler; the
global ajaxError reporter calls bootbox, which loads from cdnjs and throws if that is
blocked; and the confirm('Confirm file upload ?') gate returned false with no trace once
Chrome's "prevent this page from creating additional dialogs" box was ticked.
- common.js: optional error callback on doAjaxUploadRequestHandler (additive, opts out of
the generic global dialog via suppressGlobalError); uploadErrorMessage() extracts the
server's real reason from the JSON body or the plain-text duplicate-request body;
uploadDocument() pre-checks size/type, verifies a document_id actually came back, and
reports a message naming the file - .HEIC and .webp get specific guidance;
showAlert() falls back to native alert when bootbox is absent.
- loi-form.js: drop the confirm() gate, 'input' -> 'change', and clear the file input
whenever the id does not land so the widget can never claim an unuploaded file. Status
line under the field (Uploading... / Attached: name / Not attached). Submit now
distinguishes not-picked, still-uploading and upload-failed. Same treatment for the
OnboardingDocumentTable and mk_brand-fee-collection-details uploads, and the brand-fee
dialog names the Attachment field instead of echoing the raw form key.
- loi-form.vm, pendingForm.vm: accept="..." on both file inputs plus the status span.
- FileUploadController: reject empty files, report actual size against the actual limit,
and resolveExtension() falls back to the filename when the browser sends a generic MIME
type (Android file managers send application/octet-stream for ordinary JPG/PNG/PDF).
- AppConfig: static resource version 395 -> 396 for the JS change. |
|
| 37282 |
59 d 6 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
hot deals: remove legacy tag_listing hot-deals endpoints and catalog-item UI (replaced by model_hot_deal admin flow) |
|
| 37194 |
69 d 6 h |
aman |
/trunk/ |
LOI OTP: report real send outcome instead of always 'OTP Sent Successfully!'
The Send OTP button showed success for any HTTP 200, including the daily-cap
failure where the controller returned 'Something went wrong..'. Ops could not
tell a working send from a broken one, so genuine failures were invisible.
- OTPResponse: add 'sent' flag. result=true did not mean anything was
dispatched - the 2-minute resend throttle returns the previous OTP without
contacting the gateway.
- OtpProcessor: set sent=true only on branches that actually dispatch.
- LoiFormController.sentLoiAcceptanceOtp: return {status, sent, message} with
the processor's real reason, wrap generateOtp in try/catch so a dispatch
exception is logged and reported instead of surfacing as a generic 500, and
log loiId/result/sent/reason.
- loi-form.js: check the payload; distinct green/amber/red states, re-enable
the button on failure instead of leaving it stuck on 'Sending...'.
- common.js: optional error callback on doAjaxRequestHandler /
doPostAjaxRequestHandler (additive; existing callers unchanged).
- AppConfig: static resource version 389 -> 390 for the JS change. |
|
| 37171 |
70 d 11 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Wallet page: show sanctioned credit limit tile alongside utilization/total due; format amounts via currency class + formatCurrency on load; jsVersion 388 |
|
| 36922 |
106 d 5 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Remove unused Digify retailer integration and fix slim-jQuery clobber on partner-performance/today_po/today_target pages
- Delete Digify controller, views and Buyback asset; drop dead .digify-retailer-login handler and buyback links/buttons
- Load full jQuery (3.5.1) instead of jquery slim on partner-performance/today_po/today_target so injected pages no longer overwrite the dashboard jQuery (restores $.ajax / slideUp)
- Bump jsVersion to 365 |
|
| 36819 |
120 d 8 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Fix idempotency dedup to be server-authoritative (content + partner scoped)
PostInterceptor now keys duplicates on sha256(fofoId|method|uri|bodyHash) for
mutating methods only, instead of the client-supplied IdempotencyKey header.
The header was rotated per-request by the frontend (and old/sticky clients),
so identical submissions produced distinct keys and were never deduped - e.g.
a create-offer burst created 147 duplicate rows. Keying on the request body
makes dedup independent of client behaviour; partner scoping prevents cross-
partner collisions; distinct payloads (one-offer-per-partner) are unaffected.
GET/HEAD are now never deduped (removes spurious GET 400s).
common.js: attach IdempotencyKey only to mutating methods; stop rotating the
key on every ajaxComplete (kept reset on ajaxSuccess only). version 355. |
|
| 36697 |
135 d 4 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
fix: FY date range end date missing endOf day in account statement picker, bump version to 342 |
|
| 36598 |
142 d 7 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Flagship models: catalog-level typeahead with 70K min price filter, add menu_category access |
|
| 36572 |
145 d 9 h |
amit |
/trunk/ |
fix: add debit note PDF labels, HDFC UTR duplicate lock, AJAX error handlers in common.js |
|
| 35626 |
251 d 6 h |
amit |
/trunk/ |
Ticket system: add unread tracking, pagination, search, and partner notifications |
|
| 35594 |
254 d 2 h |
amit |
/trunk/ |
Ticket system: CRM access, category filtering, UI improvements
CRM Team Access:
- CRM users can see all tickets in myticket and managerTicket views
- CRM users can assign/edit tickets from all views
- Only CRM can mark tickets as resolved
Category Filtering (hidden from CRM):
- Sales category (ID 4) and Sales Escalation subcategory (ID 84)
- RBM category (ID 18) and RBM Escalation subcategory (ID 83)
UI Improvements:
- Partner name link opens partnerPerformance in new tab (reusable via .partner-link class)
- Edit modal shows ticket ID and partner name in title
- Resolve confirm shows ticket ID and partner name
- Fixed duplicate class attributes in buttons
- Modal shows after content loads (removed data-toggle conflicts)
Version bump: JS 313, CSS 34 |
|
| 35544 |
271 d 6 h |
amit |
/trunk/profitmandi-fofo/src/main/webapp/resources/js/ |
Handle scientific notation (e.g., 1.37E7) in numberToComma() function |
|
| 35533 |
274 d 10 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Fixed AppConfig |
|
| 35510 |
281 d 7 h |
amit |
/trunk/profitmandi-fofo/src/main/webapp/resources/js/ |
Fixed method Number to comma for Cr. Values |
|
| 35459 |
292 d 3 h |
amit |
/trunk/ |
Revert non-Java file changes from r35458 |
|
| 35458 |
292 d 3 h |
amit |
/trunk/ |
Revert @Transactional(readOnly=true) - keep @Transactional only at Controller level
Changes:
- profitmandi-web: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional(readOnly = true)
- profitmandi-fofo: Controllers use @Transactional(rollbackFor = Throwable.class) at class level, removed method-level @Transactional
- profitmandi-dao: Removed @Transactional from services/repositories
Exceptions (called from interceptors, need own transaction):
- RoleManager: @Transactional(readOnly = true) - called from interceptor for auth
- PartnerTypeChangeServiceImpl.getBestPartner(): @Transactional - called from JWTUtil via interceptor
Fixed javax.transaction.Transactional to org.springframework.transaction.annotation.Transactional
Fixed rollbackOn to rollbackFor for Spring compatibility |
|
| 35289 |
327 d 14 h |
amit |
/trunk/ |
Added trial franchisee feature |
|
| 34859 |
428 d 5 h |
vikas |
/trunk/ |
Web Pages Management |
|
| 34813 |
444 d 5 h |
aman |
/trunk/ |
Partner Dashboard Analysis |
|
| 34546 |
513 d 7 h |
vikas.jangra |
/trunk/profitmandi-fofo/src/main/ |
Liquidation/Bidding push notification and Publish |
|
| 34387 |
548 d 4 h |
vikas.jangra |
/trunk/ |
Liquidation/Bidding initial work |
|
| 34236 |
590 d 4 h |
ranu |
/trunk/ |
credit note report given to finnace and partner |
|
| 33973 |
686 d 4 h |
tejus.lohani |
/trunk/ |
Added super catalogs |
|
| 33927 |
693 d 11 h |
tejus.lohani |
/trunk/ |
add retailerId in PartnerDealerMapping and fix some bugs |
|
| 33790 |
745 d 8 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
config version change |
|
| 33788 |
745 d 10 h |
ranu |
/trunk/ |
aging maintain |
|
| 33780 |
751 d 6 h |
tejus.lohani |
/trunk/profitmandi-fofo/src/main/webapp/resources/js/ |
add mail validation function in commomJs and use this to validate mail in loi_form email input |
|
| 33765 |
757 d 5 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
try catch of bad request handle |
|
| 33759 |
757 d 10 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
exculde reports url in post interceptor |
|
| 33758 |
757 d 10 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
js version change |
|
| 33756 |
757 d 10 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
post interceptor for every post handling |
|
| 33612 |
805 d 9 h |
amit.gupta |
/trunk/ |
Fixed logic to bill only top 5 |
|
| 33508 |
831 d 5 h |
tejus.lohani |
/trunk/profitmandi-fofo/src/main/webapp/resources/js/ |
These files are related to Loi form and LOI form data flow to the required tables |
|
| 33400 |
864 d 8 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
complete spilit order and payment by l2 of pending order item |
|
| 33220 |
908 d 15 h |
amit.gupta |
/trunk/profitmandi-fofo/src/main/ |
Fixed account statement |
|
| 33167 |
923 d 7 h |
amit.gupta |
/trunk/profitmandi-fofo/src/main/ |
Fixed bug related to online order billing |
|
| 33141 |
931 d 4 h |
amit.gupta |
/trunk/profitmandi-fofo/src/main/ |
patch for |
|
| 32979 |
959 d 7 h |
amit.gupta |
/trunk/ |
Fixed changes related to offer. |
|