Commit Graph
41 Commits
Author SHA1 Message Date
MahdiandCursor abb1a3a18e feat(voip): add Daftaresoma provider tab with webhook and click-to-call
Map portal call events into CRM logs, store the API token for OutgoingCall, and surface a dedicated settings tab for wiring the webhook URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-07 12:31:59 +03:30
MahdiandCursor 1ef7f91771 fix(contacts): keep one customer when Tahesab repeats a mobile
A Tahesab import now updates the person who already has that mobile instead of creating another, and the boot merge runs once more so existing pairs collapse.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-05 13:34:41 +03:30
MahdiandCursor 94f0383c79 feat(tahesab): import and refresh customers at chosen hours
Each connection can set how many times a day and at which Tehran hours the server pulls Tahesab customers, including name updates for people already linked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-05 12:31:27 +03:30
MahdiandCursor 57a0b379f6 fix(tahesab): store a matched mobile as 09xxxxxxxxx
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-05 11:11:40 +03:30
MahdiandCursor 7f6d9a84d6 fix(contacts): treat Iranian mobile formats as one person
Tahesab import still replaces the name and keeps the previous name.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-05 10:51:36 +03:30
MahdiandCursor 79733e6c96 feat(tahesab): sync filtered customers and pick Jalali periods
Document refresh can follow the selected group or person instead of every linked customer, and the sales report picks a named month or season.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-03 10:09:40 +03:30
MahdiandCursor b9bb2ff9fa feat(contacts): keep Tahesab honorifics with person gender
Male and female names can store the title when requested, and Tahesab import and export use the same gender.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-29 18:46:10 +03:30
MahdiandCursor 2ff35e55fc feat(tahesab): net sales by factor, group, and commission
Report weight after returns for the selected period, with parent customer groups and separate silver and investment commission.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-26 11:05:34 +03:30
Mahdi f50246dc46 feat(tahesab): PDF invoice export for asnad cards
Add per-document PDF print from account details, plus org invoice settings for logo and texts separate from CRM invoices.
2026-10-24 12:34:02 +03:30
Mahdi ade43fea0f feat(tahesab): sales report snapshot with org-module gate
Sync linked asnad into CRM, filter by group/kind/metal, and require the tahesab superadmin module plus reports role access.
2026-10-22 18:20:46 +03:30
Mahdi 29d99cbded feat: customer groups for people and companies with tahesab group sync and bulk register
Multiple groups per contact, legacy group text migrated, excel import/export, contacts filter and column, richer create-in-tahesab, match-first bulk export
2026-10-21 17:16:31 +03:30
Mahdi 86e9ee6c2c fix: treat Tahesab no-records as an empty customer list instead of a 502
Listing all customers no longer fails on the final empty code range, and importing a missing code no longer creates a placeholder person.
2026-10-20 12:26:20 +03:30
Mahdi adb63447ca fix: stop Tahesab imports from stealing links between shared-mobile customers
List all Tahesab customers in one paginated table with a page-size picker instead of 2000-code pages.
2026-10-20 12:00:11 +03:30
MahdiandCursor cf326d1ed9 fix: keep birthdays and show Shamsi dates
Imported customers keep their birthday, and assistant text plus remaining calendars use the Jalali date.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 18:04:53 +03:30
Mahdi b87ebb22e0 Montify: robust pagination (beyond 50), endpoint diagnose button 2026-10-10 18:01:55 +03:30
Mahdi 792b3d29fa Montify: allow restarting stuck sync from UI; log sync progress 2026-10-10 17:11:51 +03:30
Mahdi 0802c2f436 Montify sync: save progress every 5 customers; skip endpoints returning 404, summarize instead of per-customer errors 2026-10-10 16:56:58 +03:30
Mahdi f27b4c264a Montify: mark sync running before responding; no 400 when already running 2026-10-10 16:18:25 +03:30
Mahdi e82bd2b2df Montify stores integration: multi-store connections, customer/order/transaction sync, webhooks 2026-10-10 15:59:12 +03:30
MahdiandCursor e6755d0c2e Tahesab: show raw data from Tahesab, invoice-style document view with metal labels
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 13:49:54 +03:30
MahdiandCursor f88786ef61 Import Tahesab customers in batches with progress overlay and prefetched rows
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 21:08:38 +03:30
MahdiandCursor 46dcf296d3 Keep previous import source and code when a person is re-imported from another source
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 20:54:23 +03:30
MahdiandCursor 8b37525f2f Track person import source and previous names; add source report and edit UX.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 12:01:21 +03:30
MahdiandCursor 236f73de93 Paginate Tahesab customer list by code windows past the 5000 cap.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 11:09:40 +03:30
MahdiandCursor beae16437b Harden Tahesab HTTP client against keep-alive hangs and retry health on alt ports.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 17:02:14 +03:30
MahdiandCursor 17628722d3 Fix Tahesab health check to match Postman root-endpoint flow.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 16:45:04 +03:30
MahdiandCursor a1655432fc Add internal org chat (phase 1) with DM, groups, and org settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-29 10:34:01 +03:30
MahdiandCursor c5c903d4b4 Add automatic VoIP call summaries and sync progress checklist.
When a PBX webhook includes recordingUrl or transcript, queue STT and AI to create a call_result note; mark API, bulk SMS, WooCommerce, and VoIP as done and defer online payments.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-27 15:06:41 +03:30
Mahdi db65b55660 Add VoIP webhook connector for call logging, notifications, and optional click-to-call; align brand to Montact. 2026-09-27 08:47:11 +03:30
Mahdi 26085b54a9 Add WooCommerce integration: sync orders to invoices/people with webhook, cron, and settings UI. 2026-09-26 17:59:16 +03:30
Mahdi 17fb33b3e7 Adding a task generated from the account balance to products 2026-09-21 21:25:34 +03:30
MahdiandCursor 11fa4c5e23 Treat Tahesab 404 no-records as empty asnad list.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 11:35:20 +03:30
MahdiandCursor 8f9a00f319 Fix asnad via root POST like Hamkar; show accounting code label.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 11:27:42 +03:30
MahdiandCursor 3ab102ddae Align DoListAsnad with Hamkar (4 args) and treat empty ERROR as [].
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 11:18:37 +03:30
MahdiandCursor 1ac23e13c1 Improve person assets UI and fix Tahesab asnad date/list.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 11:08:46 +03:30
MahdiandCursor 43526cb980 Fix Tahesab empty-range 502 by using a single ByCode call.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 10:41:12 +03:30
MahdiandCursor 38f4b75a78 Allow empty Tahesab code range to list and import all customers.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 10:30:54 +03:30
MahdiandCursor 3277561e55 Clarify Tahesab self-signed TLS fix with one-click enable.
Health already failed on certificate; search/import need allowInsecureTls on the connection.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 09:52:27 +03:30
MahdiandCursor b42d39d756 Fix Tahesab ByCode list body key causing 502 on range search.
Use Dolistmoshtari as documented and surface upstream error text in the UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 09:42:08 +03:30
MahdiandCursor 15a0afae5c Add Tahesab bulk customer import by code range.
Connecting alone does not copy customers; settings now list a code range and import them into CRM persons with link status.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 09:33:12 +03:30
MahdiandCursor 4b47b753c3 Add Tahesab jewelry accounting integration with multi-DB connections.
Encrypt tokens server-side, sync customers both ways, show balances/documents on the person Assets tab, and push sanads with idempotent Factor_Code logging.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 22:00:23 +03:30