HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/slfopp7cb1df/public_html/conradinvestmentgroup.com/pm/plugins/Manufacturing/index.php
<?php
defined('PLUGINPATH') or exit('No direct script access allowed');

/*
Plugin Name: Manufacturing Management
Description: This solution supports the entire spectrum of manufacturing styles, from high volume to engineer‐to‐order, and coordinates orders, equipment, facilities, inventory, and work-in-progress to minimize costs and maximize on-time delivery
Version: 1.0.0
Requires at least: 3.0
Author: GreenTech Solutions
Author URI: https://codecanyon.net/user/greentech_solutions
*/

use App\Libraries\Template;
use App\Controllers\Security_Controller;

if(!defined('VERSION_MANUFACTURING')){
	define('VERSION_MANUFACTURING', 100);
}

/*Modules Path*/
if(!defined('APP_MODULES_PATH')){
	define('APP_MODULES_PATH', FCPATH . 'plugins/');
}
if(!defined('MANUFACTURING_MODULE_UPLOAD_FOLDER')){
	define('MANUFACTURING_MODULE_UPLOAD_FOLDER', 'plugins/Manufacturing/Uploads');
}
if(!defined('MANUFACTURING_PATH')){
	define('MANUFACTURING_PATH', 'plugins/Manufacturing/Uploads/');
}

if(!defined('MANUFACTURING_OPERATION_ATTACHMENTS_UPLOAD_FOLDER')){
	define('MANUFACTURING_OPERATION_ATTACHMENTS_UPLOAD_FOLDER', 'plugins/Manufacturing/Uploads/operations/');
}
if(!defined('MANUFACTURING_PRODUCT_UPLOAD')){
	define('MANUFACTURING_PRODUCT_UPLOAD', 'plugins/Manufacturing/Uploads/products/');
}

if(!defined('OPERATION_ATTACHMENTS')){
	define('OPERATION_ATTACHMENTS', 'plugins/Manufacturing/Uploads/operations/');
}
if(!defined('MANUFACTURING_PRINT_ITEM')){
	define('MANUFACTURING_PRINT_ITEM', 'plugins/Manufacturing/Uploads/print_item/');
}

if(!defined('EXT')){
	define('EXT', '.php');
}
if(!defined('MANUFACTURING_VIEWPATH')){
    define('MANUFACTURING_VIEWPATH', 'plugins/Manufacturing');    
}

