Create a custom Perfex CRM module named DeviceRentalService, compatible with CodeIgniter-based Perfex CRM v0.dev. The module should include:
✅ Core Requirements: Fully modular CodeIgniter structure.
install.php and uninstall.php files for automatic DB migration.
Role-based permissions setup via hooks.php.
Admin navigation menu entry.
📁 Folder Structure: /modules/DeviceRentalService/
controllers/
models/
views/
libraries/
helpers/
config/
language/english/
install.php, uninstall.php, hooks.php
⚙️ Functional Components:
Quick overview with charts (Devices Ready, In Workshop, Contracts, Service Requests)
Branches
Workshops & Locations
Device Types
Brands (with logo upload)
Models
Spare Parts
Toners
Device Intake Form (Device Info, Serial, Condition, Images, Status Page)
Workflow States: Intake → Checked → Parts/Toner Requested → Final Test → Ready to Sale
Hard Check-Up & Final Testing sections with status logs
List of Devices marked “Ready to Sale”
Manual Add/Edit functionality
Add/Edit/View/Delete Contracts
Fields: Type (AMC, FSMA, Lease, etc.), Duration, SOS ID, Billing Details, Status
Attach devices to contracts
Track all installed/active machines per contract
Add/View/Edit/Delete Service Requests
Complaint Types dropdown
Assign to Engineer
Spare Part Request Workflow (Engineer → Manager Approval)
Auto notifications and PDF service report generation
Customer Report
Machine Report
Contract Report
Engineer Activity Report
Service Call Summary
Role-based access:
Admin
Workshop Manager
Supervisor
Service Engineer
Sales Executive
Status Management
Module Configuration Panel
🛠 DB & UI Notes: MySQL structure creation in install.php
Blade/HTML-style views compatible with Perfex Admin UI
Use init_menu_items() in hooks.php to add side menu items
🔐 Optional: Notifications for contract expiry, part approvals, service delays
Dynamic charts in Dashboard (e.g., Chart.js)
Loading...
next generate all pages including controllers with models is like modules/ └── DeviceRentalService/ ├── DeviceRentalService.php # Main module bootstrap file ├── config/ │ └── config.php # Module-specific configurations ├── controllers/ │ ├── DashboardController.php │ ├── MasterSetupController.php │ ├── WorkshopController.php │ ├── ReadyDeviceController.php │ ├── ContractController.php │ ├── MIFController.php │ ├── ServiceController.php │ ├── ReportController.php │ └── SettingsController.php ├── models/ │ ├── Dashboard_model.php │ ├── MasterSetup_model.php │ ├── Workshop_model.php │ ├── ReadyDevice_model.php │ ├── Contract_model.php │ ├── MIF_model.php │ ├── Service_model.php │ ├── Report_model.php │ └── Settings_model.php ├── views/ │ ├── dashboard/ │ │ └── overview.php │ ├── master_setup/ │ │ ├── branches.php │ │ ├── workshops.php │ │ ├── device_types.php │ │ ├── brands.php │ │ ├── models.php │ │ ├── spare_parts.php │ │ └── toner_list.php │ ├── workshop/ │ │ ├── intake_form.php │ │ ├── dashboard.php │ │ ├── device_check.php │ │ ├── final_test.php │ │ └── ready_to_sale.php │ ├── ready_device/ │ │ ├── ready_list.php │ │ └── manual_entry.php │ ├── contract/ │ │ ├── contract_list.php │ │ ├── add_contract.php │ │ └── view_contract.php │ ├── mif/ │ │ └── mif_list.php │ ├── service_management/ │ │ ├── service_request.php │ │ ├── assign_engineer.php │ │ ├── service_report.php │ │ └── completed_list.php │ ├── reports/ │ │ ├── customer_report.php │ │ ├── machine_report.php │ │ ├── call_report.php │ │ ├── engineers_report.php │ │ └── contract_report.php │ └── settings/ │ └── module_settings.php ├── helpers/ │ ├── device_helper.php │ └── service_helper.php ├── language/ │ └── english/ │ └── device_rental_lang.php └── routes.php # Custom module routes
Loading...