Subversion Repositories SmartDukaan

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
37869 19 h 29 m amit /trunk/profitmandi-fofo/src/main/ fix(fofo): GlitchTip quick wins - empty billing queue, regex search, upload dates

- /om/transactions: no crash when warehouse has no unbilled orders (#50);
/om/orderByTransaction returns "No pending orders" instead of querying with
no items (#88); JS skips detail load when there is no transaction.
- /om/transactions, /om/billedInvoice: warehouseId=0 fallback used a warehouse
id as a list index (authWarehouseIds.get(authWarehouseIds.get(0))).
- Item / vendor / retailer typeahead: substring match via contains() instead of
a regex built from user input, which threw PatternSyntaxException on "("
(#1932, #1375, #1700, #600, #1926, #1721, #1754).
- Billed-order shipping upload: time optional, dd-MM-yyyy[ HH:mm[:ss]],
missing parts default to 00 (#1976).
- IMEI activation upload: time optional, M/d/yyyy[ H:mm[:ss]], missing time =
00:00:00; every row validated, bad dates and duplicate IMEIs reported with
row numbers instead of a 500 (#1990).
- Bump JS version to 443.
 
37865 1 d 16 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ Fixed mail sender everywhere  
37864 1 d 17 h ranu /trunk/profitmandi-fofo/src/main/ rbm performance view will consider all partners not taregted only  
37851 2 d 17 h amit /trunk/profitmandi-fofo/src/ fix(warehouse): warehouse partner drill-down lists ACTIVE warehouses instead of forcing 7573; courier/rider admin default warehouse 13368; MovementPurchaseOrderSplitTest uses splitByWarehouseAndCost (renamed in r37830, fofo tests compile again)  
37849 2 d 18 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ offer-radar notification commit  
37846 2 d 18 h amit /trunk/profitmandi-fofo/src/main/ feat(warehouse): dashboards list ACTIVE warehouses only, warehouse-team screens ACTIVE+SUSPENDED (from BillingWarehouseService, WAREHOUSE_MAP gone); global $warehouseNames for labels of data rows in any state; Sellers & Warehouses screen: all-warehouse overview with status tabs, 3-state status, rename, stock/unshipped orders/stores/mapping usage, send stock alert; partner zone offers active warehouses only; brand stock 'All' = active warehouses (replaces r37838 loop); jsVersion 442  
37843 2 d 18 h ranu /trunk/ revival process fix loi  
37839 3 d 0 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/ drr view dashboard commit  
37838 3 d 1 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ fix(dashboard): warehouse brand stock 'All' includes every warehouse holding stock in tbl_cis, not only franchise-store warehouses plus hardcoded 7573/10516/7678 - HR hubs (internal stores only) now counted (same rule as r37834)  
37836 3 d 2 h aman /trunk/ Lead Management: the calendar date range now applies to follow-up leads too, in both the lead list and the CSV download. Previously follow-ups were appended undated, and the download (non-field-sales path) appended them even when the list did not, so a date-filtered download contained all follow-up leads from all time. 'All' status now consistently includes follow-ups in every branch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JjVXnkrysiXEa2YYRn4BqL
 
37823 6 d 16 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.
 
37821 6 d 18 h aman /trunk/ Lead Management: CSV download now also honours the lead table's search text (searchTerm), so the exported rows match the filtered rows on screen. Applies to both the fofo download and the V2 API download.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JjVXnkrysiXEa2YYRn4BqL
 
37820 6 d 18 h aman /trunk/ Lead Management: make Excel/CSV download honour the same filters as the on-screen list. V2 download no longer folds followUp into the status list when All is chosen (it skipped the status/color/date query and exported only follow-ups); fofo lead page re-selects every chosen status so Download sends the statuses the table was loaded with.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JjVXnkrysiXEa2YYRn4BqL
 
37819 7 d 19 h amit /trunk/profitmandi-fofo/src/main/ feat(loi): allow all Accounts users (L1-L4) to download Pending LOI Forms report  
37815 7 d 21 h amit /trunk/profitmandi-fofo/src/main/ feat(loi): allow Finance L1 (Accounts) to download Pending LOI Forms report  
37810 8 d 22 h amit /trunk/profitmandi-fofo/src/main/ fix(irn-reset): allow reset of failed invoices and show the real rejection reason

A failed IRN filing leaves an einvoice_details row with irn NULL and only
irn_error_message set, but the reset panel treated any row as "IRN already
generated" and refused every failed invoice (e.g. NSLCK38227, GSP032 timeout,
billed same day) with the message "older than five days".

- Block only when einvoice_details.irn is set.
- Report a reason per invoice: not found / IRN already generated / already
queued / billed more than five days ago.
- Trim invoice numbers: the panel joins with ", ", so resetOrdersIrn matched
only the first invoice and silently skipped the rest.
 
37808 8 d 22 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ offer-radar notification commit  
37803 9 d 13 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ feat(scheme): offer only serialized Ear Buds models in the scheme picker

Scheme payouts are IMEI-driven, so a non-serialized earbud can never earn one.
For category 10024 the scheme-creation brand list and model list now ask the
inventory service for serialized items only (the dao side is already in
trunk); LED TV and the other categories are unchanged.
 
37799 9 d 19 h ranu /trunk/ offer-radar notification commit  
37798 9 d 20 h amit /trunk/profitmandi-fofo/src/main/ Show a settled debit note as settled instead of offering Receive

The DN screens decided everything from "does a purchase_return_order exist",
which no return settled before the receive workflow ever had. A note settled
years ago therefore read "Pending Receive" with a Receive button, and receiving
one handed a partner back a phone already returned, refunded and resold
(DN UPBLY975/4, IMEI 864973083197734).

The debit note's own status now carries the fact - CREATED means there is
genuinely something to receive, anything else means it is settled - so the
screens read it directly instead of re-deriving it from warehouse scans on
every page load. r37797 backfilled the 4,154 notes the old flow left behind.

- invoice-return-results, debit-notes-table, debit-note-details,
receive-debit-note: Receive only while the note is CREATED with no return
order; otherwise "Processed - settled earlier".
- debit-notes-table: Refund only on a note received and not yet settled,
rather than on every row.
- PurchaseReturnController: the admin debit-note list now loads the return
orders its Refund button needs.

Deploy with profitmandi-dao r37797.
 
37794 9 d 21 h ranu /trunk/ offer-radar notification commit  
37791 9 d 22 h amit /trunk/profitmandi-fofo/src/main/ Sale returns: Finance-only B2C settlement after a NIC GSTIN refusal

Once NIC has refused a return because the buyer's GSTIN is cancelled or
invalid, only Finance may act on it - approve, retry or reject. The pending
queue shows the refusal reason and, on the day it happened, a "Refund as
B2C" action; Logistics sees "IRN failed - awaiting Finance" and no buttons.

The B2C screen states NIC's reason and every returned line with its value
including and excluding GST, and fixes the refund at the value net of GST
in whole rupees. Finance types that figure back by hand, enters a remark and
ticks the consent box before the button enables; the server re-checks the
amount, the remark, the consent and the same-day window, so the screen is a
convenience and not the control. Cancelling or finishing returns to the
queue, and a refused approval now reloads the queue so the B2C action
appears without a manual refresh.

jsVersion 438 -> 439 for return.js.
 
37787 11 d 15 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ feat(partner-access): demo grant picker lists Platinum partners only

Partner multi-select on Demo Partner Access filters active partners to the
current effective tier PLATINUM (PartnerTypeChangeService.getTypesForFofoIds,
same lookup as Indent/Order Management). Active grants table unchanged.
 
37784 12 d 21 h vikas /trunk/ Corrected LMS Data and Added filter  
37783 12 d 22 h vikas /trunk/profitmandi-fofo/src/main/ Corrected LMS Data  
37780 13 d 0 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.
 
37777 13 d 17 h amit /trunk/profitmandi-fofo/src/ returns: finance endpoint to reverse a return whose goods never reached the warehouse

PUT /return/reverse?imei=&reason=&dryRun= calls ReturnReversalService (r37776) for one
IMEI. Finance only, same canRefund gate as the refund it undoes, and dryRun defaults to
true so a call without it reports the plan and writes nothing.

ReturnReversalTest covers the four cases against the local database with NIC on the
sandbox: the dry run writes nothing, a note past its 24h window issues a DBN and undoes
every effect of the refund (warehouse scan and stock, partner stock and offers, order
status, wallet, return item, debit note, audit row), a note inside the window has its IRN
cancelled and drops out of the statement, and bad input or a second reversal is refused.
Run it as `gradle :test --tests ...` - without the colon the filter also reaches
profitmandi-common and fails with "No tests found".
 
37775 13 d 17 h ranu /trunk/ aging po approval process  
37773 13 d 18 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ fix: show live partner investment on sanction request approval screens

Total/short investment on /getSanctionRequest, /getRbmL2SanctionRequest and the
row re-render after submit now read the 2-minute partner_investment snapshot via
PartnerInvestmentService instead of yesterday's partner_daily_investment row.
 
37770 13 d 18 h amit /trunk/profitmandi-fofo/src/main/ fix(movement): GRN of a movement invoice validated against its own PO + billed IMEIs; Reopen removed; PO list shows Created By; supplier state from GSTIN; jsVersion 436  
37765 13 d 20 h amit /trunk/profitmandi-fofo/src/main/ feat(store-closure): closure popup with reason, remark and approval mail upload

- Close Store (inactive stores page and deactivate flow) opens one shared popup; /closeStore
delegates to StoreClosureService (dao r37764)
- store status access checks read StoreAccess lists; mohit.gulati removed from extend billing
- jsVersion 435
 
37761 14 d 0 h ranu /trunk/ aging po approval process  
37760 14 d 17 h vikas /trunk/profitmandi-fofo/src/main/ Upload directory and Data correction for lead  
37750 14 d 18 h ranu /trunk/ aging sku purchasing need to approval of niranjan kala sir  
37749 14 d 19 h vikas /trunk/ Upload directory and Data correction for lead  
37748 14 d 21 h ranu /trunk/profitmandi-fofo/src/main/ today po rbm view showing only for l7 and above  
37747 14 d 22 h ranu /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/ today po rbm view showing only for l7 and above  
37746 14 d 22 h amit /trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ feat(scheme): add Ear Buds category (10024) to scheme creation category list  
37745 14 d 22 h ranu /trunk/profitmandi-fofo/src/main/ today po rbm view showing only for l7 and above  
37743 16 d 19 h vikas /trunk/ LMS checklist for call