FxInvoice and HR Manager — Complete Invoicing, Billing & HR Management System
FxInvoice and HR Manager is a full-featured, single-tenant invoicing and business management application built on Laravel 12 and Bootstrap 5. It combines professional invoice management, quotations, payments with advance/deposit handling, expense tracking, product catalog, a complete HR module, support tickets, SMS messaging and a self-service client portal — all in one script, ready to install on any cPanel/shared hosting with PHP 8.2+.
Key Highlights
- Invoice lifecycle: Draft → Sent → Overdue → Partially Paid → Paid, with automatic status determination
- Advanced tax engine: deductible + compound multi-tax with per-line discount support
- Live totals panel (sub-total, tax, discount, grand total) on invoice & quotation forms
- Client advances/prepayments with automatic application to invoices
- Quotations with one-click conversion to invoices
- Full HR module: Departments, Designations, Employees, Payrolls, Tasks
- Support ticket system with replies
- SMS outbound messaging (Twilio / Vonage / Log)
- 13 languages with Arabic RTL support
- GDPR-compliant client portal — dashboard, invoices, payments, advances, tickets, profile (export & erase)
- OTP-based registration with email verification code and resend limits
- Client password reset flow with branded emails
- Dynamic whitelabel/branding — logos, site name, favicon, auth background
- Invoice PDF designer — colors, labels, logo with live preview
- REST API with Sanctum token auth
- 5-step web installer — no Composer/SSH required
Modules
| Invoicing | Full lifecycle, discount engine, multi-tax, advance application, live summary, PDF designer |
| Quotations | Same item/tax structure, one-click conversion to invoice |
| Payments | Cash, bank transfer, card, cheque, PayPal, Stripe + advance deductions, receipt PDF |
| Advances | Client prepayments, unused → partially used → fully used |
| Expenses | Categorized, pending/released status |
| Products | Auto SKU, categories, searchable catalog |
| Clients | CRM records, companies, ledger, portal access |
| Client Portal | Dashboard, invoices, payments, advances, tickets, GDPR profile — styled like the main app |
| HR | Departments, designations, employees, payrolls, tasks |
| Tickets | Support system with priorities and replies |
| SMS | Twilio / Vonage / Log providers with logs |
| Reports | Invoice, payment, expense, item reports with PDF/Excel export |
| Roles & Permissions | 73 permissions in 20 groups, 3 roles |
| Localization | 13 languages, Arabic RTL, one-click switcher |
Security & Architecture
- Single-tenant, service-layer architecture (InvoiceService, QuotationService, TaxCalculationService)
- REST API secured with Laravel Sanctum
- Activity log with notification dispatch
- Performance indexes on key tables
Requirements
- PHP 8.2+ (PDO, MySQL, cURL, mbstring, XML, BCMath, JSON, Tokenizer, Fileinfo)
- MySQL / MariaDB
- Apache or Nginx
Changelog
CHANGELOG ========= v1.1.1 — August 2026 -------------------- - Mail: when no mail driver is chosen in Settings, the app now auto-detects the server — if a sendmail binary exists (cPanel/shared hosting) it uses sendmail out of the box like v1.0; otherwise it falls back to the log mailer so nothing crashes - Mail: when the configured driver is "PHP Sendmail / mail()" but no sendmail binary exists on the server, the app now falls back to the log mailer instead of crashing with a 500 TransportException (exit code 127) on password-reset / OTP / invoice emails - Mail: any send failure on a configured transport (sendmail or SMTP) is now caught, logged with the underlying error, and the message is delivered through the log mailer — the request no longer fails with a 500 - Client portal: an already-logged-in client visiting the client login or register page is now redirected to the client dashboard instead of being bounced to the admin login page - Client portal: unauthenticated visitors hitting client-only pages are now sent to the client login page instead of the admin login page v1.1 — August 2026 ------------------ - Client portal: dashboard with stats (invoices, total due, open tickets, advance balance) plus invoices, invoice detail, payments, advances, and ticket creation/viewing for clients - OTP-based client & staff registration (OtpService, email verification code, cooldown + resend limits) for preset accounts - Client password reset flow (forgot/reset controllers + emails) - Client portal layout/theme (adminhmd assets) with own auth pages - Invoice & quotation pages show per-item discount/tax and totals (sub-total, discount, tax total, total due) and auto-fill terms & notes - Quotation-to-invoice conversion now generates the invoice number (SequenceService) instead of failing on the NOT NULL column - Default mail driver set to `log` (MAIL_MAILER=log) so outbound email never throws SMTP errors until real SMTP credentials are configured - FAXBD license headers added to all source files (PHP, Blade, JS) - Dashboard: invoice status pie chart now includes partially paid invoices, and the recent payments table / total paid stat include partial payments (previously only fully-paid invoices), ordered by payment date - Client portal redesigned to use the main app theme: auth pages (login, register, forgot/reset password) now use the same design as the admin login, and portal pages use the main layout with sidebar, topbar, language switcher, and dark mode - Client login now matches both email and phone regardless of input format (previously only one column depending on format, causing "no account found" for clients who registered via the other identifier), with a clearer message pointing to registration or support v1.0 — July 2026 ----------------- - Initial release - Multi-tenant removed, single-tenant architecture - Laravel 12.18, PHP 8.2+, MySQL/MariaDB - Modules: Invoicing, Quotations, Payments, Expenses, Products, Clients, HR (Departments, Designations, Employees, Payrolls), Tasks, Tickets, SMS - 13 languages with RTL support - Web installer with 5-step wizard - REST API with Sanctum auth - 73 permissions across 20 groups, 3 roles - Whitelabel/ custom branding - Invoice PDF designer - Client portal with GDPR profile (access, rectify, erase) - Performance indexes on key tables - Service layer refactoring: InvoiceService, QuotationService, TaxCalculationService - 100% localization of all UI strings
Appreciated on August 10th, 2026