commit;

--
-- Table structure for table `journal_entry_lines_backup_20250111`
--

CREATE TABLE `journal_entry_lines_backup_20250111` (
  `id` int(10) unsigned NOT NULL DEFAULT 0,
  `entry_id` int(10) unsigned NOT NULL,
  `account_id` int(10) unsigned NOT NULL,
  `debit` decimal(15,2) DEFAULT 0.00,
  `credit` decimal(15,2) DEFAULT 0.00,
  `description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `journal_entry_lines_backup_20250111`
--

set autocommit=0;
INSERT INTO `journal_entry_lines_backup_20250111` VALUES
(1,3,21,308025.00,0.00,'Invoice #INV-20251031-8225','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(2,3,12,0.00,308025.00,'Sales revenue for Invoice #INV-20251031-8225','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(3,7,2,1936.00,0.00,'Payment for Invoice #INV-20251031-7461','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(4,7,21,0.00,1936.00,'Payment for Invoice #INV-20251031-7461','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(5,8,21,999.00,0.00,'Invoice #INV-20251031-3380','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(6,8,12,0.00,999.00,'Sales revenue for Invoice #INV-20251031-3380','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(7,9,2,999.00,0.00,'Payment for Invoice #INV-20251031-3380','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(8,9,21,0.00,999.00,'Payment for Invoice #INV-20251031-3380','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(9,10,92,500000.00,0.00,'Initial cash investment - operating','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(10,10,94,250000.00,0.00,'Initial cash investment - savings','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(11,10,11,0.00,750000.00,'Capital stock - initial investment','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(12,12,2,1000000.00,0.00,'Opening balance - Bank account','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(13,12,10,0.00,1000000.00,'Opening balance - Equity','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(14,13,2,10000000.00,0.00,'Opening balance - Bank account','2025-11-11 00:33:35','2025-11-11 00:33:35'),
(15,13,10,0.00,10000000.00,'Opening balance - Equity','2025-11-11 00:33:35','2025-11-11 00:33:35');
commit;

--
-- Table structure for table `location_asset_overrides`
--

CREATE TABLE `location_asset_overrides` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `location_id` int(10) unsigned NOT NULL,
  `asset_category_id` int(10) unsigned NOT NULL,
  `useful_life_years` decimal(5,1) DEFAULT NULL COMMENT 'Override global value',
  `maintenance_capex_rate` decimal(5,2) DEFAULT NULL,
  `replacement_period_years` decimal(5,1) DEFAULT NULL,
  `capitalization_threshold` decimal(5,2) DEFAULT NULL,
  `depreciation_method` enum('straight_line','declining_balance','units_of_production') DEFAULT NULL,
  `salvage_value_percent` decimal(5,2) DEFAULT NULL,
  `notes` text DEFAULT NULL COMMENT 'Location-specific notes',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `location_category` (`location_id`,`asset_category_id`),
  KEY `asset_category_id` (`asset_category_id`),
  CONSTRAINT `location_asset_overrides_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `locations` (`id`) ON DELETE CASCADE,
  CONSTRAINT `location_asset_overrides_ibfk_2` FOREIGN KEY (`asset_category_id`) REFERENCES `asset_categories` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `location_asset_overrides`
--

set autocommit=0;
commit;

--
-- Table structure for table `location_capacity_forecast`
--

CREATE TABLE `location_capacity_forecast` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `assumption_set_id` int(11) NOT NULL,
  `location_id` int(10) unsigned NOT NULL,
  `equipment_line_id` int(10) unsigned DEFAULT NULL,
  `projection_date` date NOT NULL,
  `period_type` enum('monthly','quarterly','annual') DEFAULT 'monthly',
  `available_hours` decimal(12,2) NOT NULL,
  `planned_production_hours` decimal(12,2) NOT NULL,
  `utilization_pct` decimal(5,2) NOT NULL,
  `bottleneck` tinyint(1) DEFAULT 0 COMMENT 'Is this a capacity bottleneck?',
  `fixed_costs` decimal(15,2) DEFAULT 0.00 COMMENT 'Facility rent, utilities, etc',
  `variable_costs` decimal(15,2) DEFAULT 0.00 COMMENT 'Based on actual production',
  `labor_costs` decimal(15,2) DEFAULT 0.00,
  `overhead_costs` decimal(15,2) DEFAULT 0.00,
  `generated_at` timestamp NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_set` (`assumption_set_id`),
  KEY `idx_location` (`location_id`),
  KEY `idx_equipment` (`equipment_line_id`),
  KEY `idx_date` (`projection_date`),
  CONSTRAINT `location_capacity_forecast_ibfk_1` FOREIGN KEY (`assumption_set_id`) REFERENCES `forecast_assumption_sets` (`id`) ON DELETE CASCADE,
  CONSTRAINT `location_capacity_forecast_ibfk_2` FOREIGN KEY (`location_id`) REFERENCES `locations` (`id`) ON DELETE CASCADE,
  CONSTRAINT `location_capacity_forecast_ibfk_3` FOREIGN KEY (`equipment_line_id`) REFERENCES `equipment_lines` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `location_capacity_forecast`
--

set autocommit=0;
commit;

--
-- Table structure for table `locations`
--

CREATE TABLE `locations` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `code` varchar(50) NOT NULL,
  `address` text DEFAULT NULL,
  `city` varchar(100) DEFAULT NULL,
  `state` varchar(100) DEFAULT NULL,
  `zip` varchar(20) DEFAULT NULL,
  `country` varchar(100) DEFAULT NULL,
  `square_footage` decimal(10,2) DEFAULT NULL COMMENT 'Square footage of the location',
  `phone` varchar(20) DEFAULT NULL,
  `manager_id` int(10) unsigned DEFAULT NULL,
  `status` enum('active','inactive') DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `description` text DEFAULT NULL,
  `work_days_per_week` decimal(3,1) DEFAULT NULL COMMENT 'Override global - work days per week',
  `work_hours_per_shift` decimal(4,1) DEFAULT NULL COMMENT 'Override global - hours per shift',
  `shifts_per_day` int(11) DEFAULT NULL COMMENT 'Override global - number of shifts',
  `working_weeks_per_year` int(11) DEFAULT NULL COMMENT 'Override global - working weeks per year',
  `labor_utilization_rate` decimal(5,2) DEFAULT NULL COMMENT 'Override global - labor utilization %',
  `hours_per_day` decimal(5,1) DEFAULT NULL COMMENT 'Override global - total hours per day',
  `facility_size_sqft` decimal(12,2) DEFAULT NULL COMMENT 'Location facility size in square feet',
  `capitalization_limit` decimal(12,2) DEFAULT NULL COMMENT 'Override global - capitalization threshold',
  `cpi_increase_rate` decimal(5,2) DEFAULT NULL COMMENT 'Override global - CPI increase rate',
  `project_start_date` date DEFAULT NULL COMMENT 'Override global - project start date',
  `base_year` int(11) DEFAULT NULL COMMENT 'Override global - base year',
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `deleted_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `code` (`code`),
  KEY `manager_id` (`manager_id`),
  KEY `idx_deleted_at` (`deleted_at`),
  CONSTRAINT `locations_ibfk_1` FOREIGN KEY (`manager_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `locations`
--

set autocommit=0;
INSERT INTO `locations` VALUES
(2,'Garage','GAR','123 Garage St','Garage','ST','11123','USA',85000.00,'',NULL,'active','2025-10-27 16:13:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2025-11-11 00:36:45',NULL),
(3,'Farm','FARM','123 Farm Road','Place','ST','11111','USA',6500000.00,'',NULL,'active','2025-10-27 16:13:38',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2025-11-11 00:36:45',NULL);
commit;

--
-- Table structure for table `lot_serial_movements`
--

CREATE TABLE `lot_serial_movements` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `lot_serial_id` int(10) unsigned NOT NULL,
  `movement_type` enum('receipt','shipment','transfer','adjustment','return','production','consumption') NOT NULL,
  `from_location_id` int(10) unsigned DEFAULT NULL,
  `to_location_id` int(10) unsigned DEFAULT NULL,
  `quantity` decimal(10,2) NOT NULL,
  `reference_type` varchar(50) DEFAULT NULL,
  `reference_id` int(10) unsigned DEFAULT NULL,
  `movement_date` datetime DEFAULT current_timestamp(),
  `notes` text DEFAULT NULL,
  `created_by` int(10) unsigned DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `from_location_id` (`from_location_id`),
  KEY `to_location_id` (`to_location_id`),
  KEY `created_by` (`created_by`),
  KEY `idx_lot_serial` (`lot_serial_id`),
  KEY `idx_movement_date` (`movement_date`),
  KEY `idx_reference` (`reference_type`,`reference_id`),
  CONSTRAINT `lot_serial_movements_ibfk_1` FOREIGN KEY (`lot_serial_id`) REFERENCES `lot_serial_numbers` (`id`) ON DELETE CASCADE,
  CONSTRAINT `lot_serial_movements_ibfk_2` FOREIGN KEY (`from_location_id`) REFERENCES `locations` (`id`) ON DELETE SET NULL,
  CONSTRAINT `lot_serial_movements_ibfk_3` FOREIGN KEY (`to_location_id`) REFERENCES `locations` (`id`) ON DELETE SET NULL,
  CONSTRAINT `lot_serial_movements_ibfk_4` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `lot_serial_movements`
--

set autocommit=0;
commit;

--
-- Table structure for table `lot_serial_numbers`
--

CREATE TABLE `lot_serial_numbers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) unsigned NOT NULL,
  `lot_number` varchar(100) DEFAULT NULL,
  `serial_number` varchar(100) DEFAULT NULL,
  `manufacture_date` date DEFAULT NULL,
  `expiration_date` date DEFAULT NULL,
  `quantity` decimal(10,2) DEFAULT 1.00,
  `location_id` int(10) unsigned DEFAULT NULL,
  `status` enum('active','reserved','sold','expired','returned') DEFAULT 'active',
  `notes` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `created_by` int(10) unsigned DEFAULT NULL,
  `last_notified_at` datetime DEFAULT NULL COMMENT 'Last expiry reminder sent',
  `notification_level` varchar(20) DEFAULT NULL COMMENT 'Current notification level: 30day, 7day, expired',
  PRIMARY KEY (`id`),
  KEY `location_id` (`location_id`),
  KEY `created_by` (`created_by`),
  KEY `idx_lot_number` (`lot_number`),
  KEY `idx_serial_number` (`serial_number`),
  KEY `idx_product` (`product_id`),
  KEY `idx_expiration` (`expiration_date`),
  KEY `idx_status` (`status`),
  KEY `idx_lot_expiry_notification` (`expiration_date`,`status`,`last_notified_at`),
  CONSTRAINT `lot_serial_numbers_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`),
  CONSTRAINT `lot_serial_numbers_ibfk_2` FOREIGN KEY (`location_id`) REFERENCES `locations` (`id`) ON DELETE SET NULL,
  CONSTRAINT `lot_serial_numbers_ibfk_3` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `lot_serial_numbers`
--

set autocommit=0;
commit;

--
-- Table structure for table `machine_events`
--

