Commit Graph

19 Commits

Author SHA1 Message Date
cc08f2f6c5 Carry the branch on every offline-sales row instead of picking a store
The upload modal made the admin choose a branch, then generated and
validated the workbook against that choice. A merchant with several
outlets had to repeat the whole cycle per branch, and the picker
defaulted to the first outlet, so an admin who never opened it credited
the wrong store — the file and the selection agreed, so nothing flagged
it.

The sheet now carries tenantid, locationid and the store name as locked
columns on every row, and the row's own locationid routes its sale. One
file covers the whole business: fill in qtysold wherever something sold,
across as many branches as needed, and upload once. The picker is gone
from the admin surface entirely, and the store user's page keeps passing
its locationId, which pins the upload to that branch and rejects rows for
any other before they are even sent.

Bills are keyed on branch first and bill number second. Counter books at
different outlets restart numbering from 1, so a shared number is two
sales rather than a duplicate, and keying on the number alone would have
dropped the second one.

Because a single upload can now move stock at six outlets, one total is
no longer enough to check before committing: the preview gains a store
count, a per-store table of lines, units, amount and problems, and a
Store column on every row, and results name the branch on each bill.

Rows are ordered store then product with an Excel autofilter, so a
branch can isolate its own rows in a file spanning the business.

Verified end to end against a two-branch tenant sharing a product id
across both outlets: one upload deducted each branch independently, a
pinned upload refused the other branch's rows, and re-uploading deducted
nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 12:18:09 +05:30
9990355e19 offline sales upload 2026-07-30 17:23:21 +05:30
eb6e750b6a main stocks update 2026-07-27 19:00:09 +05:30
92165b986c inventory page 2026-07-23 16:05:38 +05:30
f62668e54e reponsived the website and login fix done 2026-07-21 16:26:45 +05:30
407574d62a dispatch testing 2026-07-20 18:54:09 +05:30
Suriya
32291cddbe Fix Global Catalogue browsing and import
Removes InventoryView's broken duplicate Global Catalogue tab, which
misused createproductlocation with catalogue ids that never match real
product ids (imports silently failed to land) and showed fabricated
Math.random() pricing/ratings. "Import Product" now routes to the
already-correct CatalogueBrowser instead.

Also fixes catalogueApi's product_count field mismatch (brand chip
counts were always blank), a pagination bug that capped the catalogue
at 100 of ~237 products with no way to see the rest, and replaces
ImportProductModal's free-text category id input with a real dropdown
scoped to the tenant's own categories, filtering subcategories to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 17:31:29 +05:30
11baf732b7 import product catalogue 2026-07-16 17:05:06 +05:30
4ef9cd9085 new changes in api base url 2026-07-09 15:49:45 +05:30
7cd0ae85ef stock request 2026-07-04 17:46:30 +05:30
c6a3ea51da developed ui for pos 2026-06-26 10:37:20 +05:30
93df333df1 implemented the sales and revenue report 2026-06-23 19:18:01 +05:30
8707004405 changes on global catalogue 2026-06-20 18:45:25 +05:30
2e9ffb15bb udpates on the ui changes on theprodut catalogs 2026-06-16 20:12:45 +05:30
Gokul
5378f2df1f dispatch page 2026-06-12 14:45:06 +05:30
Gokul
9f25c5f60a udpates on the ui changesand api integration 2026-06-09 11:25:29 +05:30
Suriya
7dbae96b5f feat(merchant): premium UI redesign of Reports, Inventory, Stocks, Settings, and Team Access views 2026-06-04 13:04:11 +05:30
Gokul
a11a859761 new changes 2026-06-04 11:40:06 +05:30
Suriya
6eaeb5c4a7 feat: relocate orders and deliveries to store console & polish store cover images 2026-06-03 18:20:43 +05:30