diff --git a/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.ini b/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.ini deleted file mode 100644 index 113cb29b..00000000 --- a/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.ini +++ /dev/null @@ -1,28 +0,0 @@ -; MokoWaaS CRM Plugin -; Copyright (C) 2026 Moko Consulting. All rights reserved. -; License: GPL-3.0-or-later - -PLG_SYSTEM_MOKOWAAS_CRM="System - MokoWaaS CRM" -PLG_SYSTEM_MOKOWAAS_CRM_DESC="Extends Joomla Contacts with CRM roles (customer, vendor, prospect), deals pipeline, and activity tracking." - -PLG_SYSTEM_MOKOWAAS_CRM_FIELDSET_BASIC="Contact Roles" -PLG_SYSTEM_MOKOWAAS_CRM_FIELDSET_BASIC_DESC="Configure how Joomla Contact categories map to CRM roles." -PLG_SYSTEM_MOKOWAAS_CRM_AUTO_ROLE_LABEL="Auto-assign Role from Category" -PLG_SYSTEM_MOKOWAAS_CRM_AUTO_ROLE_DESC="Automatically create a CRM role when a contact is saved in a mapped category." -PLG_SYSTEM_MOKOWAAS_CRM_CUSTOMER_CAT_LABEL="Customer Category" -PLG_SYSTEM_MOKOWAAS_CRM_CUSTOMER_CAT_DESC="Joomla Contact category name that maps to the Customer role." -PLG_SYSTEM_MOKOWAAS_CRM_VENDOR_CAT_LABEL="Vendor Category" -PLG_SYSTEM_MOKOWAAS_CRM_VENDOR_CAT_DESC="Joomla Contact category name that maps to the Vendor role." -PLG_SYSTEM_MOKOWAAS_CRM_PROSPECT_CAT_LABEL="Prospect Category" -PLG_SYSTEM_MOKOWAAS_CRM_PROSPECT_CAT_DESC="Joomla Contact category name that maps to the Prospect role." -PLG_SYSTEM_MOKOWAAS_CRM_CUST_PREFIX_LABEL="Customer Code Prefix" -PLG_SYSTEM_MOKOWAAS_CRM_CUST_PREFIX_DESC="Prefix for auto-generated customer codes (e.g. CU → CU2026-001)." -PLG_SYSTEM_MOKOWAAS_CRM_VEND_PREFIX_LABEL="Vendor Code Prefix" -PLG_SYSTEM_MOKOWAAS_CRM_VEND_PREFIX_DESC="Prefix for auto-generated vendor codes (e.g. VN → VN2026-001)." - -PLG_SYSTEM_MOKOWAAS_CRM_FIELDSET_PIPELINE="Pipeline & Defaults" -PLG_SYSTEM_MOKOWAAS_CRM_FIELDSET_PIPELINE_DESC="Default settings for deals and payment terms." -PLG_SYSTEM_MOKOWAAS_CRM_CURRENCY_LABEL="Default Currency" -PLG_SYSTEM_MOKOWAAS_CRM_CURRENCY_DESC="ISO 4217 currency code for new deals (e.g. USD, EUR, GBP)." -PLG_SYSTEM_MOKOWAAS_CRM_PAYMENT_TERMS_LABEL="Default Payment Terms (days)" -PLG_SYSTEM_MOKOWAAS_CRM_PAYMENT_TERMS_DESC="Default payment terms in days for new customer/vendor roles." diff --git a/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.sys.ini b/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.sys.ini deleted file mode 100644 index 5fefaf5b..00000000 --- a/source/packages/plg_system_mokowaas_crm/language/en-GB/plg_system_mokowaas_crm.sys.ini +++ /dev/null @@ -1,3 +0,0 @@ -; MokoWaaS CRM Plugin - System strings -PLG_SYSTEM_MOKOWAAS_CRM="System - MokoWaaS CRM" -PLG_SYSTEM_MOKOWAAS_CRM_DESC="Extends Joomla Contacts with CRM roles (customer, vendor, prospect), deals pipeline, and activity tracking." diff --git a/source/packages/plg_system_mokowaas_crm/sql/uninstall.mysql.sql b/source/packages/plg_system_mokowaas_crm/sql/uninstall.mysql.sql deleted file mode 100644 index ecaccf5d..00000000 --- a/source/packages/plg_system_mokowaas_crm/sql/uninstall.mysql.sql +++ /dev/null @@ -1,4 +0,0 @@ -DROP TABLE IF EXISTS `#__mokowaas_crm_activities`; -DROP TABLE IF EXISTS `#__mokowaas_crm_deals`; -DROP TABLE IF EXISTS `#__mokowaas_crm_pipeline_stages`; -DROP TABLE IF EXISTS `#__mokowaas_crm_roles`; diff --git a/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.ini b/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.ini new file mode 100644 index 00000000..531cf88e --- /dev/null +++ b/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.ini @@ -0,0 +1,28 @@ +; MokoWaaS ERP Plugin +; Copyright (C) 2026 Moko Consulting. All rights reserved. +; License: GPL-3.0-or-later + +PLG_SYSTEM_MOKOWAAS_ERP="System - MokoWaaS ERP" +PLG_SYSTEM_MOKOWAAS_ERP_DESC="Extends Joomla Contacts with ERP roles (customer, vendor, prospect), deals pipeline, and activity tracking." + +PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_BASIC="Contact Roles" +PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_BASIC_DESC="Configure how Joomla Contact categories map to ERP roles." +PLG_SYSTEM_MOKOWAAS_ERP_AUTO_ROLE_LABEL="Auto-assign Role from Category" +PLG_SYSTEM_MOKOWAAS_ERP_AUTO_ROLE_DESC="Automatically create a ERP role when a contact is saved in a mapped category." +PLG_SYSTEM_MOKOWAAS_ERP_CUSTOMER_CAT_LABEL="Customer Category" +PLG_SYSTEM_MOKOWAAS_ERP_CUSTOMER_CAT_DESC="Joomla Contact category name that maps to the Customer role." +PLG_SYSTEM_MOKOWAAS_ERP_VENDOR_CAT_LABEL="Vendor Category" +PLG_SYSTEM_MOKOWAAS_ERP_VENDOR_CAT_DESC="Joomla Contact category name that maps to the Vendor role." +PLG_SYSTEM_MOKOWAAS_ERP_PROSPECT_CAT_LABEL="Prospect Category" +PLG_SYSTEM_MOKOWAAS_ERP_PROSPECT_CAT_DESC="Joomla Contact category name that maps to the Prospect role." +PLG_SYSTEM_MOKOWAAS_ERP_CUST_PREFIX_LABEL="Customer Code Prefix" +PLG_SYSTEM_MOKOWAAS_ERP_CUST_PREFIX_DESC="Prefix for auto-generated customer codes (e.g. CU → CU2026-001)." +PLG_SYSTEM_MOKOWAAS_ERP_VEND_PREFIX_LABEL="Vendor Code Prefix" +PLG_SYSTEM_MOKOWAAS_ERP_VEND_PREFIX_DESC="Prefix for auto-generated vendor codes (e.g. VN → VN2026-001)." + +PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_PIPELINE="Pipeline & Defaults" +PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_PIPELINE_DESC="Default settings for deals and payment terms." +PLG_SYSTEM_MOKOWAAS_ERP_CURRENCY_LABEL="Default Currency" +PLG_SYSTEM_MOKOWAAS_ERP_CURRENCY_DESC="ISO 4217 currency code for new deals (e.g. USD, EUR, GBP)." +PLG_SYSTEM_MOKOWAAS_ERP_PAYMENT_TERMS_LABEL="Default Payment Terms (days)" +PLG_SYSTEM_MOKOWAAS_ERP_PAYMENT_TERMS_DESC="Default payment terms in days for new customer/vendor roles." diff --git a/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.sys.ini b/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.sys.ini new file mode 100644 index 00000000..44185dcb --- /dev/null +++ b/source/packages/plg_system_mokowaas_erp/language/en-GB/plg_system_mokowaas_erp.sys.ini @@ -0,0 +1,3 @@ +; MokoWaaS ERP Plugin - System strings +PLG_SYSTEM_MOKOWAAS_ERP="System - MokoWaaS ERP" +PLG_SYSTEM_MOKOWAAS_ERP_DESC="Extends Joomla Contacts with ERP roles (customer, vendor, prospect), deals pipeline, and activity tracking." diff --git a/source/packages/plg_system_mokowaas_crm/mokowaas_crm.xml b/source/packages/plg_system_mokowaas_erp/mokowaas_erp.xml similarity index 54% rename from source/packages/plg_system_mokowaas_crm/mokowaas_crm.xml rename to source/packages/plg_system_mokowaas_erp/mokowaas_erp.xml index 234c6ad6..73aa0bd4 100644 --- a/source/packages/plg_system_mokowaas_crm/mokowaas_crm.xml +++ b/source/packages/plg_system_mokowaas_erp/mokowaas_erp.xml @@ -1,7 +1,7 @@ - System - MokoWaaS CRM - mokowaas_crm + System - MokoWaaS ERP + mokowaas_erp Moko Consulting 2026-06-06 Copyright (C) 2026 Moko Consulting. All rights reserved. @@ -9,8 +9,8 @@ hello@mokoconsulting.tech https://mokoconsulting.tech 02.34.16 - PLG_SYSTEM_MOKOWAAS_CRM_DESC - Moko\Plugin\System\MokoWaaSCrm + PLG_SYSTEM_MOKOWAAS_ERP_DESC + Moko\Plugin\System\MokoWaaSErp src @@ -20,8 +20,8 @@ - en-GB/plg_system_mokowaas_crm.ini - en-GB/plg_system_mokowaas_crm.sys.ini + en-GB/plg_system_mokowaas_erp.ini + en-GB/plg_system_mokowaas_erp.sys.ini @@ -39,52 +39,52 @@
+ label="PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_BASIC" + description="PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_BASIC_DESC"> + label="PLG_SYSTEM_MOKOWAAS_ERP_CUST_PREFIX_LABEL" + description="PLG_SYSTEM_MOKOWAAS_ERP_CUST_PREFIX_DESC" /> + label="PLG_SYSTEM_MOKOWAAS_ERP_VEND_PREFIX_LABEL" + description="PLG_SYSTEM_MOKOWAAS_ERP_VEND_PREFIX_DESC" />
+ label="PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_PIPELINE" + description="PLG_SYSTEM_MOKOWAAS_ERP_FIELDSET_PIPELINE_DESC"> + label="PLG_SYSTEM_MOKOWAAS_ERP_CURRENCY_LABEL" + description="PLG_SYSTEM_MOKOWAAS_ERP_CURRENCY_DESC" /> + label="PLG_SYSTEM_MOKOWAAS_ERP_PAYMENT_TERMS_LABEL" + description="PLG_SYSTEM_MOKOWAAS_ERP_PAYMENT_TERMS_DESC" />
diff --git a/source/packages/plg_system_mokowaas_crm/services/provider.php b/source/packages/plg_system_mokowaas_erp/services/provider.php similarity index 80% rename from source/packages/plg_system_mokowaas_crm/services/provider.php rename to source/packages/plg_system_mokowaas_erp/services/provider.php index 3466571d..5de1eae8 100644 --- a/source/packages/plg_system_mokowaas_crm/services/provider.php +++ b/source/packages/plg_system_mokowaas_erp/services/provider.php @@ -1,7 +1,7 @@ get(DispatcherInterface::class); - $plugin = new Crm($dispatcher, (array) PluginHelper::getPlugin('system', 'mokowaas_crm')); + $plugin = new Erp($dispatcher, (array) PluginHelper::getPlugin('system', 'mokowaas_erp')); $plugin->setApplication(Factory::getApplication()); return $plugin; diff --git a/source/packages/plg_system_mokowaas_crm/sql/install.mysql.sql b/source/packages/plg_system_mokowaas_erp/sql/install.mysql.sql similarity index 90% rename from source/packages/plg_system_mokowaas_crm/sql/install.mysql.sql rename to source/packages/plg_system_mokowaas_erp/sql/install.mysql.sql index 74b9b27e..f1e37e11 100644 --- a/source/packages/plg_system_mokowaas_crm/sql/install.mysql.sql +++ b/source/packages/plg_system_mokowaas_erp/sql/install.mysql.sql @@ -1,12 +1,12 @@ -- --- MokoWaaS CRM Tables +-- MokoWaaS ERP Tables -- -- --- Contact CRM roles (customer, vendor, prospect) +-- Contact ERP roles (customer, vendor, prospect) -- Links to Joomla #__contact_details via contact_id -- -CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_roles` ( +CREATE TABLE IF NOT EXISTS `#__mokowaas_erp_roles` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `contact_id` INT NOT NULL, `role` ENUM('customer','vendor','prospect') NOT NULL, @@ -28,7 +28,7 @@ CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_roles` ( -- -- Configurable deal pipeline stages -- -CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_pipeline_stages` ( +CREATE TABLE IF NOT EXISTS `#__mokowaas_erp_pipeline_stages` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `alias` VARCHAR(255) NOT NULL DEFAULT '', @@ -42,7 +42,7 @@ CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_pipeline_stages` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Default pipeline stages -INSERT IGNORE INTO `#__mokowaas_crm_pipeline_stages` +INSERT IGNORE INTO `#__mokowaas_erp_pipeline_stages` (`id`, `title`, `alias`, `probability`, `ordering`, `color`, `published`) VALUES (1, 'Lead', 'lead', 10, 1, '#6c757d', 1), (2, 'Qualified', 'qualified', 25, 2, '#0d6efd', 1), @@ -54,7 +54,7 @@ INSERT IGNORE INTO `#__mokowaas_crm_pipeline_stages` -- -- Sales pipeline deals -- -CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_deals` ( +CREATE TABLE IF NOT EXISTS `#__mokowaas_erp_deals` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `contact_id` INT NOT NULL, @@ -83,7 +83,7 @@ CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_deals` ( -- -- Activity log per contact/deal -- -CREATE TABLE IF NOT EXISTS `#__mokowaas_crm_activities` ( +CREATE TABLE IF NOT EXISTS `#__mokowaas_erp_activities` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `contact_id` INT NOT NULL, `deal_id` INT UNSIGNED DEFAULT NULL, diff --git a/source/packages/plg_system_mokowaas_erp/sql/uninstall.mysql.sql b/source/packages/plg_system_mokowaas_erp/sql/uninstall.mysql.sql new file mode 100644 index 00000000..7e46f5cf --- /dev/null +++ b/source/packages/plg_system_mokowaas_erp/sql/uninstall.mysql.sql @@ -0,0 +1,4 @@ +DROP TABLE IF EXISTS `#__mokowaas_erp_activities`; +DROP TABLE IF EXISTS `#__mokowaas_erp_deals`; +DROP TABLE IF EXISTS `#__mokowaas_erp_pipeline_stages`; +DROP TABLE IF EXISTS `#__mokowaas_erp_roles`; diff --git a/source/packages/plg_system_mokowaas_crm/src/Extension/Crm.php b/source/packages/plg_system_mokowaas_erp/src/Extension/Erp.php similarity index 76% rename from source/packages/plg_system_mokowaas_crm/src/Extension/Crm.php rename to source/packages/plg_system_mokowaas_erp/src/Extension/Erp.php index 1c57a662..0f6f9a17 100644 --- a/source/packages/plg_system_mokowaas_crm/src/Extension/Crm.php +++ b/source/packages/plg_system_mokowaas_erp/src/Extension/Erp.php @@ -1,12 +1,12 @@ toSql(); $user = Factory::getUser(); @@ -199,22 +199,22 @@ class Crm extends CMSPlugin implements SubscriberInterface 'created_by' => (int) $user->id, ]; - $db->insertObject('#__mokowaas_crm_roles', $obj); + $db->insertObject('#__mokowaas_erp_roles', $obj); Log::add( - sprintf('CRM role created: %s (%s) for contact %d', $role, $code, $contactId), + sprintf('ERP role created: %s (%s) for contact %d', $role, $code, $contactId), Log::INFO, - 'mokowaas.crm' + 'mokowaas.erp' ); } catch (\Throwable $e) { - Log::add('CRM role creation failed: ' . $e->getMessage(), Log::ERROR, 'mokowaas.crm'); + Log::add('ERP role creation failed: ' . $e->getMessage(), Log::ERROR, 'mokowaas.erp'); } } /** - * Remove all CRM data linked to a contact being deleted. + * Remove all ERP data linked to a contact being deleted. * * @param int $contactId The contact ID being deleted. */ @@ -223,9 +223,9 @@ class Crm extends CMSPlugin implements SubscriberInterface $db = Factory::getDbo(); $tables = [ - '#__mokowaas_crm_activities', - '#__mokowaas_crm_deals', - '#__mokowaas_crm_roles', + '#__mokowaas_erp_activities', + '#__mokowaas_erp_deals', + '#__mokowaas_erp_roles', ]; foreach ($tables as $table) @@ -242,17 +242,17 @@ class Crm extends CMSPlugin implements SubscriberInterface catch (\Throwable $e) { Log::add( - sprintf('CRM cascade delete failed on %s for contact %d: %s', $table, $contactId, $e->getMessage()), + sprintf('ERP cascade delete failed on %s for contact %d: %s', $table, $contactId, $e->getMessage()), Log::ERROR, - 'mokowaas.crm' + 'mokowaas.erp' ); } } Log::add( - sprintf('CRM data cascade-deleted for contact %d', $contactId), + sprintf('ERP data cascade-deleted for contact %d', $contactId), Log::INFO, - 'mokowaas.crm' + 'mokowaas.erp' ); } } diff --git a/source/packages/plg_system_mokowaas_crm/src/Helper/CrmHelper.php b/source/packages/plg_system_mokowaas_erp/src/Helper/ErpHelper.php similarity index 85% rename from source/packages/plg_system_mokowaas_crm/src/Helper/CrmHelper.php rename to source/packages/plg_system_mokowaas_erp/src/Helper/ErpHelper.php index 1a75fca5..110462c4 100644 --- a/source/packages/plg_system_mokowaas_crm/src/Helper/CrmHelper.php +++ b/source/packages/plg_system_mokowaas_erp/src/Helper/ErpHelper.php @@ -1,30 +1,30 @@ setQuery( $db->getQuery(true) ->select('MAX(' . $db->quoteName('code') . ')') - ->from($db->quoteName('#__mokowaas_crm_roles')) + ->from($db->quoteName('#__mokowaas_erp_roles')) ->where($db->quoteName('role') . ' = ' . $db->quote($role)) ->where($db->quoteName('code') . ' LIKE ' . $like) ); @@ -85,10 +85,10 @@ class CrmHelper } /** - * Check whether a CRM role already exists for a contact. + * Check whether a ERP role already exists for a contact. * * @param int $contactId The contact ID. - * @param string $role The CRM role. + * @param string $role The ERP role. * * @return bool */ @@ -99,7 +99,7 @@ class CrmHelper $db->setQuery( $db->getQuery(true) ->select('COUNT(*)') - ->from($db->quoteName('#__mokowaas_crm_roles')) + ->from($db->quoteName('#__mokowaas_erp_roles')) ->where($db->quoteName('contact_id') . ' = ' . (int) $contactId) ->where($db->quoteName('role') . ' = ' . $db->quote($role)) ); @@ -108,9 +108,9 @@ class CrmHelper } /** - * Get CRM statistics for health/heartbeat reporting. + * Get ERP statistics for health/heartbeat reporting. * - * @return array Associative array of CRM metrics. + * @return array Associative array of ERP metrics. */ public static function getStats(): array { @@ -134,7 +134,7 @@ class CrmHelper $db->getQuery(true) ->select($db->quoteName('role')) ->select('COUNT(*) AS ' . $db->quoteName('cnt')) - ->from($db->quoteName('#__mokowaas_crm_roles')) + ->from($db->quoteName('#__mokowaas_erp_roles')) ->where($db->quoteName('status') . ' = ' . $db->quote('active')) ->group($db->quoteName('role')) ); @@ -156,7 +156,7 @@ class CrmHelper $db->getQuery(true) ->select('COUNT(*) AS ' . $db->quoteName('cnt')) ->select('COALESCE(SUM(' . $db->quoteName('value') . '), 0) AS ' . $db->quoteName('total')) - ->from($db->quoteName('#__mokowaas_crm_deals')) + ->from($db->quoteName('#__mokowaas_erp_deals')) ->where($db->quoteName('status') . ' = ' . $db->quote('open')) ); @@ -169,7 +169,7 @@ class CrmHelper $db->getQuery(true) ->select($db->quoteName('status')) ->select('COUNT(*) AS ' . $db->quoteName('cnt')) - ->from($db->quoteName('#__mokowaas_crm_deals')) + ->from($db->quoteName('#__mokowaas_erp_deals')) ->where($db->quoteName('status') . ' IN (' . $db->quote('won') . ',' . $db->quote('lost') . ')') ->group($db->quoteName('status')) ); diff --git a/source/pkg_mokowaas.xml b/source/pkg_mokowaas.xml index 64611dae..ab35d454 100644 --- a/source/pkg_mokowaas.xml +++ b/source/pkg_mokowaas.xml @@ -20,7 +20,7 @@ plg_system_mokowaas_tenant.zip plg_system_mokowaas_devtools.zip plg_system_mokowaas_offline.zip - plg_system_mokowaas_crm.zip + plg_system_mokowaas_erp.zip com_mokowaas.zip mod_mokowaas_cpanel.zip mod_mokowaas_menu.zip