CREATE TABLE `machine_events` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `equipment_id` int(10) unsigned NOT NULL,
  `event_type` varchar(50) NOT NULL COMMENT 'e.g., status_change, production_update, utilization_update, alert',
  `event_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Event details in JSON format' CHECK (json_valid(`event_data`)),
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `equipment_id` (`equipment_id`),
  KEY `event_type` (`event_type`),
  KEY `created_at` (`created_at`),
  CONSTRAINT `machine_events_ibfk_1` FOREIGN KEY (`equipment_id`) REFERENCES `equipment` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Logs machine automation events and data integration';

--
-- Dumping data for table `machine_events`
--

set autocommit=0;
commit;

--
-- Table structure for table `material_requirements`
--

CREATE TABLE `material_requirements` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `work_order_id` int(10) unsigned DEFAULT NULL,
  `product_id` int(10) unsigned NOT NULL,
  `total_required` decimal(15,3) NOT NULL DEFAULT 0.000,
  `on_hand` decimal(15,3) NOT NULL DEFAULT 0.000,
  `on_order` decimal(15,3) NOT NULL DEFAULT 0.000,
  `allocated` decimal(15,3) NOT NULL DEFAULT 0.000,
  `net_required` decimal(15,3) NOT NULL DEFAULT 0.000,
  `suggested_order_date` date DEFAULT NULL,
  `requisition_created` tinyint(1) DEFAULT 0,
  `requisition_id` int(10) unsigned DEFAULT NULL,
  `calculated_at` datetime DEFAULT current_timestamp(),
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_work_order` (`work_order_id`),
  KEY `idx_product` (`product_id`),
  KEY `idx_calculated_at` (`calculated_at`),
  KEY `idx_net_required` (`net_required`),
  KEY `idx_material_req_product_calculated` (`product_id`,`calculated_at`),
  CONSTRAINT `material_requirements_ibfk_1` FOREIGN KEY (`work_order_id`) REFERENCES `work_orders` (`id`) ON DELETE CASCADE,
  CONSTRAINT `material_requirements_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `material_requirements`
--

set autocommit=0;
commit;

--
-- Temporary table structure for view `mention_stats`
--

/*!50001 DROP VIEW IF EXISTS `mention_stats`*/;
/*!50001 CREATE VIEW `mention_stats` AS SELECT
 1 AS `user_id`,
  1 AS `user_name`,
  1 AS `total_mentions`,
  1 AS `unread_mentions`,
  1 AS `last_mention_at` */;

--
-- Table structure for table `mentions`
--

CREATE TABLE `mentions` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `mentioned_by` int(10) unsigned NOT NULL,
  `entity_type` varchar(50) NOT NULL COMMENT 'Comment, Note, Message, etc.',
  `entity_id` int(11) NOT NULL COMMENT 'ID of the comment/note/message',
  `related_type` varchar(50) DEFAULT NULL COMMENT 'Invoice, Quote, Task, etc.',
  `related_id` int(11) DEFAULT NULL COMMENT 'ID of the invoice/quote/task',
  `content_snippet` varchar(500) DEFAULT NULL COMMENT 'Snippet of text where mention occurred',
  `is_read` tinyint(1) DEFAULT 0,
  `read_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`,`is_read`),
  KEY `idx_mentioned_by` (`mentioned_by`),
  KEY `idx_entity` (`entity_type`,`entity_id`),
  KEY `idx_related` (`related_type`,`related_id`),
  CONSTRAINT `mentions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `mentions_ibfk_2` FOREIGN KEY (`mentioned_by`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Track @mentions across the system';

--
-- Dumping data for table `mentions`
--

set autocommit=0;
commit;

--
-- Table structure for table `menu_items`
--

CREATE TABLE `menu_items` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) DEFAULT NULL,
  `label` varchar(100) NOT NULL,
  `icon` varchar(50) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL,
  `target` varchar(20) DEFAULT '_self',
  `permission_required` varchar(100) DEFAULT NULL COMMENT 'Permission key to check (e.g., users.view)',
  `display_order` int(11) DEFAULT 0,
  `is_active` tinyint(1) DEFAULT 1,
  `is_header` tinyint(1) DEFAULT 0 COMMENT 'Is this a section header?',
  `is_app_grid` tinyint(1) DEFAULT 0,
  `badge_query` text DEFAULT NULL COMMENT 'SQL query to get badge count',
  `badge_color` varchar(20) DEFAULT NULL COMMENT 'Badge color: primary, danger, warning, etc.',
  `urgent_threshold` int(11) DEFAULT NULL COMMENT 'If badge count > this, show as urgent',
  `urgent_color` varchar(20) DEFAULT NULL COMMENT 'Color when urgent',
  `description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_parent` (`parent_id`),
  KEY `idx_order` (`display_order`),
  KEY `idx_active` (`is_active`),
  KEY `idx_permission` (`permission_required`),
  CONSTRAINT `menu_items_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `menu_items` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=364 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `menu_items`
--

set autocommit=0;
INSERT INTO `menu_items` VALUES
(1,NULL,'Dashboard','bi bi-cpu','dashboard','_self','dashboard.view',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:43:45','2025-11-30 01:23:31'),
(2,NULL,'DEPARTMENTS',NULL,NULL,'_self',NULL,100,1,1,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:43:45','2025-11-01 17:43:45'),
(3,2,'CRM','bi bi-person-badge','#','_self','crm.view',20,1,0,0,'','',NULL,'','','2025-11-01 17:44:23','2025-11-11 11:44:58'),
(4,3,'Dashboard','','crm/dashboard','_self','crm.dashboard',10,1,0,0,'','',NULL,'','','2025-11-01 17:44:23','2025-11-29 19:13:00'),
(5,3,'Companies','','companies','_self','companies.view',25,1,0,0,'SELECT COUNT(*) FROM customers WHERE status = \'active\'','',NULL,'','','2025-11-01 17:44:23','2025-11-28 22:27:00'),
(7,3,'Contacts','','crm/contacts','_self','crm.contacts',20,1,0,0,'SELECT ((SELECT COUNT(*) FROM client_contacts) + (SELECT COUNT(*) FROM customer_contacts))','primary',NULL,'','','2025-11-01 17:44:23','2025-11-29 19:13:00'),
(8,3,'Activities','','crm/activities','_self','crm.activities',15,1,0,0,'SELECT COUNT(*) as count FROM activities WHERE assigned_to = {user_id} AND activity_date = CURDATE() AND status != \'completed\'','info',3,'warning','','2025-11-01 17:44:23','2025-11-29 19:13:00'),
(10,3,'Opportunities','','crm/opportunities','_self','crm.opportunities',60,1,0,0,'SELECT COUNT(*) as count FROM opportunities WHERE status NOT IN (\'won\', \'lost\', \'closed\')','success',5,'warning','','2025-11-01 17:44:23','2025-11-29 19:13:00'),
(11,3,'Support','','#','_self','crm.view',80,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE status NOT IN (\'closed\', \'resolved\')','danger',2,'warning','','2025-11-01 17:44:23','2025-11-11 12:23:42'),
(12,11,'Tickets',NULL,'crm/support','_self','crm.view',1,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE status NOT IN (\'closed\', \'resolved\')','danger',2,'warning',NULL,'2025-11-01 17:44:23','2025-11-11 11:15:46'),
(14,3,'Reports','','crm/reports','_self','crm.reports',90,1,0,0,'','',NULL,'','','2025-11-01 17:44:23','2025-11-29 19:13:00'),
(15,NULL,'ADMIN','','','_self','admin',400,1,1,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-08 15:02:09'),
(16,15,'Announcements','bi bi-megaphone-fill','announcements','_self','announcements.view',1,1,0,0,'SELECT COUNT(*) as count FROM announcements WHERE status = \'active\' AND start_date <= CURDATE() AND (end_date IS NULL OR end_date >= CURDATE())','info',NULL,'','','2025-11-01 17:44:54','2025-11-28 22:27:00'),
(17,15,'Settings','bi bi-gear-wide-connected','#','_self','admin',2,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-08 15:02:28'),
(18,17,'Company Settings','','#','_self','admin',50,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-17 11:28:18'),
(19,18,'Company Info',NULL,'settings/company','_self','settings.company',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(20,18,'Email Settings',NULL,'settings/email','_self','settings.email',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(21,18,'Locations',NULL,'locations','_self','locations.view',3,1,0,0,'SELECT COUNT(*) FROM locations WHERE is_active = 1','primary',NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-28 22:27:00'),
(22,17,'Financial Settings','','#','_self','admin',60,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-17 11:29:22'),
(23,22,'Tax Settings','','settings/tax','_self','settings.tax',5,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-29 19:13:00'),
(24,22,'Fiscal Year',NULL,'settings/fiscal-year','_self','settings.fiscal_year',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(25,22,'Payment Terms',NULL,'settings/payment-terms','_self','settings.payment_terms',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(26,22,'Cost Allocation','','settings/cost-allocation','_self','settings.cost_allocation',1,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-29 19:13:00'),
(27,22,'PP&E Parameters','','settings/ppe-parameters','_self','settings.ppe_parameters',4,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-29 19:13:00'),
(28,17,'Location Settings','','#','_self','admin',80,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-17 11:29:38'),
(29,28,'Business Parameters',NULL,'settings/business-parameters','_self','settings.business_parameters',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(30,28,'Facilities & Leasing',NULL,'settings/facilities','_self','settings.facilities',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(31,28,'Payroll Settings',NULL,'settings/payroll','_self','settings.payroll',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(32,17,'Security Settings','','#','_self','admin',140,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-29 12:46:27'),
(33,32,'Users','','users','_self','users.view',5,1,0,0,'SELECT COUNT(*) as count FROM users WHERE status != \'active\'','',NULL,'','','2025-11-01 17:44:54','2025-11-30 13:39:08'),
(35,17,'System Configuration','','#','_self','admin',150,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-24 19:17:51'),
(36,281,'Menu Mgmt','','menus','_self','menus.view',20,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-28 22:27:00'),
(37,35,'Dropdowns',NULL,'#','_self','admin',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-08 15:04:07'),
(38,37,'Sales & CRM','','settings/dropdowns/sales','_self','settings.sales__crm',3,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-29 19:15:36'),
(39,37,'Operations',NULL,'settings/dropdowns/operations','_self','settings.operations',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:15:36'),
(40,35,'Templates','','#','_self','admin',6,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-24 19:17:08'),
(42,40,'Terms & Conditions',NULL,'settings/terms-conditions','_self','settings.terms_conditions',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:44:54','2025-11-29 19:13:00'),
(43,35,'QuickBooks Mgmt','','quickbooks','_self','quickbooks.view',3,1,0,0,'','',NULL,'','','2025-11-01 17:44:54','2025-11-28 22:27:00'),
(44,2,'Accounting','bi bi-calculator','#','_self','accounting.view',10,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-11-11 11:44:58'),
(45,61,'All Report Package','','accounting/reports/package','_self','accounting.all_report_package',0,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-11-29 19:15:36'),
(46,44,'Core Accounting','','#','_self','accounting.view',30,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-11-15 19:19:45'),
(47,46,'Chart of Accounts',NULL,'accounting/accounts','_self','accounting.accounts',1,1,0,0,'SELECT COUNT(*) FROM chart_of_accounts WHERE status = \'active\'','primary',NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(48,46,'Journal Entries',NULL,'accounting/journal','_self','accounting.journal',2,1,0,0,'SELECT COUNT(*) as count FROM journal_entries WHERE status = \'draft\'','primary',0,'warning',NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(49,46,'General Ledger',NULL,'accounting/ledger','_self','accounting.ledger',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(50,44,'Banking/Cash','','#','_self','accounting.banking_cash',20,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-12-02 13:56:09'),
(51,50,'Bank Accounts',NULL,'accounting/bank-accounts','_self','accounting.bank_accounts',1,1,0,0,'SELECT COUNT(*) FROM bank_accounts WHERE is_active = 1','primary',NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(52,50,'Bank Reconciliation',NULL,'accounting/reconciliation','_self','accounting.reconciliation',2,1,0,0,'SELECT COUNT(*) as count FROM bank_accounts WHERE last_reconciliation_date < DATE_SUB(CURDATE(), INTERVAL 30 DAY) OR last_reconciliation_date IS NULL','danger',1,'danger',NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(53,44,'Operations','','#','_self','accounting.operations',60,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-12-02 13:56:09'),
(54,53,'Expenses',NULL,'accounting/expenses','_self','accounting.expenses',1,1,0,0,'SELECT COUNT(*) as count FROM expenses WHERE status = \'pending_approval\'','info',10,'warning',NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(55,53,'Budgets',NULL,'accounting/budgets','_self','accounting.budgets',2,1,0,0,'SELECT COUNT(*) FROM budgets WHERE status = \'active\'','primary',NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(56,44,'Assets/Compliance','','#','_self','accounting.assets_compliance',10,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-12-02 13:56:09'),
(57,56,'Fixed Assets',NULL,'accounting/assets','_self','accounting.assets',1,1,0,0,'SELECT COUNT(*) as count FROM fixed_assets WHERE status = \'active\' AND depreciation_method != \'none\'','primary',NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(58,56,'Depreciation',NULL,'accounting/depreciation','_self','accounting.depreciation',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(60,56,'Period Closing',NULL,'accounting/period','_self','accounting.period',4,1,0,0,'SELECT COUNT(*) as count FROM accounting_periods WHERE status = \'open\'','warning',1,'warning',NULL,'2025-11-01 17:45:12','2025-11-29 19:13:00'),
(61,44,'Reports','','#','_self','accounting.reports',90,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-12-02 13:56:09'),
(62,61,'Balance Sheet',NULL,'accounting/reports/balance-sheet','_self','accounting.balance_sheet',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:15:36'),
(63,61,'Income Statement',NULL,'accounting/reports/income-statement','_self','accounting.income_statement',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:15:36'),
(65,61,'Trial Balance','','accounting/reports/trial-balance','_self','accounting.trial_balance',5,1,0,0,'','',NULL,'','','2025-11-01 17:45:12','2025-11-29 19:15:36'),
(66,61,'Aging Reports',NULL,'accounting/reports/aging','_self','accounting.aging_reports',6,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:12','2025-11-29 19:15:36'),
(68,2,'HR','bi bi-people','#','_self','hr.view',30,1,0,0,'','',NULL,'','','2025-11-01 17:45:27','2025-11-11 12:23:42'),
(69,68,'Dashboard',NULL,'hr/dashboard','_self','hr.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:13:00'),
(70,68,'Employees',NULL,'employees','_self','employees.view',2,1,0,0,'SELECT COUNT(*) FROM employees WHERE status = \'active\'','primary',NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:13:00'),
(71,68,'Recruitment',NULL,'#','_self','hr.view',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-11 11:41:06'),
(72,71,'Dashboard',NULL,'hr/recruitment/dashboard','_self','hr.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(73,71,'Job Positions',NULL,'hr/recruitment/positions','_self','positions.view',2,1,0,0,'SELECT COUNT(*) FROM job_positions WHERE status = \'open\'','primary',NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-11 12:46:12'),
(74,71,'Applications',NULL,'hr/recruitment/applications','_self','hr.applications',3,1,0,0,'SELECT COUNT(*) as count FROM applications WHERE status = \'pending_review\'','info',5,'warning',NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(75,71,'Interviews',NULL,'hr/recruitment/interviews','_self','hr.interviews',4,1,0,0,'SELECT COUNT(*) as count FROM interviews WHERE status = \'scheduled\'','info',0,'warning',NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(76,71,'Assessments',NULL,'hr/recruitment/assessments','_self','hr.assessments',5,1,0,0,'SELECT COUNT(*) FROM qualification_assessments WHERE status = \'pending\'',NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(77,71,'Offers',NULL,'hr/recruitment/offers','_self','hr.offers',6,1,0,0,'SELECT COUNT(*) as count FROM offers WHERE status = \'pending\'','success',0,'warning',NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(78,68,'Development',NULL,'#','_self','hr.view',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-11 11:41:06'),
(79,78,'Contracts',NULL,'hr/development/contracts','_self','hr.contracts',1,1,0,0,'SELECT COUNT(*) as count FROM contracts WHERE status IN (\'draft\', \'pending_signature\', \'pending_approval\')','warning',3,'warning',NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(80,78,'Training',NULL,'hr/development/training','_self','hr.training',2,1,0,0,'SELECT COUNT(*) as count FROM training_programs WHERE status = \'in_progress\'','secondary',NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(81,78,'Performance Reviews',NULL,'hr/development/reviews','_self','hr.performance_reviews',3,1,0,0,'SELECT COUNT(*) as count FROM performance_reviews WHERE status IN (\'pending\', \'in_progress\')','info',3,'warning',NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(82,68,'Relations',NULL,'#','_self','hr.view',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-11 11:41:06'),
(83,82,'Issues & Challenges',NULL,'hr/relations/issues','_self','hr.issues__challenges',1,1,0,0,'SELECT COUNT(*) FROM employee_issues WHERE status IN (\'reported\', \'investigating\', \'in-progress\')','warning',NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(84,82,'Separations',NULL,'hr/relations/separations','_self','hr.separations',2,1,0,0,'SELECT COUNT(*) as count FROM separations WHERE status = \'pending\'','warning',NULL,NULL,NULL,'2025-11-01 17:45:27','2025-11-29 19:15:36'),
(85,68,'Attendance',NULL,'hr/attendance','_self','hr.view',6,1,0,0,'SELECT COUNT(*) as count FROM attendance WHERE date = CURDATE() AND clock_out IS NULL','danger',0,'danger',NULL,'2025-11-01 17:45:27','2025-11-30 00:54:34'),
(86,2,'Inventory','bi bi-box-seam','#','_self','inventory.view',40,1,0,0,'','',NULL,'','','2025-11-01 17:45:41','2025-11-11 12:23:42'),
(87,86,'Dashboard',NULL,'inventory/dashboard','_self','inventory.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:41','2025-11-29 19:13:00'),
(88,86,'Product Management',NULL,'#','_self','inventory.view',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:41','2025-11-11 11:41:06'),
(89,88,'Products',NULL,'products','_self','products.view',1,1,0,0,'SELECT COUNT(DISTINCT p.id) as count FROM products p LEFT JOIN inventory_levels il ON p.id = il.product_id WHERE COALESCE(il.quantity, 0) <= COALESCE(p.reorder_level, 0) AND p.reorder_level > 0','danger',3,'danger',NULL,'2025-11-01 17:45:41','2025-11-29 19:13:00'),
(90,88,'Categories',NULL,'inventory/categories','_self','inventory.categories',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:41','2025-11-29 19:13:00'),
(91,86,'Stock Levels',NULL,'/inventory/stock-levels','_self','inventory.stock_levels',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:45:41','2025-11-29 19:13:00'),
(92,2,'Manufacturing','bi bi-gear','#','_self','manufacturing.view',50,1,0,0,'','',NULL,'','','2025-11-01 17:46:13','2025-11-11 12:23:42'),
(93,92,'Dashboard',NULL,'manufacturing','_self','manufacturing.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(94,92,'Capacity Planning',NULL,'#','_self','manufacturing.capacity_planning',2,1,0,0,'SELECT COUNT(*) as count FROM capacity_plans WHERE utilization_percentage > 100 AND period_date >= CURDATE()',NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(95,94,'Dashboard',NULL,'manufacturing/capacity','_self','manufacturing.capacity_dashboard',1,1,0,0,'SELECT COUNT(*) as count FROM capacity_plans WHERE utilization_percentage > 100 AND period_date >= CURDATE()',NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(96,94,'Real-time Status',NULL,'manufacturing/capacity/machineStatus','_self','manufacturing.real_time_status',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(97,94,'Analytics',NULL,'manufacturing/capacity/analytics','_self','manufacturing.analytics',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(98,94,'Availability',NULL,'manufacturing/capacity/availability','_self','manufacturing.availability',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(99,94,'Feasibility',NULL,'manufacturing/capacity/feasibility','_self','manufacturing.feasibility',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(100,92,'Planning & Materials',NULL,'#','_self','manufacturing.planning_materials',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(101,100,'Bill of Materials',NULL,'manufacturing/boms','_self','manufacturing.boms',1,1,0,0,'SELECT COUNT(DISTINCT b.id) as count FROM boms b INNER JOIN bom_components bc ON b.id = bc.bom_id INNER JOIN products p ON bc.component_id = p.id LEFT JOIN inventory_levels il ON p.id = il.product_id WHERE COALESCE(il.quantity, 0) < COALESCE(bc.quantity_required * 2, 0)','primary',NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(102,100,'MRP',NULL,'manufacturing/mrp','_self','manufacturing.mrp',2,1,0,0,'SELECT COUNT(*) as count FROM mrp_requirements WHERE status = \'required\' AND required_date <= DATE_ADD(CURDATE(), INTERVAL 7 DAY)','info',NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(103,100,'Production Scheduling',NULL,'manufacturing/scheduling','_self','manufacturing.scheduling',3,1,0,0,'SELECT COUNT(*) as count FROM work_orders WHERE status = \'pending\'',NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(104,92,'Production',NULL,'#','_self','manufacturing.production',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(105,104,'Work Orders',NULL,'manufacturing/workorders','_self','manufacturing.workorders',1,1,0,0,'SELECT COUNT(*) as count FROM work_orders WHERE status NOT IN (\'completed\', \'cancelled\')','primary',10,'warning',NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(106,104,'Shop Floor Control',NULL,'manufacturing/shopfloor','_self','manufacturing.shopfloor',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(107,92,'Resources',NULL,'#','_self','manufacturing.resources',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(108,107,'Business Lines',NULL,'manufacturing/business-lines','_self','manufacturing.business_lines',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(109,107,'Equipment Lines',NULL,'manufacturing/equipment-lines','_self','manufacturing.equipment_lines',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(110,107,'Equipment Units',NULL,'manufacturing/equipment','_self','manufacturing.equipment',3,1,0,0,'SELECT COUNT(*) as count FROM equipment WHERE status = \'maintenance_required\'',NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:13:00'),
(111,92,'Quality Control',NULL,'#','_self','manufacturing.quality_control',6,1,0,0,'SELECT COUNT(*) FROM quality_inspections WHERE status = \'pending\'','warning',NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(112,111,'Dashboard',NULL,'manufacturing/quality','_self','manufacturing.quality_dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(113,111,'Inspections',NULL,'manufacturing/quality/inspections','_self','manufacturing.inspections',2,1,0,0,'SELECT COUNT(*) as count FROM quality_inspections WHERE status IN (\'pending\', \'in_progress\')','warning',0,'danger',NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(114,111,'NCR',NULL,'manufacturing/quality/ncr','_self','manufacturing.ncr',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(115,111,'Metrics',NULL,'manufacturing/quality/metrics','_self','manufacturing.metrics',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(116,111,'Templates',NULL,'manufacturing/quality/templates','_self','manufacturing.templates',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(117,92,'Maintenance',NULL,'#','_self','manufacturing.maintenance',7,1,0,0,'SELECT COUNT(*) as count FROM maintenance_work_orders WHERE status IN (\'pending\', \'scheduled\')',NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(118,117,'Maintenance Schedules',NULL,'manufacturing/maintenance/schedules','_self','manufacturing.maintenance_schedules',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(119,117,'Maintenance Work Orders',NULL,'manufacturing/maintenance/work-orders','_self','manufacturing.maintenance_work_orders',2,1,0,0,'SELECT COUNT(*) as count FROM maintenance_work_orders WHERE status IN (\'pending\', \'scheduled\')','warning',3,'danger',NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(120,117,'Downtime Tracking',NULL,'manufacturing/maintenance/downtime','_self','manufacturing.downtime_tracking',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(121,92,'Costing',NULL,'#','_self','manufacturing.costing',8,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(122,121,'Production Costing',NULL,'manufacturing/costing/production','_self','manufacturing.production_costing',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(123,121,'Job Costing',NULL,'manufacturing/costing/jobs','_self','manufacturing.job_costing',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(124,92,'Reports',NULL,'#','_self','manufacturing.reports',9,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-12-02 13:56:09'),
(125,124,'Production Reports',NULL,'manufacturing/reports/production','_self','manufacturing.production_reports',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(126,124,'OEE Reports',NULL,'manufacturing/reports/oee','_self','manufacturing.oee_reports',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:13','2025-11-29 19:15:36'),
(127,2,'Sales','bi bi-cart','#','_self','sales.view',70,1,0,0,'','',NULL,'','','2025-11-01 17:46:33','2025-11-11 12:23:42'),
(128,127,'Dashboard',NULL,'sales/dashboard','_self','sales.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(129,127,'Sales Documents',NULL,'#','_self','sales.view',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-11-11 11:41:06'),
(130,129,'Quotes','bi bi-1-square','quotes','_self','quotes.view',1,1,0,0,'SELECT COUNT(*) as count FROM quotes WHERE status NOT IN (\'converted\', \'rejected\', \'expired\')','info',5,'warning','','2025-11-01 17:46:33','2025-11-29 19:13:00'),
(131,129,'Orders','bi bi-3-square','sales/orders','_self','sales.orders',3,1,0,0,'SELECT COUNT(*) as count FROM sales_orders WHERE status NOT IN (\'delivered\', \'cancelled\')','primary',5,'warning','','2025-11-01 17:46:33','2025-11-29 19:13:00'),
(132,129,'Invoices','bi bi-4-square','invoices','_self','invoices.view',4,1,0,0,'SELECT COUNT(*) as count FROM invoices WHERE status NOT IN (\'paid\', \'cancelled\')','warning',5,'danger','','2025-11-01 17:46:33','2025-11-24 14:54:27'),
(133,129,'Credit Notes','','creditnotes','_self','creditnotes.view',10,1,0,0,'SELECT COUNT(*) as count FROM credit_notes WHERE status NOT IN (\'applied\', \'cancelled\')','',NULL,'','','2025-11-01 17:46:33','2025-11-29 19:13:00'),
(135,127,'Fulfillment',NULL,'#','_self','sales.fulfillment',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-12-02 14:03:43'),
(136,135,'Shipments',NULL,'shipments','_self','shipments.view',1,1,0,0,'SELECT COUNT(*) as count FROM shipments WHERE status NOT IN (\'delivered\', \'cancelled\')','primary',5,'warning',NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(137,135,'Delivery Notes',NULL,'sales/delivery_notes','_self','sales.delivery_notes',2,1,0,0,'SELECT COUNT(*) as count FROM delivery_notes WHERE status IN (\'draft\', \'pending\', \'in_transit\')','info',5,'warning',NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(138,135,'Returns (RMA)',NULL,'sales/returns','_self','sales.returns',3,1,0,0,'SELECT COUNT(*) as count FROM returns WHERE status IN (\'pending\', \'approved\', \'received\')','warning',10,'danger',NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(139,127,'Configuration',NULL,'#','_self','sales.configuration',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-12-02 14:03:43'),
(140,139,'Pricing Rules',NULL,'sales/pricing_rules','_self','sales.pricing_rules',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(141,139,'Discounts & Promotions',NULL,'sales/promotions','_self','sales.promotions',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(142,127,'Reports',NULL,'sales/reports','_self','sales.reports',6,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:33','2025-11-29 19:13:00'),
(143,2,'Purchases','bi bi-bag','#','_self','purchases.view',60,1,0,0,'','',NULL,'','','2025-11-01 17:46:47','2025-11-11 12:23:42'),
(144,143,'Dashboard',NULL,'purchases/dashboard','_self','purchases.dashboard',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(145,143,'Suppliers',NULL,'suppliers','_self','suppliers.view',2,1,0,0,'SELECT COUNT(*) FROM suppliers','primary',NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(146,143,'Procurement Process',NULL,'#','_self','purchases.procurement_process',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-12-02 13:59:43'),
(147,146,'Purchase Requisitions',NULL,'purchases/requisitions','_self','purchases.requisitions',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(148,146,'RFQs (Quotes)',NULL,'purchases/rfqs','_self','purchases.rfqs',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(149,146,'Purchase Orders',NULL,'purchases/orders','_self','purchases.orders',3,1,0,0,'SELECT COUNT(*) as count FROM purchase_orders WHERE status NOT IN (\'completed\', \'cancelled\')','primary',5,'warning',NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(150,146,'Goods Receipt',NULL,'purchases/receiving','_self','purchases.receiving',4,1,0,0,'SELECT COUNT(*) as count FROM goods_receipts WHERE status IN (\'pending\', \'received\')','info',5,'warning',NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(151,143,'Payments & Documents',NULL,'#','_self','purchases.payments_documents',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-12-02 13:59:43'),
(152,151,'Bills/Invoices',NULL,'purchases/bills','_self','purchases.bills',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(153,151,'Payments Made (Legacy)',NULL,'purchases/payments','_self','purchases.payments',2,1,0,0,NULL,NULL,NULL,NULL,'DEPRECATED: Use Accounting > Vendor Payments instead','2025-11-01 17:46:47','2025-11-29 19:13:00'),
(154,151,'Purchase Returns',NULL,'purchases/returns','_self','purchases.returns',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(155,151,'Debit Notes',NULL,'purchases/debit-notes','_self','purchases.debit_notes',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(156,143,'Supplier Contracts','','purchases/contracts','_self','purchases.view',5,1,0,0,'','',NULL,'','','2025-11-01 17:46:47','2025-12-02 19:36:11'),
(157,143,'Reports',NULL,'purchases/reports','_self','purchases.reports',6,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:46:47','2025-11-29 19:13:00'),
(161,11,'FAQs',NULL,'crm/faqs','_self','crm.view',2,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-01 17:57:10','2025-11-11 11:15:46'),
(162,NULL,'QUICK LINKS','','','_self','dashboard.view',300,1,1,0,'','',NULL,'','','2025-11-01 18:11:31','2025-11-11 11:15:46'),
(164,68,'Time Off',NULL,'hr/timeoff','_self','hr.view',50,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 00:54:34'),
(165,164,'My Time Off',NULL,'hr/timeoff/my','_self','hr.view',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(166,164,'All Requests',NULL,'hr/timeoff/all','_self','hr.view',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(167,164,'Approve Requests',NULL,'hr/timeoff/approve','_self','hr.view',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(168,164,'Time Off Types',NULL,'hr/timeoff/types','_self','admin',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(169,164,'Accrual Rules',NULL,'hr/timeoff/accruals','_self','admin',5,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(170,68,'Timesheets',NULL,'hr/timesheets','_self','hr.view',51,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 00:54:34'),
(171,170,'My Timesheet',NULL,'hr/timesheets/my','_self','hr.view',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(172,170,'All Timesheets',NULL,'hr/timesheets/all','_self','hr.view',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(173,170,'Approve Timesheets',NULL,'hr/timesheets/approve','_self','hr.view',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(174,170,'Timesheet Reports',NULL,'hr/timesheets/reports','_self','hr.view',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-30 01:00:47'),
(180,86,'Lot/Serial Numbers','','inventory/lots','_self','inventory.lots',40,1,0,0,'SELECT COUNT(*) as count FROM lot_serial_numbers WHERE expiration_date IS NOT NULL AND expiration_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY) AND status = \'active\'','warning',5,'danger','','2025-11-03 19:25:34','2025-11-29 19:13:00'),
(181,180,'All Lots/Serials',NULL,'inventory/lots/all','_self','inventory.all_lotsserials',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-29 19:15:36'),
(182,180,'Traceability',NULL,'inventory/lots/traceability','_self','inventory.traceability',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-29 19:15:36'),
(183,180,'Expiration Dates',NULL,'inventory/lots/expiration','_self','inventory.expiration_dates',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:34','2025-11-29 19:15:36'),
(184,44,'Multi-Currency','','accounting/currency','_self','accounting.multicurrency',50,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-12-02 13:56:09'),
(185,184,'Currencies','','accounting/currency/list','_self','accounting.currencies',1,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-11-29 19:15:36'),
(186,184,'Exchange Rates','','accounting/currency/rates','_self','accounting.exchange_rates',2,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-11-29 19:15:36'),
(187,184,'Currency Gains/Losses','','accounting/currency/revaluation','_self','accounting.view',3,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-11-12 17:45:06'),
(188,32,'Audit Log','','audit-logs','_self','audit_log.view',2,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-11-30 13:42:36'),
(193,17,'Automation','','settings/automation','_self','settings.automation',30,1,0,0,'','',NULL,'','','2025-11-03 19:25:34','2025-11-29 19:13:00'),
(194,193,'Workflows','','settings/automation/workflows','_self','admin',5,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-16 21:19:23'),
(195,193,'Approval Rules','','settings/automation/approvals','_self','admin',1,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-16 21:20:03'),
(196,193,'Templates','','automation/email-templates','_self','admin',2,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-16 21:47:57'),
(197,193,'Scheduled Actions',NULL,'settings/automation/scheduled','_self','admin',4,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-05 16:19:55'),
(198,241,'Projects','bi bi-kanban','projects','_self','projects.view',300,1,0,0,'SELECT COUNT(*) as count FROM projects WHERE status IN (\'active\', \'on_hold\')','',NULL,'','','2025-11-03 19:25:35','2025-11-11 14:34:18'),
(199,198,'Dashboard','','projects/dashboard','_self','projects.dashboard',1,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:05:45'),
(201,198,'My Projects','','projects/?my_projects=1','_self','projects.my_projects',11,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:13:00'),
(202,198,'My Tasks','','projects/my-tasks','_self','projects.my_tasks',20,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:13:00'),
(203,198,'Gantt Chart','','projects/gantt','_self','projects.gantt',30,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:26:50'),
(204,198,'Time Tracking','','projects/time','_self','projects.time_tracking',40,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:26:50'),
(205,198,'Resource Planning','','projects/resources','_self','projects.resource_planning',50,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:26:50'),
(206,198,'Project Profitability','','projects/profitability','_self','projects.profitability',60,0,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:26:50'),
(207,241,'Files','bi bi-file-earmark-text','/files','_self','files.manage',100,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-21 21:48:10'),
(208,207,'All Files','','/files','_self','file_manager.all_files',10,1,0,0,'SELECT COUNT(*) FROM files WHERE 1=1','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:13:00'),
(209,207,'My Files','','/files?context=user','_self','file_manager.my_files',11,1,0,0,'SELECT COUNT(*) FROM files WHERE uploaded_by = {user_id}','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:13:00'),
(210,207,'Shared With Me','','files/shared','_self','file_manager.shared',12,1,0,0,'SELECT COUNT(DISTINCT f.id) FROM files f \r\n                 INNER JOIN file_shares fs ON f.id = fs.file_id \r\n                 WHERE (fs.shared_with_user_id = {user_id} OR fs.shared_with_role_id = {role_id})\r\n                 AND (fs.expires_at IS NULL OR fs.expires_at > NOW())\r\n                 AND f.uploaded_by != {user_id}','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:13:00'),
(213,241,'Reports','bi bi-clipboard-data','reports/custom','_self','reports.view',400,1,0,0,'SELECT COUNT(*) FROM custom_reports WHERE created_by = {user_id}','',NULL,'','','2025-11-03 19:25:35','2025-11-11 14:33:34'),
(214,213,'Report Builder',NULL,'reports/custom/builder','_self','custom_reports.builder',1,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:05:45'),
(215,213,'My Reports',NULL,'reports/custom/my','_self','custom_reports.my',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:05:45'),
(216,213,'Shared Reports',NULL,'reports/custom/shared','_self','custom_reports.shared',3,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:05:45'),
(217,213,'Scheduled Reports',NULL,'reports/custom/scheduled','_self','custom_reports.scheduled',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:05:45'),
(218,3,'Email Marketing','','email-marketing','_self','marketing.view',40,1,0,0,'','',NULL,'','','2025-11-03 19:25:35','2025-11-15 19:18:10'),
(219,218,'Dashboard',NULL,'email-marketing/dashboard','_self','marketing.view',1,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(220,218,'Campaigns',NULL,'email-marketing/campaigns','_self','marketing.view',10,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(221,218,'Email Templates',NULL,'email-marketing/templates','_self','marketing.view',20,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(222,218,'Mailing Lists',NULL,'email-marketing/lists','_self','marketing.view',30,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(223,218,'Automation',NULL,'email-marketing/automation','_self','marketing.view',40,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(224,218,'Analytics',NULL,'email-marketing/analytics','_self','marketing.view',50,0,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-11 11:15:46'),
(225,241,'Helpdesk','bi bi-headset','helpdesk','_self','help_desk.view',200,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE status NOT IN (\'closed\', \'resolved\')','',NULL,'','','2025-11-03 19:25:35','2025-11-29 19:01:02'),
(226,225,'Dashboard',NULL,'helpdesk/dashboard','_self','help_desk.dashboard',1,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE status NOT IN (\'closed\', \'resolved\')',NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(227,225,'Tickets',NULL,'helpdesk/tickets','_self','help_desk.tickets',10,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE status NOT IN (\'closed\', \'resolved\')','danger',2,'warning',NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(228,225,'My Tickets',NULL,'helpdesk/my-tickets','_self','help_desk.myTickets',11,1,0,0,'SELECT COUNT(*) as count FROM crm_support_tickets WHERE created_by = {user_id} AND status NOT IN (\'closed\', \'resolved\')','danger',0,'danger',NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(229,225,'SLA Management',NULL,'helpdesk/sla','_self','help_desk.sla',20,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(230,225,'Knowledge Base',NULL,'helpdesk/kb','_self','help_desk.knowledgeBase',30,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(231,225,'Live Chat',NULL,'helpdesk/chat','_self','help_desk.chat',40,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(232,225,'Reports',NULL,'helpdesk/reports','_self','help_desk.reports',50,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-03 19:25:35','2025-11-29 19:01:02'),
(234,NULL,'APP GRID',NULL,NULL,'_self','admin',999,1,1,0,NULL,NULL,NULL,NULL,'Container for app grid shortcuts','2025-11-03 21:45:59','2025-11-08 15:05:40'),
(235,234,'DASHBOARD','bi bi-speedometer2','dashboard','_self','dashboard.view',1,1,0,1,'','',NULL,'','Quick access to dashboard','2025-11-03 21:45:59','2025-11-18 18:40:34'),
(236,234,'CALENDAR','bi bi-calendar4','calendar','_self','calendar.view',2,1,0,1,NULL,NULL,NULL,NULL,'Quick access to calendar','2025-11-03 21:45:59','2025-11-11 11:15:46'),
(237,234,'EMPLOYEES','bi bi-people','employees/directory','_self','employees.directory',3,1,0,1,'','',NULL,'','Quick access to customers','2025-11-03 21:45:59','2025-11-28 22:18:52'),
(238,234,'SALES','bi bi-cart','salesorders','_self','sales.view',200,0,0,1,'','',NULL,'','Quick access to sales orders','2025-11-03 21:45:59','2025-11-18 18:40:41'),
(239,234,'PRODUCTS','bi bi-box-seam','products','_self','inventory.view',100,0,0,1,'SELECT COUNT(DISTINCT p.id) as count FROM products p LEFT JOIN inventory_levels il ON p.id = il.product_id WHERE COALESCE(il.quantity, 0) <= COALESCE(p.reorder_level, 0) AND p.reorder_level > 0','danger',3,'danger','Quick access to products','2025-11-03 21:45:59','2025-11-18 18:40:40'),
(240,234,'SETTINGS','bi bi-sliders','settings','_self','settings.view',300,0,0,1,'','',NULL,'','Quick access to settings','2025-11-03 21:45:59','2025-11-18 18:40:42'),
(241,NULL,'TOOLS','','','_self',NULL,200,1,1,0,'','',NULL,'','','2025-11-03 23:09:44','2025-11-11 12:43:15'),
(250,18,'Positions','','hr/positions','_self','positions.view',4,1,0,0,'','',NULL,'','','2025-11-08 15:00:54','2025-11-11 13:13:12'),
(251,61,'A/P Aging Detail',NULL,'accounting/reports/ap-aging-detail','_self','accounting.ap_aging_detail',7,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-09 13:34:09','2025-11-29 19:15:36'),
(252,61,'A/R Aging Detail',NULL,'accounting/reports/ar-aging-detail','_self','accounting.ar_aging_detail',8,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-09 13:34:09','2025-11-29 19:15:36'),
(253,61,'Cash Flow Statement','','accounting/reports/cash-flow-statement','_self','accounting.cash_flow_statement',4,1,0,0,'','',NULL,'','','2025-11-09 13:34:09','2025-11-29 19:15:36'),
(254,61,'Payment Terms List',NULL,'accounting/reports/payment-terms-list','_self','accounting.payment_terms_list',10,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-09 13:34:09','2025-11-29 19:15:36'),
(255,281,'PHPmyadmin','','/phpmyadmin','_self','admin',30,1,0,0,'','',NULL,'','Admin access to PHPmyadmin','2025-11-11 13:25:37','2025-12-02 13:44:42'),
(257,86,'Visual Audits','','/camera-audit','_self','inventory.view',100,1,0,0,'','',NULL,'','Visual inventory audit logs with camera imagery','2025-11-13 18:23:41','2025-12-02 13:44:42'),
(259,18,'User Groups','','settings/user-groups','_self','settings.user_groups',10,1,0,0,'','',NULL,'','','2025-11-14 13:14:30','2025-11-29 19:13:00'),
(264,274,'Vendor Payments','','/accounting/vendor-payments','_self','accounting.vendor_payments',30,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-12-02 13:44:42'),
(265,44,'Tax Management','','#','_self','accounting.view',80,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-12-02 13:44:42'),
(266,265,'Tax Jurisdictions','','/tax/jurisdictions','_self','tax_jurisdictions.view',1,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-11-15 19:20:47'),
(267,265,'Tax Payments','','/tax/payments','_self','tax_payments.view',2,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-11-15 19:20:58'),
(268,265,'Tax Reports','','/tax/reports/liability','_self','tax_reports.view',3,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-11-15 19:21:09'),
(269,145,'1099 Contractors','','/suppliers?filter=1099','_self','1099_contractors.view',15,1,0,0,'','',NULL,'','','2025-11-15 18:53:41','2025-11-15 18:55:44'),
(270,145,'Suppliers','','suppliers','_self','purchases.view',10,1,0,0,'','',NULL,'','','2025-11-15 18:56:26','2025-12-02 13:44:42'),
(272,274,'Customer Payments','','/accounting/customer-payments','_self','accounting.customer_payments.view',10,1,0,0,'','',NULL,'','','2025-11-15 19:51:04','2025-11-15 19:57:01'),
(274,44,'Payments','','','_self','accounting.view',70,1,0,0,'','',NULL,'','','2025-11-15 19:56:44','2025-12-02 13:44:42'),
(276,44,'Recurring Transactions','','/recurring','_self','accounting.view',75,1,0,0,'','',NULL,'','','2025-11-15 21:52:32','2025-12-02 13:44:42'),
(277,35,'Action Menu Editor','','settings/action-menus','_self','settings.action_menus',1,1,0,0,'','',NULL,'','','2025-11-16 20:47:28','2025-11-29 19:13:00'),
(278,40,'NDA Templates','','settings/nda-templates','_self','settings.nda_templates',1,1,0,0,'','',NULL,'','','2025-11-16 21:54:23','2025-11-29 19:13:00'),
(279,3,'NDAs','','ndas','_self','ndas.view',70,1,0,0,'','',NULL,'','','2025-11-16 22:28:51','2025-11-28 22:27:00'),
(280,281,'System Backup','','backup','_self','admin',40,1,0,0,'','',NULL,'','','2025-11-17 11:21:31','2025-12-02 13:44:42'),
(281,17,'Administrative','','','_self','admin',0,1,0,0,'','',NULL,'','','2025-11-17 11:23:09','2025-12-02 13:44:42'),
(282,225,'Documentation','','documentation','_self','help_desk.view',5,1,0,0,'','',NULL,'','','2025-11-17 14:24:20','2025-12-02 13:44:42'),
(283,281,'Document Mgmt','','#','_self','admin',10,1,0,0,'','',NULL,'','Cloud document storage and collaborative editing via Nextcloud','2025-11-18 01:03:28','2025-12-02 13:44:42'),
(301,193,'AI Testing','','ai-test','_self','admin',0,1,0,0,'','',NULL,'','','2025-11-19 12:52:34','2025-12-02 13:44:42'),
(303,2,'Forecaster','bi bi-graph-up-arrow','','_self','forecasting.view',22,1,0,0,'','',NULL,'','Daily forecasting and assumptions management','2025-11-19 17:30:35','2025-11-20 03:03:23'),
(304,303,'Daily Update','bi bi-1-square','assumptions','_self','forecasting.update_daily',2,1,0,0,'','',NULL,'','Quick daily updates for key assumptions','2025-11-19 17:30:35','2025-11-20 03:08:49'),
(305,303,'Variance Report','','assumptions/variance','_self','forecasting.view_actuals',10,1,0,0,'','',NULL,'','Compare forecast vs actual performance','2025-11-19 17:30:35','2025-11-20 03:11:34'),
(306,303,'Assumption Sets','bi bi-2-square','assumptions/sets','_self','forecasting.manage_assumptions',3,1,0,0,'','',NULL,'','Manage multiple assumption scenarios','2025-11-19 17:30:35','2025-11-20 03:09:17'),
(307,303,'Advanced Tools','','','_self','',98,1,1,0,'','',NULL,'','','2025-11-19 17:30:35','2025-11-20 03:11:56'),
(308,303,'Scenario Modeler','','forecaster','_self','forecasting.view',99,1,0,0,'','',NULL,'','Advanced scenario modeling with financing','2025-11-19 17:30:35','2025-11-20 03:13:02'),
(309,303,'Product Configs','bi bi-3-square','product-forecast','_self','forecasting.manage_products',4,1,0,0,'','',NULL,'','Configure product-level forecasts with capacity constraints','2025-11-19 18:02:33','2025-11-20 13:03:51'),
(310,303,'Generate Projections','bi bi-4-square','product-forecast/generate','_self','forecasting.generate_projections',5,1,0,0,'','',NULL,'','Run projection engine for all configured products','2025-11-19 18:02:33','2025-11-20 03:10:05'),
(311,303,'Pro Forma Stmts','bi bi-5-square','product-forecast/proforma','_self','product_forecast.proforma',6,1,0,0,'','',NULL,'','View consolidated financial statements','2025-11-19 18:02:33','2025-11-29 19:13:00'),
(312,303,'Compare Scenarios','','product-forecast/compare','_self','product_forecast.compare',9,1,0,0,'','',NULL,'','Side-by-side scenario comparison','2025-11-19 18:02:33','2025-11-29 19:13:00'),
(313,303,'Sensitivity Analysis','','product-forecast/sensitivity','_self','product_forecast.sensitivity',8,1,0,0,'','',NULL,'','Interactive what-if scenario analysis','2025-11-19 18:57:32','2025-11-29 19:13:00'),
(314,303,'Variance Tracking','bi bi-6-square','/product-forecast/variance','_self','manufacturing.view',7,1,0,0,'','',NULL,'','','2025-11-19 19:05:49','2025-12-02 13:44:42'),
(315,303,'Command Center','','/product-forecast/command-center','_self','manufacturing.view',1,1,0,0,'','',NULL,'','','2025-11-19 19:29:24','2025-12-02 13:44:42'),
(316,303,'Getting Started','','/product-forecast/getting-started','_self','manufacturing.view',0,1,0,0,'','',NULL,'','Learn the forecasting workflow','2025-11-19 19:57:51','2025-12-02 13:44:42'),
(317,207,'Company Files','bi bi-people','/files?context=company','_self','customers.documents',15,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'customer\'','',NULL,'','','2025-11-21 14:40:15','2025-11-24 19:17:29'),
(319,207,'Accounting Files','bi bi-calculator','/files?context=accounting','_self','accounting.view',14,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'accounting\'','',NULL,'','','2025-11-21 14:40:15','2025-11-21 17:11:02'),
(320,207,'Project Files','bi bi-kanban','/files?context=project','_self','projects.view',77,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'project\'','',NULL,'','','2025-11-21 14:40:15','2025-11-21 19:07:54'),
(321,207,'HR Documents','bi bi-people','/files?context=hr','_self','hr.view',65,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'hr\'',NULL,NULL,NULL,NULL,'2025-11-21 17:05:14','2025-11-29 01:04:03'),
(322,207,'Inventory Documents','bi bi-box-seam','/files?context=inventory','_self','inventory.view',70,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'inventory\'',NULL,NULL,NULL,NULL,'2025-11-21 17:05:14','2025-11-29 01:04:03'),
(323,207,'Manufacturing Documents','bi bi-gear','/files?context=manufacturing','_self','manufacturing.view',75,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'manufacturing\'',NULL,NULL,NULL,NULL,'2025-11-21 17:05:14','2025-11-29 01:04:03'),
(324,207,'Purchases Documents','bi bi-cart','/files?context=purchases','_self','purchases.view',80,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'purchases\'',NULL,NULL,NULL,NULL,'2025-11-21 17:05:14','2025-11-29 01:04:03'),
(325,207,'Sales Documents','bi bi-cart-check','/files?context=sales','_self','sales.view',85,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'sales\'',NULL,NULL,NULL,NULL,'2025-11-21 17:05:14','2025-11-29 01:04:03'),
(326,129,'Agreements','bi bi-2-square','agreements','_self','sales.create',2,1,0,0,'','',NULL,'','','2025-11-24 14:53:27','2025-11-25 23:44:54'),
(327,281,'System Scripts','','admin/system-scripts','_self','admin.system_scripts',250,1,0,0,'','',NULL,'','','2025-11-24 19:14:40','2025-11-25 12:55:37'),
(328,44,'Dashboard','','accounting','_self','',0,1,0,0,'','',NULL,'','','2025-11-24 19:27:52','2025-11-24 19:27:52'),
(330,NULL,'Email','bi-envelope','/email','_self','email.view',2,1,0,0,'SELECT COUNT(*) FROM emails e INNER JOIN email_folder_map efm ON e.id = efm.email_id INNER JOIN email_folders f ON efm.folder_id = f.id WHERE e.user_id = {user_id} AND e.is_read = 0 AND f.folder_type = \'inbox\'','primary',NULL,'','','2025-11-26 15:55:28','2025-12-04 16:08:20'),
(331,330,'Inbox','bi-inbox','/email','_self','email.view',1,1,0,0,'SELECT COUNT(DISTINCT e.id) FROM emails e INNER JOIN email_folder_map efm ON e.id = efm.email_id INNER JOIN email_folders f ON efm.folder_id = f.id WHERE e.user_id = {user_id} AND f.folder_type = \'inbox\' AND e.is_read = 0','primary',10,'warning',NULL,'2025-11-26 16:10:07','2025-12-04 16:08:20'),
(334,330,'Starred','bi-star','/email/folder/starred','_self','email.view',3,1,0,0,'SELECT COUNT(*) FROM emails WHERE user_id = {user_id} AND is_starred = 1','warning',NULL,'','','2025-11-26 16:10:07','2025-12-04 16:08:20'),
(335,330,'Compose','bi-pencil-square','/email/compose','_self','email.view',2,1,0,0,'','',NULL,'','','2025-11-26 16:10:07','2025-12-02 13:44:42'),
(339,330,'Sent','bi bi-send','/email/folder/sent','_self','email.view',2,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-27 13:24:34','2025-12-02 13:44:42'),
(340,330,'Drafts','bi bi-file-earmark','/email/folder/drafts','_self','email.view',3,1,0,0,'SELECT COUNT(DISTINCT e.id) FROM emails e INNER JOIN email_folder_map efm ON e.id = efm.email_id INNER JOIN email_folders f ON efm.folder_id = f.id WHERE e.user_id = {user_id} AND f.folder_type = \'drafts\'','info',NULL,NULL,NULL,'2025-11-27 13:24:34','2025-12-04 16:08:20'),
(341,330,'Archive','bi bi-archive','/email/folder/archive','_self','email.view',4,1,0,0,NULL,NULL,NULL,NULL,NULL,'2025-11-27 13:24:34','2025-12-02 13:44:42'),
(342,330,'Trash','bi bi-trash','/email/folder/trash','_self','email.view',10,1,0,0,'SELECT COUNT(DISTINCT e.id) FROM emails e INNER JOIN email_folder_map efm ON e.id = efm.email_id INNER JOIN email_folders f ON efm.folder_id = f.id WHERE e.user_id = {user_id} AND f.folder_type = \'trash\'','secondary',NULL,'','','2025-11-27 13:24:34','2025-12-04 16:08:20'),
(343,330,'Spam','bi bi-exclamation-triangle','/email/folder/spam','_self','email.view',6,1,0,0,'SELECT COUNT(DISTINCT e.id) FROM emails e INNER JOIN email_folder_map efm ON e.id = efm.email_id INNER JOIN email_folders f ON efm.folder_id = f.id WHERE e.user_id = {user_id} AND f.folder_type = \'spam\' AND e.is_read = 0','danger',0,'danger',NULL,'2025-11-27 13:24:34','2025-12-04 16:08:20'),
(347,32,'Access Management','','/security/roles','_self','roles.view',1,1,0,0,'','',NULL,'','','2025-11-30 13:38:35','2025-11-30 13:42:13'),
(348,207,'CRM Documents','bi bi-briefcase','/files?context=activity','_self','customers.view',62,1,0,0,'SELECT COUNT(*) FROM files WHERE entity_type = \'activity\'','',NULL,'','','2025-12-02 02:47:48','2025-12-02 13:44:42'),
(349,241,'Diagrams','fas fa-draw-polygon','/diagrams','_self','diagrams.view',95,1,0,0,'','',NULL,'','','2025-12-02 03:48:20','2025-12-02 13:12:58'),
(352,362,'Equipment Research','','/manufacturing/equipment-research','_self','equipment.view',85,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:31:05'),
(353,352,'Dashboard','','/manufacturing/equipment-research','_self','equipment.view',1,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:31:58'),
(354,352,'Vendors','','/manufacturing/equipment-research/vendors','_self','equipment.view',2,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:06'),
(355,352,'Market Research','','/manufacturing/equipment-research/market-research','_self','equipment.view',3,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:18'),
(356,352,'ROI Analysis','','/manufacturing/equipment-research/roi-analyses','_self','equipment.view',4,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:22'),
(357,352,'Benchmarking','','/manufacturing/equipment-research/benchmarking','_self','equipment.view',5,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:26'),
(358,352,'Technology Trends','','/manufacturing/equipment-research/technology-trends','_self','equipment.view',6,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:29'),
(359,352,'Competitor Intel','','/manufacturing/equipment-research/competitor-snapshots','_self','equipment.view',7,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:32:32'),
(360,303,'Profit Optimizer','','/manufacturing/profit-optimizer','_self','equipment.view',999,1,0,0,'','',NULL,'','','2025-12-05 14:40:59','2025-12-05 22:31:31'),
(362,NULL,'DEV','fas fa-code','#','_self','admin',999,1,0,0,'','',NULL,'','','2025-12-05 18:06:31','2025-12-05 22:31:43');
commit;

--
-- Table structure for table `message_attachments`
--

CREATE TABLE `message_attachments` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `message_id` int(10) unsigned NOT NULL,
  `filename` varchar(255) NOT NULL,
  `original_filename` varchar(255) NOT NULL,
  `file_path` varchar(500) NOT NULL,
  `file_size` int(10) unsigned NOT NULL,
  `mime_type` varchar(100) NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_message_id` (`message_id`),
  CONSTRAINT `message_attachments_ibfk_1` FOREIGN KEY (`message_id`) REFERENCES `messages` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `message_attachments`
--

set autocommit=0;
INSERT INTO `message_attachments` VALUES
(1,6,'691650a6c7230_1763070118.png','1984 Apple Macintosh 128k.png','/Users/rpmbbu/LocalPHPStorm/m1_erp_web/uploads/messaging/691650a6c7230_1763070118.png',13052,'image/png','2025-11-13 21:41:58','2025-11-13 21:41:58'),
(2,7,'691655cb26b0d_1763071435.png','fsociety.png','/Users/rpmbbu/LocalPHPStorm/m1_erp_web/uploads/messaging/691655cb26b0d_1763071435.png',36485,'image/png','2025-11-13 22:03:55','2025-11-13 22:03:55');
commit;

--
-- Table structure for table `message_reactions`
--

CREATE TABLE `message_reactions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `message_id` int(10) unsigned NOT NULL,
  `user_id` int(10) unsigned NOT NULL,
  `emoji` varchar(50) NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `message_user_emoji` (`message_id`,`user_id`,`emoji`),
  KEY `idx_message_id` (`message_id`),
  KEY `idx_user_id` (`user_id`),
  CONSTRAINT `message_reactions_ibfk_1` FOREIGN KEY (`message_id`) REFERENCES `messages` (`id`) ON DELETE CASCADE,
  CONSTRAINT `message_reactions_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `message_reactions`
--

set autocommit=0;
INSERT INTO `message_reactions` VALUES
(8,5,1,'❤️','2025-11-13 21:40:50','2025-11-13 21:40:50'),
(14,6,1,'🤜','2025-11-14 19:43:44','2025-11-14 19:43:44');
commit;

--
-- Table structure for table `messages`
--