app_hooks()->add_filter('app_hook_head_extension', function () {
	$viewuri = $_SERVER['REQUEST_URI'];
	/*add css file*/

	if(!(strpos($viewuri,'manufacturing') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/styles.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/main/main.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
	}
	if(!(strpos($viewuri,'manufacturing/add_edit_work_center') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/chart_on_header.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
	}

	if(!(strpos($viewuri,'manufacturing/add_edit_working_hour') === false) || !(strpos($viewuri,'manufacturing/add_edit_manufacturing_order') === false) || !(strpos($viewuri,'manufacturing/view_manufacturing_order') === false) || !(strpos($viewuri,'manufacturing/view_work_order') === false) ){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/handsontable/handsontable.full.min.css') . '"  rel="stylesheet" type="text/css" />';
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/handsontable/chosen.css') . '"  rel="stylesheet" type="text/css" />';
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/handsontable/handsontable.full.min.js') . '"></script>';
	}

	if(!(strpos($viewuri,'manufacturing/add_edit_product') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/products/product_chart_on_header.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/loading.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
	}

	if(!(strpos($viewuri,'manufacturing/view_work_order') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/work_orders/view_work_order.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
	}

	if(!(strpos($viewuri,'manufacturing/mo_work_order_manage') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/frappe-gantt/frappe-gantt.css') . '"  rel="stylesheet" type="text/css" />';
	}
	if(!(strpos($viewuri,'manufacturing/dashboard') === false)){
		echo '<link href="' . base_url('plugins/Manufacturing/assets/css/dashboard.css') . '?v=' . VERSION_MANUFACTURING. '"  rel="stylesheet" type="text/css" />';
	}

	if (!(strpos($viewuri, '/manufacturing/view_product_detail') === false)) {
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/simplelightbox/simple-lightbox.min.css') . '"  rel="stylesheet" type="text/css" />';
		echo '<link href="' . base_url('plugins/Manufacturing/assets/plugins/simplelightbox/masonry-layout-vanilla.min.css') . '"  rel="stylesheet" type="text/css" />';
	}  

});

app_hooks()->add_filter('app_hook_head_extension', function () {
	$viewuri = $_SERVER['REQUEST_URI'];
	/*add js file*/

	if (!(strpos($viewuri, '/manufacturing') === false)) {
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/main/main.js') . '?v=' . VERSION_MANUFACTURING . '"></script>';
	}

	if(!(strpos($viewuri,'manufacturing/dashboard') === false)){

		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/highcharts.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/variable-pie.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/export-data.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/accessibility.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/exporting.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
		echo '<script src="'.base_url('plugins/Manufacturing/assets/plugins/highcharts/highcharts-3d.js').'?v=' . VERSION_MANUFACTURING.'"></script>';
	}

	if (!(strpos($viewuri, 'manufacturing/add_edit_working_hour') === false) || !(strpos($viewuri, 'manufacturing/add_edit_manufacturing_order') === false)|| !(strpos($viewuri, 'manufacturing/view_manufacturing_order') === false) || !(strpos($viewuri, 'manufacturing/view_work_order') === false) ) {
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/handsontable/chosen.jquery.js') . '"></script>';
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/handsontable/handsontable-chosen-editor.js') . '"></script>';
	}

	if(!(strpos($viewuri,'manufacturing/mo_work_order_manage') === false)){
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/frappe-gantt/frappe-gantt.min.js') . '"></script>';
	}

	if (!(strpos($viewuri, '/manufacturing/view_product_detail') === false)) { 
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/simplelightbox/simple-lightbox.min.js') . '"></script>';
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/simplelightbox/simple-lightbox.jquery.min.js') . '"></script>';
		echo '<script src="' . base_url('plugins/Manufacturing/assets/plugins/simplelightbox/masonry-layout-vanilla.min.js') . '"></script>';

	}
});

app_hooks()->add_action('app_hook_role_permissions_extension_plugins', function ($permissions){
	$viewuri = $_SERVER['REQUEST_URI'];

	$permission_data = [];

	if((strpos($viewuri,'manufacturing/role_permissions') === false)){

		$permission_data['manufacturing_can_view_global'] = get_array_value($permissions, "manufacturing_can_view_global");
		$permission_data['manufacturing_can_create'] = get_array_value($permissions, "manufacturing_can_create");
		$permission_data['manufacturing_can_edit'] = get_array_value($permissions, "manufacturing_can_edit");
		$permission_data['manufacturing_can_delete'] = get_array_value($permissions, "manufacturing_can_delete");

		$Template = new Template(false);

		$ci = new Security_Controller(false);
		$access_manufacturing = get_array_value($permissions, "manufacturing");
		if (is_null($access_manufacturing)) {
			$access_manufacturing = "";
		}

		echo  $Template->view('Manufacturing\Views\settings/manufacturing_permissions', $permission_data);

	}else{
		echo '';
	}
});

app_hooks()->add_filter('app_filter_role_permissions_save_data_plugin', function ($permissions,$data) {
	$viewuri = $_SERVER['REQUEST_URI'];
	
	/*data*/
	$manufacturing_data=[];

	if((strpos($viewuri,'manufacturing/role_permissions') === false)){

		$manufacturing_data['manufacturing_can_view_global'] = isset($data['manufacturing_can_view_global']) ? $data['manufacturing_can_view_global'] : NULL;
		$manufacturing_data['manufacturing_can_create'] = isset($data['manufacturing_can_create']) ? $data['manufacturing_can_create'] : NULL;
		$manufacturing_data['manufacturing_can_edit'] = isset($data['manufacturing_can_edit']) ? $data['manufacturing_can_edit'] : NULL;
		$manufacturing_data['manufacturing_can_delete'] = isset($data['manufacturing_can_delete']) ? $data['manufacturing_can_delete'] : NULL;

		$permissions = array_merge($permissions, $manufacturing_data);
	}

	return $permissions;
});

app_hooks()->add_filter('app_filter_notification_config', function ($events) {

	return $events;
});


/*add menu item to left menu*/
app_hooks()->add_filter('app_filter_staff_left_menu', function ($sidebar_menu) {
	$manufacturing_submenu = array();
	$ci = new Security_Controller(false);
	$permissions = $ci->login_user->permissions;

	if ($ci->login_user->is_admin || mrp_has_permission("manufacturing_can_view_global")) {
		$manufacturing_submenu["dashboard"] = array(
			"name" => "mrp_dashboard", 
			"url" => "manufacturing/dashboard", 
			"class" => "industry",
		);
		
		$manufacturing_submenu["product_management"] = array(
			"name" => "mrp_products", 
			"url" => "manufacturing/product_management", 
			"class" => "users",
		);
		$manufacturing_submenu["product_variant_management"] = array(
			"name" => "mrp_product_variants", 
			"url" => "manufacturing/product_variant_management", 
			"class" => "users",
		);
		$manufacturing_submenu["bill_of_material_manage"] = array(
			"name" => "mrp_bills_of_materials", 
			"url" => "manufacturing/bill_of_material_manage", 
			"class" => "users",
		);
		$manufacturing_submenu["routing_manage"] = array(
			"name" => "mrp_routings", 
			"url" => "manufacturing/routing_manage", 
			"class" => "users",
		);
		$manufacturing_submenu["work_center_manage"] = array(
			"name" => "mrp_work_centers", 
			"url" => "manufacturing/work_center_manage", 
			"class" => "users",
		);
		$manufacturing_submenu["manufacturing_order_manage"] = array(
			"name" => "mrp_manufaturing_orders", 
			"url" => "manufacturing/manufacturing_order_manage", 
			"class" => "users",
		);
		$manufacturing_submenu["work_order_manage"] = array(
			"name" => "mrp_work_orders", 
			"url" => "manufacturing/work_order_manage", 
			"class" => "users",
		);
		
		$manufacturing_submenu["working_hour"] = array(
			"name" => "mrp_settings", 
			"url" => "manufacturing/prefix_numbers", 
			"class" => "users",
		);
		

		$sidebar_menu["manufacturing"] = array(
			"name" => "manufacturing_name",
			"url" => "manufacturing",
			"class" => "inbox",
			"submenu" => $manufacturing_submenu,
			"position" => 7,

		);
	}

	return $sidebar_menu;

});


/*install dependencies*/
register_installation_hook("Manufacturing", function ($item_purchase_code) {
/*
* you can verify the item puchase code from here if you want. 
* you'll get the inputted puchase code with $item_purchase_code variable
* use exit(); here if there is anything doesn't meet it's requirements
*/
include PLUGINPATH . "Manufacturing/lib/gtsverify.php";
require_once(__DIR__ . '/install.php');
});

/*Active action*/
register_activation_hook("Manufacturing", function ($item_purchase_code) {
	require_once(__DIR__ . '/install.php');
});

/*add setting link to the plugin setting*/
app_hooks()->add_filter('app_filter_action_links_of_Manufacturing', function () {
	$action_links_array = array(
	);

	return $action_links_array;
});

/*update plugin*/
register_update_hook("Manufacturing", function () {
	require_once __DIR__ . '/install.php';
});

/*uninstallation: remove data from database*/
register_uninstallation_hook("Manufacturing", function () {
	require_once __DIR__ . '/uninstall.php';
});

app_hooks()->add_action('app_hook_manufacturing_init', function (){
    require_once __DIR__ .'/lib/gtsslib.php';
    $lic_mf = new ManufacturingLic();
    $mf_gtssres = $lic_mf->verify_license(true);    
    if(!$mf_gtssres || ($mf_gtssres && isset($mf_gtssres['status']) && !$mf_gtssres['status'])){
        echo '<strong>YOUR MANUFACURING MANAGEMENT PLUGIN FAILED ITS VERIFICATION. PLEASE <a href="/index.php/Plugins">REINSTALL</a> OR CONTACT SUPPORT</strong>';
        exit();
    } 
});
app_hooks()->add_action('app_hook_uninstall_plugin_Manufacturing', function (){
    require_once __DIR__ .'/lib/gtsslib.php';
    $lic_mf = new ManufacturingLic();
    $lic_mf->deactivate_license();    
});