johnnyq
08334b22c3
Add Stripe fee reconciliation to cron
...
Balance transactions aren't always attached when a payment completes,
so the fee expense can be skipped at payment time. Daily cron pass now
finds recent Stripe payments with no matching fee expense and records
the actual fee once available. Dedupes by expense reference prefix,
30-day lookback.
2026-07-22 16:47:28 -04:00
johnnyq
66b38b7f19
Get Expense from Stripe instead of Static Entry
2026-07-22 16:07:39 -04:00
johnnyq
9d540f4bfe
Replace Function customAction() with triggerCustomAction()
2026-07-14 17:43:55 -04:00
johnnyq
f1836c70cd
Replace Function logAction() with logAudit()
2026-07-14 17:35:23 -04:00
johnnyq
29a0b3ead8
Replace Function fetchUpdates() with checkForUpdates()
2026-07-14 17:31:54 -04:00
johnnyq
b57ddc0e5c
Replace Function sanitizeInput() with just escapeSql() and update all instances throughout
2026-07-14 17:17:50 -04:00
johnnyq
8da3a107fb
Rename plugins to libs and update all file references
2026-07-10 13:24:20 -04:00
johnnyq
6e7d2b2d6a
Invoice Late Overdue notices shows correct balance when late fees are attached and if partial invoice was paid
2026-06-24 13:07:52 -04:00
johnnyq
a819dff19a
Mail: Update mail configuration check to use smtp_provider instead of smtp_host as host is blank upon using oath2
2026-06-24 12:47:41 -04:00
johnnyq
b1a5b34725
Do not send an inapp alert on successful cron execution, keep it in logging only
2026-06-23 18:22:20 -04:00
wrongecho
163581cbcd
Expire all PW reset tokens nightly with cron
2026-04-27 13:36:39 +01:00
johnnyq
e9c3ee4661
Shared Items via secure link: Do not delete shared items that have not been viewed before cron runs
2026-04-24 11:40:38 -04:00
johnnyq
6d1b654d0c
Invoice: Do not apply late fee on first overdue reminder (day 1)
2026-03-20 17:44:33 -04:00
johnnyq
6122efc870
Updated all Queries related to invoice items to reflect their new tables quote, invoice, recurring invoice items
2026-03-07 19:35:44 -05:00
johnnyq
ef7794c411
Added non payment invoice reminder / Late fee if enabled after 1 day an invoice is overdue. currently it was jumping right to 30,60,90... now its 1,30,90...
2026-02-19 12:20:26 -05:00
johnnyq
e0f7460e08
If not client_id then do not include &client_id= in ticket uris as this would cause ticket viewing to break if client_id is 0.
2026-01-19 17:01:38 -05:00
johnnyq
ae1d71dcd7
append client_id to the uri for agent ticket links so that the when clicked will take them to the client section and show client header along with the bread crumbs link of client tickets
2026-01-19 16:24:31 -05:00
johnnyq
0a30300bde
replace all instances of mysqli_fetch_array with mysqli_fetch_assoc for better performance and memory usage
2026-01-14 17:30:23 -05:00
johnnyq
a79ce23ae5
Fix randomString() to generate cryptographically secure URL-safe tokens, reduced url keys to 32 Characters for performance and easy copy and paste and compatibility while still mainitaining ubreakable cryptographic keys
2025-12-18 14:24:53 -05:00
johnnyq
99e2487d2b
Fix dupe race condition with ticket, invoice, quote, project, recurring ticket numbering when being created in parallel Atomically update and get the next ticket number in one SQL query everywhere.
2025-11-28 14:14:46 -05:00
johnnyq
6d15640ae4
[Feature] Recurring Ticket - Add Three Day and Biweekly to the Frequency options
2025-10-29 18:15:21 -04:00
johnnyq
35a7506c26
Copy crons from /scripts to /cron, added custom directories for api/v1/, /setup, /cron and /scripts
2025-10-07 13:55:54 -04:00