CREATE TABLE `messages` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `channel_id` int(10) unsigned NOT NULL,
  `user_id` int(10) unsigned NOT NULL,
  `parent_id` int(10) unsigned DEFAULT NULL COMMENT 'For threaded replies',
  `message` text NOT NULL,
  `is_edited` tinyint(4) DEFAULT 0,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `mentions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Array of mentioned user IDs' CHECK (json_valid(`mentions`)),
  PRIMARY KEY (`id`),
  KEY `idx_channel_id` (`channel_id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_parent_id` (`parent_id`),
  KEY `idx_created_at` (`created_at`),
  CONSTRAINT `messages_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
  CONSTRAINT `messages_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `messages_ibfk_3` FOREIGN KEY (`parent_id`) REFERENCES `messages` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `messages`
--

set autocommit=0;
INSERT INTO `messages` VALUES
(5,1,1,NULL,'Hey @admin does this work?',0,'2025-11-13 21:40:46','2025-11-13 21:40:46',NULL),
(6,1,1,NULL,'Shared a file: 1984 Apple Macintosh 128k.png',0,'2025-11-13 21:41:58','2025-11-13 21:41:58',NULL),
(7,1,1,NULL,'Shared a file: fsociety.png',0,'2025-11-13 22:03:55','2025-11-13 22:03:55',NULL);
commit;

--
-- Table structure for table `mrp_requirements`
--

CREATE TABLE `mrp_requirements` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(10) unsigned NOT NULL,
  `total_required` decimal(15,3) NOT NULL DEFAULT 0.000,
  `on_hand` decimal(15,3) NOT NULL DEFAULT 0.000,
  `on_order` decimal(15,3) NOT NULL DEFAULT 0.000,
  `allocated` decimal(15,3) NOT NULL DEFAULT 0.000,
  `net_required` decimal(15,3) NOT NULL DEFAULT 0.000,
  `suggested_order_date` date DEFAULT NULL,
  `lead_time_days` int(11) DEFAULT 7,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_product` (`product_id`),
  KEY `idx_net_required` (`net_required`),
  KEY `idx_created_at` (`created_at`),
  CONSTRAINT `mrp_requirements_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `mrp_requirements`
--

set autocommit=0;
commit;

--
-- Table structure for table `ncr_actions`
--

CREATE TABLE `ncr_actions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ncr_id` int(10) unsigned NOT NULL,
  `action_type` enum('investigation','corrective','preventive','follow_up') NOT NULL,
  `description` text NOT NULL,
  `assigned_to` int(10) unsigned DEFAULT NULL,
  `due_date` date DEFAULT NULL,
  `status` enum('pending','in_progress','completed') DEFAULT 'pending',
  `completed_by` int(10) unsigned DEFAULT NULL,
  `completed_at` datetime DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_ncr` (`ncr_id`),
  KEY `idx_status` (`status`),
  KEY `assigned_to` (`assigned_to`),
  KEY `completed_by` (`completed_by`),
  CONSTRAINT `ncr_actions_ibfk_1` FOREIGN KEY (`ncr_id`) REFERENCES `non_conformance_reports` (`id`) ON DELETE CASCADE,
  CONSTRAINT `ncr_actions_ibfk_2` FOREIGN KEY (`assigned_to`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  CONSTRAINT `ncr_actions_ibfk_3` FOREIGN KEY (`completed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `ncr_actions`
--

set autocommit=0;
commit;

--
-- Table structure for table `nda_signatures`
--

CREATE TABLE `nda_signatures` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nda_id` int(11) NOT NULL,
  `signer_role` enum('customer','company_representative') NOT NULL DEFAULT 'customer',
  `signer_name` varchar(255) NOT NULL,
  `signer_email` varchar(255) NOT NULL,
  `signer_title` varchar(255) DEFAULT NULL,
  `signer_company` varchar(255) DEFAULT NULL,
  `signature_data` text DEFAULT NULL,
  `signed_at` datetime NOT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `acceptance_text` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_nda_id` (`nda_id`),
  KEY `idx_signed_at` (`signed_at`),
  KEY `idx_signer_role` (`signer_role`),
  CONSTRAINT `nda_signatures_ibfk_1` FOREIGN KEY (`nda_id`) REFERENCES `ndas` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `nda_signatures`
--

set autocommit=0;
commit;

--
-- Table structure for table `nda_templates`
--

CREATE TABLE `nda_templates` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `template_name` varchar(255) NOT NULL,
  `template_type` enum('mutual','unilateral','custom') NOT NULL,
  `template_content` longtext NOT NULL,
  `merge_fields` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`merge_fields`)),
  `is_active` tinyint(1) DEFAULT 1,
  `is_default` tinyint(1) DEFAULT 0,
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `nda_templates`
--

set autocommit=0;
INSERT INTO `nda_templates` VALUES
(1,'Mavrix 1 Unilateral NDA','unilateral','\n<div style=\"text-align: center; margin-bottom: 30px;\">\n    <h1 style=\"font-size: 18pt; margin: 20px 0;\">NON-DISCLOSURE AGREEMENT</h1>\n</div>\n\n<p>This Agreement is dated as of the date of the last signature below (the \"Effective Date\") by and between <strong>{your_company_name}</strong>, having its principal legal mailing address at: <strong>{your_company_address}</strong></p>\n\n<p style=\"text-align: center; margin: 20px 0;\"><strong>AND</strong></p>\n\n<p>(individual/Company/LLC): <strong>{company_name}</strong>, with its principal address at: <strong>{contact_address}</strong>.</p>\n\n<p>The parties wish to assure the confidentiality of certain trade secrets, information, and other materials, which have been or may be disclosed by one party (\"Discloser\") to the other party (\"Recipient\") during the review and consideration of a possible business relationship (the \"Purpose\").</p>\n\n<h2 style=\"margin-top: 30px;\">1. NO JOINT VENTURE</h2>\n<p>The parties hereto agree that this Agreement is for the purposes of protecting confidential information disclosed in furtherance of the Purpose only. This Agreement is not a joint venture or other such business arrangement; and any agreement between the parties as to a joint business activities will be, or already is, set forth in other written agreements.</p>\n\n<h2 style=\"margin-top: 30px;\">2. NO LICENSES</h2>\n<p>No license to Recipient under any trademark, patent, copyright or any other intellectual property right is either granted or implied by the disclosure of Confidential Information to Recipient. None of the Confidential Information which may be disclosed to Recipient shall constitute any representation, warranty, assurance, guarantee or inducement by either party to the other of any kind including but not limited to representations, warranties, assurances, guarantees or inducements with respect to the non-infringement of trademarks, patents, copyrights, or any other intellectual property rights, or other rights of either party or of third parties.</p>\n\n<h2 style=\"margin-top: 30px;\">3. CONFIDENTIAL INFORMATION</h2>\n<p>\"Confidential Information\" shall mean any information, field technical guide, technical data, or know-how including, but not limited to, that which relates to a party\'s hardware, software, screens, specifications, designs, plans, site plans, site drawings, general drawings, data, prototypes, discoveries, research, developments, processes, procedures, and/or technical information and materials, in oral, demonstrative, written, electronic, graphic, or machine-readable form and any analyses, compilations, studies, or documents prepared by Recipient, its representatives, or employees, which summarize any such information of Discloser.</p>\n\n<p>This Agreement also encompasses 3rd Party members of contributions/information to {your_company_name}, {your_company_name} perspective DBA\'s and subordinate companies in design, engineering diagrams, unique business model, network(s) whether marked or unmarked confidential and any other originating content, as proprietary, and not to be disclosed outside of the recipient party or used in any form.</p>\n\n<h2 style=\"margin-top: 30px;\">4. EXCEPTIONS</h2>\n<p><strong>a)</strong> Notwithstanding anything to the contrary contained herein, Recipient shall have no obligation with respect to any Confidential Information of Discloser which, as evidenced by tangible records kept in the ordinary course of business: (i) is or becomes generally known to companies engaged in the same or similar business as the parties hereto on a nonconfidential basis, through no wrongful act of Recipient; (ii) is lawfully obtained by Recipient from a third party without any obligation by Recipient to maintain the information proprietary or confidential; (iii) is known by Recipient prior to disclosure hereunder without any obligation to keep it confidential and such information was not disclosed by Discloser under this Agreement; (iv) is independently developed by Recipient without reference to or use of the other\'s Confidential Information; or (v) is the subject of a written agreement whereby Discloser consents to the disclosure of such Confidential Information.</p>\n\n<p><strong>b)</strong> If Recipient or any of its representatives shall be under a legal obligation in any administrative or judicial circumstance to disclose any Confidential Information, Recipient shall give Discloser prompt notice thereof so that Discloser may seek a protective order and/or waive the duty of non-disclosure; provided that in the absence of such order or waiver, if Recipient or any such representative shall, in the opinion of its counsel, stand liable for contempt or be likely to suffer other censure or penalty for failure to disclose, disclosure pursuant to the order of such tribunal may be made Recipient or its representatives without liability hereunder.</p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">5. PROTECTION OF CONFIDENTIAL INFORMATION</h2>\n<p><strong>a)</strong> Recipient agrees not to disclose the Confidential Information of Discloser or to use Confidential Information for any purpose other than the Purpose specified in paragraph 1 above. Recipient agrees to protect the Confidential Information of Discloser from disclosure to anyone other than its directors, officers, and employees who have a business-related need to have access to such Confidential Information in connection with the purposes of this Agreement, and who have entered into the agreements with such party pursuant to which they are bound by the confidentiality provisions of this Agreement to the same extent that Recipient is bound. Recipient further agrees promptly to advise Discloser in writing of any unauthorized misappropriation, disclosure or use by any person of the Confidential Information of Discloser which may come to its attention and to take all steps reasonably requested by Discloser to limit, stop or otherwise remedy such misappropriation, disclosure or use.</p>\n\n<p><strong>b)</strong> Recipient will only make as many copies of Confidential Information as are necessary for its use under the terms hereof, and each such copy will be marked with the same proprietary notices that appear on the originals.</p>\n\n<p><strong>c)</strong> The rights and obligations of the parties under this Agreement expire <strong>FIVE (5) years</strong> after the Effective Date, provided that with respect to Confidential Information that constitutes a trade secret under applicable law, such rights and obligations will survive such expiration until, if ever, such Confidential Information loses its trade secret protection other than due to an act or omission of Recipient or its representatives.</p>\n\n<p><strong>d)</strong> The rights and obligations of the parties under this Agreement as to the confidence obligations of sensitive classified and unclassified information pertaining to national security shall continue forever and shall survive the expiration and/or termination of this Agreement.</p>\n\n<p><strong>e)</strong> The Parties acknowledge and agree that any Controlled Unclassified Information (CUI) exchanged or accessed in the course of this Agreement, whether oral, written, or electronic, shall be handled, protected, and secured in accordance with all applicable laws, regulations, and policies governing the handling of CUI. The receiving party agrees to protect the CUI from unauthorized access, disclosure, or use, and will implement appropriate and reasonable security measures in compliance with federal, state, and local laws, as well as any specific requirements outlined by the Disclosing Party. The receiving Party agrees that CUI disclosed under this Agreement shall be used solely for the purpose of the business relationship between the Parties and will not be used for any unauthorized or non-business-related purposes. Upon termination of this Agreement, or upon request of the Disclosing Party, the Receiving Party shall promptly return or take reasonable measures to destroy all copies of CUI, as instructed by the Disclosing Party.</p>\n\n<p><strong>f)</strong> In the event of a suspected or actual breach of CUI, the Receiving Party shall immediately notify the Disclosing Party and cooperate in any investigation or remedial actions necessary to address and mitigate any such breach. The obligations of this section shall survive the termination of this Agreement for as long as the information qualifies under CUI applicable laws and regulations.</p>\n\n<p><strong>g)</strong> Protection of confidentiality and other sensitive data under this Agreement must also adhere to the standard as provided by Department of Defense directive Operations Security (OPSEC) Program § 5205.02-M.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">The Department of Defense policy, outlined in Department of Defense Manual (\"DoDM\") §5205.02-M mandates the establishment and maintenance of Operational Security (\"OPSEC\") programs to ensure national security-related missions and functions are protected. OPSEC is a risk management strategy designed to safeguard sensitive information and prevent unauthorized access or exploitation of information, communications, and data in the interest of the National Security of the United States.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">Examples of OPSEC include avoiding sharing specific dates, locations, or casualty details to third parties, social media, or to anyone privately or in the public sphere; maintaining caution with regard to discussing unit specifics and capabilities. OPSEC involves a systematic approach that includes identifying critical information by evaluating potential adversaries and their capabilities to exploit vulnerabilities; vulnerability analysis by identifying weaknesses in security measures that could be exploited by adversaries; risk assessment by evaluating the likelihood and potential impact of vulnerabilities being exploited; and adherence to countermeasures by implementing measures to mitigate identified risks and protecting critical information.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\"><strong>OPSEC is a continuing process that requires ongoing assessment and adaptation to evolving threats and vulnerabilities. OPSEC also applies to unclassified information that could reveal sensitive details or information.</strong></p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">6. GENERAL PROVISIONS</h2>\n\n<p><strong>a. SEVERABILITY.</strong> If any term, provision, covenant or condition of this Agreement, or the application thereof to any person, place or circumstance, shall be held to be invalid, unenforceable or void, the remainder of this Agreement and such term, provision, covenant or condition as applied to other persons, places and circumstances shall remain in full force and effect.</p>\n\n<p><strong>b. RIGHTS CUMULATIVE.</strong> The rights and remedies provided by this Agreement are cumulative, and the exercise of any right or remedy by either party hereto (or by its successor), whether pursuant to this Agreement, to any other agreement, or to law, shall not preclude or waive its right to exercise any or all other rights and remedies.</p>\n\n<p>No failure or neglect of either party hereto in any instance to exercise any right, power, or privilege hereunder or under law shall constitute a waiver of any other right, power, or privilege or of the same right, power or privilege in any other instance. All waivers by either party hereto must be contained in a written instrument signed by the party to be charged and, in the case of the Company, by an officer of the Company or other person duly authorized by the Company.</p>\n\n<p><strong>c. REMEDY FOR BREACH.</strong> The parties hereto agree that, in the event of breach or threatened breach of any covenants of this Agreement, the damage or imminent damage to the other Party shall be inestimable, and that therefore any remedy at law or in damages shall be inadequate. Accordingly, the parties hereto agree that the aggrieved party shall be entitled to injunctive relief against the other Party in the event of any breach or threatened breach of this Agreement, in addition to any other relief (including damages) available to the Company under this Agreement or under law.</p>\n\n<p><strong>d. CHOICE OF LAW.</strong> Client consents to personal jurisdiction of the State and Federal courts located in the State of Florida, County of Manatee or closest thereof in connection with any controversy relating in any way to this Agreement or to any transaction. Client agrees to hold harmless {your_company_name} in any litigation, arbitration or any other choses or claim of action the Client may commence against Lender, Investor, Funding Source or Guarantor, or any other subcontracted party of the {your_company_name}.</p>\n\n<p>It is further agreed that any dispute, whether taking place in an international jurisdiction or in the USA shall be governed under the Laws of the United States of America and under the State and Federal courts named above.</p>\n\n<p><strong>e. NOTICES.</strong> Any notice, request, consent or approval required or permitted to be given under this Agreement or pursuant to law shall be sufficient if in writing, and if and when sent by certified or registered mail with postage prepaid and/or electronic mail, to {your_company_name}\'s address (as noted above) or to the Company\'s principal office, as the case may be.</p>\n\n<p><strong>f. MISCELLANEOUS.</strong></p>\n<p style=\"margin-left: 30px;\">(a) Should this Agreement be transmitted by facsimile, email, or electronic signature, the document shall be considered as an original document, and if signed and transmitted separately each section becoming both legally binding and enforceable.</p>\n<p style=\"margin-left: 30px;\">(b) This Agreement may only be modified or changed in writing and signed by both parties.</p>\n<p style=\"margin-left: 30px;\">(c) If any person or provision of this Agreement or its application is held to be invalid, illegal, or unenforceable in any respect, the validity, legality, or enforceability of any of the other provisions and applications therein shall not in any way be affected or impaired.</p>\n','{\"your_company_name\": \"Your company name\", \"your_company_address\": \"Your company address\", \"company_name\": \"Customer company name\", \"contact_name\": \"Customer contact name\", \"contact_title\": \"Customer contact title\", \"contact_email\": \"Customer contact email\", \"contact_address\": \"Customer company address\", \"effective_date\": \"Agreement effective date\", \"term_months\": \"Term duration in months\"}',1,1,NULL,'2025-11-16 11:44:05','2025-11-16 22:17:58');
commit;

--
-- Table structure for table `ndas`
--

CREATE TABLE `ndas` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `nda_number` varchar(50) NOT NULL,
  `nda_type` enum('mutual','unilateral','custom') DEFAULT 'unilateral',
  `template_id` int(11) DEFAULT NULL,
  `company_name` varchar(255) NOT NULL,
  `contact_name` varchar(255) NOT NULL,
  `contact_email` varchar(255) NOT NULL,
  `contact_title` varchar(255) DEFAULT NULL,
  `effective_date` date NOT NULL,
  `expiration_date` date DEFAULT NULL,
  `term_months` int(11) DEFAULT 12,
  `document_content` longtext DEFAULT NULL,
  `document_path` varchar(500) DEFAULT NULL,
  `public_token` varchar(64) NOT NULL,
  `token_expires_at` datetime DEFAULT NULL,
  `status` enum('draft','sent','viewed','partially_signed','signed','fully_executed','declined','expired') DEFAULT 'draft',
  `sent_at` datetime DEFAULT NULL,
  `viewed_at` datetime DEFAULT NULL,
  `signed_at` datetime DEFAULT NULL,
  `company_signed_at` datetime DEFAULT NULL,
  `company_signed_by` int(11) DEFAULT NULL,
  `declined_at` datetime DEFAULT NULL,
  `declined_reason` text DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `created_by` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `nda_number` (`nda_number`),
  UNIQUE KEY `public_token` (`public_token`),
  KEY `idx_opportunity_id` (`opportunity_id`),
  KEY `idx_status` (`status`),
  KEY `idx_public_token` (`public_token`),
  KEY `idx_created_at` (`created_at`),
  KEY `idx_company_signed_by` (`company_signed_by`),
  CONSTRAINT `fk_ndas_opportunity` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `ndas`
--

set autocommit=0;
INSERT INTO `ndas` VALUES
(15,24,'NDA-2025-00001','unilateral',1,'AeroVironment','','aerovironment@example.com','CEO','2025-11-27','2026-11-27',12,'\n<div style=\"text-align: center; margin-bottom: 30px;\">\n    <h1 style=\"font-size: 18pt; margin: 20px 0;\">NON-DISCLOSURE AGREEMENT</h1>\n</div>\n\n<p>This Agreement is dated as of the date of the last signature below (the \"Effective Date\") by and between <strong>Your Company Name</strong>, having its principal legal mailing address at: <strong>Your Company Address</strong></p>\n\n<p style=\"text-align: center; margin: 20px 0;\"><strong>AND</strong></p>\n\n<p>(individual/Company/LLC): <strong>{company_name}</strong>, with its principal address at: <strong>{contact_address}</strong>.</p>\n\n<p>The parties wish to assure the confidentiality of certain trade secrets, information, and other materials, which have been or may be disclosed by one party (\"Discloser\") to the other party (\"Recipient\") during the review and consideration of a possible business relationship (the \"Purpose\").</p>\n\n<h2 style=\"margin-top: 30px;\">1. NO JOINT VENTURE</h2>\n<p>The parties hereto agree that this Agreement is for the purposes of protecting confidential information disclosed in furtherance of the Purpose only. This Agreement is not a joint venture or other such business arrangement; and any agreement between the parties as to a joint business activities will be, or already is, set forth in other written agreements.</p>\n\n<h2 style=\"margin-top: 30px;\">2. NO LICENSES</h2>\n<p>No license to Recipient under any trademark, patent, copyright or any other intellectual property right is either granted or implied by the disclosure of Confidential Information to Recipient. None of the Confidential Information which may be disclosed to Recipient shall constitute any representation, warranty, assurance, guarantee or inducement by either party to the other of any kind including but not limited to representations, warranties, assurances, guarantees or inducements with respect to the non-infringement of trademarks, patents, copyrights, or any other intellectual property rights, or other rights of either party or of third parties.</p>\n\n<h2 style=\"margin-top: 30px;\">3. CONFIDENTIAL INFORMATION</h2>\n<p>\"Confidential Information\" shall mean any information, field technical guide, technical data, or know-how including, but not limited to, that which relates to a party\'s hardware, software, screens, specifications, designs, plans, site plans, site drawings, general drawings, data, prototypes, discoveries, research, developments, processes, procedures, and/or technical information and materials, in oral, demonstrative, written, electronic, graphic, or machine-readable form and any analyses, compilations, studies, or documents prepared by Recipient, its representatives, or employees, which summarize any such information of Discloser.</p>\n\n<p>This Agreement also encompasses 3rd Party members of contributions/information to Your Company Name, Your Company Name perspective DBA\'s and subordinate companies in design, engineering diagrams, unique business model, network(s) whether marked or unmarked confidential and any other originating content, as proprietary, and not to be disclosed outside of the recipient party or used in any form.</p>\n\n<h2 style=\"margin-top: 30px;\">4. EXCEPTIONS</h2>\n<p><strong>a)</strong> Notwithstanding anything to the contrary contained herein, Recipient shall have no obligation with respect to any Confidential Information of Discloser which, as evidenced by tangible records kept in the ordinary course of business: (i) is or becomes generally known to companies engaged in the same or similar business as the parties hereto on a nonconfidential basis, through no wrongful act of Recipient; (ii) is lawfully obtained by Recipient from a third party without any obligation by Recipient to maintain the information proprietary or confidential; (iii) is known by Recipient prior to disclosure hereunder without any obligation to keep it confidential and such information was not disclosed by Discloser under this Agreement; (iv) is independently developed by Recipient without reference to or use of the other\'s Confidential Information; or (v) is the subject of a written agreement whereby Discloser consents to the disclosure of such Confidential Information.</p>\n\n<p><strong>b)</strong> If Recipient or any of its representatives shall be under a legal obligation in any administrative or judicial circumstance to disclose any Confidential Information, Recipient shall give Discloser prompt notice thereof so that Discloser may seek a protective order and/or waive the duty of non-disclosure; provided that in the absence of such order or waiver, if Recipient or any such representative shall, in the opinion of its counsel, stand liable for contempt or be likely to suffer other censure or penalty for failure to disclose, disclosure pursuant to the order of such tribunal may be made Recipient or its representatives without liability hereunder.</p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">5. PROTECTION OF CONFIDENTIAL INFORMATION</h2>\n<p><strong>a)</strong> Recipient agrees not to disclose the Confidential Information of Discloser or to use Confidential Information for any purpose other than the Purpose specified in paragraph 1 above. Recipient agrees to protect the Confidential Information of Discloser from disclosure to anyone other than its directors, officers, and employees who have a business-related need to have access to such Confidential Information in connection with the purposes of this Agreement, and who have entered into the agreements with such party pursuant to which they are bound by the confidentiality provisions of this Agreement to the same extent that Recipient is bound. Recipient further agrees promptly to advise Discloser in writing of any unauthorized misappropriation, disclosure or use by any person of the Confidential Information of Discloser which may come to its attention and to take all steps reasonably requested by Discloser to limit, stop or otherwise remedy such misappropriation, disclosure or use.</p>\n\n<p><strong>b)</strong> Recipient will only make as many copies of Confidential Information as are necessary for its use under the terms hereof, and each such copy will be marked with the same proprietary notices that appear on the originals.</p>\n\n<p><strong>c)</strong> The rights and obligations of the parties under this Agreement expire <strong>FIVE (5) years</strong> after the Effective Date, provided that with respect to Confidential Information that constitutes a trade secret under applicable law, such rights and obligations will survive such expiration until, if ever, such Confidential Information loses its trade secret protection other than due to an act or omission of Recipient or its representatives.</p>\n\n<p><strong>d)</strong> The rights and obligations of the parties under this Agreement as to the confidence obligations of sensitive classified and unclassified information pertaining to national security shall continue forever and shall survive the expiration and/or termination of this Agreement.</p>\n\n<p><strong>e)</strong> The Parties acknowledge and agree that any Controlled Unclassified Information (CUI) exchanged or accessed in the course of this Agreement, whether oral, written, or electronic, shall be handled, protected, and secured in accordance with all applicable laws, regulations, and policies governing the handling of CUI. The receiving party agrees to protect the CUI from unauthorized access, disclosure, or use, and will implement appropriate and reasonable security measures in compliance with federal, state, and local laws, as well as any specific requirements outlined by the Disclosing Party. The receiving Party agrees that CUI disclosed under this Agreement shall be used solely for the purpose of the business relationship between the Parties and will not be used for any unauthorized or non-business-related purposes. Upon termination of this Agreement, or upon request of the Disclosing Party, the Receiving Party shall promptly return or take reasonable measures to destroy all copies of CUI, as instructed by the Disclosing Party.</p>\n\n<p><strong>f)</strong> In the event of a suspected or actual breach of CUI, the Receiving Party shall immediately notify the Disclosing Party and cooperate in any investigation or remedial actions necessary to address and mitigate any such breach. The obligations of this section shall survive the termination of this Agreement for as long as the information qualifies under CUI applicable laws and regulations.</p>\n\n<p><strong>g)</strong> Protection of confidentiality and other sensitive data under this Agreement must also adhere to the standard as provided by Department of Defense directive Operations Security (OPSEC) Program § 5205.02-M.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">The Department of Defense policy, outlined in Department of Defense Manual (\"DoDM\") §5205.02-M mandates the establishment and maintenance of Operational Security (\"OPSEC\") programs to ensure national security-related missions and functions are protected. OPSEC is a risk management strategy designed to safeguard sensitive information and prevent unauthorized access or exploitation of information, communications, and data in the interest of the National Security of the United States.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">Examples of OPSEC include avoiding sharing specific dates, locations, or casualty details to third parties, social media, or to anyone privately or in the public sphere; maintaining caution with regard to discussing unit specifics and capabilities. OPSEC involves a systematic approach that includes identifying critical information by evaluating potential adversaries and their capabilities to exploit vulnerabilities; vulnerability analysis by identifying weaknesses in security measures that could be exploited by adversaries; risk assessment by evaluating the likelihood and potential impact of vulnerabilities being exploited; and adherence to countermeasures by implementing measures to mitigate identified risks and protecting critical information.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\"><strong>OPSEC is a continuing process that requires ongoing assessment and adaptation to evolving threats and vulnerabilities. OPSEC also applies to unclassified information that could reveal sensitive details or information.</strong></p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">6. GENERAL PROVISIONS</h2>\n\n<p><strong>a. SEVERABILITY.</strong> If any term, provision, covenant or condition of this Agreement, or the application thereof to any person, place or circumstance, shall be held to be invalid, unenforceable or void, the remainder of this Agreement and such term, provision, covenant or condition as applied to other persons, places and circumstances shall remain in full force and effect.</p>\n\n<p><strong>b. RIGHTS CUMULATIVE.</strong> The rights and remedies provided by this Agreement are cumulative, and the exercise of any right or remedy by either party hereto (or by its successor), whether pursuant to this Agreement, to any other agreement, or to law, shall not preclude or waive its right to exercise any or all other rights and remedies.</p>\n\n<p>No failure or neglect of either party hereto in any instance to exercise any right, power, or privilege hereunder or under law shall constitute a waiver of any other right, power, or privilege or of the same right, power or privilege in any other instance. All waivers by either party hereto must be contained in a written instrument signed by the party to be charged and, in the case of the Company, by an officer of the Company or other person duly authorized by the Company.</p>\n\n<p><strong>c. REMEDY FOR BREACH.</strong> The parties hereto agree that, in the event of breach or threatened breach of any covenants of this Agreement, the damage or imminent damage to the other Party shall be inestimable, and that therefore any remedy at law or in damages shall be inadequate. Accordingly, the parties hereto agree that the aggrieved party shall be entitled to injunctive relief against the other Party in the event of any breach or threatened breach of this Agreement, in addition to any other relief (including damages) available to the Company under this Agreement or under law.</p>\n\n<p><strong>d. CHOICE OF LAW.</strong> Client consents to personal jurisdiction of the State and Federal courts located in the State of Florida, County of Manatee or closest thereof in connection with any controversy relating in any way to this Agreement or to any transaction. Client agrees to hold harmless Your Company Name in any litigation, arbitration or any other choses or claim of action the Client may commence against Lender, Investor, Funding Source or Guarantor, or any other subcontracted party of the Your Company Name.</p>\n\n<p>It is further agreed that any dispute, whether taking place in an international jurisdiction or in the USA shall be governed under the Laws of the United States of America and under the State and Federal courts named above.</p>\n\n<p><strong>e. NOTICES.</strong> Any notice, request, consent or approval required or permitted to be given under this Agreement or pursuant to law shall be sufficient if in writing, and if and when sent by certified or registered mail with postage prepaid and/or electronic mail, to Your Company Name\'s address (as noted above) or to the Company\'s principal office, as the case may be.</p>\n\n<p><strong>f. MISCELLANEOUS.</strong></p>\n<p style=\"margin-left: 30px;\">(a) Should this Agreement be transmitted by facsimile, email, or electronic signature, the document shall be considered as an original document, and if signed and transmitted separately each section becoming both legally binding and enforceable.</p>\n<p style=\"margin-left: 30px;\">(b) This Agreement may only be modified or changed in writing and signed by both parties.</p>\n<p style=\"margin-left: 30px;\">(c) If any person or provision of this Agreement or its application is held to be invalid, illegal, or unenforceable in any respect, the validity, legality, or enforceability of any of the other provisions and applications therein shall not in any way be affected or impaired.</p>\n',NULL,'2242bdbb432e3a906edd9951e9c48c7c4e1523fdb6c7b8165d36191f64d428b2','2026-02-25 11:11:25','sent','2025-11-27 11:11:33',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2025-11-27 16:11:25','2025-11-27 16:11:33'),
(16,24,'NDA-2025-00002','unilateral',1,'AeroVironment','','aerovironment@example.com','CEO','2025-12-02','2026-12-02',12,'\n<div style=\"text-align: center; margin-bottom: 30px;\">\n    <h1 style=\"font-size: 18pt; margin: 20px 0;\">NON-DISCLOSURE AGREEMENT</h1>\n</div>\n\n<p>This Agreement is dated as of the date of the last signature below (the \"Effective Date\") by and between <strong>Your Company Name</strong>, having its principal legal mailing address at: <strong>Your Company Address</strong></p>\n\n<p style=\"text-align: center; margin: 20px 0;\"><strong>AND</strong></p>\n\n<p>(individual/Company/LLC): <strong>{company_name}</strong>, with its principal address at: <strong>{contact_address}</strong>.</p>\n\n<p>The parties wish to assure the confidentiality of certain trade secrets, information, and other materials, which have been or may be disclosed by one party (\"Discloser\") to the other party (\"Recipient\") during the review and consideration of a possible business relationship (the \"Purpose\").</p>\n\n<h2 style=\"margin-top: 30px;\">1. NO JOINT VENTURE</h2>\n<p>The parties hereto agree that this Agreement is for the purposes of protecting confidential information disclosed in furtherance of the Purpose only. This Agreement is not a joint venture or other such business arrangement; and any agreement between the parties as to a joint business activities will be, or already is, set forth in other written agreements.</p>\n\n<h2 style=\"margin-top: 30px;\">2. NO LICENSES</h2>\n<p>No license to Recipient under any trademark, patent, copyright or any other intellectual property right is either granted or implied by the disclosure of Confidential Information to Recipient. None of the Confidential Information which may be disclosed to Recipient shall constitute any representation, warranty, assurance, guarantee or inducement by either party to the other of any kind including but not limited to representations, warranties, assurances, guarantees or inducements with respect to the non-infringement of trademarks, patents, copyrights, or any other intellectual property rights, or other rights of either party or of third parties.</p>\n\n<h2 style=\"margin-top: 30px;\">3. CONFIDENTIAL INFORMATION</h2>\n<p>\"Confidential Information\" shall mean any information, field technical guide, technical data, or know-how including, but not limited to, that which relates to a party\'s hardware, software, screens, specifications, designs, plans, site plans, site drawings, general drawings, data, prototypes, discoveries, research, developments, processes, procedures, and/or technical information and materials, in oral, demonstrative, written, electronic, graphic, or machine-readable form and any analyses, compilations, studies, or documents prepared by Recipient, its representatives, or employees, which summarize any such information of Discloser.</p>\n\n<p>This Agreement also encompasses 3rd Party members of contributions/information to Your Company Name, Your Company Name perspective DBA\'s and subordinate companies in design, engineering diagrams, unique business model, network(s) whether marked or unmarked confidential and any other originating content, as proprietary, and not to be disclosed outside of the recipient party or used in any form.</p>\n\n<h2 style=\"margin-top: 30px;\">4. EXCEPTIONS</h2>\n<p><strong>a)</strong> Notwithstanding anything to the contrary contained herein, Recipient shall have no obligation with respect to any Confidential Information of Discloser which, as evidenced by tangible records kept in the ordinary course of business: (i) is or becomes generally known to companies engaged in the same or similar business as the parties hereto on a nonconfidential basis, through no wrongful act of Recipient; (ii) is lawfully obtained by Recipient from a third party without any obligation by Recipient to maintain the information proprietary or confidential; (iii) is known by Recipient prior to disclosure hereunder without any obligation to keep it confidential and such information was not disclosed by Discloser under this Agreement; (iv) is independently developed by Recipient without reference to or use of the other\'s Confidential Information; or (v) is the subject of a written agreement whereby Discloser consents to the disclosure of such Confidential Information.</p>\n\n<p><strong>b)</strong> If Recipient or any of its representatives shall be under a legal obligation in any administrative or judicial circumstance to disclose any Confidential Information, Recipient shall give Discloser prompt notice thereof so that Discloser may seek a protective order and/or waive the duty of non-disclosure; provided that in the absence of such order or waiver, if Recipient or any such representative shall, in the opinion of its counsel, stand liable for contempt or be likely to suffer other censure or penalty for failure to disclose, disclosure pursuant to the order of such tribunal may be made Recipient or its representatives without liability hereunder.</p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">5. PROTECTION OF CONFIDENTIAL INFORMATION</h2>\n<p><strong>a)</strong> Recipient agrees not to disclose the Confidential Information of Discloser or to use Confidential Information for any purpose other than the Purpose specified in paragraph 1 above. Recipient agrees to protect the Confidential Information of Discloser from disclosure to anyone other than its directors, officers, and employees who have a business-related need to have access to such Confidential Information in connection with the purposes of this Agreement, and who have entered into the agreements with such party pursuant to which they are bound by the confidentiality provisions of this Agreement to the same extent that Recipient is bound. Recipient further agrees promptly to advise Discloser in writing of any unauthorized misappropriation, disclosure or use by any person of the Confidential Information of Discloser which may come to its attention and to take all steps reasonably requested by Discloser to limit, stop or otherwise remedy such misappropriation, disclosure or use.</p>\n\n<p><strong>b)</strong> Recipient will only make as many copies of Confidential Information as are necessary for its use under the terms hereof, and each such copy will be marked with the same proprietary notices that appear on the originals.</p>\n\n<p><strong>c)</strong> The rights and obligations of the parties under this Agreement expire <strong>FIVE (5) years</strong> after the Effective Date, provided that with respect to Confidential Information that constitutes a trade secret under applicable law, such rights and obligations will survive such expiration until, if ever, such Confidential Information loses its trade secret protection other than due to an act or omission of Recipient or its representatives.</p>\n\n<p><strong>d)</strong> The rights and obligations of the parties under this Agreement as to the confidence obligations of sensitive classified and unclassified information pertaining to national security shall continue forever and shall survive the expiration and/or termination of this Agreement.</p>\n\n<p><strong>e)</strong> The Parties acknowledge and agree that any Controlled Unclassified Information (CUI) exchanged or accessed in the course of this Agreement, whether oral, written, or electronic, shall be handled, protected, and secured in accordance with all applicable laws, regulations, and policies governing the handling of CUI. The receiving party agrees to protect the CUI from unauthorized access, disclosure, or use, and will implement appropriate and reasonable security measures in compliance with federal, state, and local laws, as well as any specific requirements outlined by the Disclosing Party. The receiving Party agrees that CUI disclosed under this Agreement shall be used solely for the purpose of the business relationship between the Parties and will not be used for any unauthorized or non-business-related purposes. Upon termination of this Agreement, or upon request of the Disclosing Party, the Receiving Party shall promptly return or take reasonable measures to destroy all copies of CUI, as instructed by the Disclosing Party.</p>\n\n<p><strong>f)</strong> In the event of a suspected or actual breach of CUI, the Receiving Party shall immediately notify the Disclosing Party and cooperate in any investigation or remedial actions necessary to address and mitigate any such breach. The obligations of this section shall survive the termination of this Agreement for as long as the information qualifies under CUI applicable laws and regulations.</p>\n\n<p><strong>g)</strong> Protection of confidentiality and other sensitive data under this Agreement must also adhere to the standard as provided by Department of Defense directive Operations Security (OPSEC) Program § 5205.02-M.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">The Department of Defense policy, outlined in Department of Defense Manual (\"DoDM\") §5205.02-M mandates the establishment and maintenance of Operational Security (\"OPSEC\") programs to ensure national security-related missions and functions are protected. OPSEC is a risk management strategy designed to safeguard sensitive information and prevent unauthorized access or exploitation of information, communications, and data in the interest of the National Security of the United States.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">Examples of OPSEC include avoiding sharing specific dates, locations, or casualty details to third parties, social media, or to anyone privately or in the public sphere; maintaining caution with regard to discussing unit specifics and capabilities. OPSEC involves a systematic approach that includes identifying critical information by evaluating potential adversaries and their capabilities to exploit vulnerabilities; vulnerability analysis by identifying weaknesses in security measures that could be exploited by adversaries; risk assessment by evaluating the likelihood and potential impact of vulnerabilities being exploited; and adherence to countermeasures by implementing measures to mitigate identified risks and protecting critical information.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\"><strong>OPSEC is a continuing process that requires ongoing assessment and adaptation to evolving threats and vulnerabilities. OPSEC also applies to unclassified information that could reveal sensitive details or information.</strong></p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">6. GENERAL PROVISIONS</h2>\n\n<p><strong>a. SEVERABILITY.</strong> If any term, provision, covenant or condition of this Agreement, or the application thereof to any person, place or circumstance, shall be held to be invalid, unenforceable or void, the remainder of this Agreement and such term, provision, covenant or condition as applied to other persons, places and circumstances shall remain in full force and effect.</p>\n\n<p><strong>b. RIGHTS CUMULATIVE.</strong> The rights and remedies provided by this Agreement are cumulative, and the exercise of any right or remedy by either party hereto (or by its successor), whether pursuant to this Agreement, to any other agreement, or to law, shall not preclude or waive its right to exercise any or all other rights and remedies.</p>\n\n<p>No failure or neglect of either party hereto in any instance to exercise any right, power, or privilege hereunder or under law shall constitute a waiver of any other right, power, or privilege or of the same right, power or privilege in any other instance. All waivers by either party hereto must be contained in a written instrument signed by the party to be charged and, in the case of the Company, by an officer of the Company or other person duly authorized by the Company.</p>\n\n<p><strong>c. REMEDY FOR BREACH.</strong> The parties hereto agree that, in the event of breach or threatened breach of any covenants of this Agreement, the damage or imminent damage to the other Party shall be inestimable, and that therefore any remedy at law or in damages shall be inadequate. Accordingly, the parties hereto agree that the aggrieved party shall be entitled to injunctive relief against the other Party in the event of any breach or threatened breach of this Agreement, in addition to any other relief (including damages) available to the Company under this Agreement or under law.</p>\n\n<p><strong>d. CHOICE OF LAW.</strong> Client consents to personal jurisdiction of the State and Federal courts located in the State of Florida, County of Manatee or closest thereof in connection with any controversy relating in any way to this Agreement or to any transaction. Client agrees to hold harmless Your Company Name in any litigation, arbitration or any other choses or claim of action the Client may commence against Lender, Investor, Funding Source or Guarantor, or any other subcontracted party of the Your Company Name.</p>\n\n<p>It is further agreed that any dispute, whether taking place in an international jurisdiction or in the USA shall be governed under the Laws of the United States of America and under the State and Federal courts named above.</p>\n\n<p><strong>e. NOTICES.</strong> Any notice, request, consent or approval required or permitted to be given under this Agreement or pursuant to law shall be sufficient if in writing, and if and when sent by certified or registered mail with postage prepaid and/or electronic mail, to Your Company Name\'s address (as noted above) or to the Company\'s principal office, as the case may be.</p>\n\n<p><strong>f. MISCELLANEOUS.</strong></p>\n<p style=\"margin-left: 30px;\">(a) Should this Agreement be transmitted by facsimile, email, or electronic signature, the document shall be considered as an original document, and if signed and transmitted separately each section becoming both legally binding and enforceable.</p>\n<p style=\"margin-left: 30px;\">(b) This Agreement may only be modified or changed in writing and signed by both parties.</p>\n<p style=\"margin-left: 30px;\">(c) If any person or provision of this Agreement or its application is held to be invalid, illegal, or unenforceable in any respect, the validity, legality, or enforceability of any of the other provisions and applications therein shall not in any way be affected or impaired.</p>\n',NULL,'1d7a74a4fd432b14c42f21b35e79395aa642fd177715a8959214976055305427','2026-03-02 16:53:17','sent','2025-12-02 16:54:05',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2025-12-02 21:53:17','2025-12-02 21:54:05'),
(17,24,'NDA-2025-00003','unilateral',1,'AeroVironment','','aerovironment@example.com','CEO','2025-12-04','2026-12-04',12,'\n<div style=\"text-align: center; margin-bottom: 30px;\">\n    <h1 style=\"font-size: 18pt; margin: 20px 0;\">NON-DISCLOSURE AGREEMENT</h1>\n</div>\n\n<p>This Agreement is dated as of the date of the last signature below (the \"Effective Date\") by and between <strong>Your Company Name</strong>, having its principal legal mailing address at: <strong>Your Company Address</strong></p>\n\n<p style=\"text-align: center; margin: 20px 0;\"><strong>AND</strong></p>\n\n<p>(individual/Company/LLC): <strong>{company_name}</strong>, with its principal address at: <strong>{contact_address}</strong>.</p>\n\n<p>The parties wish to assure the confidentiality of certain trade secrets, information, and other materials, which have been or may be disclosed by one party (\"Discloser\") to the other party (\"Recipient\") during the review and consideration of a possible business relationship (the \"Purpose\").</p>\n\n<h2 style=\"margin-top: 30px;\">1. NO JOINT VENTURE</h2>\n<p>The parties hereto agree that this Agreement is for the purposes of protecting confidential information disclosed in furtherance of the Purpose only. This Agreement is not a joint venture or other such business arrangement; and any agreement between the parties as to a joint business activities will be, or already is, set forth in other written agreements.</p>\n\n<h2 style=\"margin-top: 30px;\">2. NO LICENSES</h2>\n<p>No license to Recipient under any trademark, patent, copyright or any other intellectual property right is either granted or implied by the disclosure of Confidential Information to Recipient. None of the Confidential Information which may be disclosed to Recipient shall constitute any representation, warranty, assurance, guarantee or inducement by either party to the other of any kind including but not limited to representations, warranties, assurances, guarantees or inducements with respect to the non-infringement of trademarks, patents, copyrights, or any other intellectual property rights, or other rights of either party or of third parties.</p>\n\n<h2 style=\"margin-top: 30px;\">3. CONFIDENTIAL INFORMATION</h2>\n<p>\"Confidential Information\" shall mean any information, field technical guide, technical data, or know-how including, but not limited to, that which relates to a party\'s hardware, software, screens, specifications, designs, plans, site plans, site drawings, general drawings, data, prototypes, discoveries, research, developments, processes, procedures, and/or technical information and materials, in oral, demonstrative, written, electronic, graphic, or machine-readable form and any analyses, compilations, studies, or documents prepared by Recipient, its representatives, or employees, which summarize any such information of Discloser.</p>\n\n<p>This Agreement also encompasses 3rd Party members of contributions/information to Your Company Name, Your Company Name perspective DBA\'s and subordinate companies in design, engineering diagrams, unique business model, network(s) whether marked or unmarked confidential and any other originating content, as proprietary, and not to be disclosed outside of the recipient party or used in any form.</p>\n\n<h2 style=\"margin-top: 30px;\">4. EXCEPTIONS</h2>\n<p><strong>a)</strong> Notwithstanding anything to the contrary contained herein, Recipient shall have no obligation with respect to any Confidential Information of Discloser which, as evidenced by tangible records kept in the ordinary course of business: (i) is or becomes generally known to companies engaged in the same or similar business as the parties hereto on a nonconfidential basis, through no wrongful act of Recipient; (ii) is lawfully obtained by Recipient from a third party without any obligation by Recipient to maintain the information proprietary or confidential; (iii) is known by Recipient prior to disclosure hereunder without any obligation to keep it confidential and such information was not disclosed by Discloser under this Agreement; (iv) is independently developed by Recipient without reference to or use of the other\'s Confidential Information; or (v) is the subject of a written agreement whereby Discloser consents to the disclosure of such Confidential Information.</p>\n\n<p><strong>b)</strong> If Recipient or any of its representatives shall be under a legal obligation in any administrative or judicial circumstance to disclose any Confidential Information, Recipient shall give Discloser prompt notice thereof so that Discloser may seek a protective order and/or waive the duty of non-disclosure; provided that in the absence of such order or waiver, if Recipient or any such representative shall, in the opinion of its counsel, stand liable for contempt or be likely to suffer other censure or penalty for failure to disclose, disclosure pursuant to the order of such tribunal may be made Recipient or its representatives without liability hereunder.</p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">5. PROTECTION OF CONFIDENTIAL INFORMATION</h2>\n<p><strong>a)</strong> Recipient agrees not to disclose the Confidential Information of Discloser or to use Confidential Information for any purpose other than the Purpose specified in paragraph 1 above. Recipient agrees to protect the Confidential Information of Discloser from disclosure to anyone other than its directors, officers, and employees who have a business-related need to have access to such Confidential Information in connection with the purposes of this Agreement, and who have entered into the agreements with such party pursuant to which they are bound by the confidentiality provisions of this Agreement to the same extent that Recipient is bound. Recipient further agrees promptly to advise Discloser in writing of any unauthorized misappropriation, disclosure or use by any person of the Confidential Information of Discloser which may come to its attention and to take all steps reasonably requested by Discloser to limit, stop or otherwise remedy such misappropriation, disclosure or use.</p>\n\n<p><strong>b)</strong> Recipient will only make as many copies of Confidential Information as are necessary for its use under the terms hereof, and each such copy will be marked with the same proprietary notices that appear on the originals.</p>\n\n<p><strong>c)</strong> The rights and obligations of the parties under this Agreement expire <strong>FIVE (5) years</strong> after the Effective Date, provided that with respect to Confidential Information that constitutes a trade secret under applicable law, such rights and obligations will survive such expiration until, if ever, such Confidential Information loses its trade secret protection other than due to an act or omission of Recipient or its representatives.</p>\n\n<p><strong>d)</strong> The rights and obligations of the parties under this Agreement as to the confidence obligations of sensitive classified and unclassified information pertaining to national security shall continue forever and shall survive the expiration and/or termination of this Agreement.</p>\n\n<p><strong>e)</strong> The Parties acknowledge and agree that any Controlled Unclassified Information (CUI) exchanged or accessed in the course of this Agreement, whether oral, written, or electronic, shall be handled, protected, and secured in accordance with all applicable laws, regulations, and policies governing the handling of CUI. The receiving party agrees to protect the CUI from unauthorized access, disclosure, or use, and will implement appropriate and reasonable security measures in compliance with federal, state, and local laws, as well as any specific requirements outlined by the Disclosing Party. The receiving Party agrees that CUI disclosed under this Agreement shall be used solely for the purpose of the business relationship between the Parties and will not be used for any unauthorized or non-business-related purposes. Upon termination of this Agreement, or upon request of the Disclosing Party, the Receiving Party shall promptly return or take reasonable measures to destroy all copies of CUI, as instructed by the Disclosing Party.</p>\n\n<p><strong>f)</strong> In the event of a suspected or actual breach of CUI, the Receiving Party shall immediately notify the Disclosing Party and cooperate in any investigation or remedial actions necessary to address and mitigate any such breach. The obligations of this section shall survive the termination of this Agreement for as long as the information qualifies under CUI applicable laws and regulations.</p>\n\n<p><strong>g)</strong> Protection of confidentiality and other sensitive data under this Agreement must also adhere to the standard as provided by Department of Defense directive Operations Security (OPSEC) Program § 5205.02-M.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">The Department of Defense policy, outlined in Department of Defense Manual (\"DoDM\") §5205.02-M mandates the establishment and maintenance of Operational Security (\"OPSEC\") programs to ensure national security-related missions and functions are protected. OPSEC is a risk management strategy designed to safeguard sensitive information and prevent unauthorized access or exploitation of information, communications, and data in the interest of the National Security of the United States.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\">Examples of OPSEC include avoiding sharing specific dates, locations, or casualty details to third parties, social media, or to anyone privately or in the public sphere; maintaining caution with regard to discussing unit specifics and capabilities. OPSEC involves a systematic approach that includes identifying critical information by evaluating potential adversaries and their capabilities to exploit vulnerabilities; vulnerability analysis by identifying weaknesses in security measures that could be exploited by adversaries; risk assessment by evaluating the likelihood and potential impact of vulnerabilities being exploited; and adherence to countermeasures by implementing measures to mitigate identified risks and protecting critical information.</p>\n\n<p style=\"margin-left: 30px; font-style: italic;\"><strong>OPSEC is a continuing process that requires ongoing assessment and adaptation to evolving threats and vulnerabilities. OPSEC also applies to unclassified information that could reveal sensitive details or information.</strong></p>\n\n<h2 style=\"margin-top: 30px; page-break-before: always;\">6. GENERAL PROVISIONS</h2>\n\n<p><strong>a. SEVERABILITY.</strong> If any term, provision, covenant or condition of this Agreement, or the application thereof to any person, place or circumstance, shall be held to be invalid, unenforceable or void, the remainder of this Agreement and such term, provision, covenant or condition as applied to other persons, places and circumstances shall remain in full force and effect.</p>\n\n<p><strong>b. RIGHTS CUMULATIVE.</strong> The rights and remedies provided by this Agreement are cumulative, and the exercise of any right or remedy by either party hereto (or by its successor), whether pursuant to this Agreement, to any other agreement, or to law, shall not preclude or waive its right to exercise any or all other rights and remedies.</p>\n\n<p>No failure or neglect of either party hereto in any instance to exercise any right, power, or privilege hereunder or under law shall constitute a waiver of any other right, power, or privilege or of the same right, power or privilege in any other instance. All waivers by either party hereto must be contained in a written instrument signed by the party to be charged and, in the case of the Company, by an officer of the Company or other person duly authorized by the Company.</p>\n\n<p><strong>c. REMEDY FOR BREACH.</strong> The parties hereto agree that, in the event of breach or threatened breach of any covenants of this Agreement, the damage or imminent damage to the other Party shall be inestimable, and that therefore any remedy at law or in damages shall be inadequate. Accordingly, the parties hereto agree that the aggrieved party shall be entitled to injunctive relief against the other Party in the event of any breach or threatened breach of this Agreement, in addition to any other relief (including damages) available to the Company under this Agreement or under law.</p>\n\n<p><strong>d. CHOICE OF LAW.</strong> Client consents to personal jurisdiction of the State and Federal courts located in the State of Florida, County of Manatee or closest thereof in connection with any controversy relating in any way to this Agreement or to any transaction. Client agrees to hold harmless Your Company Name in any litigation, arbitration or any other choses or claim of action the Client may commence against Lender, Investor, Funding Source or Guarantor, or any other subcontracted party of the Your Company Name.</p>\n\n<p>It is further agreed that any dispute, whether taking place in an international jurisdiction or in the USA shall be governed under the Laws of the United States of America and under the State and Federal courts named above.</p>\n\n<p><strong>e. NOTICES.</strong> Any notice, request, consent or approval required or permitted to be given under this Agreement or pursuant to law shall be sufficient if in writing, and if and when sent by certified or registered mail with postage prepaid and/or electronic mail, to Your Company Name\'s address (as noted above) or to the Company\'s principal office, as the case may be.</p>\n\n<p><strong>f. MISCELLANEOUS.</strong></p>\n<p style=\"margin-left: 30px;\">(a) Should this Agreement be transmitted by facsimile, email, or electronic signature, the document shall be considered as an original document, and if signed and transmitted separately each section becoming both legally binding and enforceable.</p>\n<p style=\"margin-left: 30px;\">(b) This Agreement may only be modified or changed in writing and signed by both parties.</p>\n<p style=\"margin-left: 30px;\">(c) If any person or provision of this Agreement or its application is held to be invalid, illegal, or unenforceable in any respect, the validity, legality, or enforceability of any of the other provisions and applications therein shall not in any way be affected or impaired.</p>\n',NULL,'3cd04a36315cb36c2523552bee8ffe5a01d60b3432ff21db384be0f125a62008','2026-03-04 18:25:51','draft',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2025-12-04 23:25:51','2025-12-04 23:25:51');
commit;

--
-- Table structure for table `network_monitor_logs`
--

CREATE TABLE `network_monitor_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `timestamp` datetime NOT NULL,
  `url` varchar(1000) NOT NULL,
  `host` varchar(255) NOT NULL,
  `port` int(11) DEFAULT 80,
  `method` varchar(10) DEFAULT 'GET',
  `context` varchar(255) DEFAULT '',
  `is_local` tinyint(1) DEFAULT 1,
  `status` enum('attempted','success','blocked','failed') DEFAULT 'attempted',
  `request_data` text DEFAULT NULL,
  `response_data` text DEFAULT NULL,
  `user_id` int(10) unsigned DEFAULT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_timestamp` (`timestamp`),
  KEY `idx_host` (`host`),
  KEY `idx_status` (`status`),
  KEY `idx_is_local` (`is_local`),
  KEY `idx_user_id` (`user_id`),
  CONSTRAINT `network_monitor_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

--
-- Dumping data for table `network_monitor_logs`
--

set autocommit=0;
INSERT INTO `network_monitor_logs` VALUES
(1,'2025-11-19 09:49:46','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18305}','{\"status\":\"success\",\"response_size\":3527,\"tokens\":661}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(2,'2025-11-19 09:50:16','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18276}','{\"status\":\"success\",\"response_size\":1102,\"tokens\":174}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(3,'2025-11-19 09:50:34','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18229}','{\"status\":\"success\",\"response_size\":1583,\"tokens\":305}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(4,'2025-11-19 10:43:07','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18229}','{\"status\":\"success\",\"response_size\":1220,\"tokens\":230}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(5,'2025-11-19 10:45:11','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18370}','{\"status\":\"success\",\"response_size\":1713,\"tokens\":354}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(6,'2025-11-19 10:47:12','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18370}','{\"status\":\"success\",\"response_size\":1371,\"tokens\":286}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(7,'2025-11-19 10:47:53','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18410}','{\"status\":\"success\",\"response_size\":2999,\"tokens\":590}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(8,'2025-11-19 10:49:15','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18410}','{\"status\":\"success\",\"response_size\":3383,\"tokens\":662}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(9,'2025-11-19 10:49:46','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18372}','{\"status\":\"success\",\"response_size\":1447,\"tokens\":271}',NULL,'unknown','unknown'),
(10,'2025-11-19 10:56:58','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":145}','{\"status\":\"success\",\"response_size\":1351,\"tokens\":213}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(11,'2025-11-19 10:58:44','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":18842}','{\"status\":\"success\",\"response_size\":1570,\"tokens\":315}',NULL,'unknown','unknown'),
(12,'2025-11-19 10:59:49','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/generate\",\"payload_size\":18371}','{\"status\":\"success\",\"response_size\":23417,\"tokens\":72}',NULL,'unknown','unknown'),
(13,'2025-11-19 11:00:28','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/generate\",\"payload_size\":18405}','{\"status\":\"success\",\"response_size\":23835,\"tokens\":109}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(14,'2025-11-19 11:29:13','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/generate\",\"payload_size\":18408}','{\"status\":\"success\",\"response_size\":24825,\"tokens\":234}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(15,'2025-11-19 11:29:18','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.2:3b\",\"endpoint\":\"\\/chat\",\"payload_size\":448}','{\"status\":\"success\",\"response_size\":1221,\"tokens\":195}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(16,'2025-11-19 11:44:43','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(17,'2025-11-19 11:44:43','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(18,'2025-11-19 11:44:43','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(19,'2025-11-19 12:55:18','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":237}','{\"status\":\"success\",\"response_size\":760,\"tokens\":27}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(20,'2025-11-19 12:58:00','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":8466}','{\"status\":\"success\",\"response_size\":10545,\"tokens\":9}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(21,'2025-11-19 12:59:07','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":8456}','{\"status\":\"success\",\"response_size\":10607,\"tokens\":16}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(22,'2025-11-19 12:59:20','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/chat\",\"payload_size\":432}','{\"status\":\"success\",\"response_size\":1284,\"tokens\":213}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(23,'2025-11-19 13:45:57','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":966}','{\"status\":\"success\",\"response_size\":1663,\"tokens\":37}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(24,'2025-11-19 13:48:07','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5356}','{\"status\":\"success\",\"response_size\":6805,\"tokens\":14}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(25,'2025-11-19 13:57:37','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5356}','{\"status\":\"success\",\"response_size\":6976,\"tokens\":32}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(26,'2025-11-19 14:07:02','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5341}','{\"status\":\"success\",\"response_size\":6877,\"tokens\":24}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(27,'2025-11-19 14:07:46','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5341}','{\"status\":\"success\",\"response_size\":6818,\"tokens\":17}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(28,'2025-11-19 14:09:27','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5341}','{\"status\":\"success\",\"response_size\":6843,\"tokens\":20}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(29,'2025-11-19 14:09:43','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/chat\",\"payload_size\":786}','{\"status\":\"success\",\"response_size\":1430,\"tokens\":279}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(30,'2025-11-19 14:26:33','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":5348}','{\"status\":\"success\",\"response_size\":6836,\"tokens\":19}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(31,'2025-11-21 09:02:08','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(32,'2025-11-21 09:02:09','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(33,'2025-11-21 09:02:11','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(34,'2025-11-21 09:02:11','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(35,'2025-11-21 09:02:12','google.com','unknown',80,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(36,'2025-11-21 09:02:17','https://google.com','google.com',443,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(37,'2025-11-21 09:02:21','https://google.com','google.com',443,'BLOCKED','Manual Test',0,'blocked','[]','External connection blocked by NetworkMonitor',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(38,'2025-12-03 09:29:28','http://localhost:11434/api/chat','localhost',11434,'POST','AI Chat',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/chat\",\"payload_size\":115}','{\"status\":\"success\",\"response_size\":411,\"tokens\":23}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15'),
(39,'2025-12-04 09:50:43','http://localhost:11434/api/generate','localhost',11434,'POST','AI Generate',1,'success','{\"model\":\"llama3.1:8b\",\"endpoint\":\"\\/generate\",\"payload_size\":6457}','{\"status\":\"success\",\"response_size\":8113,\"tokens\":20}',1,'::1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15');
commit;

--
-- Table structure for table `non_conformance_reports`
--

CREATE TABLE `non_conformance_reports` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ncr_number` varchar(50) NOT NULL,
  `inspection_id` int(10) unsigned DEFAULT NULL,
  `work_order_id` int(10) unsigned DEFAULT NULL,
  `product_id` int(10) unsigned NOT NULL,
  `defect_type` varchar(100) NOT NULL,
  `description` text NOT NULL,
  `quantity_affected` int(11) DEFAULT 0,
  `severity` enum('minor','major','critical') DEFAULT 'minor',
  `root_cause` text DEFAULT NULL,
  `corrective_action` text DEFAULT NULL,
  `preventive_action` text DEFAULT NULL,
  `disposition` enum('rework','scrap','use_as_is','return_to_supplier') DEFAULT NULL,
  `status` enum('open','in_review','resolved','closed') DEFAULT 'open',
  `reported_by` int(10) unsigned NOT NULL,
  `reported_at` datetime DEFAULT current_timestamp(),
  `resolved_by` int(10) unsigned DEFAULT NULL,
  `resolved_at` datetime DEFAULT NULL,
  `closed_by` int(10) unsigned DEFAULT NULL,
  `closed_at` datetime DEFAULT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `ncr_number` (`ncr_number`),
  KEY `idx_status` (`status`),
  KEY `idx_severity` (`severity`),
  KEY `idx_product` (`product_id`),
  KEY `idx_reported_at` (`reported_at`),
  KEY `inspection_id` (`inspection_id`),
  KEY `work_order_id` (`work_order_id`),
  KEY `reported_by` (`reported_by`),
  KEY `resolved_by` (`resolved_by`),
  KEY `closed_by` (`closed_by`),
  KEY `idx_ncr_status_severity` (`status`,`severity`),
  CONSTRAINT `non_conformance_reports_ibfk_1` FOREIGN KEY (`inspection_id`) REFERENCES `quality_inspections` (`id`) ON DELETE SET NULL,
  CONSTRAINT `non_conformance_reports_ibfk_2` FOREIGN KEY (`work_order_id`) REFERENCES `work_orders` (`id`) ON DELETE SET NULL,
  CONSTRAINT `non_conformance_reports_ibfk_3` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE,
  CONSTRAINT `non_conformance_reports_ibfk_4` FOREIGN KEY (`reported_by`) REFERENCES `users` (`id`),
  CONSTRAINT `non_conformance_reports_ibfk_5` FOREIGN KEY (`resolved_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  CONSTRAINT `non_conformance_reports_ibfk_6` FOREIGN KEY (`closed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `non_conformance_reports`
--

set autocommit=0;
commit;

--
-- Table structure for table `notification_digest_queue`
--

CREATE TABLE `notification_digest_queue` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `notification_id` int(10) unsigned NOT NULL,
  `digest_type` enum('hourly','daily','weekly') NOT NULL,
  `status` enum('pending','sent','failed') DEFAULT 'pending',
  `sent_at` timestamp NULL DEFAULT NULL,
  `error_message` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_user_digest` (`user_id`,`digest_type`,`status`),
  KEY `idx_status` (`status`,`created_at`),
  KEY `notification_id` (`notification_id`),
  CONSTRAINT `notification_digest_queue_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `notification_digest_queue_ibfk_2` FOREIGN KEY (`notification_id`) REFERENCES `notifications` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Queue for digest email notifications';

--
-- Dumping data for table `notification_digest_queue`
--

set autocommit=0;
commit;

--
-- Table structure for table `notification_preferences`
--

CREATE TABLE `notification_preferences` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `notification_type` varchar(50) NOT NULL,
  `in_app_enabled` tinyint(1) DEFAULT 1 COMMENT 'Show in-app notifications',
  `email_enabled` tinyint(1) DEFAULT 1 COMMENT 'Send email notifications',
  `sms_enabled` tinyint(1) DEFAULT 0 COMMENT 'Send SMS notifications (future)',
  `frequency` enum('immediate','hourly','daily','weekly') DEFAULT 'immediate',
  `digest_time` time DEFAULT NULL COMMENT 'Preferred time for digest emails (e.g., 09:00:00)',
  `digest_day` enum('monday','tuesday','wednesday','thursday','friday','saturday','sunday') DEFAULT NULL COMMENT 'Day for weekly digest',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_user_type` (`user_id`,`notification_type`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_notification_type` (`notification_type`),
  CONSTRAINT `notification_preferences_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='User notification preferences';

--
-- Dumping data for table `notification_preferences`
--

set autocommit=0;
INSERT INTO `notification_preferences` VALUES
(1,1,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(2,2,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(3,3,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(4,4,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(5,5,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(6,6,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(7,7,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(8,8,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26'),
(9,21,'all',1,1,0,'immediate',NULL,NULL,'2025-11-26 14:13:26','2025-11-26 14:13:26');
commit;

--
-- Temporary table structure for view `notification_stats_by_user`
--

/*!50001 DROP VIEW IF EXISTS `notification_stats_by_user`*/;
/*!50001 CREATE VIEW `notification_stats_by_user` AS SELECT
 1 AS `user_id`,
  1 AS `user_name`,
  1 AS `total_notifications`,
  1 AS `unread_count`,
  1 AS `emails_sent`,
  1 AS `last_notification_at` */;

--
-- Table structure for table `notifications`
--

CREATE TABLE `notifications` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `type` varchar(50) NOT NULL COMMENT 'message, mention, system, alert, etc',
  `title` varchar(255) NOT NULL,
  `message` text DEFAULT NULL,
  `link` varchar(500) DEFAULT NULL,
  `icon` varchar(50) DEFAULT 'bi-bell',
  `is_read` tinyint(1) DEFAULT 0,
  `email_sent` tinyint(1) DEFAULT 0 COMMENT 'Whether email notification was sent',
  `email_sent_at` timestamp NULL DEFAULT NULL COMMENT 'When email was sent',
  `mentioned_users` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Array of user IDs mentioned in notification' CHECK (json_valid(`mentioned_users`)),
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `read_at` timestamp NULL DEFAULT NULL,
  `metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Additional data like channel_id, message_id, etc' CHECK (json_valid(`metadata`)),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_user_read` (`user_id`,`is_read`),
  KEY `idx_created` (`created_at` DESC),
  KEY `idx_email_sent` (`email_sent`,`created_at`),
  CONSTRAINT `notifications_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `notifications`
--

set autocommit=0;
INSERT INTO `notifications` VALUES
(16,4,'file_share','Admin User shared a file with you','You now have Download permission to \"IMG_5218.JPG\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 18:34:31',NULL,'{\"item_type\":\"file\",\"item_id\":\"8\",\"item_name\":\"IMG_5218.JPG\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 18:34:31'),
(17,4,'file_share','Admin User shared a file with you','You now have Download permission to \"archive_1764262879453.zip\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 19:20:30',NULL,'{\"item_type\":\"file\",\"item_id\":\"9\",\"item_name\":\"archive_1764262879453.zip\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 19:20:30'),
(18,4,'file_share','Admin User shared a file with you','You now have Download permission to \"archive_1764262879453.zip\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 19:30:41',NULL,'{\"item_type\":\"file\",\"item_id\":\"9\",\"item_name\":\"archive_1764262879453.zip\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 19:30:41'),
(19,4,'file_share','Admin User shared a file with you','You now have Download permission to \"IMG_5218.JPG\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 19:32:39',NULL,'{\"item_type\":\"file\",\"item_id\":\"8\",\"item_name\":\"IMG_5218.JPG\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 19:32:39'),
(20,4,'file_share','Admin User shared a file with you','You now have Download permission to \"IMG_5218.JPG\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 19:58:09',NULL,'{\"item_type\":\"file\",\"item_id\":\"8\",\"item_name\":\"IMG_5218.JPG\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 19:58:09'),
(21,4,'file_share','Admin User shared a file with you','You now have Download permission to \"IMG_5218.JPG\"','/files/shared','bi-share',0,0,NULL,NULL,'2025-11-27 20:22:35',NULL,'{\"item_type\":\"file\",\"item_id\":\"8\",\"item_name\":\"IMG_5218.JPG\",\"permission\":\"download\",\"sharer_name\":\"Admin User\"}','2025-11-27 20:22:35'),
(22,4,'calendar_event','Admin User invited you to a calendar event','<strong>Event:</strong> Test6<br><strong>Start:</strong> Nov 27, 2025 4:00 PM<br><strong>End:</strong> Nov 27, 2025 4:30 PM<br><strong>Location:</strong> Not specified<br>','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:53:37',NULL,NULL,'2025-11-27 20:53:37'),
(23,4,'calendar_event','Admin User invited you to a calendar event','<strong>Event:</strong> Test6<br><strong>Start:</strong> Nov 27, 2025 4:00 PM<br><strong>End:</strong> Nov 27, 2025 4:30 PM<br><strong>Location:</strong> Not specified<br>','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:53:40',NULL,NULL,'2025-11-27 20:53:40'),
(24,4,'calendar_event','Admin User invited you to a calendar event','<strong>Event:</strong> Test6<br><strong>Start:</strong> Nov 27, 2025 4:00 PM<br><strong>End:</strong> Nov 27, 2025 4:30 PM<br><strong>Location:</strong> Not specified<br>','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:53:46',NULL,NULL,'2025-11-27 20:53:46'),
(25,4,'calendar_event','Admin User invited you to a calendar event','<strong>Event:</strong> Test6<br><strong>Start:</strong> Nov 27, 2025 4:00 PM<br><strong>End:</strong> Nov 27, 2025 4:30 PM<br><strong>Location:</strong> Not specified<br>','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:53:49',NULL,NULL,'2025-11-27 20:53:49'),
(26,4,'calendar_event','Admin User invited you to a calendar event','Event: ricks mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:57:37',NULL,NULL,'2025-11-27 20:57:37'),
(27,4,'calendar_event','Admin User invited you to a calendar event','Event: ricks mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:57:40',NULL,NULL,'2025-11-27 20:57:40'),
(28,4,'calendar_event','Admin User invited you to a calendar event','Event: ricks mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:57:42',NULL,NULL,'2025-11-27 20:57:42'),
(29,4,'calendar_event','Admin User invited you to a calendar event','Event: test7','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:58:28',NULL,NULL,'2025-11-27 20:58:28'),
(30,4,'calendar_event','Admin User invited you to a calendar event','Event: test7','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 20:59:40',NULL,NULL,'2025-11-27 20:59:40'),
(31,4,'calendar_event','Admin User invited you to a calendar event','Event: test','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 21:00:33',NULL,NULL,'2025-11-27 21:00:33'),
(32,4,'calendar_event','Admin User invited you to a calendar event','Event: test','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 21:00:56',NULL,NULL,'2025-11-27 21:00:56'),
(33,4,'calendar_event','Admin User invited you to a calendar event','Event: test','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 21:02:07',NULL,NULL,'2025-11-27 21:02:07'),
(34,4,'calendar_event','Admin User invited you to a calendar event','Event: tester','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 21:03:26',NULL,NULL,'2025-11-27 21:03:26'),
(35,4,'calendar_event','Admin User invited you to a calendar event','Event: tester','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-11-27 21:04:37',NULL,NULL,'2025-11-27 21:04:37'),
(36,4,'calendar_event','Admin User invited you to a calendar event','Event: Demo','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 18:07:29',NULL,NULL,'2025-12-04 18:07:29'),
(37,4,'calendar_event','Admin User updated a calendar event','Event: Demo','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 19:32:41',NULL,NULL,'2025-12-04 19:32:41'),
(38,5,'diagram_shared','Diagram Shared With You','Admin User shared a diagram \"Untitled Diagram\" with you','http://localhost:8080/diagrams/editor/6','bi-diagram-3',0,0,NULL,NULL,'2025-12-04 23:07:12',NULL,'{\"diagram_id\":\"6\",\"diagram_title\":\"Untitled Diagram\"}','2025-12-04 23:07:12'),
(39,4,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:38',NULL,NULL,'2025-12-04 23:15:38'),
(40,3,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:38',NULL,NULL,'2025-12-04 23:15:38'),
(41,5,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:38',NULL,NULL,'2025-12-04 23:15:38'),
(42,6,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:38',NULL,NULL,'2025-12-04 23:15:38'),
(43,7,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:39',NULL,NULL,'2025-12-04 23:15:39'),
(44,8,'calendar_event','Admin User invited you to a calendar event','Event: Rick Mtg','http://localhost:8080/calendar','bi-calendar-event',0,0,NULL,NULL,'2025-12-04 23:15:39',NULL,NULL,'2025-12-04 23:15:39');
commit;

--
-- Table structure for table `opportunity_assignments`
--

CREATE TABLE `opportunity_assignments` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `user_id` int(10) unsigned NOT NULL,
  `role` varchar(50) DEFAULT 'contributor' COMMENT 'owner, contributor, viewer',
  `assigned_at` timestamp NULL DEFAULT current_timestamp(),
  `assigned_by` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_assignment` (`opportunity_id`,`user_id`),
  KEY `assigned_by` (`assigned_by`),
  KEY `idx_opportunity_assignments_opportunity` (`opportunity_id`),
  KEY `idx_opportunity_assignments_user` (`user_id`),
  CONSTRAINT `opportunity_assignments_ibfk_1` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`) ON DELETE CASCADE,
  CONSTRAINT `opportunity_assignments_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `opportunity_assignments_ibfk_3` FOREIGN KEY (`assigned_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `opportunity_assignments`
--

set autocommit=0;
INSERT INTO `opportunity_assignments` VALUES
(1,24,5,'owner','2025-12-03 19:44:15',1),
(3,24,1,'contributor','2025-12-03 20:40:13',1);
commit;

--
-- Table structure for table `opportunity_competitors`
--

CREATE TABLE `opportunity_competitors` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `competitor_name` varchar(255) NOT NULL,
  `product_service` varchar(255) DEFAULT NULL COMMENT 'What product/service they are offering',
  `pricing` decimal(15,2) DEFAULT NULL COMMENT 'Their pricing',
  `strengths` text DEFAULT NULL COMMENT 'Competitor strengths',
  `weaknesses` text DEFAULT NULL COMMENT 'Competitor weaknesses',
  `notes` text DEFAULT NULL COMMENT 'Additional notes',
  `created_by` int(10) unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_opportunity_id` (`opportunity_id`),
  KEY `idx_created_by` (`created_by`),
  CONSTRAINT `fk_opp_comp_opportunity` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_opp_comp_user` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `opportunity_competitors`
--

set autocommit=0;
commit;

--
-- Table structure for table `opportunity_documents`
--

CREATE TABLE `opportunity_documents` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `document_name` varchar(255) NOT NULL,
  `original_filename` varchar(255) NOT NULL,
  `file_path` varchar(500) NOT NULL,
  `file_size` bigint(20) NOT NULL COMMENT 'Size in bytes',
  `file_type` varchar(100) DEFAULT NULL COMMENT 'MIME type',
  `document_type` enum('proposal','contract','presentation','other') DEFAULT 'other',
  `description` text DEFAULT NULL,
  `uploaded_by` int(10) unsigned NOT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_opportunity_id` (`opportunity_id`),
  KEY `idx_uploaded_by` (`uploaded_by`),
  CONSTRAINT `fk_opp_docs_opportunity` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_opp_docs_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `opportunity_documents`
--

set autocommit=0;
commit;

--
-- Table structure for table `opportunity_stage_history`
--

CREATE TABLE `opportunity_stage_history` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `from_stage` enum('lead','qualified','proposal','negotiation','closed_won','closed_lost') DEFAULT NULL,
  `to_stage` enum('lead','qualified','proposal','negotiation','closed_won','closed_lost') NOT NULL,
  `changed_by` int(10) unsigned NOT NULL,
  `changed_at` timestamp NULL DEFAULT current_timestamp(),
  `duration_days` int(11) DEFAULT NULL COMMENT 'Days spent in previous stage',
  `notes` text DEFAULT NULL COMMENT 'Optional notes about the stage change',
  PRIMARY KEY (`id`),
  KEY `idx_opportunity_id` (`opportunity_id`),
  KEY `idx_changed_by` (`changed_by`),
  KEY `idx_changed_at` (`changed_at`),
  CONSTRAINT `fk_stage_hist_opportunity` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`) ON DELETE CASCADE,
  CONSTRAINT `fk_stage_hist_user` FOREIGN KEY (`changed_by`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `opportunity_stage_history`
--

set autocommit=0;
INSERT INTO `opportunity_stage_history` VALUES
(1,35,'proposal','negotiation',1,'2025-11-14 19:42:53',1,NULL),
(2,35,'negotiation','proposal',1,'2025-11-14 19:42:59',0,NULL),
(3,25,'proposal','qualified',1,'2025-11-24 13:25:17',10,NULL),
(4,25,'qualified','lead',1,'2025-11-24 13:25:26',0,NULL),
(5,26,'proposal','qualified',1,'2025-11-24 13:25:28',10,NULL),
(6,26,'qualified','lead',1,'2025-11-25 23:09:03',1,NULL),
(7,26,'lead','qualified',1,'2025-11-25 23:09:08',0,NULL),
(8,27,'proposal','qualified',1,'2025-11-26 00:15:41',12,NULL);
commit;

--
-- Table structure for table `opportunity_tasks`
--

CREATE TABLE `opportunity_tasks` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `opportunity_id` int(10) unsigned NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `due_date` date DEFAULT NULL,
  `priority` enum('low','medium','high') DEFAULT 'medium',
  `status` enum('pending','completed','cancelled') DEFAULT 'pending',
  `assigned_to` int(10) unsigned DEFAULT NULL,
  `created_by` int(10) unsigned DEFAULT NULL,
  `completed_at` timestamp NULL DEFAULT NULL,
  `completed_by` int(10) unsigned DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_opportunity_id` (`opportunity_id`),
  KEY `idx_status` (`status`),
  KEY `idx_due_date` (`due_date`),
  KEY `idx_assigned_to` (`assigned_to`),
  CONSTRAINT `opportunity_tasks_ibfk_1` FOREIGN KEY (`opportunity_id`) REFERENCES `crm_opportunities` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;

--
-- Dumping data for table `opportunity_tasks`
--

set autocommit=0;
INSERT INTO `opportunity_tasks` VALUES
(1,23,'Test','',NULL,'medium','completed',1,1,'2025-11-13 16:49:12',1,'2025-11-13 16:48:57','2025-11-13 16:49:12');
commit;

--
-- Table structure for table `page_actions`
--

CREATE TABLE `page_actions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `page_identifier` varchar(100) NOT NULL COMMENT 'e.g., quote_detail, customer_detail, invoice_detail',
  `action_name` varchar(100) DEFAULT NULL COMMENT 'Display name for the action (NULL for dividers)',
  `icon` varchar(50) DEFAULT NULL COMMENT 'Bootstrap icon class, e.g., bi-pen, bi-envelope',
  `action_type` enum('javascript','link','form_submit','modal','divider') NOT NULL DEFAULT 'link',
  `action_target` varchar(255) DEFAULT NULL COMMENT 'JS function name, route, or form ID depending on action_type',
  `action_method` varchar(10) DEFAULT NULL COMMENT 'For form_submit: GET, POST, etc.',
  `permission_required` varchar(100) DEFAULT NULL COMMENT 'Permission needed to see this action',
  `css_class` varchar(100) DEFAULT NULL COMMENT 'Additional CSS classes for styling',
  `display_order` int(11) NOT NULL DEFAULT 0 COMMENT 'Order in which actions appear',
  `group_name` varchar(50) DEFAULT NULL COMMENT 'Group actions together with dividers',
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_page_identifier` (`page_identifier`),
  KEY `idx_is_active` (`is_active`),
  KEY `idx_display_order` (`display_order`)
) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `page_actions`
--

set autocommit=0;
INSERT INTO `page_actions` VALUES
(1,'quote_detail','Send for E-Signature','bi-pen','javascript','sendForSignature',NULL,'sales.edit',NULL,10,'signature',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(2,'quote_detail','Email Quote Link','bi-envelope','javascript','showEmailModal',NULL,NULL,NULL,20,'signature',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(3,'quote_detail','Copy Signature Link','bi-link-45deg','javascript','copySignatureLink',NULL,NULL,NULL,30,'signature',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(4,'quote_detail','Convert to Order','bi-arrow-right-circle','form_submit','convertForm',NULL,'sales.create',NULL,40,'order',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(5,'quote_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,50,NULL,1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(6,'quote_detail','Notes','bi-sticky','javascript','openNotes',NULL,NULL,NULL,60,'standard',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(7,'quote_detail','Print Quote','bi-printer','link','quotes/general/{id}/print',NULL,NULL,NULL,70,'standard',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(8,'quote_detail','Edit Quote','bi-pencil','link','quotes/general/{id}/edit',NULL,'sales.edit',NULL,80,'standard',1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(9,'quote_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,90,NULL,1,'2025-11-16 15:34:57','2025-11-16 15:34:57'),
(10,'quote_detail','Back','bi-arrow-left','link','quotes/general',NULL,NULL,NULL,100,'navigation',1,'2025-11-16 15:34:57','2025-11-16 15:54:16'),
(11,'invoice_detail','Notes','bi-sticky','javascript','openNotes',NULL,NULL,NULL,10,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(12,'invoice_detail','Print Invoice','bi-printer','link','invoices/{id}/print',NULL,NULL,NULL,20,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(13,'invoice_detail','Edit Invoice','bi-pencil','link','invoices/{id}/edit',NULL,'sales.edit',NULL,30,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(14,'invoice_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,40,NULL,1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(15,'invoice_detail','Back','bi-arrow-left','link','invoices',NULL,NULL,NULL,50,'navigation',1,'2025-11-16 15:43:35','2025-11-16 15:54:16'),
(16,'salesorder_detail','Notes','bi-sticky','javascript','openNotes',NULL,NULL,NULL,10,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(17,'salesorder_detail','Print Order','bi-printer','link','sales/orders/{id}/print',NULL,NULL,NULL,20,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(18,'salesorder_detail','Edit Order','bi-pencil','link','sales/orders/{id}/edit',NULL,'sales.edit',NULL,30,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(19,'salesorder_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,40,NULL,1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(20,'salesorder_detail','Back','bi-arrow-left','link','sales/orders',NULL,NULL,NULL,50,'navigation',1,'2025-11-16 15:43:35','2025-11-16 15:54:16'),
(21,'purchaseorder_detail','Print PO','bi-printer','javascript','window.print()',NULL,NULL,NULL,10,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(22,'purchaseorder_detail','Edit Order','bi-pencil','link','purchases/orders/{id}/edit',NULL,'procurement.edit',NULL,20,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(23,'purchaseorder_detail','Delete Order','bi-trash','form_submit','deletePOForm',NULL,'procurement.delete',NULL,30,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(24,'purchaseorder_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,40,NULL,1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(25,'purchaseorder_detail','Back','bi-arrow-left','link','purchases/orders',NULL,NULL,NULL,50,'navigation',1,'2025-11-16 15:43:35','2025-11-16 15:54:16'),
(26,'customer_detail','Edit Customer','bi-pencil','link','customers/{id}/edit',NULL,'crm.edit',NULL,10,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(27,'customer_detail','Delete Customer','bi-trash','javascript','confirmDelete',NULL,'crm.delete',NULL,20,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(28,'customer_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,NULL,1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(29,'customer_detail','Back','bi-arrow-left','link','customers',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 15:43:35','2025-11-16 15:54:16'),
(30,'product_detail','Edit Product','bi-pencil','link','products/{id}/edit',NULL,'inventory.edit',NULL,10,'standard',1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(31,'product_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,20,NULL,1,'2025-11-16 15:43:35','2025-11-16 15:43:35'),
(32,'product_detail','Back','bi-arrow-left','link','products',NULL,NULL,NULL,30,'navigation',1,'2025-11-16 15:43:35','2025-11-16 15:54:16'),
(33,'workorder_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(34,'workorder_detail','Print WO','bi bi-printer','javascript','window.print()',NULL,NULL,'btn-outline-theme',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(35,'workorder_detail','Start Work Order','fas fa-play','javascript','changeStatus(\'in_progress\')',NULL,'manufacturing.manage','btn-outline-success',30,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(36,'workorder_detail','Mark Complete','fas fa-check','javascript','changeStatus(\'completed\')',NULL,'manufacturing.manage','btn-outline-success',40,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(37,'workorder_detail','Cancel','fas fa-times','javascript','changeStatus(\'cancelled\')',NULL,'manufacturing.manage','btn-outline-danger',50,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(38,'workorder_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,55,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(39,'workorder_detail','Open in Shop Floor','fas fa-industry','link','manufacturing/shopfloor/workorder/{id}',NULL,'manufacturing.view','btn-outline-info',60,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(40,'workorder_detail','Back','fas fa-arrow-left','link','manufacturing/workorders',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(41,'bom_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(42,'bom_detail','Print BOM','bi bi-printer','javascript','window.print()',NULL,NULL,'btn-outline-theme',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(43,'bom_detail','Back','bi bi-arrow-left','link','manufacturing/boms',NULL,NULL,'btn-outline-theme',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(44,'movement_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(45,'movement_detail','View Stock Levels','fas fa-boxes','link','inventory/stock-levels?product_id={product_id}',NULL,NULL,'btn-outline-primary',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(46,'movement_detail','Product Movement History','fas fa-history','link','inventory/movements?product_id={product_id}',NULL,NULL,'btn-outline-secondary',30,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(47,'movement_detail','Location Movements','fas fa-warehouse','link','inventory/movements?location_id={location_id}',NULL,NULL,'btn-outline-info',40,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(48,'movement_detail','Record New Movement','fas fa-plus','link','inventory/movements/create',NULL,'inventory.manage','btn-outline-success',50,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(49,'movement_detail','Back','fas fa-arrow-left','link','inventory/movements',NULL,NULL,'btn-cancel',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(50,'employee_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(51,'employee_detail','Edit','bi bi-pencil','link','employees/{id}/edit',NULL,'hr.edit','btn-outline-warning',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(52,'employee_detail','Back','bi bi-arrow-left','link','employees',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(53,'opportunity_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(54,'opportunity_detail','Edit','bi bi-pencil','link','crm/opportunities/{id}/edit',NULL,'crm.edit','btn-outline-theme',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(55,'opportunity_detail','Send Email','bi bi-envelope','modal','emailModal',NULL,NULL,'btn-outline-primary',30,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(56,'opportunity_detail','Log Received Email','bi bi-envelope-check','modal','logEmailModal',NULL,NULL,'btn-outline-secondary',40,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(57,'opportunity_detail','Clone','bi bi-files','link','crm/opportunities/{id}/clone',NULL,'crm.create','btn-outline-secondary',50,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(58,'opportunity_detail','Back','bi bi-arrow-left','link','crm/opportunities',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(59,'ticket_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(60,'ticket_detail','Edit','bi bi-pencil','link','crm/support/{id}/edit',NULL,'crm.edit','btn-outline-theme',20,'main',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(61,'ticket_detail','Back','bi bi-arrow-left','link','crm/support',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:04:37','2025-11-16 16:04:37'),
(62,'project_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(63,'project_detail','Edit','bi bi-pencil','link','projects/{id}/edit',NULL,'projects.edit','btn-save',20,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(64,'project_detail','Delete','bi bi-trash','form_submit','deleteForm','POST','projects.delete','btn-outline-danger',30,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(65,'project_detail','Back','bi bi-arrow-left','link','projects',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(66,'helpdesk_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(67,'helpdesk_detail','Edit','bi bi-pencil','link','helpdesk/tickets/{id}/edit',NULL,'helpdesk.edit','btn-outline-warning',20,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(68,'helpdesk_detail','Change Status','bi bi-arrow-repeat','javascript','showStatusModal()',NULL,'helpdesk.manage','btn-outline-info',30,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(69,'helpdesk_detail','Back','bi bi-arrow-left','link','helpdesk/tickets',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(70,'asset_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(71,'asset_detail','Edit','bi bi-pencil','link','accounting/assets/{id}/edit',NULL,'accounting.edit','btn-outline-warning',20,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(72,'asset_detail','Depreciation Schedule','bi bi-calendar3','link','accounting/depreciation/{id}/schedule',NULL,'accounting.view','btn-outline-theme',30,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(73,'asset_detail','Back','bi bi-arrow-left','link','accounting/assets',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(74,'deliverynote_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(75,'deliverynote_detail','Print','bi bi-printer','javascript','window.print()',NULL,NULL,'btn-outline-secondary',20,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(76,'deliverynote_detail','Edit','bi bi-pencil','link','sales/delivery_notes/{id}/edit',NULL,'sales.edit','btn-outline-warning',30,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(77,'deliverynote_detail','Delete','bi bi-trash','form_submit','deleteForm','POST','sales.delete','btn-outline-danger',40,'main',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(78,'deliverynote_detail','Back','bi bi-arrow-left','link','sales/delivery_notes',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:20:48','2025-11-16 16:20:48'),
(79,'creditnote_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(80,'creditnote_detail','Print Credit Note','bi bi-printer','javascript','window.print()',NULL,NULL,'btn-outline-secondary',20,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(81,'creditnote_detail','Edit','bi bi-pencil','link','creditnotes/{id}/edit',NULL,'sales.edit','btn-outline-warning',30,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(82,'creditnote_detail','Back','bi bi-arrow-left','link','creditnotes',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(83,'debitnote_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(84,'debitnote_detail','Edit','bi bi-pencil','link','purchases/debit-notes/{id}/edit',NULL,'purchases.edit','btn-primary',20,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(85,'debitnote_detail','Delete','bi bi-trash','form_submit','deleteForm','POST','purchases.delete','btn-outline-danger',30,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(86,'debitnote_detail','Back','bi bi-arrow-left','link','purchases/debit-notes',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(87,'purchasebill_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(88,'purchasebill_detail','Edit','bi bi-pencil','link','purchases/bills/{id}/edit',NULL,'purchases.edit','btn-primary',20,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(89,'purchasebill_detail','Delete','bi bi-trash','form_submit','deleteForm','POST','purchases.delete','btn-outline-danger',30,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(90,'purchasebill_detail','Back','bi bi-arrow-left','link','purchases/bills',NULL,NULL,'btn-outline-secondary',100,'back',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(91,'goodsreceipt_detail','Notes','bi bi-chat-left-text','modal','notesModal',NULL,NULL,'btn-outline-primary',10,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(92,'goodsreceipt_detail','Print GRN','bi bi-printer','javascript','window.print()',NULL,NULL,'btn-outline-theme',20,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(93,'goodsreceipt_detail','Delete Receipt','bi bi-trash','form_submit','deleteForm','POST','procurement.delete','btn-outline-danger',30,'main',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(94,'goodsreceipt_detail','Back','bi bi-arrow-left','link','purchases/receiving',NULL,NULL,'btn-default',100,'back',1,'2025-11-16 16:34:53','2025-11-16 16:34:53'),
(95,'lots_index','Add Lot/Serial','bi-plus-lg','link','inventory/lots/create',NULL,'inventory.create','btn-theme',10,'primary',1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(96,'lots_index',NULL,NULL,'divider',NULL,NULL,NULL,NULL,20,NULL,1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(97,'lots_index','Traceability','bi-diagram-3','link','inventory/lots/traceability',NULL,NULL,'btn-outline-theme',30,'utility',1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(98,'lots_index','Expiration Dates','bi-calendar-x','link','inventory/lots/expiration',NULL,NULL,'btn-outline-warning',40,'utility',1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(99,'lots_index',NULL,NULL,'divider',NULL,NULL,NULL,NULL,50,NULL,1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(100,'lots_index','Back','bi-arrow-left','link','inventory',NULL,NULL,NULL,60,'navigation',1,'2025-11-16 17:56:06','2025-11-16 17:56:06'),
(101,'quotes_index','Create General Quote','bi bi-plus-lg','link','quotes/general/create',NULL,'sales.create','btn-create',10,'primary',1,'2025-11-16 18:06:13','2025-11-20 13:34:27'),
(102,'quotes_index','Create Battery Quote','bi-battery-charging','link','quotes/battery/create',NULL,'sales.create','btn-create',20,'primary',1,'2025-11-16 18:06:13','2025-11-16 18:06:13'),
(105,'quotes_index',NULL,NULL,'divider',NULL,NULL,NULL,NULL,50,NULL,0,'2025-11-16 18:06:13','2025-11-26 02:21:47'),
(106,'quotes_index','Back','bi-arrow-left','link','sales/dashboard',NULL,NULL,NULL,60,'navigation',0,'2025-11-16 18:06:13','2025-11-26 02:21:50'),
(107,'quotes_index','Export CSV','bi-download','javascript','exportQuotes',NULL,NULL,NULL,30,'utility',1,'2025-11-16 18:09:07','2025-11-16 18:09:07'),
(108,'expense_detail','Approve','bi-check-lg','form_submit','accounting/expenses/{id}/approve','POST',NULL,'btn-success',10,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(109,'expense_detail','Reject','bi-x-lg','modal','#rejectModal',NULL,NULL,'btn-danger',20,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(110,'expense_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(111,'expense_detail','Back','bi-arrow-left','link','accounting/expenses',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(112,'return_detail','Print','bi-printer','javascript','window.print()',NULL,NULL,NULL,10,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(113,'return_detail','Edit','bi-pencil','link','sales/returns/{id}/edit',NULL,'sales.edit','btn-edit',20,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(114,'return_detail','Approve','bi-check-circle','form_submit','sales/returns/{id}/approve','POST','sales.approve','btn-success',30,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(115,'return_detail','Reject','bi-x-circle','form_submit','sales/returns/{id}/reject','POST','sales.approve','btn-danger',40,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(116,'return_detail','Complete','bi-check-circle-fill','form_submit','sales/returns/{id}/complete','POST','sales.edit','btn-success',50,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(117,'return_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,60,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(118,'return_detail','Back','bi-arrow-left','link','sales/returns',NULL,NULL,NULL,70,'navigation',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(119,'camera_audit_detail','Verify','bi-check-circle','form_submit','camera-audit/verify/{id}','POST','camera_audit.verify','btn-success',10,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(120,'camera_audit_detail','Delete','bi-trash','form_submit','camera-audit/delete/{id}','POST','camera_audit.delete','btn-delete',20,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(121,'camera_audit_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(122,'camera_audit_detail','Back','bi-arrow-left','link','camera-audit',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(123,'pipedrive_import','Run All Phases','fas fa-play','javascript','importAll(false)',NULL,NULL,'btn-success',10,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(124,'pipedrive_import','Dry Run All','fas fa-check-circle','javascript','importAll(true)',NULL,NULL,NULL,20,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(125,'pipedrive_import',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(126,'pipedrive_import','Back','bi-arrow-left','link','pipedrive',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(127,'application_detail','Edit','bi-pencil','link','hr/recruitment/applications/{id}/edit',NULL,'hr.edit',NULL,10,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:37:09'),
(128,'application_detail','Delete','bi-trash','javascript','deleteApplication({id})',NULL,'hr.delete',NULL,20,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:37:09'),
(129,'application_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(130,'application_detail','Back','bi-arrow-left','link','hr/recruitment/applications',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 18:28:39','2025-11-16 18:28:39'),
(131,'interview_detail','Edit','bi-pencil','link','hr/recruitment/interviews/{id}/edit',NULL,NULL,NULL,10,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(132,'interview_detail','Delete','bi-trash','form_submit','hr/recruitment/interviews/{id}/delete',NULL,NULL,NULL,20,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(133,'interview_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(134,'interview_detail','View Application','bi-file-earmark','link','hr/recruitment/applications/{application_id}',NULL,NULL,NULL,40,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(135,'interview_detail','View Position','bi-briefcase','link','hr/recruitment/positions/{position_id}',NULL,NULL,NULL,50,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(136,'interview_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,60,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(137,'interview_detail','Back','bi-arrow-left','link','hr/recruitment/interviews',NULL,NULL,NULL,70,NULL,1,'2025-11-16 18:46:12','2025-11-16 18:46:12'),
(138,'assessment_detail','Edit','bi-pencil','link','hr/recruitment/assessments/{id}/edit',NULL,NULL,NULL,10,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(139,'assessment_detail','Delete','bi-trash','form_submit','hr/recruitment/assessments/{id}/delete',NULL,NULL,NULL,20,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(140,'assessment_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(141,'assessment_detail','View Application','bi-file-earmark','link','hr/recruitment/applications/{application_id}',NULL,NULL,NULL,40,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(142,'assessment_detail','View Position','bi-briefcase','link','hr/recruitment/positions/{position_id}',NULL,NULL,NULL,50,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(143,'assessment_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,60,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(144,'assessment_detail','Back','bi-arrow-left','link','hr/recruitment/assessments',NULL,NULL,NULL,70,NULL,1,'2025-11-16 18:55:26','2025-11-16 18:55:26'),
(145,'offer_detail','Edit','bi-pencil','link','hr/recruitment/offers/{id}/edit',NULL,NULL,NULL,10,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(146,'offer_detail','Print Offer Letter','bi-printer','link','hr/recruitment/offers/{id}/print',NULL,NULL,NULL,15,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(147,'offer_detail','Delete','bi-trash','form_submit','hr/recruitment/offers/{id}/delete',NULL,NULL,NULL,20,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(148,'offer_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(149,'offer_detail','View Application','bi-file-earmark','link','hr/recruitment/applications/{application_id}',NULL,NULL,NULL,40,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(150,'offer_detail','View Position','bi-briefcase','link','hr/recruitment/positions/{position_id}',NULL,NULL,NULL,50,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(151,'offer_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,60,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(152,'offer_detail','Back','bi-arrow-left','link','hr/recruitment/offers',NULL,NULL,NULL,70,NULL,1,'2025-11-16 19:00:39','2025-11-16 19:00:39'),
(153,'document_view','Download','bi-download','link','documents/download/{id}',NULL,NULL,'btn-create',10,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(154,'document_view','Delete','bi-trash','javascript','deleteDocument()',NULL,NULL,'btn-outline-danger',20,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(155,'document_view',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(156,'document_view','Back','bi-arrow-left','link','documents',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(157,'crm_document_detail','Download','bi-download','link','crm/documents/{id}/download',NULL,NULL,'btn-create',10,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(158,'crm_document_detail','Edit','bi-pencil','link','crm/documents/{id}/edit',NULL,NULL,'btn-outline-theme',20,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(159,'crm_document_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(160,'crm_document_detail','Back','bi-arrow-left','link','crm/documents',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(161,'recurring_template_detail','Execute Now','bi-play-fill','javascript','executeTemplate()',NULL,'recurring_templates.execute','btn-success',10,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(162,'recurring_template_detail','Edit','bi-pencil','link','recurring/{id}/edit',NULL,'recurring_templates.edit','btn-primary',20,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(163,'recurring_template_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,30,'actions',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(164,'recurring_template_detail','Back','bi-arrow-left','link','recurring',NULL,NULL,NULL,40,'navigation',1,'2025-11-16 19:09:22','2025-11-16 19:09:22'),
(165,'project_board','List View','bi-list-ul','link','projects/{id}/list',NULL,NULL,NULL,10,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(166,'project_board','Financials','bi-cash-stack','link','projects/{id}/financials',NULL,NULL,NULL,20,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(167,'project_board','Edit','bi-pencil','link','projects/{id}/edit',NULL,NULL,NULL,30,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(168,'project_board','Delete','bi-trash','javascript','deleteProject({id})',NULL,NULL,'btn-outline-danger',40,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(169,'project_board',NULL,NULL,'divider',NULL,NULL,NULL,NULL,50,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(170,'project_board','Back','bi-arrow-left','link','projects',NULL,NULL,NULL,60,'navigation',1,'2025-11-16 20:29:08','2025-11-16 20:31:37'),
(171,'project_list','Board View','bi-kanban','link','projects/{id}',NULL,NULL,NULL,10,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(172,'project_list','Financials','bi-cash-stack','link','projects/{id}/financials',NULL,NULL,NULL,20,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(173,'project_list','Export CSV','bi-file-earmark-spreadsheet','link','projects/{id}/export',NULL,NULL,NULL,30,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(174,'project_list','Edit','bi-pencil','link','projects/{id}/edit',NULL,NULL,NULL,40,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(175,'project_list',NULL,NULL,'divider',NULL,NULL,NULL,NULL,50,'actions',1,'2025-11-16 20:29:08','2025-11-16 20:29:08'),
(176,'project_list','Back','bi-arrow-left','link','projects',NULL,NULL,NULL,60,'navigation',1,'2025-11-16 20:29:08','2025-11-16 20:31:37'),
(177,'nda_detail','Preview','bi-eye','link','ndas/{id}/preview',NULL,'ndas.view',NULL,10,'view',1,'2025-11-16 22:55:50','2025-11-16 22:55:50'),
(178,'nda_detail','Edit','bi-pencil','link','ndas/{id}/edit',NULL,'ndas.edit',NULL,20,'edit',1,'2025-11-16 22:55:50','2025-11-16 22:55:50'),
(179,'nda_detail','Send for Signature','bi-send','modal','sendEmailModal',NULL,'ndas.send',NULL,30,'send',1,'2025-11-16 22:55:50','2025-11-16 22:55:50'),
(180,'nda_detail',NULL,NULL,'divider',NULL,NULL,NULL,NULL,35,NULL,1,'2025-11-16 22:55:50','2025-11-16 22:55:50'),
(181,'nda_detail','Delete','bi-trash','form_submit','deleteForm',NULL,'ndas.delete',NULL,40,'delete',1,'2025-11-16 22:55:50','2025-11-16 22:55:50'),
(182,'nda_detail','Counter-Sign','bi-pen','link','ndas/{id}/countersign',NULL,'ndas.countersign','btn-success',15,NULL,1,'2025-11-16 23:44:17','2025-11-16 23:47:47'),
(183,'nda_detail','Email NDA','bi-envelope','modal','emailNDAModal',NULL,'ndas.view','btn-primary',20,NULL,1,'2025-11-16 23:52:27','2025-11-16 23:52:27'),
(184,'journal_entries_index','Import CSV','bi bi-file-earmark-arrow-up','link','accounting/journal/import',NULL,'accounting.create',NULL,10,'actions',1,'2025-11-17 17:29:12','2025-11-17 17:29:12'),
(185,'journal_entries_index','New Entry','bi bi-plus-lg','link','accounting/journal/create',NULL,'accounting.create',NULL,20,'actions',1,'2025-11-17 17:29:12','2025-11-20 13:34:27'),
(186,'journal_entries_index','Back','bi bi-arrow-left','link','accounting/dashboard',NULL,NULL,NULL,30,'navigation',1,'2025-11-17 17:29:12','2025-11-17 17:29:12'),
(231,'product_forecast_index','Command Center','fas fa-tachometer-alt','link','product-forecast/command-center',NULL,NULL,NULL,10,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(232,'product_forecast_index','Generate','fas fa-calculator','link','product-forecast/generate',NULL,NULL,NULL,20,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(233,'product_forecast_index','Pro Forma','fas fa-chart-line','link','product-forecast/proforma',NULL,NULL,NULL,30,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(234,'product_forecast_index','Back','bi bi-arrow-left','link','assumptions',NULL,NULL,NULL,40,'navigation',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(235,'product_forecast_generate','Command Center','fas fa-tachometer-alt','link','product-forecast/command-center',NULL,NULL,NULL,10,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(236,'product_forecast_generate','Configure','fas fa-cog','link','product-forecast',NULL,NULL,NULL,20,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(237,'product_forecast_generate','Pro Forma','fas fa-chart-line','link','product-forecast/proforma',NULL,NULL,NULL,30,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(238,'product_forecast_generate','Back','bi bi-arrow-left','link','product-forecast',NULL,NULL,NULL,40,'navigation',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(239,'product_forecast_proforma','Configure','fas fa-cog','link','product-forecast',NULL,NULL,NULL,10,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(240,'product_forecast_proforma','Variance','fas fa-chart-bar','link','product-forecast/variance?set_id={set_id}&start_date={start_date}&end_date={end_date}',NULL,NULL,NULL,20,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(241,'product_forecast_proforma','Export Excel','fas fa-file-excel','link','product-forecast/export-excel?set_id={set_id}&start_date={start_date}&end_date={end_date}&period_type={period_type}',NULL,NULL,NULL,30,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(242,'product_forecast_proforma','Sensitivity','fas fa-sliders-h','link','product-forecast/sensitivity?set_id={set_id}',NULL,NULL,NULL,40,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(243,'product_forecast_proforma','Compare','fas fa-exchange-alt','link','product-forecast/compare',NULL,NULL,NULL,50,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(244,'product_forecast_proforma','Back','bi bi-arrow-left','link','assumptions',NULL,NULL,NULL,60,'navigation',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(245,'product_forecast_sensitivity','Command Center','fas fa-tachometer-alt','link','product-forecast/command-center?set_id={set_id}',NULL,NULL,NULL,10,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(246,'product_forecast_sensitivity','Pro Forma','fas fa-chart-line','link','product-forecast/proforma?set_id={set_id}',NULL,NULL,NULL,20,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(247,'product_forecast_sensitivity','Variance','fas fa-chart-bar','link','product-forecast/variance?set_id={set_id}',NULL,NULL,NULL,30,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(248,'product_forecast_sensitivity','Back','bi bi-arrow-left','link','assumptions',NULL,NULL,NULL,40,'navigation',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(249,'product_forecast_variance','Command Center','fas fa-tachometer-alt','link','product-forecast/command-center?set_id={set_id}',NULL,NULL,NULL,10,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(250,'product_forecast_variance','Pro Forma','fas fa-chart-line','link','product-forecast/proforma?set_id={set_id}',NULL,NULL,NULL,20,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(251,'product_forecast_variance','Sensitivity','fas fa-sliders-h','link','product-forecast/sensitivity?set_id={set_id}',NULL,NULL,NULL,30,'actions',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(252,'product_forecast_variance','Back','bi bi-arrow-left','link','assumptions',NULL,NULL,NULL,40,'navigation',1,'2025-11-20 13:26:58','2025-11-20 13:26:58'),
(253,'mrp_index','Run MRP Calculation','bi bi-calculator','form_submit','mrpCalculateForm',NULL,NULL,NULL,1,'actions',1,'2025-11-20 21:08:46','2025-11-20 21:09:42'),
(254,'mrp_index','Safety Stock','bi bi-building','link','manufacturing/mrp/safetyStock',NULL,NULL,NULL,2,'actions',1,'2025-11-20 21:08:46','2025-11-20 21:08:46'),
(255,'mrp_index','Requisitions','bi bi-receipt','link','manufacturing/mrp/requisitions',NULL,NULL,NULL,3,'actions',1,'2025-11-20 21:08:46','2025-11-20 21:08:46'),
(256,'mrp_index','Back','bi bi-arrow-left','link','manufacturing/dashboard',NULL,NULL,NULL,4,'navigation',0,'2025-11-20 21:08:46','2025-11-26 02:11:45'),
(257,'shopfloor_index','Refresh','bi bi-arrow-repeat','javascript','refreshDashboard()',NULL,NULL,NULL,1,'actions',1,'2025-11-20 21:19:25','2025-11-20 21:19:25'),
(258,'shopfloor_index','All Work Orders','bi bi-clipboard-check','link','manufacturing/workorders',NULL,NULL,NULL,2,'actions',1,'2025-11-20 21:19:25','2025-11-20 21:19:25'),
(259,'shopfloor_index','Back','bi bi-arrow-left','link','manufacturing',NULL,NULL,NULL,3,'navigation',0,'2025-11-20 21:19:25','2025-11-26 02:20:11'),
(260,'crm_document_detail','Delete','bi-trash','form_submit','deleteDocumentForm','POST',NULL,'btn-delete',25,'actions',1,'2025-11-21 03:32:23','2025-11-21 03:33:16'),
(261,'crm_document_detail','Preview','bi-file-earmark-text','modal','documentPreviewModal',NULL,NULL,'btn-outline-theme',5,'actions',1,'2025-11-21 03:46:56','2025-11-21 03:46:56'),
(262,'agreements_index','Create Agreement','fas fa-plus','link','/agreements/create',NULL,NULL,NULL,1,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(263,'agreements_index','Export CSV','fas fa-download','link','/agreements/export',NULL,NULL,NULL,2,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(264,'agreements_index','View Trash','fas fa-trash','link','/agreements/trash',NULL,NULL,NULL,3,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(265,'agreements_index','Back','bi bi-arrow-left','link','/dashboard','GET','','btn-outline-theme',10,'navigation',0,'2025-11-25 23:30:52','2025-11-26 02:10:21'),
(266,'agreements_show','Edit','fas fa-edit','link','/agreements/{id}/edit',NULL,NULL,NULL,1,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(267,'agreements_show','Print','fas fa-print','link','/agreements/{id}/print',NULL,NULL,NULL,2,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(268,'agreements_show','Send for Signature','fas fa-paper-plane','modal','#sendSignatureModal',NULL,NULL,NULL,3,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(269,'agreements_show','Convert to Order','fas fa-exchange-alt','form_submit','/agreements/{id}/convert-order',NULL,NULL,NULL,4,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(270,'agreements_show','Delete','fas fa-trash','form_submit','/agreements/{id}/delete',NULL,NULL,NULL,5,'actions',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(271,'agreements_show','Back','bi bi-arrow-left','link','/agreements',NULL,NULL,NULL,10,'navigation',1,'2025-11-25 23:30:52','2025-11-25 23:30:52'),
(272,'diagrams_index','New Diagram','fas fa-plus','link','/diagrams/create',NULL,NULL,NULL,1,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(273,'diagrams_index','Templates','fas fa-clone','link','/diagrams/templates',NULL,NULL,NULL,2,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(274,'diagrams_index','Import','fas fa-file-import','javascript','importDiagram()',NULL,NULL,NULL,3,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(276,'diagrams_editor','Export PNG','fas fa-image','javascript','exportPNG()',NULL,NULL,NULL,2,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(277,'diagrams_editor','Export SVG','fas fa-file-code','javascript','exportSVG()',NULL,NULL,NULL,3,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(278,'diagrams_editor','Share','fas fa-share-alt','javascript','shareDiagram()',NULL,NULL,NULL,4,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(279,'diagrams_editor','Save as Template','fas fa-clone','javascript','saveAsTemplate()',NULL,NULL,NULL,5,'actions',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(280,'diagrams_editor','Back','bi bi-arrow-left me-1','link','/diagrams',NULL,NULL,NULL,10,'navigation',1,'2025-12-02 03:48:20','2025-12-02 03:48:20'),
(299,'product_detail','Delete Product','bi bi-trash','form_submit','products/{id}/delete',NULL,'inventory.delete',NULL,15,'actions',1,'2025-12-04 22:30:06','2025-12-04 22:30:06');
commit;

--
-- Table structure for table `password_reset_requests`
--

CREATE TABLE `password_reset_requests` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned DEFAULT NULL,
  `email` varchar(255) NOT NULL,
  `token_hash` varchar(255) NOT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `requested_at` timestamp NULL DEFAULT current_timestamp(),
  `expires_at` datetime NOT NULL,
  `used_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_email` (`email`),
  KEY `idx_expires` (`expires_at`),
  CONSTRAINT `password_reset_requests_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `password_reset_requests`
--

set autocommit=0;
commit;

--
-- Table structure for table `payment_batches`
--

CREATE TABLE `payment_batches` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `batch_number` varchar(50) NOT NULL,
  `batch_date` date NOT NULL,
  `batch_name` varchar(200) DEFAULT NULL,
  `payment_method` enum('check','ach','wire') NOT NULL,
  `bank_account_id` int(10) unsigned DEFAULT NULL,
  `total_amount` decimal(15,2) DEFAULT 0.00,
  `payment_count` int(11) DEFAULT 0,
  `status` enum('draft','processed','cancelled') DEFAULT 'draft',
  `processed_at` timestamp NULL DEFAULT NULL,
  `processed_by` int(10) unsigned DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `created_by` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `batch_number` (`batch_number`),
  KEY `bank_account_id` (`bank_account_id`),
  KEY `created_by` (`created_by`),
  KEY `processed_by` (`processed_by`),
  KEY `idx_batch_date` (`batch_date`),
  KEY `idx_status` (`status`),
  CONSTRAINT `payment_batches_ibfk_1` FOREIGN KEY (`bank_account_id`) REFERENCES `bank_accounts` (`id`),
  CONSTRAINT `payment_batches_ibfk_2` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  CONSTRAINT `payment_batches_ibfk_3` FOREIGN KEY (`processed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `payment_batches`
--

set autocommit=0;
commit;

--
-- Table structure for table `payment_terms`
--

CREATE TABLE `payment_terms` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `term_name` varchar(50) NOT NULL COMMENT 'Display name (e.g., Net 30)',
  `term_code` varchar(20) NOT NULL COMMENT 'Short code (e.g., NET30)',
  `net_days` int(11) NOT NULL DEFAULT 30 COMMENT 'Payment due in days',
  `discount_percentage` decimal(5,2) DEFAULT 0.00 COMMENT 'Early payment discount %',
  `discount_days` int(11) DEFAULT 0 COMMENT 'Days to qualify for discount',
  `late_fee_percentage` decimal(5,2) DEFAULT 0.00 COMMENT 'Late payment fee %',
  `late_fee_grace_days` int(11) DEFAULT 0 COMMENT 'Grace period before late fees',
  `is_default` tinyint(1) DEFAULT 0 COMMENT 'Default payment term',
  `is_active` tinyint(1) DEFAULT 1,
  `description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `term_code` (`term_code`),
  UNIQUE KEY `unique_term_code` (`term_code`),
  KEY `idx_active` (`is_active`),
  KEY `idx_default` (`is_default`),
  KEY `idx_payment_net_days` (`net_days`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Standard payment terms for invoices and bills';

--
-- Dumping data for table `payment_terms`
--

set autocommit=0;
INSERT INTO `payment_terms` VALUES
(1,'Due on Receipt','DUE_ON_RECEIPT',0,0.00,0,0.00,0,0,1,'Payment due immediately upon receipt','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(2,'Net 15','NET15',15,0.00,0,0.00,0,0,1,'Payment due within 15 days','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(3,'Net 30','NET30',30,0.00,0,0.00,0,1,1,'Payment due within 30 days','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(4,'Net 45','NET45',45,0.00,0,0.00,0,0,1,'Payment due within 45 days','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(5,'Net 60','NET60',60,0.00,0,0.00,0,0,1,'Payment due within 60 days','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(6,'Net 90','NET90',90,0.00,0,0.00,0,0,1,'Payment due within 90 days','2025-11-01 12:32:09','2025-11-01 12:32:09'),
(7,'2/10 Net 30','2_10_NET30',30,2.00,10,0.00,0,0,1,'2% discount if paid within 10 days, net 30','2025-11-01 12:32:09','2025-11-01 12:32:09');
commit;

--
-- Table structure for table `payments`
--

CREATE TABLE `payments` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `payment_number` varchar(50) NOT NULL,
  `invoice_id` int(10) unsigned NOT NULL,
  `customer_id` int(10) unsigned NOT NULL,
  `payment_date` date NOT NULL,
  `amount` decimal(15,2) NOT NULL,
  `payment_method` enum('cash','check','credit_card','bank_transfer','other') NOT NULL,
  `reference` varchar(100) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `created_by` int(10) unsigned DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `deleted_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `payment_number` (`payment_number`),
  KEY `invoice_id` (`invoice_id`),
  KEY `customer_id` (`customer_id`),
  KEY `created_by` (`created_by`),
  KEY `idx_payments_deleted_at` (`deleted_at`),
  CONSTRAINT `payments_ibfk_1` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`),
  CONSTRAINT `payments_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`),
  CONSTRAINT `payments_ibfk_3` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `payments`
--

set autocommit=0;
commit;

--
-- Table structure for table `payroll`
--

CREATE TABLE `payroll` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `employee_id` int(10) unsigned NOT NULL,
  `pay_period_start` date NOT NULL,
  `pay_period_end` date NOT NULL,
  `pay_date` date NOT NULL,
  `basic_salary` decimal(15,2) NOT NULL,
  `allowances` decimal(15,2) DEFAULT 0.00,
  `deductions` decimal(15,2) DEFAULT 0.00,
  `net_pay` decimal(15,2) NOT NULL,
  `status` enum('draft','processed','paid') DEFAULT 'draft',
  `notes` text DEFAULT NULL,
  `created_by` int(10) unsigned DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `employee_id` (`employee_id`),
  KEY `created_by` (`created_by`),
  CONSTRAINT `payroll_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`id`) ON DELETE CASCADE,
  CONSTRAINT `payroll_ibfk_2` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `payroll`
--

set autocommit=0;
commit;

--
-- Table structure for table `performance_reviews`
--

CREATE TABLE `performance_reviews` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `employee_id` int(10) unsigned NOT NULL,
  `review_period_start` date NOT NULL,
  `review_period_end` date NOT NULL,
  `review_date` date DEFAULT NULL,
  `reviewer_id` int(10) unsigned DEFAULT NULL,
  `review_type` enum('probation','quarterly','annual','project','other') DEFAULT 'annual',
  `overall_rating` decimal(3,2) DEFAULT NULL COMMENT 'Rating out of 5.00',
  `performance_rating` decimal(3,2) DEFAULT NULL,
  `attendance_rating` decimal(3,2) DEFAULT NULL,
  `teamwork_rating` decimal(3,2) DEFAULT NULL,
  `communication_rating` decimal(3,2) DEFAULT NULL,
  `strengths` text DEFAULT NULL,
  `areas_for_improvement` text DEFAULT NULL,
  `goals` text DEFAULT NULL,
  `achievements` text DEFAULT NULL,
  `comments` text DEFAULT NULL,
  `employee_comments` text DEFAULT NULL,
  `status` enum('scheduled','in-progress','completed','acknowledged') DEFAULT 'scheduled',
  `acknowledged_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_employee` (`employee_id`),
  KEY `idx_review_date` (`review_date`),
  KEY `idx_status` (`status`),
  CONSTRAINT `performance_reviews_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `performance_reviews`
--

set autocommit=0;
commit;

--
-- Table structure for table `permission_groups`
--

CREATE TABLE `permission_groups` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL COMMENT 'Display name of the group',
  `parent_id` int(10) unsigned DEFAULT NULL COMMENT 'Parent group for hierarchy',
  `display_order` int(11) DEFAULT 0 COMMENT 'Order within parent group',
  `icon` varchar(50) DEFAULT NULL COMMENT 'Icon class (e.g., bi-grid-3x3-gap)',
  `color` varchar(20) DEFAULT NULL COMMENT 'Color for visual distinction (e.g., success, danger, primary)',
  `description` text DEFAULT NULL COMMENT 'Description of this permission group',
  `is_system` tinyint(1) DEFAULT 0 COMMENT 'System groups cannot be deleted',
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_parent` (`parent_id`),
  KEY `idx_order` (`parent_id`,`display_order`),
  CONSTRAINT `permission_groups_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `permission_groups` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Hierarchical grouping of permissions for better organization';

--
-- Dumping data for table `permission_groups`
--

set autocommit=0;
INSERT INTO `permission_groups` VALUES
(1,'App Grid (Quick Access)',NULL,0,'bi-grid-3x3-gap-fill','success','Essential quick-access items for all users',1,'2025-11-24 18:37:49','2025-11-28 23:18:59'),
(2,'Departments',NULL,1,'bi-building','primary','Core business department modules',1,'2025-11-24 18:37:49','2025-11-28 23:18:48'),
(3,'Tools',NULL,3,'bi-tools','info','Productivity and utility tools',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(4,'Administration',NULL,4,'bi-shield-lock-fill','danger','System administration and settings',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(5,'Accounting',2,1,'bi-calculator',NULL,'Financial accounting, invoicing, and reporting',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(6,'CRM',2,2,'bi-people',NULL,'Customer relationship management and sales',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(7,'HR',2,3,'bi-person-badge',NULL,'Human resources and employee management',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(8,'Inventory',2,4,'bi-box-seam',NULL,'Inventory and stock management',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(9,'Manufacturing',2,5,'bi-gear-wide-connected',NULL,'Manufacturing and production',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(10,'Purchases',2,6,'bi-cart',NULL,'Procurement and supplier management',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(11,'Sales',2,7,'bi-graph-up',NULL,'Sales orders and fulfillment',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(12,'Documents',3,1,'bi-file-earmark-text',NULL,'Document management and storage',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(13,'Help Desk',3,2,'bi-headset',NULL,'Support ticketing system',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(14,'Projects',3,3,'bi-kanban',NULL,'Project management',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(15,'Reports',3,4,'bi-bar-chart',NULL,'Reporting and analytics',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(16,'Settings & System',4,1,'bi-gear',NULL,'System configuration and settings',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(17,'Security',4,2,'bi-shield-check',NULL,'User, role, and permission management',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(18,'Announcements',4,3,'bi-megaphone',NULL,'System announcements',1,'2025-11-24 18:37:49','2025-11-24 18:37:49'),
(19,'Forecasting',NULL,2,'','','Financial forecasting and planning',0,'2025-11-28 22:58:33','2025-11-28 23:18:38');
commit;

--
-- Table structure for table `permissions`
--

CREATE TABLE `permissions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `module` varchar(50) NOT NULL,
  `group_id` int(10) unsigned DEFAULT NULL COMMENT 'Permission group this belongs to',
  `description` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `idx_group` (`group_id`),
  CONSTRAINT `permissions_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `permission_groups` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=1489 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `permissions`
--

set autocommit=0;
INSERT INTO `permissions` VALUES
(1,'users.view','users',4,'View users','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(2,'users.create','users',4,'Create users','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(3,'users.edit','users',4,'Edit users','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(4,'users.delete','users',4,'Delete users','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(5,'crm.view','crm',6,'View CRM (customers, contacts, opportunities)','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(6,'crm.create','crm',6,'Create CRM records (customers, contacts, opportunities)','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(7,'crm.edit','crm',6,'Edit CRM records (customers, contacts, opportunities)','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(8,'crm.delete','crm',6,'Delete CRM records (customers, contacts, opportunities)','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(9,'inventory.view','inventory',8,'View inventory','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(10,'inventory.create','inventory',8,'Create products','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(11,'inventory.edit','inventory',8,'Edit products','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(12,'inventory.delete','inventory',8,'Delete products','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(13,'inventory.adjust','inventory',8,'Adjust inventory levels','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(14,'sales.view','sales',11,'View sales orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(15,'sales.create','sales',11,'Create sales orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(16,'sales.edit','sales',11,'Edit sales orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(17,'sales.delete','sales',11,'Delete sales orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(18,'invoices.view','sales',5,'View invoices','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(19,'invoices.create','sales',5,'Create invoices','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(20,'invoices.edit','sales',5,'Edit invoices','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(21,'invoices.delete','sales',5,'Delete invoices','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(22,'payments.view','sales',5,'View payments','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(23,'payments.create','sales',5,'Create payments','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(24,'purchases.view','purchases',10,'View purchase orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(25,'purchases.create','purchases',10,'Create purchase orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(26,'purchases.edit','purchases',10,'Edit purchase orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(27,'purchases.delete','purchases',10,'Delete purchase orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(28,'suppliers.view','purchases',10,'View suppliers','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(29,'suppliers.create','purchases',10,'Create suppliers','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(30,'suppliers.edit','purchases',10,'Edit suppliers','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(31,'suppliers.delete','purchases',10,'Delete suppliers','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(32,'accounting.view','accounting',5,'View accounting records','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(33,'accounting.create','accounting',5,'Create journal entries','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(34,'accounting.edit','accounting',5,'Edit journal entries','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(35,'accounting.post','accounting',5,'Post journal entries','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(36,'hr.view','hr',7,'View employees','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(37,'hr.create','hr',7,'Create employees','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(38,'hr.edit','hr',7,'Edit employees','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(39,'hr.delete','hr',7,'Delete employees','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(40,'payroll.view','hr',7,'View payroll','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(41,'payroll.create','hr',7,'Create payroll','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(42,'payroll.process','hr',7,'Process payroll','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(43,'manufacturing.view','manufacturing',9,'View BOMs and work orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(44,'manufacturing.create','manufacturing',9,'Create BOMs and work orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(45,'manufacturing.edit','manufacturing',9,'Edit BOMs and work orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(46,'manufacturing.delete','manufacturing',9,'Delete BOMs and work orders','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(47,'reports.view','reports',15,'View reports','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(48,'reports.export','reports',15,'Export reports','2025-10-26 14:24:24','2025-11-28 22:59:52'),
(49,'settings.view','settings',16,'View settings','2025-11-01 15:39:52','2025-11-28 22:59:52'),
(50,'settings.edit','settings',16,'Edit settings','2025-11-01 15:39:52','2025-11-28 22:59:52'),
(51,'purchasing.view','purchases',10,'View purchasing','2025-11-01 16:40:54','2025-11-28 23:03:01'),
(52,'purchasing.create','purchases',10,'Create purchasing','2025-11-01 16:40:54','2025-11-28 23:03:01'),
(53,'purchasing.edit','purchases',10,'Edit purchasing','2025-11-01 16:40:54','2025-11-28 23:03:01'),
(54,'purchasing.delete','purchases',10,'Delete purchasing','2025-11-01 16:40:54','2025-11-28 23:03:01'),
(55,'roles.view','roles',4,'View roles','2025-11-01 16:40:54','2025-11-28 22:59:52'),
(56,'roles.create','roles',4,'Create roles','2025-11-01 16:40:54','2025-11-28 22:59:52'),
(57,'roles.edit','roles',4,'Edit roles','2025-11-01 16:40:54','2025-11-28 22:59:52'),
(58,'roles.delete','roles',4,'Delete roles','2025-11-01 16:40:54','2025-11-28 22:59:52'),
(69,'accounting.delete','accounting',5,'Delete accounting entries','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(70,'accounting.approve','accounting',5,'Approve accounting transactions','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(71,'inventory.manage','inventory',8,'Manage inventory','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(72,'manufacturing.approve','manufacturing',9,'Approve manufacturing operations','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(73,'procurement.view','procurement',10,'View procurement','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(74,'procurement.create','procurement',10,'Create procurement','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(75,'procurement.edit','procurement',10,'Edit procurement','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(76,'procurement.delete','procurement',10,'Delete procurement','2025-11-03 14:26:17','2025-11-28 22:59:52'),
(77,'admin','admin',4,'Full system access','2025-11-03 14:26:17','2025-11-28 23:03:13'),
(78,'dashboard.view','',3,'View dashboard','2025-11-11 11:15:46','2025-11-28 23:02:18'),
(79,'projects.view','',14,'View projects','2025-11-11 11:15:46','2025-11-28 22:59:52'),
(80,'helpdesk.view','',3,'View help desk module','2025-11-11 11:15:46','2025-11-28 22:59:52'),
(81,'documents.view','',12,'View documents','2025-11-11 11:15:46','2025-11-28 22:59:52'),
(82,'messaging.view','',3,'View messaging module','2025-11-11 11:15:46','2025-11-28 23:02:18'),
(83,'calendar.view','',1,'View calendar','2025-11-11 11:15:46','2025-11-28 22:59:52'),
(84,'marketing.view','',4,'View marketing module','2025-11-11 11:15:46','2025-11-28 23:03:01'),
(85,'analytics.view','',15,'View analytics','2025-11-11 11:15:46','2025-11-28 22:59:52'),
(87,'accounts.view','accounting',5,'View chart of accounts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(88,'accounts.create','accounting',5,'Create accounts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(89,'accounts.edit','accounting',5,'Edit accounts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(90,'accounts.delete','accounting',5,'Delete accounts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(91,'journal.view','accounting',5,'View journal entries','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(92,'journal.create','accounting',5,'Create journal entries','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(93,'journal.edit','accounting',5,'Edit journal entries','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(94,'journal.delete','accounting',5,'Delete journal entries','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(95,'journal.post','accounting',5,'Post journal entries','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(96,'bank_accounts.view','accounting',5,'View bank accounts','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(97,'bank_accounts.create','accounting',5,'Create bank accounts','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(98,'bank_accounts.edit','accounting',5,'Edit bank accounts','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(99,'reconciliation.view','accounting',5,'View bank reconciliation','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(100,'reconciliation.create','accounting',5,'Perform bank reconciliation','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(101,'fixed_assets.view','accounting',5,'View fixed assets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(102,'fixed_assets.create','accounting',5,'Create fixed assets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(103,'fixed_assets.edit','accounting',5,'Edit fixed assets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(104,'fixed_assets.delete','accounting',5,'Delete fixed assets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(105,'budgets.view','accounting',5,'View budgets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(106,'budgets.create','accounting',5,'Create budgets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(107,'budgets.edit','accounting',5,'Edit budgets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(108,'period_closing.view','accounting',5,'View period closing','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(109,'period_closing.execute','accounting',5,'Execute period closing','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(110,'tax_filing.view','accounting',5,'View tax filing','2025-11-11 12:32:35','2025-11-28 23:02:18'),
(111,'tax_filing.create','accounting',5,'Create tax filings','2025-11-11 12:32:35','2025-11-28 23:02:18'),
(112,'proforma.view','accounting',5,'View pro forma statements','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(113,'proforma.create','accounting',5,'Create pro forma statements','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(114,'customers.view','crm',6,'View customers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(115,'customers.create','crm',6,'Create customers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(116,'customers.edit','crm',6,'Edit customers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(117,'customers.delete','crm',6,'Delete customers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(118,'customers.export','crm',6,'Export customer data','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(119,'clients.view','crm',6,'View clients','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(120,'clients.create','crm',6,'Create clients','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(121,'clients.edit','crm',6,'Edit clients','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(122,'clients.delete','crm',6,'Delete clients','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(123,'contacts.view','crm',6,'View contacts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(124,'contacts.create','crm',6,'Create contacts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(125,'contacts.edit','crm',6,'Edit contacts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(126,'contacts.delete','crm',6,'Delete contacts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(127,'opportunities.view','crm',6,'View opportunities','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(128,'opportunities.create','crm',6,'Create opportunities','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(129,'opportunities.edit','crm',6,'Edit opportunities','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(130,'opportunities.delete','crm',6,'Delete opportunities','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(131,'activities.view','crm',6,'View CRM activities','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(132,'activities.create','crm',6,'Create CRM activities','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(133,'activities.edit','crm',6,'Edit CRM activities','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(134,'employees.view','hr',7,'View employees','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(135,'employees.create','hr',7,'Create employees','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(136,'employees.edit','hr',7,'Edit employees','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(137,'employees.delete','hr',7,'Delete employees','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(138,'applications.view','hr',7,'View job applications','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(139,'applications.create','hr',7,'Create job applications','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(140,'applications.edit','hr',7,'Edit job applications','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(141,'interviews.view','hr',7,'View interviews','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(142,'interviews.create','hr',7,'Schedule interviews','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(143,'interviews.edit','hr',7,'Edit interviews','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(144,'assessments.view','hr',7,'View assessments','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(145,'assessments.create','hr',7,'Create assessments','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(146,'offers.view','hr',7,'View job offers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(147,'offers.create','hr',7,'Create job offers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(148,'offers.approve','hr',7,'Approve job offers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(149,'timeoff.view','hr',7,'View time off requests','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(150,'timeoff.create','hr',7,'Create time off requests','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(151,'timeoff.approve','hr',7,'Approve time off requests','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(152,'timeoff.delete','hr',7,'Delete time off requests','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(153,'timesheets.view','hr',7,'View timesheets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(154,'timesheets.create','hr',7,'Create timesheets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(155,'timesheets.approve','hr',7,'Approve timesheets','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(156,'attendance.view','hr',7,'View attendance','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(157,'attendance.create','hr',7,'Record attendance','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(158,'training.view','hr',7,'View training records','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(159,'training.create','hr',7,'Create training records','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(160,'training.edit','hr',7,'Edit training records','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(161,'reviews.view','hr',7,'View performance reviews','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(162,'reviews.create','hr',7,'Create performance reviews','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(163,'reviews.edit','hr',7,'Edit performance reviews','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(164,'contracts.view','hr',7,'View employee contracts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(165,'contracts.create','hr',7,'Create employee contracts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(166,'contracts.edit','hr',7,'Edit employee contracts','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(167,'separations.view','hr',7,'View employee separations','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(168,'separations.create','hr',7,'Create employee separations','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(169,'products.view','inventory',8,'View products','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(170,'products.create','inventory',8,'Create products','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(171,'products.edit','inventory',8,'Edit products','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(172,'products.delete','inventory',8,'Delete products','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(173,'products.export','inventory',8,'Export product data','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(174,'categories.view','inventory',8,'View product categories','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(175,'categories.create','inventory',8,'Create product categories','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(176,'categories.edit','inventory',8,'Edit product categories','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(177,'categories.delete','inventory',8,'Delete product categories','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(178,'stock_movements.view','inventory',8,'View stock movements','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(179,'stock_movements.create','inventory',8,'Create stock movements','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(180,'stock_adjustments.create','inventory',8,'Create stock adjustments','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(181,'transfers.view','inventory',8,'View stock transfers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(182,'transfers.create','inventory',8,'Create stock transfers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(183,'transfers.approve','inventory',8,'Approve stock transfers','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(184,'lots.view','inventory',8,'View lot/serial numbers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(185,'lots.create','inventory',8,'Create lot/serial numbers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(186,'lots.edit','inventory',8,'Edit lot/serial numbers','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(187,'workorders.view','manufacturing',9,'View work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(188,'workorders.create','manufacturing',9,'Create work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(189,'workorders.edit','manufacturing',9,'Edit work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(190,'workorders.delete','manufacturing',9,'Delete work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(191,'workorders.release','manufacturing',9,'Release work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(192,'workorders.complete','manufacturing',9,'Complete work orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(193,'boms.view','manufacturing',9,'View bills of materials','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(194,'boms.create','manufacturing',9,'Create bills of materials','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(195,'boms.edit','manufacturing',9,'Edit bills of materials','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(196,'boms.delete','manufacturing',9,'Delete bills of materials','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(197,'equipment.view','manufacturing',9,'View equipment','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(198,'equipment.create','manufacturing',9,'Create equipment','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(199,'equipment.edit','manufacturing',9,'Edit equipment','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(200,'equipment.maintenance','manufacturing',9,'Perform equipment maintenance','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(201,'capacity.view','manufacturing',9,'View capacity planning','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(202,'capacity.edit','manufacturing',9,'Edit capacity planning','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(203,'quality.view','manufacturing',9,'View quality control','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(204,'quality.create','manufacturing',9,'Create quality inspections','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(205,'quality.approve','manufacturing',9,'Approve quality inspections','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(206,'mrp.view','manufacturing',9,'View MRP','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(207,'mrp.run','manufacturing',9,'Run MRP calculations','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(208,'quotes.view','sales',11,'View quotes','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(209,'quotes.create','sales',11,'Create quotes','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(210,'quotes.edit','sales',11,'Edit quotes','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(211,'quotes.delete','sales',11,'Delete quotes','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(212,'quotes.approve','sales',11,'Approve quotes','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(213,'quotes.convert','sales',11,'Convert quotes to orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(214,'orders.view','sales',11,'View sales orders','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(215,'orders.create','sales',11,'Create sales orders','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(216,'orders.edit','sales',11,'Edit sales orders','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(217,'orders.delete','sales',11,'Delete sales orders','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(218,'orders.approve','sales',11,'Approve sales orders','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(219,'delivery_notes.view','sales',11,'View delivery notes','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(220,'delivery_notes.create','sales',11,'Create delivery notes','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(221,'returns.view','sales',11,'View sales returns','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(222,'returns.create','sales',11,'Create sales returns','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(223,'returns.approve','sales',11,'Approve sales returns','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(224,'pricing_rules.view','sales',11,'View pricing rules','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(225,'pricing_rules.create','sales',11,'Create pricing rules','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(226,'pricing_rules.edit','sales',11,'Edit pricing rules','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(227,'promotions.view','sales',11,'View promotions','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(228,'promotions.create','sales',11,'Create promotions','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(229,'promotions.edit','sales',11,'Edit promotions','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(230,'purchase_orders.view','purchases',10,'View purchase orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(231,'purchase_orders.create','purchases',10,'Create purchase orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(232,'purchase_orders.edit','purchases',10,'Edit purchase orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(233,'purchase_orders.delete','purchases',10,'Delete purchase orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(234,'purchase_orders.approve','purchases',10,'Approve purchase orders','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(235,'goods_receipts.view','purchases',10,'View goods receipts','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(236,'goods_receipts.create','purchases',10,'Create goods receipts','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(237,'bills.view','purchases',5,'View supplier bills','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(238,'bills.create','purchases',5,'Create supplier bills','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(239,'bills.approve','purchases',5,'Approve supplier bills','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(240,'supplier_payments.view','purchases',10,'View supplier payments','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(241,'supplier_payments.create','purchases',10,'Create supplier payments','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(242,'tickets.view','helpdesk',3,'View support tickets','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(243,'tickets.create','helpdesk',3,'Create support tickets','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(244,'tickets.edit','helpdesk',3,'Edit support tickets','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(245,'tickets.assign','helpdesk',3,'Assign support tickets','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(246,'tickets.close','helpdesk',3,'Close support tickets','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(247,'projects.create','projects',14,'Create projects','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(248,'projects.edit','projects',14,'Edit projects','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(249,'projects.delete','projects',14,'Delete projects','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(250,'documents.upload','documents',12,'Upload documents','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(251,'documents.edit','documents',12,'Edit documents','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(252,'documents.delete','documents',12,'Delete documents','2025-11-11 12:32:35','2025-11-28 22:59:52'),
(253,'campaigns.view','marketing',6,'View email campaigns','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(254,'campaigns.create','marketing',6,'Create email campaigns','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(255,'campaigns.edit','marketing',6,'Edit email campaigns','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(256,'campaigns.send','marketing',6,'Send email campaigns','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(257,'lists.view','marketing',4,'View mailing lists','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(258,'lists.create','marketing',4,'Create mailing lists','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(259,'templates.view','marketing',4,'View email templates','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(260,'templates.create','marketing',4,'Create email templates','2025-11-11 12:32:35','2025-11-28 23:03:01'),
(267,'positions.view','hr',7,'View job positions','2025-11-11 12:46:12','2025-11-28 23:03:01'),
(268,'positions.create','hr',7,'Create job positions','2025-11-11 12:46:12','2025-11-28 23:03:01'),
(269,'positions.edit','hr',7,'Edit job positions','2025-11-11 12:46:12','2025-11-28 23:03:01'),
(270,'positions.delete','hr',7,'Delete job positions','2025-11-11 12:46:12','2025-11-28 23:03:01'),
(271,'audit_logs.view','system',5,'View audit logs and system activity','2025-11-11 16:59:36','2025-11-28 23:03:01'),
(272,'forecasting.view','accounting',19,'View financial forecasts and scenarios','2025-11-11 17:41:34','2025-11-28 22:59:52'),
(273,'forecasting.create','accounting',19,'Create financial forecasts and scenarios','2025-11-11 17:41:34','2025-11-28 22:59:52'),
(274,'forecasting.edit','accounting',19,'Edit financial forecasts and scenarios','2025-11-11 17:41:34','2025-11-28 22:59:52'),
(275,'forecasting.delete','accounting',19,'Delete financial forecasts and scenarios','2025-11-11 17:41:34','2025-11-28 22:59:52'),
(276,'forecasting.approve','accounting',19,'Approve and finalize forecasts','2025-11-11 17:41:34','2025-11-28 22:59:52'),
(287,'camera_audit.view','inventory',3,'View camera audit logs and images','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(288,'camera_audit.capture','inventory',3,'Capture images and create audit logs','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(289,'camera_audit.verify','inventory',3,'Verify and approve audit images','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(290,'camera_audit.annotate','inventory',3,'Add annotations to audit images','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(291,'camera_audit.delete','inventory',3,'Delete camera audit logs','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(292,'camera_audit.stations','inventory',3,'Manage camera stations','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(293,'camera_audit.export','inventory',3,'Export camera audit data','2025-11-13 21:23:05','2025-11-28 22:59:52'),
(294,'mfa.manage_own','security',17,'Manage own MFA settings','2025-11-15 17:46:36','2025-11-28 22:59:52'),
(295,'mfa.admin_override','security',17,'Admin: Override MFA for any user','2025-11-15 17:46:36','2025-11-28 22:59:52'),
(296,'security.view_audit','security',17,'View security audit logs','2025-11-15 17:46:36','2025-11-28 22:59:52'),
(297,'tax_jurisdictions.view','tax',5,'View tax jurisdictions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(298,'tax_jurisdictions.create','tax',5,'Create tax jurisdictions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(299,'tax_jurisdictions.edit','tax',5,'Edit tax jurisdictions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(300,'tax_jurisdictions.delete','tax',5,'Delete tax jurisdictions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(301,'tax_payments.view','tax',5,'View tax payments','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(302,'tax_payments.create','tax',5,'Create tax payments','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(303,'tax_payments.edit','tax',5,'Edit tax payments','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(304,'tax_payments.file','tax',5,'File tax returns','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(305,'tax_exemptions.view','tax',5,'View tax exemptions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(306,'tax_exemptions.manage','tax',5,'Manage tax exemptions','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(307,'tax_reports.view','tax',5,'View tax reports','2025-11-15 18:08:20','2025-11-28 23:03:01'),
(308,'1099_contractors.view','1099',5,'View 1099 contractors','2025-11-15 18:20:32','2025-11-28 22:59:52'),
(309,'1099_contractors.manage','1099',5,'Manage 1099 contractor designations','2025-11-15 18:20:32','2025-11-28 22:59:52'),
(310,'1099_payments.view','1099',5,'View 1099 reportable payments','2025-11-15 18:20:32','2025-11-28 23:03:01'),
(311,'1099_payments.manage','1099',5,'Manage 1099 payment classifications','2025-11-15 18:20:32','2025-11-28 23:03:01'),
(312,'1099_reports.view','1099',5,'View 1099 reports','2025-11-15 18:20:32','2025-11-28 23:03:01'),
(313,'1099_filings.prepare','1099',5,'Prepare 1099 forms','2025-11-15 18:20:32','2025-11-28 23:03:01'),
(314,'1099_filings.file','1099',5,'File 1099 forms','2025-11-15 18:20:32','2025-11-28 23:03:01'),
(315,'bank_import.view','bank_import',5,'View bank imports','2025-11-15 18:27:16','2025-11-28 22:59:52'),
(316,'bank_import.create','bank_import',5,'Import bank transactions','2025-11-15 18:27:16','2025-11-28 22:59:52'),
(317,'bank_import.categorize','bank_import',5,'Categorize imported transactions','2025-11-15 18:27:16','2025-11-28 22:59:52'),
(318,'bank_import.rules','bank_import',5,'Manage categorization rules','2025-11-15 18:27:16','2025-11-28 22:59:52'),
(323,'audit_trail.view','audit',5,'View audit trail','2025-11-15 18:28:26','2025-11-28 23:03:01'),
(324,'audit_trail.export','audit',5,'Export audit trail','2025-11-15 18:28:26','2025-11-28 23:03:01'),
(325,'accounting.customer_payments.view','accounting',5,'View customer payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(326,'accounting.customer_payments.create','accounting',5,'Create customer payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(327,'accounting.customer_payments.edit','accounting',5,'Edit customer payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(328,'accounting.customer_payments.delete','accounting',5,'Delete customer payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(329,'accounting.vendor_payments.view','accounting',5,'View vendor payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(330,'accounting.vendor_payments.create','accounting',5,'Create vendor payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(331,'accounting.vendor_payments.edit','accounting',5,'Edit vendor payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(332,'accounting.vendor_payments.delete','accounting',5,'Delete vendor payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(333,'accounting.vendor_payments.void','accounting',5,'Void vendor payments','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(334,'accounting.vendor_payments.print_checks','accounting',5,'Print vendor payment checks','2025-11-15 19:50:26','2025-11-28 22:59:52'),
(345,'recurring_templates.view','recurring',5,'View Recurring Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(346,'recurring_templates.create','recurring',5,'Create Recurring Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(347,'recurring_templates.edit','recurring',5,'Edit Recurring Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(348,'recurring_templates.delete','recurring',5,'Delete Recurring Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(349,'recurring_templates.activate','recurring',5,'Activate/Deactivate Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(350,'recurring_templates.execute','recurring',5,'Manually Execute Templates','2025-11-15 20:42:50','2025-11-28 23:02:18'),
(357,'credit_notes.apply','credit_notes',5,'Apply Credit Notes to Invoices','2025-11-15 21:26:02','2025-11-28 23:03:01'),
(358,'credit_notes.reverse','credit_notes',5,'Reverse Credit Note Applications','2025-11-15 21:26:02','2025-11-28 23:03:01'),
(359,'credit_notes.view_balances','credit_notes',5,'View Customer Credit Balances','2025-11-15 21:26:02','2025-11-28 23:03:01'),
(360,'credit_notes.auto_apply','credit_notes',5,'Auto-apply Credit Notes','2025-11-15 21:26:02','2025-11-28 23:03:01'),
(361,'statements.generate','statements',5,'Generate Customer Statements','2025-11-15 21:36:53','2025-11-28 23:03:01'),
(362,'statements.view_history','statements',5,'View Statement History','2025-11-15 21:36:53','2025-11-28 23:03:01'),
(363,'statements.email','statements',5,'Email Statements to Customers','2025-11-15 21:36:53','2025-11-28 23:03:01'),
(364,'statements.bulk_generate','statements',5,'Generate Bulk Statements','2025-11-15 21:36:53','2025-11-28 23:03:01'),
(365,'quotes.send_for_signature','sales',11,'Send quote for customer e-signature','2025-11-16 11:39:56','2025-11-28 22:59:52'),
(366,'quotes.view_signatures','sales',11,'View quote signature history','2025-11-16 11:39:56','2025-11-28 22:59:52'),
(367,'quotes.convert_to_sales_order','sales',11,'Convert accepted quotes to sales orders','2025-11-16 11:39:56','2025-11-28 22:59:52'),
(368,'quotes.resend_signature_request','sales',11,'Resend signature request to customer','2025-11-16 11:39:56','2025-11-28 22:59:52'),
(369,'ndas.view','crm',6,'View NDAs','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(370,'ndas.create','crm',6,'Create NDAs','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(371,'ndas.edit','crm',6,'Edit draft NDAs','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(372,'ndas.delete','crm',6,'Delete NDAs','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(373,'ndas.send','crm',6,'Send NDAs for signature','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(374,'ndas.view_signatures','crm',6,'View NDA signatures','2025-11-16 11:44:05','2025-11-28 23:02:18'),
(375,'nda_templates.manage','crm',6,'Manage NDA templates','2025-11-16 11:44:05','2025-11-28 23:03:01'),
(376,'ndas.countersign','crm',6,'Counter-sign NDAs on behalf of company','2025-11-16 23:21:54','2025-11-28 23:02:18'),
(377,'system.backup','system',4,'Manage system backups and Git operations','2025-11-17 11:19:40','2025-11-28 23:03:01'),
(378,'salesorders.view','',11,'View SALES','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(379,'announcements.view','',18,'View Announcements','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(380,'audit-logs.view','',4,'View Audit Log','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(381,'automation.view','automation',4,'View Templates','2025-11-17 12:41:32','2025-11-28 23:03:01'),
(382,'backup.view','',4,'View System Backup','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(383,'creditnotes.view','',5,'View Credit Notes','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(384,'data_access.view','',4,'View Specific Data Roles','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(385,'email-marketing.view','',3,'View Email Marketing','2025-11-17 12:41:32','2025-11-28 22:59:52'),
(387,'financial-proforma.view','',19,'View Forecasting','2025-11-17 12:41:49','2025-11-28 22:59:52'),
(389,'forecaster.view','',19,'View Financial Forecaster','2025-11-17 12:42:02','2025-11-28 22:59:52'),
(390,'locations.view','',8,'View Locations','2025-11-17 12:42:02','2025-11-28 22:59:52'),
(391,'menus.view','',4,'View Menu Management','2025-11-17 12:42:02','2025-11-28 22:59:52'),
(392,'quickbooks.view','',4,'View QuickBooks Integration','2025-11-17 12:42:02','2025-11-28 22:59:52'),
(393,'shipments.view','',11,'View Shipments','2025-11-17 12:42:02','2025-11-28 22:59:52'),
(398,'network_monitor.view','security',3,'View network monitoring dashboard','2025-11-19 14:34:33','2025-11-28 22:59:52'),
(399,'network_monitor.manage','security',3,'Manage network monitor settings','2025-11-19 14:34:33','2025-11-28 22:59:52'),
(400,'forecasting.manage_assumptions','Forecasting',19,'Manage forecast assumptions and variables','2025-11-19 16:40:14','2025-11-28 22:59:52'),
(401,'forecasting.view_actuals','Forecasting',19,'View actual vs forecast variance','2025-11-19 16:40:14','2025-11-28 22:59:52'),
(402,'forecasting.update_daily','Forecasting',19,'Quick daily update of key variables','2025-11-19 16:40:14','2025-11-28 22:59:52'),
(403,'forecasting.manage_products','Forecasting',19,'Manage product-level forecasting configuration','2025-11-19 17:53:07','2025-11-28 22:59:52'),
(404,'forecasting.view_proforma','Forecasting',19,'View consolidated pro forma reports','2025-11-19 17:53:07','2025-11-28 22:59:52'),
(405,'forecasting.generate_projections','Forecasting',19,'Generate financial projections','2025-11-19 17:53:07','2025-11-28 22:59:52'),
(406,'product_forecast.view','forecasting',19,'View Product Line Forecasting and Variance Analysis','2025-11-19 19:08:28','2025-11-28 22:59:52'),
(407,'files.manage','system',3,'Manage all files and folders','2025-11-21 14:37:34','2025-11-28 22:59:52'),
(408,'files.upload','system',3,'Upload files','2025-11-21 14:37:34','2025-11-28 22:59:52'),
(409,'files.delete','system',3,'Delete files and folders','2025-11-21 14:37:34','2025-11-28 22:59:52'),
(410,'crm.documents','crm',6,'Access CRM Documents','2025-11-21 14:37:34','2025-12-02 13:56:09'),
(411,'customers.documents','crm',6,'Access customer documents','2025-11-21 14:37:34','2025-11-28 22:59:52'),
(412,'bank_import.edit','bank_import',5,'Edit Bank Import','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(413,'bank_import.import','bank_import',5,'Import Bank Import','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(414,'bank_import.delete','bank_import',5,'Delete Bank Import','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(415,'bank_import.manage_rules','bank_import',5,'Manage Rules Bank Import','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(416,'1099_contractors.view_payments','1099_contractors',5,'View Payments 1099 Contractors','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(417,'1099_contractors.generate_reports','1099_contractors',5,'Generate Reports 1099 Contractors','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(418,'1099_contractors.export','1099_contractors',5,'Export 1099 Contractors','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(419,'permissions.manage','permissions',4,'Manage Permissions','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(420,'admin.settings','admin',4,'Settings Admin','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(421,'procurement.approve','procurement',10,'Approve Procurement','2025-11-24 18:47:03','2025-11-28 22:59:52'),
(422,'admin.system_scripts','admin',4,'Execute System Scripts','2025-11-24 19:09:27','2025-11-28 22:59:52'),
(423,'sales.agreements.view','sales',11,'View agreements','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(424,'sales.agreements.create','sales',11,'Create agreements','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(425,'sales.agreements.edit','sales',11,'Edit agreements','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(426,'sales.agreements.delete','sales',11,'Delete agreements','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(427,'sales.agreements.send','sales',11,'Send agreements for signature','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(428,'admin.agreement_templates','admin',4,'Manage agreement templates','2025-11-25 23:30:52','2025-11-28 22:59:52'),
(429,'agreements.view','',11,'View Agreements','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(430,'ai-test.view','',3,'View AI Testing','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(431,'assumptions.view','',19,'View Daily Update','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(432,'companies.view','',6,'View Companies','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(433,'documentation.view','',4,'View Documentation','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(434,'product-forecast.view','',19,'View Product Configs','2025-11-26 12:07:17','2025-11-28 22:59:52'),
(435,'calendar.create','calendar',1,'Create Calendar','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(436,'calendar.edit','calendar',1,'Edit Calendar','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(437,'calendar.delete','calendar',1,'Delete Calendar','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(438,'reports.create','reports',15,'Create Reports','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(439,'reports.edit','reports',15,'Edit Reports','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(440,'reports.delete','reports',15,'Delete Reports','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(441,'dashboard.edit','dashboard',3,'Edit Dashboard','2025-11-28 13:23:58','2025-11-28 23:02:18'),
(442,'documents.create','documents',12,'Create Documents','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(443,'system.files.delete','system',4,'System Files Delete','2025-11-28 13:23:58','2025-11-28 23:03:01'),
(444,'messaging.create','messaging',3,'Create Messaging','2025-11-28 13:23:58','2025-11-28 23:02:18'),
(445,'messaging.edit','messaging',3,'Edit Messaging','2025-11-28 13:23:58','2025-11-28 23:02:18'),
(446,'messaging.delete','messaging',3,'Delete Messaging','2025-11-28 13:23:58','2025-11-28 23:02:18'),
(447,'admin.create','admin',4,'Create Admin','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(448,'profile.edit','profile',3,'Edit Profile','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(449,'system.edit','system',4,'Edit System','2025-11-28 13:23:58','2025-11-28 23:03:01'),
(450,'admin.edit','admin',4,'Edit Admin','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(451,'admin.delete','admin',4,'Delete Admin','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(452,'sales.approve','sales',11,'Approve Sales','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(453,'tickets.delete','tickets',3,'Delete Tickets','2025-11-28 13:23:58','2025-11-28 22:59:52'),
(454,'api.view','api',4,'View Api','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(455,'documentation.export','documentation',4,'Export Documentation','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(456,'email.view','email',3,'View Email','2025-11-28 14:31:09','2025-11-28 23:02:18'),
(457,'machine_data.view','machine_data',9,'View Machine Data','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(458,'nda.view','nda',6,'View Nda','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(460,'notifications.delete','notifications',3,'Delete Notifications','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(461,'notifications.view','notifications',3,'View Notifications','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(462,'pipedrive_import.view','pipedrive_import',4,'View Pipedrive Import','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(463,'pricing_rule.view','pricing_rule',11,'View Pricing Rule','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(464,'pro_forma.view','pro_forma',19,'View Pro Forma','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(465,'promotion.view','promotion',11,'View Promotion','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(466,'quote.view','quote',11,'View Quote','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(467,'return.view','return',11,'View Return','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(468,'security.approve','security',17,'Approve Security','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(469,'security.view','security',17,'View Security','2025-11-28 14:31:09','2025-11-28 22:59:52'),
(470,'employees.directory','',7,'View employee directory','2025-11-28 14:52:55','2025-11-28 22:59:52'),
(471,'account.view','accounting',5,'View Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(472,'account.create','accounting',5,'Create Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(473,'accounting.dashboard','accounting',5,'Dashboard Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(474,'accounting.ledger','accounting',5,'Ledger Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(475,'accounting.balanceSheet','accounting',5,'BalanceSheet Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(476,'accounting.incomeStatement','accounting',5,'IncomeStatement Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(477,'accounting.cashFlow','accounting',5,'CashFlow Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(478,'accounting.trialBalance','accounting',5,'TrialBalance Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(479,'accounting.aging','accounting',5,'Aging Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(480,'accounting.apAgingDetail','accounting',5,'ApAgingDetail Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(481,'accounting.arAgingDetail','accounting',5,'ArAgingDetail Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(482,'accounting.cashFlowStatement','accounting',5,'CashFlowStatement Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(483,'accounting.paymentTermsList','accounting',5,'PaymentTermsList Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(484,'accounting.reportPackage','accounting',5,'ReportPackage Accounting','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(485,'action_menu_editor.view','',4,'View Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(486,'action_menu_editor.viewPage','',4,'ViewPage Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(487,'action_menu_editor.create','',4,'Create Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(488,'action_menu_editor.edit','',4,'Edit Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(489,'action_menu_editor.delete','',4,'Delete Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(490,'action_menu_editor.reorder','',4,'Reorder Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(491,'action_menu_editor.duplicate','',4,'Duplicate Action Menu Editor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(492,'activity.create','crm',6,'Create Activity','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(493,'activity.edit','crm',6,'Edit Activity','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(494,'activity.delete','crm',6,'Delete Activity','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(495,'agreement.view','',11,'View Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(496,'agreement.create','',11,'Create Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(497,'agreement.edit','',11,'Edit Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(498,'agreement.delete','',11,'Delete Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(499,'agreement.print','',11,'Print Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(500,'agreement.export','',11,'Export Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(501,'agreement.sendForSignature','',11,'SendForSignature Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(502,'agreement.sendAgreementEmail','',11,'SendAgreementEmail Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(503,'agreement.convertToSalesOrder','',11,'ConvertToSalesOrder Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(504,'agreement.convertFromQuote','',11,'ConvertFromQuote Agreement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(505,'agreement_template.view','',11,'View Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(506,'agreement_template.create','',11,'Create Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(507,'agreement_template.edit','',11,'Edit Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(508,'agreement_template.delete','',11,'Delete Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(509,'agreement_template.setDefault','',11,'SetDefault Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(510,'agreement_template.duplicate','',11,'Duplicate Agreement Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(511,'analytics.dashboard','',15,'Dashboard Analytics','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(512,'analytics.productionReports','',15,'ProductionReports Analytics','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(513,'analytics.oeeReports','',15,'OeeReports Analytics','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(514,'announcement.view','',18,'View Announcement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(515,'announcement.create','',18,'Create Announcement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(516,'announcement.edit','',18,'Edit Announcement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(517,'announcement.delete','',18,'Delete Announcement','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(518,'api.usersList','',4,'UsersList Api','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(519,'api.allUsers','',4,'AllUsers Api','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(520,'application.view','hr',7,'View Application','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(521,'application.create','hr',7,'Create Application','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(522,'application.edit','hr',7,'Edit Application','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(523,'application.delete','hr',7,'Delete Application','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(524,'approvals.dashboard','',17,'Dashboard Approvals','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(525,'assessment.view','hr',7,'View Assessment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(526,'assessment.create','hr',7,'Create Assessment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(527,'assessment.edit','hr',7,'Edit Assessment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(528,'assessment.delete','hr',7,'Delete Assessment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(529,'assumptions.quickUpdate','',19,'QuickUpdate Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(530,'assumptions.syncActuals','',19,'SyncActuals Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(531,'assumptions.sets','',19,'Sets Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(532,'assumptions.createSet','',19,'CreateSet Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(533,'assumptions.edit','',19,'Edit Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(534,'assumptions.updateSetInfo','',19,'UpdateSetInfo Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(535,'assumptions.clone','',19,'Clone Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(536,'assumptions.variance','',19,'Variance Assumptions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(537,'audit_log.view','audit',5,'View Audit Log','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(538,'bom.view','manufacturing',9,'View Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(539,'bom.create','manufacturing',9,'Create Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(540,'bom.addComponent','manufacturing',9,'AddComponent Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(541,'bom.removeComponent','manufacturing',9,'RemoveComponent Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(542,'bom.lowStockReport','manufacturing',9,'LowStockReport Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(543,'bom.materialRequirements','manufacturing',9,'MaterialRequirements Bom','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(544,'backup.triggerDatabaseBackup','admin',4,'TriggerDatabaseBackup Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(545,'backup.triggerGitPush','admin',4,'TriggerGitPush Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(546,'backup.triggerFullBackup','admin',4,'TriggerFullBackup Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(547,'backup.getHistory','admin',4,'GetHistory Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(548,'backup.getStats','admin',4,'GetStats Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(549,'backup.showDetails','admin',4,'ShowDetails Backup','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(550,'bank_account.view','accounting',5,'View Bank Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(551,'bank_account.create','accounting',5,'Create Bank Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(552,'bank_account.edit','accounting',5,'Edit Bank Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(553,'bank_account.delete','accounting',5,'Delete Bank Account','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(554,'bank_import.processUpload','accounting',5,'ProcessUpload Bank Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(555,'bank_import.review','accounting',5,'Review Bank Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(556,'bank_import.createRule','accounting',5,'CreateRule Bank Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(557,'bank_import.deleteRule','accounting',5,'DeleteRule Bank Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(558,'bank_reconciliation.view','accounting',5,'View Bank Reconciliation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(559,'bank_reconciliation.start','accounting',5,'Start Bank Reconciliation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(560,'bank_reconciliation.create','accounting',5,'Create Bank Reconciliation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(561,'bank_reconciliation.toggleTransaction','accounting',5,'ToggleTransaction Bank Reconciliation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(562,'bank_reconciliation.complete','accounting',5,'Complete Bank Reconciliation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(563,'battery_quote.view','crm',11,'View Battery Quote','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(564,'battery_quote.create','crm',11,'Create Battery Quote','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(565,'battery_quote.edit','crm',11,'Edit Battery Quote','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(566,'battery_quote.delete','crm',11,'Delete Battery Quote','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(567,'battery_quote.convertToSalesOrder','crm',11,'ConvertToSalesOrder Battery Quote','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(568,'budget.view','accounting',5,'View Budget','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(569,'budget.create','accounting',5,'Create Budget','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(570,'budget.edit','accounting',5,'Edit Budget','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(571,'budget.delete','accounting',5,'Delete Budget','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(572,'business_line.view','',4,'View Business Line','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(573,'business_line.create','',4,'Create Business Line','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(574,'business_line.edit','',4,'Edit Business Line','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(575,'business_line.delete','',4,'Delete Business Line','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(576,'crm.dashboard','',6,'Dashboard Crm','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(577,'crm.activities','',6,'Activities Crm','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(578,'crm.contacts','',6,'Access Contacts','2025-11-28 22:01:12','2025-12-02 13:56:09'),
(579,'crm.opportunities','',6,'Access Opportunities','2025-11-28 22:01:12','2025-12-02 13:56:09'),
(580,'crm.support','',6,'Access Customer Support','2025-11-28 22:01:12','2025-12-02 13:56:09'),
(581,'crm.reports','',6,'Access CRM Reports','2025-11-28 22:01:12','2025-12-02 13:56:09'),
(582,'calendar.getEvents','crm',1,'GetEvents Calendar','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(583,'camera_audit.viewAuditLog','',3,'ViewAuditLog Camera Audit','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(584,'camera_audit.statistics','',3,'Statistics Camera Audit','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(585,'capacity.availability','',9,'Availability Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(586,'capacity.feasibility','',9,'Feasibility Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(587,'capacity.machineStatus','',9,'MachineStatus Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(588,'capacity.getEquipmentLinesByBusinessLine','',9,'GetEquipmentLinesByBusinessLine Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(589,'capacity.analytics','',9,'Analytics Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(590,'capacity.getMachineStatusData','',9,'GetMachineStatusData Capacity','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(591,'category.view','inventory',8,'View Category','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(592,'category.create','inventory',8,'Create Category','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(593,'category.edit','inventory',8,'Edit Category','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(594,'category.delete','inventory',8,'Delete Category','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(595,'client.view','crm',6,'View Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(596,'client.create','crm',6,'Create Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(597,'client.edit','crm',6,'Edit Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(598,'client.delete','crm',6,'Delete Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(599,'client.addContact','crm',6,'AddContact Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(600,'client.updateContact','crm',6,'UpdateContact Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(601,'client.deleteContact','crm',6,'DeleteContact Client','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(602,'company.view','',6,'View Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(603,'company.create','',6,'Create Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(604,'company.edit','',6,'Edit Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(605,'company.delete','',6,'Delete Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(606,'company.quickAdd','',6,'QuickAdd Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(607,'company.uploadDocument','',6,'UploadDocument Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(608,'company.downloadDocument','',6,'DownloadDocument Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(609,'company.deleteDocument','',6,'DeleteDocument Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(610,'company.export','',6,'Export Company','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(611,'contact.create','crm',6,'Create Contact','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(612,'contact.edit','crm',6,'Edit Contact','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(613,'contact.delete','crm',6,'Delete Contact','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(614,'contract.view','hr',7,'View Contract','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(615,'contract.create','hr',7,'Create Contract','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(616,'contract.edit','hr',7,'Edit Contract','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(617,'contract.delete','hr',7,'Delete Contract','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(618,'costing.production','',5,'Production Costing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(619,'costing.productionDetail','',5,'ProductionDetail Costing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(620,'costing.jobs','',5,'Jobs Costing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(621,'costing.jobDetail','',5,'JobDetail Costing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(622,'credit_note.view','',5,'View Credit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(623,'credit_note.create','',5,'Create Credit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(624,'credit_note.delete','',5,'Delete Credit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(625,'currency.listCurrencies','',5,'ListCurrencies Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(626,'currency.editCurrency','',5,'EditCurrency Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(627,'currency.deleteCurrency','',5,'DeleteCurrency Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(628,'currency.toggleActive','',5,'ToggleActive Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(629,'currency.rates','',5,'Rates Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(630,'currency.saveRate','',5,'SaveRate Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(631,'currency.deleteRate','',5,'DeleteRate Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(632,'currency.revaluation','',5,'Revaluation Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(633,'currency.postRevaluation','',5,'PostRevaluation Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(634,'currency.getRate','',5,'GetRate Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(635,'currency.convertAmount','',5,'ConvertAmount Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(636,'currency.importLiveRates','',5,'ImportLiveRates Currency','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(637,'custom_reports.view','',15,'View Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(638,'custom_reports.builder','',15,'Builder Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(639,'custom_reports.my','',15,'My Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(640,'custom_reports.shared','',15,'Shared Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(641,'custom_reports.scheduled','',15,'Scheduled Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(642,'custom_reports.create','',15,'Create Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(643,'custom_reports.run','',15,'Run Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(644,'custom_reports.edit','',15,'Edit Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(645,'custom_reports.delete','',15,'Delete Custom Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(646,'customer_payment.view','crm',11,'View Customer Payment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(647,'customer_payment.create','crm',11,'Create Customer Payment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(648,'customer_payment.customerInvoices','crm',11,'CustomerInvoices Customer Payment','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(649,'dashboard.customize','',3,'Customize Dashboard','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(650,'dashboard.removeWidget','',3,'RemoveWidget Dashboard','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(651,'dashboard.updateLayout','',3,'UpdateLayout Dashboard','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(652,'data_access.edit','',4,'Edit Data Access','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(653,'data_access.assign','',4,'Assign Data Access','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(654,'data_access.delete','',4,'Delete Data Access','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(655,'data_access.updateRules','',4,'UpdateRules Data Access','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(656,'debit_note.view','',5,'View Debit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(657,'debit_note.create','',5,'Create Debit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(658,'debit_note.edit','',5,'Edit Debit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(659,'debit_note.delete','',5,'Delete Debit Note','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(660,'delivery_note.view','sales',11,'View Delivery Note','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(661,'delivery_note.create','sales',11,'Create Delivery Note','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(662,'depreciation.view','accounting',5,'View Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(663,'depreciation.schedule','accounting',5,'Schedule Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(664,'depreciation.generate','accounting',5,'Generate Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(665,'depreciation.post','accounting',5,'Post Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(666,'depreciation.reverse','accounting',5,'Reverse Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(667,'depreciation.delete','accounting',5,'Delete Depreciation','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(668,'document.create','documents',12,'Create Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(669,'document.view','documents',12,'View Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(670,'document.edit','documents',12,'Edit Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(671,'document.delete','documents',12,'Delete Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(672,'document.viewFile','documents',12,'ViewFile Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(673,'document.download','documents',12,'Download Document','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(674,'documentation.search','documents',4,'Search Documentation','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(675,'documentation.download','documents',4,'Download Documentation','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(676,'documentation.refreshCoverage','documents',4,'RefreshCoverage Documentation','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(677,'documents.all','documents',12,'All Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(678,'documents.my','documents',12,'My Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(679,'documents.shared','documents',12,'Shared Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(680,'documents.viewDocument','documents',12,'ViewDocument Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(681,'documents.download','documents',12,'Download Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(682,'documents.folders','documents',12,'Folders Documents','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(683,'email.folder','',3,'Folder Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(684,'email.viewEmail','',3,'ViewEmail Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(685,'email.viewThread','',3,'ViewThread Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(686,'email.compose','',3,'Compose Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(687,'email.send','',3,'Send Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(688,'email.saveDraft','',3,'SaveDraft Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(689,'email.search','',3,'Search Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(690,'email.markRead','',3,'MarkRead Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(691,'email.toggleStar','',3,'ToggleStar Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(692,'email.bulkAction','',3,'BulkAction Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(693,'email.delete','',3,'Delete Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(694,'email.emptyTrash','',3,'EmptyTrash Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(695,'email.downloadAttachment','',3,'DownloadAttachment Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(696,'email.settings','',3,'Settings Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(697,'email.updateSettings','',3,'UpdateSettings Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(698,'email.generateSignature','',3,'GenerateSignature Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(699,'email.testImapConnection','',3,'TestImapConnection Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(700,'email.searchRecipients','',3,'SearchRecipients Email','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(701,'email_template.view','',3,'View Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(702,'email_template.create','',3,'Create Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(703,'email_template.edit','',3,'Edit Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(704,'email_template.delete','',3,'Delete Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(705,'email_template.duplicate','',3,'Duplicate Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(706,'email_template.preview','',3,'Preview Email Template','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(707,'email_webhook.receive','',3,'Receive Email Webhook','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(708,'email_webhook.test','',3,'Test Email Webhook','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(709,'employee.view','hr',7,'View Employee','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(710,'employee.create','hr',7,'Create Employee','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(711,'employee.edit','hr',7,'Edit Employee','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(712,'employee.delete','hr',7,'Delete Employee','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(713,'employee.directory','hr',7,'Directory Employee','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(714,'equipment.delete','manufacturing',9,'Delete Equipment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(715,'equipment_line.view','manufacturing',9,'View Equipment Line','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(716,'equipment_line.create','manufacturing',9,'Create Equipment Line','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(717,'equipment_line.edit','manufacturing',9,'Edit Equipment Line','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(718,'equipment_line.delete','manufacturing',9,'Delete Equipment Line','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(719,'equipment_type.view','manufacturing',9,'View Equipment Type','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(720,'equipment_type.create','manufacturing',9,'Create Equipment Type','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(721,'equipment_type.edit','manufacturing',9,'Edit Equipment Type','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(722,'equipment_type.delete','manufacturing',9,'Delete Equipment Type','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(723,'expense.view','accounting',5,'View Expense','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(724,'expense.create','accounting',5,'Create Expense','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(725,'expense.approve','accounting',5,'Approve Expense','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(726,'expense.reject','accounting',5,'Reject Expense','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(727,'expense.delete','accounting',5,'Delete Expense','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(728,'file_manager.view','files',3,'View File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(729,'file_manager.browse','files',3,'Browse File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(730,'file_manager.tree','files',3,'Tree File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(731,'file_manager.download','files',3,'Download File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(732,'file_manager.viewFile','files',3,'ViewFile File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(733,'file_manager.deleteFile','files',3,'DeleteFile File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(734,'file_manager.deleteFolder','files',3,'DeleteFolder File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(735,'file_manager.search','files',3,'Search File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(736,'file_manager.getShares','files',3,'GetShares File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(737,'file_manager.removeShare','files',3,'RemoveShare File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(738,'file_manager.searchUsers','files',3,'SearchUsers File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(739,'file_manager.shared','files',3,'Shared File Manager','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(740,'financial_planner.view','',19,'View Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(741,'financial_planner.location','',19,'Location Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(742,'financial_planner.createForecast','',19,'CreateForecast Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(743,'financial_planner.compare','',19,'Compare Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(744,'financial_planner.editForecast','',19,'EditForecast Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(745,'financial_planner.updateForecast','',19,'UpdateForecast Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(746,'financial_planner.getHistoricalData','',19,'GetHistoricalData Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(747,'financial_planner.regeneratePeriods','',19,'RegeneratePeriods Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(748,'financial_planner.exportExcel','',19,'ExportExcel Financial Planner','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(749,'financial_pro_forma.view','',19,'View Financial Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(750,'financial_pro_forma.assumptions','',19,'Assumptions Financial Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(751,'financial_pro_forma.exportExcel','',19,'ExportExcel Financial Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(752,'fixed_asset.view','accounting',5,'View Fixed Asset','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(753,'fixed_asset.create','accounting',5,'Create Fixed Asset','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(754,'fixed_asset.edit','accounting',5,'Edit Fixed Asset','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(755,'fixed_asset.delete','accounting',5,'Delete Fixed Asset','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(756,'forecaster.storeForecast','',19,'StoreForecast Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(757,'forecaster.showForecast','',19,'ShowForecast Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(758,'forecaster.editForecast','',19,'EditForecast Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(759,'forecaster.updateForecast','',19,'UpdateForecast Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(760,'forecaster.deleteForecast','',19,'DeleteForecast Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(761,'forecaster.storeScenario','',19,'StoreScenario Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(762,'forecaster.showScenario','',19,'ShowScenario Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(763,'forecaster.editScenario','',19,'EditScenario Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(764,'forecaster.updateScenario','',19,'UpdateScenario Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(765,'forecaster.deleteScenario','',19,'DeleteScenario Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(766,'forecaster.compare','',19,'Compare Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(767,'forecaster.storeFinancing','',19,'StoreFinancing Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(768,'forecaster.editFinancing','',19,'EditFinancing Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(769,'forecaster.updateFinancing','',19,'UpdateFinancing Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(770,'forecaster.deleteFinancing','',19,'DeleteFinancing Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(771,'forecaster.storeInvestment','',19,'StoreInvestment Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(772,'forecaster.editInvestment','',19,'EditInvestment Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(773,'forecaster.updateInvestment','',19,'UpdateInvestment Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(774,'forecaster.deleteInvestment','',19,'DeleteInvestment Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(775,'forecaster.editPeriods','',19,'EditPeriods Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(776,'forecaster.updatePeriods','',19,'UpdatePeriods Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(777,'forecaster.showProFormaImport','',19,'ShowProFormaImport Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(778,'forecaster.executeProFormaImport','',19,'ExecuteProFormaImport Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(779,'forecaster.calculateMetrics','',19,'CalculateMetrics Forecaster','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(780,'form1099.summary','',5,'Summary Form1099','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(781,'form1099.contractorDetail','',5,'ContractorDetail Form1099','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(782,'form1099.generate','',5,'Generate Form1099','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(783,'form1099.exportCSV','',5,'ExportCSV Form1099','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(784,'goods_receipt.view','purchases',10,'View Goods Receipt','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(785,'goods_receipt.create','purchases',10,'Create Goods Receipt','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(786,'goods_receipt.getPOItemsAjax','purchases',10,'GetPOItemsAjax Goods Receipt','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(787,'goods_receipt.delete','purchases',10,'Delete Goods Receipt','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(788,'hr.dashboard','',7,'Dashboard Hr','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(789,'help_desk.dashboard','helpdesk',13,'Dashboard Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(790,'help_desk.tickets','helpdesk',13,'Tickets Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(791,'help_desk.myTickets','helpdesk',13,'MyTickets Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(792,'help_desk.create','helpdesk',13,'Create Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(793,'help_desk.view','helpdesk',13,'View Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(794,'help_desk.addComment','helpdesk',13,'AddComment Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(795,'help_desk.updateStatus','helpdesk',13,'UpdateStatus Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(796,'help_desk.knowledgeBase','helpdesk',13,'KnowledgeBase Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(797,'help_desk.sla','helpdesk',13,'Sla Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(798,'help_desk.reports','helpdesk',13,'Reports Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(799,'help_desk.chat','helpdesk',13,'Chat Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(800,'help_desk.chatGetSessions','helpdesk',13,'ChatGetSessions Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(801,'help_desk.chatGetMessages','helpdesk',13,'ChatGetMessages Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(802,'help_desk.chatSendMessage','helpdesk',13,'ChatSendMessage Help Desk','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(803,'internal_note_api.create','',4,'Create Internal Note Api','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(804,'internal_note_api.togglePin','',4,'TogglePin Internal Note Api','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(805,'internal_note_api.delete','',4,'Delete Internal Note Api','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(806,'interview.view','hr',7,'View Interview','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(807,'interview.create','hr',7,'Create Interview','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(808,'interview.edit','hr',7,'Edit Interview','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(809,'interview.delete','hr',7,'Delete Interview','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(810,'inventory.dashboard','',8,'Dashboard Inventory','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(811,'inventory.stockLevels','',8,'StockLevels Inventory','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(812,'inventory.productStock','',8,'ProductStock Inventory','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(813,'invoice.view','accounting',5,'View Invoice','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(814,'invoice.create','accounting',5,'Create Invoice','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(815,'invoice.edit','accounting',5,'Edit Invoice','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(816,'invoice.print','accounting',5,'Print Invoice','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(817,'invoice.delete','accounting',5,'Delete Invoice','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(818,'issue.view','',3,'View Issue','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(819,'issue.create','',3,'Create Issue','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(820,'issue.edit','',3,'Edit Issue','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(821,'issue.delete','',3,'Delete Issue','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(822,'job_position.view','hr',7,'View Job Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(823,'job_position.create','hr',7,'Create Job Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(824,'job_position.edit','hr',7,'Edit Job Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(825,'job_position.delete','hr',7,'Delete Job Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(826,'journal_entry.view','accounting',5,'View Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(827,'journal_entry.create','accounting',5,'Create Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(828,'journal_entry.showImport','accounting',5,'ShowImport Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(829,'journal_entry.processImport','accounting',5,'ProcessImport Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(830,'journal_entry.processBankRegisterImport','accounting',5,'ProcessBankRegisterImport Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(831,'journal_entry.bulkPost','accounting',5,'BulkPost Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(832,'journal_entry.bulkVoid','accounting',5,'BulkVoid Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(833,'journal_entry.bulkDelete','accounting',5,'BulkDelete Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(834,'journal_entry.delete','accounting',5,'Delete Journal Entry','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(835,'location.view','',8,'View Location','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(836,'location.create','',8,'Create Location','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(837,'location.edit','',8,'Edit Location','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(838,'location.delete','',8,'Delete Location','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(839,'lot_serial.view','inventory',8,'View Lot Serial','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(840,'lot_serial.traceability','inventory',8,'Traceability Lot Serial','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(841,'lot_serial.expiration','inventory',8,'Expiration Lot Serial','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(842,'mfa.verifyForm','',17,'VerifyForm Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(843,'mfa.verify','',17,'Verify Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(844,'mfa.resendOTP','',17,'ResendOTP Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(845,'mfa.setupForm','',17,'SetupForm Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(846,'mfa.setup','',17,'Setup Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(847,'mfa.showBackupCodes','',17,'ShowBackupCodes Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(848,'mfa.regenerateBackupCodes','',17,'RegenerateBackupCodes Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(849,'mfa.disable','',17,'Disable Mfa','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(850,'mrp.materialDetail','manufacturing',9,'MaterialDetail Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(851,'mrp.safetyStock','manufacturing',9,'SafetyStock Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(852,'mrp.updateSafetyStock','manufacturing',9,'UpdateSafetyStock Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(853,'mrp.requisitions','manufacturing',9,'Requisitions Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(854,'mrp.approveRequisition','manufacturing',9,'ApproveRequisition Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(855,'mrp.shortageReport','manufacturing',9,'ShortageReport Mrp','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(856,'machine_data.getStatus','',9,'GetStatus Machine Data','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(857,'machine_data.health','',9,'Health Machine Data','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(858,'maintenance.schedules','manufacturing',9,'Schedules Maintenance','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(859,'maintenance.workOrders','manufacturing',9,'WorkOrders Maintenance','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(860,'maintenance.downtime','manufacturing',9,'Downtime Maintenance','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(861,'manufacturing.dashboard','',9,'Dashboard Manufacturing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(862,'menu.view','',4,'View Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(863,'menu.create','',4,'Create Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(864,'menu.edit','',4,'Edit Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(865,'menu.delete','',4,'Delete Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(866,'menu.roleAccess','',4,'RoleAccess Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(867,'menu.updateRoleAccess','',4,'UpdateRoleAccess Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(868,'menu.updateOrder','',4,'UpdateOrder Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(869,'menu.quickUpdate','',4,'QuickUpdate Menu','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(870,'messaging.channel','messaging',3,'Channel Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(871,'messaging.sendMessage','messaging',3,'SendMessage Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(872,'messaging.getChannelMembers','messaging',3,'GetChannelMembers Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(873,'messaging.getNewMessages','messaging',3,'GetNewMessages Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(874,'messaging.updateStatus','messaging',3,'UpdateStatus Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(875,'messaging.directMessage','messaging',3,'DirectMessage Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(876,'messaging.getThread','messaging',3,'GetThread Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(877,'messaging.search','messaging',3,'Search Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(878,'messaging.getUnreadCount','messaging',3,'GetUnreadCount Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(879,'messaging.getOnlineUsers','messaging',3,'GetOnlineUsers Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(880,'messaging.removeMember','messaging',3,'RemoveMember Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(881,'messaging.deleteChannel','messaging',3,'DeleteChannel Messaging','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(882,'nda.create','crm',6,'Create Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(883,'nda.generateFromTemplate','crm',6,'GenerateFromTemplate Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(884,'nda.edit','crm',6,'Edit Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(885,'nda.delete','crm',6,'Delete Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(886,'nda.sendForSignature','crm',6,'SendForSignature Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(887,'nda.sendNDAEmail','crm',6,'SendNDAEmail Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(888,'nda.publicSign','crm',6,'PublicSign Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(889,'nda.signNDA','crm',6,'SignNDA Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(890,'nda.declineNDA','crm',6,'DeclineNDA Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(891,'nda.checkStatus','crm',6,'CheckStatus Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(892,'nda.preview','crm',6,'Preview Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(893,'nda.counterSign','crm',6,'CounterSign Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(894,'nda.submitCounterSignature','crm',6,'SubmitCounterSignature Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(895,'nda.emailNDA','crm',6,'EmailNDA Nda','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(896,'ndatemplate.view','crm',6,'View Ndatemplate','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(897,'ndatemplate.edit','crm',6,'Edit Ndatemplate','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(898,'network_monitor.status','',3,'Status Network Monitor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(899,'network_monitor.logs','',3,'Logs Network Monitor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(900,'network_monitor.statistics','',3,'Statistics Network Monitor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(901,'network_monitor.feed','',3,'Feed Network Monitor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(902,'network_monitor.logDetail','',3,'LogDetail Network Monitor','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(923,'notification.getUnread','',3,'GetUnread Notification','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(924,'notification.view','',3,'View Notification','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(925,'notification.markAsRead','',3,'MarkAsRead Notification','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(926,'notification.markAllAsRead','',3,'MarkAllAsRead Notification','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(927,'notification.delete','',3,'Delete Notification','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(928,'offer.view','hr',7,'View Offer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(929,'offer.create','hr',7,'Create Offer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(930,'offer.edit','hr',7,'Edit Offer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(931,'offer.delete','hr',7,'Delete Offer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(932,'offer.printLetter','hr',7,'PrintLetter Offer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(933,'opportunity.pipeline','crm',6,'Pipeline Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(934,'opportunity.create','crm',6,'Create Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(935,'opportunity.view','crm',6,'View Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(936,'opportunity.edit','crm',6,'Edit Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(937,'opportunity.delete','crm',6,'Delete Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(938,'opportunity.updateTaskStatus','crm',6,'UpdateTaskStatus Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(939,'opportunity.updateStage','crm',6,'UpdateStage Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(940,'opportunity.sendEmail','crm',6,'SendEmail Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(941,'opportunity.downloadDocument','crm',6,'DownloadDocument Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(942,'opportunity.deleteDocument','crm',6,'DeleteDocument Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(943,'opportunity.deleteCompetitor','crm',6,'DeleteCompetitor Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(944,'opportunity.saveCloseReason','crm',6,'SaveCloseReason Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(945,'opportunity.clone','crm',6,'Clone Opportunity','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(946,'payment.view','',5,'View Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(947,'payment.create','',5,'Create Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(948,'payment.customerInvoices','',5,'CustomerInvoices Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(949,'payment.delete','',5,'Delete Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(950,'payroll.dashboard','hr',7,'Dashboard Payroll','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(951,'period_closing.close','',5,'Close Period Closing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(952,'period_closing.reopen','',5,'Reopen Period Closing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(953,'period_closing.checkPrerequisites','',5,'CheckPrerequisites Period Closing','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(954,'permission_group.view','admin',4,'View Permission Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(955,'permission_group.create','admin',4,'Create Permission Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(956,'permission_group.edit','admin',4,'Edit Permission Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(957,'permission_group.delete','admin',4,'Delete Permission Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(958,'pipedrive_import.importOrganizations','',4,'ImportOrganizations Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(959,'pipedrive_import.importDeals','',4,'ImportDeals Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(960,'pipedrive_import.importLeads','',4,'ImportLeads Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(961,'pipedrive_import.importNotes','',4,'ImportNotes Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(962,'pipedrive_import.importFiles','',4,'ImportFiles Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(963,'pipedrive_import.importAll','',4,'ImportAll Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(964,'pipedrive_import.viewLog','',4,'ViewLog Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(965,'pipedrive_import.getStats','',4,'GetStats Pipedrive Import','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(966,'position.view','hr',7,'View Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(967,'position.create','hr',7,'Create Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(968,'position.edit','hr',7,'Edit Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(969,'position.delete','hr',7,'Delete Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(970,'position.toggleActive','hr',7,'ToggleActive Position','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(971,'pricing_rule.create','sales',11,'Create Pricing Rule','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(972,'pricing_rule.edit','sales',11,'Edit Pricing Rule','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(973,'pricing_rule.delete','sales',11,'Delete Pricing Rule','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(974,'pricing_rule.toggle','sales',11,'Toggle Pricing Rule','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(975,'pricing_rule.calculatePrice','sales',11,'CalculatePrice Pricing Rule','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(976,'pro_forma.location','',19,'Location Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(977,'pro_forma.compare','',19,'Compare Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(978,'pro_forma.export','',19,'Export Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(979,'pro_forma.exportExcel','',19,'ExportExcel Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(980,'pro_forma.calculate','',19,'Calculate Pro Forma','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(981,'product.view','inventory',8,'View Product','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(982,'product.create','inventory',8,'Create Product','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(983,'product.edit','inventory',8,'Edit Product','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(984,'product.delete','inventory',8,'Delete Product','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(985,'product_forecast.gettingStarted','inventory',19,'GettingStarted Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(986,'product_forecast.autoConfig','inventory',19,'AutoConfig Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(987,'product_forecast.updateConfig','inventory',19,'UpdateConfig Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(988,'product_forecast.generate','inventory',19,'Generate Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(989,'product_forecast.proforma','inventory',19,'Proforma Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(990,'product_forecast.sensitivity','inventory',19,'Sensitivity Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(991,'product_forecast.compare','inventory',19,'Compare Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(992,'product_forecast.exportExcel','inventory',19,'ExportExcel Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(993,'product_forecast.variance','inventory',19,'Variance Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(994,'product_forecast.commandCenter','inventory',19,'CommandCenter Product Forecast','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(995,'profile.view','',3,'View Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(996,'profile.updateSettings','',3,'UpdateSettings Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(997,'profile.uploadAvatar','',3,'UploadAvatar Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(998,'profile.changePassword','',3,'ChangePassword Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(999,'profile.createCustomMenu','',3,'CreateCustomMenu Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1000,'profile.deleteCustomMenu','',3,'DeleteCustomMenu Profile','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1001,'projects.dashboard','projects',14,'Dashboard Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1002,'projects.myTasks','projects',14,'MyTasks Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1003,'projects.listView','projects',14,'ListView Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1004,'projects.exportTasks','projects',14,'ExportTasks Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1005,'projects.createTask','projects',14,'CreateTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1006,'projects.updateTask','projects',14,'UpdateTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1007,'projects.moveTask','projects',14,'MoveTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1008,'projects.deleteTask','projects',14,'DeleteTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1009,'projects.getTask','projects',14,'GetTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1010,'projects.addComment','projects',14,'AddComment Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1011,'projects.assignUser','projects',14,'AssignUser Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1012,'projects.unassignUser','projects',14,'UnassignUser Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1013,'projects.addChecklistItem','projects',14,'AddChecklistItem Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1014,'projects.toggleChecklistItem','projects',14,'ToggleChecklistItem Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1015,'projects.addTeamMember','projects',14,'AddTeamMember Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1016,'projects.updateTeamMemberRole','projects',14,'UpdateTeamMemberRole Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1017,'projects.removeTeamMember','projects',14,'RemoveTeamMember Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1018,'projects.addTeamGroup','projects',14,'AddTeamGroup Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1019,'projects.removeTeamGroup','projects',14,'RemoveTeamGroup Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1020,'projects.assignGroupToTask','projects',14,'AssignGroupToTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1021,'projects.unassignGroupFromTask','projects',14,'UnassignGroupFromTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1022,'projects.financials','projects',14,'Financials Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1023,'projects.exportFinancials','projects',14,'ExportFinancials Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1024,'projects.createTransaction','projects',14,'CreateTransaction Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1025,'projects.storeTransaction','projects',14,'StoreTransaction Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1026,'projects.editTransaction','projects',14,'EditTransaction Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1027,'projects.updateTransaction','projects',14,'UpdateTransaction Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1028,'projects.linkTransactionToTask','projects',14,'LinkTransactionToTask Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1029,'projects.deleteTransaction','projects',14,'DeleteTransaction Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1030,'projects.migrateTransactions','projects',14,'MigrateTransactions Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1031,'projects.processMigration','projects',14,'ProcessMigration Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1032,'projects.gantt','projects',14,'Gantt Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1033,'projects.calculateCriticalPath','projects',14,'CalculateCriticalPath Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1034,'projects.updateTaskDates','projects',14,'UpdateTaskDates Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1035,'projects.addTaskDependency','projects',14,'AddTaskDependency Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1036,'projects.removeTaskDependency','projects',14,'RemoveTaskDependency Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1037,'projects.resources','projects',14,'Resources Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1038,'projects.resourceDayDetails','projects',14,'ResourceDayDetails Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1039,'projects.autoAllocateResources','projects',14,'AutoAllocateResources Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1040,'projects.getTaskComments','projects',14,'GetTaskComments Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1041,'projects.addTaskComment','projects',14,'AddTaskComment Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1042,'projects.exportGanttPDF','projects',14,'ExportGanttPDF Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1043,'projects.exportGanttExcel','projects',14,'ExportGanttExcel Projects','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1044,'promotion.create','sales',11,'Create Promotion','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1045,'promotion.edit','sales',11,'Edit Promotion','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1046,'promotion.delete','sales',11,'Delete Promotion','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1047,'promotion.validateCode','sales',11,'ValidateCode Promotion','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1048,'promotion.applyPromotion','sales',11,'ApplyPromotion Promotion','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1049,'purchase_bill.view','',5,'View Purchase Bill','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1050,'purchase_bill.create','',5,'Create Purchase Bill','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1051,'purchase_bill.edit','',5,'Edit Purchase Bill','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1052,'purchase_bill.delete','',5,'Delete Purchase Bill','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1053,'purchase_order.view','purchases',10,'View Purchase Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1054,'purchase_order.create','purchases',10,'Create Purchase Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1055,'purchase_order.edit','purchases',10,'Edit Purchase Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1056,'purchase_order.delete','purchases',10,'Delete Purchase Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1057,'purchase_payment.view','',5,'View Purchase Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1058,'purchase_payment.create','',5,'Create Purchase Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1059,'purchase_payment.delete','',5,'Delete Purchase Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1060,'purchase_requisition.view','',10,'View Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1061,'purchase_requisition.create','',10,'Create Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1062,'purchase_requisition.edit','',10,'Edit Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1063,'purchase_requisition.delete','',10,'Delete Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1064,'purchase_requisition.approve','',10,'Approve Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1065,'purchase_requisition.reject','',10,'Reject Purchase Requisition','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1066,'purchase_return.view','sales',10,'View Purchase Return','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1067,'purchase_return.create','sales',10,'Create Purchase Return','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1068,'purchase_return.edit','sales',10,'Edit Purchase Return','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1069,'purchase_return.delete','sales',10,'Delete Purchase Return','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1070,'purchases.dashboard','',10,'Dashboard Purchases','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1071,'quality.inspections','manufacturing',9,'Inspections Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1072,'quality.storeInspection','manufacturing',9,'StoreInspection Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1073,'quality.inspection','manufacturing',9,'Inspection Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1074,'quality.recordInspectionResult','manufacturing',9,'RecordInspectionResult Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1075,'quality.ncr','manufacturing',9,'Ncr Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1076,'quality.storeNCR','manufacturing',9,'StoreNCR Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1077,'quality.ncrDetail','manufacturing',9,'NcrDetail Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1078,'quality.updateNCR','manufacturing',9,'UpdateNCR Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1079,'quality.metrics','manufacturing',9,'Metrics Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1080,'quality.templates','manufacturing',9,'Templates Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1081,'quality.storeTemplate','manufacturing',9,'StoreTemplate Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1082,'quality.generateCoA','manufacturing',9,'GenerateCoA Quality','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1083,'quick_books.view','',4,'View Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1084,'quick_books.connect','',4,'Connect Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1085,'quick_books.callback','',4,'Callback Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1086,'quick_books.disconnect','',4,'Disconnect Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1087,'quick_books.accountMapping','',4,'AccountMapping Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1088,'quick_books.saveMapping','',4,'SaveMapping Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1089,'quick_books.deleteMapping','',4,'DeleteMapping Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1090,'quick_books.syncQueue','',4,'SyncQueue Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1091,'quick_books.processQueue','',4,'ProcessQueue Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1092,'quick_books.retryFailed','',4,'RetryFailed Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1093,'quick_books.syncAllEmployees','',4,'SyncAllEmployees Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1094,'quick_books.syncLogs','',4,'SyncLogs Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1095,'quick_books.settings','',4,'Settings Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1096,'quick_books.saveSettings','',4,'SaveSettings Quick Books','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1097,'quote.create','crm',11,'Create Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1098,'quote.edit','crm',11,'Edit Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1099,'quote.delete','crm',11,'Delete Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1100,'quote.print','crm',11,'Print Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1101,'quote.convertToSalesOrder','crm',11,'ConvertToSalesOrder Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1102,'quote.export','crm',11,'Export Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1103,'quote.sendForSignature','crm',11,'SendForSignature Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1104,'quote.sendQuoteEmail','crm',11,'SendQuoteEmail Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1105,'quote.acceptQuote','crm',11,'AcceptQuote Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1106,'quote.declineQuote','crm',11,'DeclineQuote Quote','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1107,'quote_template.view','crm',11,'View Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1108,'quote_template.create','crm',11,'Create Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1109,'quote_template.edit','crm',11,'Edit Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1110,'quote_template.delete','crm',11,'Delete Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1111,'quote_template.setDefault','crm',11,'SetDefault Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1112,'quote_template.getTemplate','crm',11,'GetTemplate Quote Template','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1113,'rfq.view','purchases',10,'View Rfq','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1114,'rfq.create','purchases',10,'Create Rfq','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1115,'rfq.edit','purchases',10,'Edit Rfq','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1116,'rfq.delete','purchases',10,'Delete Rfq','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1117,'recruitment.view','hr',7,'View Recruitment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1118,'recurring_transaction.view','',5,'View Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1119,'recurring_transaction.create','',5,'Create Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1120,'recurring_transaction.edit','',5,'Edit Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1121,'recurring_transaction.delete','',5,'Delete Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1122,'recurring_transaction.toggleActive','',5,'ToggleActive Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1123,'recurring_transaction.execute','',5,'Execute Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1124,'recurring_transaction.getDue','',5,'GetDue Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1125,'recurring_transaction.executeDue','',5,'ExecuteDue Recurring Transaction','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1126,'reports.sales','',15,'Sales Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1127,'reports.inventory','',15,'Inventory Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1128,'reports.financial','',15,'Financial Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1129,'reports.hr','',15,'Hr Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1130,'reports.customers','',15,'Customers Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1131,'reports.purchases','',15,'Purchases Reports','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1132,'return.create','sales',11,'Create Return','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1133,'return.edit','sales',11,'Edit Return','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1134,'return.approve','sales',11,'Approve Return','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1135,'return.reject','sales',11,'Reject Return','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1136,'return.complete','sales',11,'Complete Return','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1137,'review.view','hr',7,'View Review','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1138,'review.create','hr',7,'Create Review','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1139,'review.edit','hr',7,'Edit Review','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1140,'review.delete','hr',7,'Delete Review','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1141,'role.view','admin',4,'View Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1142,'role.create','admin',4,'Create Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1143,'role.edit','admin',4,'Edit Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1144,'role.delete','admin',4,'Delete Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1145,'role.report','admin',4,'Report Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1146,'role.printRole','admin',4,'PrintRole Role','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1147,'sales.dashboard','',11,'Dashboard Sales','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1148,'sales_order.view','sales',11,'View Sales Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1149,'sales_order.create','sales',11,'Create Sales Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1150,'sales_order.edit','sales',11,'Edit Sales Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1151,'sales_order.print','sales',11,'Print Sales Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1152,'sales_order.delete','sales',11,'Delete Sales Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1153,'sales_report.view','',11,'View Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1154,'sales_report.getSummary','',11,'GetSummary Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1155,'sales_report.getTopProducts','',11,'GetTopProducts Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1156,'sales_report.getTopCustomers','',11,'GetTopCustomers Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1157,'sales_report.getByStatus','',11,'GetByStatus Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1158,'sales_report.getByChannel','',11,'GetByChannel Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1159,'sales_report.getInvoiceAnalytics','',11,'GetInvoiceAnalytics Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1160,'sales_report.getPaymentAnalytics','',11,'GetPaymentAnalytics Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1161,'sales_report.getCategoryPerformance','',11,'GetCategoryPerformance Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1162,'sales_report.getSalesGrowth','',11,'GetSalesGrowth Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1163,'sales_report.getQuoteConversion','',11,'GetQuoteConversion Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1164,'sales_report.exportReport','',11,'ExportReport Sales Report','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1165,'scheduling.view','',9,'View Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1166,'scheduling.deleteAssignment','',9,'DeleteAssignment Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1167,'scheduling.getSchedulingData','',9,'GetSchedulingData Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1168,'scheduling.getConflicts','',9,'GetConflicts Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1169,'scheduling.calendar','',9,'Calendar Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1170,'scheduling.getCalendarEvents','',9,'GetCalendarEvents Scheduling','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1171,'search.searchCustomers','',3,'SearchCustomers Search','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1172,'separation.view','hr',7,'View Separation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1173,'separation.create','hr',7,'Create Separation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1174,'separation.edit','hr',7,'Edit Separation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1175,'separation.delete','hr',7,'Delete Separation','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1176,'settings.updateCompany','admin',16,'UpdateCompany Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1177,'settings.updateDropdown','admin',16,'UpdateDropdown Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1178,'settings.addDropdownOption','admin',16,'AddDropdownOption Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1179,'settings.removeDropdownOption','admin',16,'RemoveDropdownOption Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1180,'settings.initializeDefaults','admin',16,'InitializeDefaults Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1181,'settings.updateGlobalFacilities','admin',16,'UpdateGlobalFacilities Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1182,'settings.updateGlobalPayroll','admin',16,'UpdateGlobalPayroll Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1183,'settings.updateGlobalBusinessParameters','admin',16,'UpdateGlobalBusinessParameters Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1184,'settings.termsConditionsCreate','admin',16,'TermsConditionsCreate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1185,'settings.termsConditionsStore','admin',16,'TermsConditionsStore Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1186,'settings.termsConditionsEdit','admin',16,'TermsConditionsEdit Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1187,'settings.termsConditionsUpdate','admin',16,'TermsConditionsUpdate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1188,'settings.termsConditionsDelete','admin',16,'TermsConditionsDelete Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1189,'settings.company','admin',16,'Company Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1190,'settings.email','admin',16,'Email Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1191,'settings.updateEmail','admin',16,'UpdateEmail Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1192,'settings.createSignatureTemplate','admin',16,'CreateSignatureTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1193,'settings.storeSignatureTemplate','admin',16,'StoreSignatureTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1194,'settings.editSignatureTemplate','admin',16,'EditSignatureTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1195,'settings.updateSignatureTemplate','admin',16,'UpdateSignatureTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1196,'settings.deleteSignatureTemplate','admin',16,'DeleteSignatureTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1197,'settings.setDefaultTemplate','admin',16,'SetDefaultTemplate Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1198,'settings.assignTemplateToRole','admin',16,'AssignTemplateToRole Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1199,'settings.assignTemplateToUser','admin',16,'AssignTemplateToUser Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1200,'settings.createAlias','admin',16,'CreateAlias Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1201,'settings.updateAlias','admin',16,'UpdateAlias Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1202,'settings.deleteAlias','admin',16,'DeleteAlias Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1203,'settings.addRecipient','admin',16,'AddRecipient Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1204,'settings.removeRecipient','admin',16,'RemoveRecipient Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1205,'settings.getAliasRecipients','admin',16,'GetAliasRecipients Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1206,'settings.businessParameters','admin',16,'BusinessParameters Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1207,'settings.editBusinessParameters','admin',16,'EditBusinessParameters Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1208,'settings.updateBusinessParameters','admin',16,'UpdateBusinessParameters Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1209,'settings.facilities','admin',16,'Facilities Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1210,'settings.editFacility','admin',16,'EditFacility Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1211,'settings.updateFacility','admin',16,'UpdateFacility Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1212,'settings.payroll','admin',16,'Payroll Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1213,'settings.editPayroll','admin',16,'EditPayroll Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1214,'settings.updatePayroll','admin',16,'UpdatePayroll Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1215,'settings.dropdownsSales','admin',16,'DropdownsSales Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1216,'settings.dropdownsOperations','admin',16,'DropdownsOperations Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1217,'settings.tax','admin',16,'Tax Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1218,'settings.updateTax','admin',16,'UpdateTax Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1219,'settings.fiscalYear','admin',16,'FiscalYear Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1220,'settings.updateFiscalYear','admin',16,'UpdateFiscalYear Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1221,'settings.costAllocation','admin',16,'CostAllocation Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1222,'settings.storeCostAllocation','admin',16,'StoreCostAllocation Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1223,'settings.updateCostAllocation','admin',16,'UpdateCostAllocation Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1224,'settings.deleteCostAllocation','admin',16,'DeleteCostAllocation Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1225,'settings.paymentTerms','admin',16,'PaymentTerms Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1226,'settings.storePaymentTerm','admin',16,'StorePaymentTerm Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1227,'settings.updatePaymentTerm','admin',16,'UpdatePaymentTerm Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1228,'settings.deletePaymentTerm','admin',16,'DeletePaymentTerm Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1229,'settings.setDefaultPaymentTerm','admin',16,'SetDefaultPaymentTerm Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1230,'settings.ppeParameters','admin',16,'PpeParameters Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1231,'settings.storePpeParameter','admin',16,'StorePpeParameter Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1232,'settings.updatePpeParameter','admin',16,'UpdatePpeParameter Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1233,'settings.deletePpeParameter','admin',16,'DeletePpeParameter Settings','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1234,'shipment.view','sales',11,'View Shipment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1235,'shipment.create','sales',11,'Create Shipment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1236,'shipment.updateStatus','sales',11,'UpdateStatus Shipment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1237,'shipment.delete','sales',11,'Delete Shipment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1238,'shop_floor.view','manufacturing',9,'View Shop Floor','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1239,'shop_floor.workOrder','manufacturing',9,'WorkOrder Shop Floor','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1240,'shop_floor.recordOutput','manufacturing',9,'RecordOutput Shop Floor','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1241,'shop_floor.recordMaterialConsumption','manufacturing',9,'RecordMaterialConsumption Shop Floor','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1242,'shop_floor.recordQualityCheck','manufacturing',9,'RecordQualityCheck Shop Floor','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1243,'stock_movement.view','inventory',8,'View Stock Movement','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1244,'stock_movement.create','inventory',8,'Create Stock Movement','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1245,'supplier.view','purchases',10,'View Supplier','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1246,'supplier.create','purchases',10,'Create Supplier','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1247,'supplier.edit','purchases',10,'Edit Supplier','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1248,'supplier.delete','purchases',10,'Delete Supplier','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1249,'supplier.quickAdd','purchases',10,'QuickAdd Supplier','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1250,'support.create','crm',6,'Create Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1251,'support.view','crm',6,'View Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1252,'support.edit','crm',6,'Edit Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1253,'support.delete','crm',6,'Delete Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1254,'support.downloadAttachment','crm',6,'DownloadAttachment Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1255,'support.deleteAttachment','crm',6,'DeleteAttachment Support','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1256,'system_scripts.view','',4,'View System Scripts','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1257,'system_scripts.execute','',4,'Execute System Scripts','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1258,'system_scripts.history','',4,'History System Scripts','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1259,'tax_filing.edit','accounting',5,'Edit Tax Filing','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1260,'tax_filing.file','accounting',5,'File Tax Filing','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1261,'tax_filing.markPaid','accounting',5,'MarkPaid Tax Filing','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1262,'tax_filing.delete','accounting',5,'Delete Tax Filing','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1263,'tax_jurisdiction.view','accounting',5,'View Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1264,'tax_jurisdiction.create','accounting',5,'Create Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1265,'tax_jurisdiction.edit','accounting',5,'Edit Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1266,'tax_jurisdiction.delete','accounting',5,'Delete Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1267,'tax_jurisdiction.deactivate','accounting',5,'Deactivate Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1268,'tax_jurisdiction.getCitiesByState','accounting',5,'GetCitiesByState Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1269,'tax_jurisdiction.calculateCustomerTax','accounting',5,'CalculateCustomerTax Tax Jurisdiction','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1270,'tax_payment.view','accounting',5,'View Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1271,'tax_payment.create','accounting',5,'Create Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1272,'tax_payment.edit','accounting',5,'Edit Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1273,'tax_payment.delete','accounting',5,'Delete Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1274,'tax_payment.file','accounting',5,'File Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1275,'tax_payment.markPaid','accounting',5,'MarkPaid Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1276,'tax_payment.liabilityReport','accounting',5,'LiabilityReport Tax Payment','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1277,'terms_conditions.view','',11,'View Terms Conditions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1278,'terms_conditions.create','',11,'Create Terms Conditions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1279,'terms_conditions.edit','',11,'Edit Terms Conditions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1280,'terms_conditions.delete','',11,'Delete Terms Conditions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1281,'terms_conditions.getByType','',11,'GetByType Terms Conditions','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1282,'training.delete','hr',7,'Delete Training','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1283,'transfer.view','inventory',8,'View Transfer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1284,'transfer.create','inventory',8,'Create Transfer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1285,'transfer.ship','inventory',8,'Ship Transfer','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1286,'user.view','admin',4,'View User','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1287,'user.create','admin',4,'Create User','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1288,'user.edit','admin',4,'Edit User','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1289,'user.delete','admin',4,'Delete User','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1290,'user_group.view','admin',4,'View User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1291,'user_group.create','admin',4,'Create User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1292,'user_group.edit','admin',4,'Edit User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1293,'user_group.delete','admin',4,'Delete User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1294,'user_group.removeMember','admin',4,'RemoveMember User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1295,'user_group.removeUse','admin',4,'RemoveUse User Group','2025-11-28 22:01:12','2025-11-28 23:02:18'),
(1296,'vendor_payment.view','',5,'View Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1297,'vendor_payment.create','',5,'Create Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1298,'vendor_payment.edit','',5,'Edit Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1299,'vendor_payment.delete','',5,'Delete Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1300,'vendor_payment.void','',5,'Void Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1301,'vendor_payment.post','',5,'Post Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1302,'vendor_payment.printCheck','',5,'PrintCheck Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1303,'vendor_payment.getUnpaidBills','',5,'GetUnpaidBills Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1304,'vendor_payment.getNextCheckNumber','',5,'GetNextCheckNumber Vendor Payment','2025-11-28 22:01:12','2025-11-28 22:59:52'),
(1305,'warehouse.view','inventory',8,'View Warehouse','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1306,'warehouse.create','inventory',8,'Create Warehouse','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1307,'warehouse.edit','inventory',8,'Edit Warehouse','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1308,'warehouse.delete','inventory',8,'Delete Warehouse','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1309,'work_order.view','manufacturing',9,'View Work Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1310,'work_order.create','manufacturing',9,'Create Work Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1311,'work_order.delete','manufacturing',9,'Delete Work Order','2025-11-28 22:01:12','2025-11-28 23:03:01'),
(1312,'aitest.view','',3,'View Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1313,'aitest.chat','',3,'Chat Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1314,'aitest.generate','',3,'Generate Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1315,'aitest.extract','',3,'Extract Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1316,'aitest.sentiment','',3,'Sentiment Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1317,'aitest.suggest','',3,'Suggest Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1318,'aitest.schema','',3,'Schema Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1319,'aitest.dataAnalysis','',3,'DataAnalysis Aitest','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1320,'bank_import.upload','accounting',5,'Upload Bank Import','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1321,'bank_import.categorizeTransaction','accounting',5,'CategorizeTransaction Bank Import','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1322,'bank_import.applyRules','accounting',5,'ApplyRules Bank Import','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1323,'bank_import.toggleRule','accounting',5,'ToggleRule Bank Import','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1324,'camera_audit.editStation','',3,'EditStation Camera Audit','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1325,'contact_api.getByCompany','crm',4,'GetByCompany Contact Api','2025-11-28 22:08:47','2025-11-28 23:03:01'),
(1326,'currency.createCurrency','',5,'CreateCurrency Currency','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1327,'currency.createRevaluation','',5,'CreateRevaluation Currency','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1328,'dashboard.addWidget','',3,'AddWidget Dashboard','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1329,'dashboard.toggleWidget','',3,'ToggleWidget Dashboard','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1330,'dashboard.refreshWidget','',3,'RefreshWidget Dashboard','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1331,'email_template.toggleActive','',3,'ToggleActive Email Template','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1332,'file_manager.upload','files',3,'Upload File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1333,'file_manager.createFolder','files',3,'CreateFolder File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1334,'file_manager.rename','files',3,'Rename File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1335,'file_manager.move','files',3,'Move File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1336,'file_manager.moveFolder','files',3,'MoveFolder File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1337,'file_manager.compress','files',3,'Compress File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1338,'file_manager.extract','files',3,'Extract File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1339,'file_manager.shareFile','files',3,'ShareFile File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1340,'file_manager.shareFolder','files',3,'ShareFolder File Manager','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1341,'financial_pro_forma.generate','',19,'Generate Financial Pro Forma','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1342,'financial_pro_forma.compare','',19,'Compare Financial Pro Forma','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1343,'forecaster.createForecast','',19,'CreateForecast Forecaster','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1344,'forecaster.createScenario','',19,'CreateScenario Forecaster','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1345,'forecaster.createFinancing','',19,'CreateFinancing Forecaster','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1346,'forecaster.createInvestment','',19,'CreateInvestment Forecaster','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1347,'help_desk.chatAssignSession','helpdesk',13,'ChatAssignSession Help Desk','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1348,'help_desk.chatEndSession','helpdesk',13,'ChatEndSession Help Desk','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1349,'help_desk.chatCreateSession','helpdesk',13,'ChatCreateSession Help Desk','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1350,'internal_note_api.view','',4,'View Internal Note Api','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1351,'mrp.calculate','manufacturing',9,'Calculate Mrp','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1352,'mrp.generateRequisitions','manufacturing',9,'GenerateRequisitions Mrp','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1353,'mrp.autoCalculateSafetyStock','manufacturing',9,'AutoCalculateSafetyStock Mrp','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1354,'mrp.convertToPO','manufacturing',9,'ConvertToPO Mrp','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1355,'machine_data.updateProduction','',9,'UpdateProduction Machine Data','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1356,'machine_data.updateUtilization','',9,'UpdateUtilization Machine Data','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1357,'machine_data.batchUpdate','',9,'BatchUpdate Machine Data','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1358,'maintenance.createSchedule','manufacturing',9,'CreateSchedule Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1359,'maintenance.storeSchedule','manufacturing',9,'StoreSchedule Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1360,'maintenance.createWorkOrder','manufacturing',9,'CreateWorkOrder Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1361,'maintenance.storeWorkOrder','manufacturing',9,'StoreWorkOrder Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1362,'maintenance.createDowntime','manufacturing',9,'CreateDowntime Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1363,'maintenance.storeDowntime','manufacturing',9,'StoreDowntime Maintenance','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1364,'messaging.createChannel','messaging',3,'CreateChannel Messaging','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1365,'messaging.addMember','messaging',3,'AddMember Messaging','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1366,'messaging.uploadFile','messaging',3,'UploadFile Messaging','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1367,'messaging.addReaction','messaging',3,'AddReaction Messaging','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1368,'messaging.leaveChannel','messaging',3,'LeaveChannel Messaging','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1369,'ndatemplate.toggle','crm',6,'Toggle Ndatemplate','2025-11-28 22:08:47','2025-11-28 23:03:01'),
(1370,'network_monitor.clearLogs','',3,'ClearLogs Network Monitor','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1371,'network_monitor.addAllowedHost','',3,'AddAllowedHost Network Monitor','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1376,'opportunity.addTask','crm',6,'AddTask Opportunity','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1377,'opportunity.logReceivedEmail','crm',6,'LogReceivedEmail Opportunity','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1378,'opportunity.uploadDocument','crm',6,'UploadDocument Opportunity','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1379,'opportunity.addCompetitor','crm',6,'AddCompetitor Opportunity','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1380,'opportunity.assign','crm',6,'Assign Opportunity','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1381,'period_closing.processClose','',5,'ProcessClose Period Closing','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1382,'permission_group.assignPermissions','admin',4,'AssignPermissions Permission Group','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1383,'permission_group.reorder','admin',4,'Reorder Permission Group','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1384,'quality.createInspection','manufacturing',9,'CreateInspection Quality','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1385,'quality.completeInspection','manufacturing',9,'CompleteInspection Quality','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1386,'quality.createNCR','manufacturing',9,'CreateNCR Quality','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1387,'quality.createTemplate','manufacturing',9,'CreateTemplate Quality','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1388,'scheduling.autoSchedule','',9,'AutoSchedule Scheduling','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1389,'scheduling.rescheduleAssignment','',9,'RescheduleAssignment Scheduling','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1390,'scheduling.createAssignment','',9,'CreateAssignment Scheduling','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1391,'search.search','',3,'Search Search','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1392,'shop_floor.startProduction','manufacturing',9,'StartProduction Shop Floor','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1393,'shop_floor.pauseProduction','manufacturing',9,'PauseProduction Shop Floor','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1394,'shop_floor.completeProduction','manufacturing',9,'CompleteProduction Shop Floor','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1395,'support.addResponse','crm',6,'AddResponse Support','2025-11-28 22:08:47','2025-11-28 22:59:52'),
(1396,'tax_payment.calculatePeriodTax','accounting',5,'CalculatePeriodTax Tax Payment','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1397,'transfer.receive','inventory',8,'Receive Transfer','2025-11-28 22:08:47','2025-11-28 23:03:01'),
(1398,'transfer.cancel','inventory',8,'Cancel Transfer','2025-11-28 22:08:47','2025-11-28 23:03:01'),
(1399,'user_group.addMember','admin',4,'AddMember User Group','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1400,'user_group.addUse','admin',4,'AddUse User Group','2025-11-28 22:08:47','2025-11-28 23:02:18'),
(1401,'hr.applications','hr',NULL,'View and manage job applications','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1402,'hr.interviews','hr',NULL,'View and manage interviews','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1403,'hr.assessments','hr',NULL,'View and manage assessments','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1404,'hr.offers','hr',NULL,'View and manage job offers','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1405,'hr.contracts','hr',NULL,'View and manage employee contracts','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1406,'hr.training','hr',NULL,'View and manage training programs','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1407,'hr.performance_reviews','hr',NULL,'View and manage performance reviews','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1408,'hr.issues__challenges','hr',NULL,'View and manage employee issues and challenges','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1409,'hr.separations','hr',NULL,'View and manage employee separations','2025-11-30 01:08:58','2025-11-30 01:08:58'),
(1410,'accounting.assets','accounting',NULL,'View Fixed Assets','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1411,'accounting.depreciation','accounting',NULL,'View Depreciation','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1412,'accounting.period','accounting',NULL,'View Period Closing','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1413,'accounting.bank_accounts','accounting',NULL,'View Bank Accounts','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1414,'accounting.reconciliation','accounting',NULL,'View Bank Reconciliation','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1415,'accounting.accounts','accounting',NULL,'View Chart of Accounts','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1416,'accounting.journal','accounting',NULL,'View Journal Entries','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1417,'accounting.currencies','accounting',NULL,'View Currencies','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1418,'accounting.exchange_rates','accounting',NULL,'View Exchange Rates','2025-12-02 03:35:40','2025-12-02 03:35:40'),
(1419,'diagrams.view','diagrams',NULL,'View diagrams','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1420,'diagrams.create','diagrams',NULL,'Create new diagrams','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1421,'diagrams.edit','diagrams',NULL,'Edit diagrams','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1422,'diagrams.delete','diagrams',NULL,'Delete diagrams','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1423,'diagrams.share','diagrams',NULL,'Share diagrams with other users','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1424,'diagrams.export','diagrams',NULL,'Export diagrams to PNG/SVG','2025-12-02 03:44:08','2025-12-02 03:44:08'),
(1449,'manufacturing.capacity_planning','manufacturing',NULL,'Access Capacity Planning','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1450,'manufacturing.planning_materials','manufacturing',NULL,'Access Planning & Materials','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1451,'manufacturing.production','manufacturing',NULL,'Access Production','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1452,'manufacturing.resources','manufacturing',NULL,'Access Resources','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1453,'manufacturing.quality_control','manufacturing',NULL,'Access Quality Control','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1454,'manufacturing.maintenance','manufacturing',NULL,'Access Maintenance','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1455,'manufacturing.costing','manufacturing',NULL,'Access Costing','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1456,'manufacturing.reports','manufacturing',NULL,'Access Manufacturing Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1457,'accounting.operations','accounting',NULL,'Access Accounting Operations','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1458,'accounting.reports','accounting',NULL,'Access Accounting Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1459,'accounting.assets_compliance','accounting',NULL,'Access Assets/Compliance','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1460,'accounting.banking_cash','accounting',NULL,'Access Banking/Cash','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1461,'accounting.multicurrency','accounting',NULL,'Access Multi-Currency','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1462,'inventory.product_management','inventory',NULL,'Access Product Management','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1463,'inventory.stock_management','inventory',NULL,'Access Stock Management','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1464,'inventory.tracking','inventory',NULL,'Access Lot/Serial Tracking','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1465,'inventory.locations','inventory',NULL,'Access Warehouse Locations','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1466,'inventory.reports','inventory',NULL,'Access Inventory Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1467,'sales.orders','sales',NULL,'Access Sales Orders','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1468,'sales.fulfillment','sales',NULL,'Access Fulfillment (Shipments/Delivery)','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1469,'sales.configuration','sales',NULL,'Access Sales Configuration','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1470,'sales.reports','sales',NULL,'Access Sales Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1471,'purchases.orders','purchases',NULL,'Access Purchase Orders','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1472,'purchases.suppliers','purchases',NULL,'Access Supplier Management','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1473,'purchases.receiving','purchases',NULL,'Access Goods Receipt','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1474,'purchases.reports','purchases',NULL,'Access Purchase Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1475,'hr.employees','hr',NULL,'Access Employee Management','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1476,'hr.recruitment','hr',NULL,'Access Recruitment','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1477,'hr.development','hr',NULL,'Access Training & Development','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1478,'hr.payroll','hr',NULL,'Access Payroll','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1479,'hr.time_attendance','hr',NULL,'Access Time & Attendance','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1480,'hr.reports','hr',NULL,'Access HR Reports','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1481,'crm.sales_process','crm',NULL,'Access Sales Process (Quotes/Orders)','2025-12-02 13:56:09','2025-12-02 13:56:09'),
(1487,'purchases.procurement_process','purchases',NULL,'Access Procurement Process','2025-12-02 13:59:43','2025-12-02 13:59:43'),
(1488,'purchases.payments_documents','purchases',NULL,'Access Payments & Documents','2025-12-02 13:59:43','2025-12-02 13:59:43');
commit;

--
-- Temporary table structure for view `popular_searches_30d`
--

