224 lines
7.6 KiB
PHP
224 lines
7.6 KiB
PHP
<?php
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
if (!function_exists('insert'))
|
|
{
|
|
function insert($table_name, $insert_data)
|
|
{
|
|
$CI =& get_instance();
|
|
return $CI->db->insert($table_name, $insert_data);
|
|
}
|
|
}
|
|
|
|
function get_relation_data_api($type, $search = '')
|
|
{
|
|
$CI =& get_instance();
|
|
$q = '';
|
|
if ($search != '') {
|
|
$q = $search;
|
|
$q = trim($q);
|
|
}
|
|
$data = [];
|
|
if ($type == 'customer' || $type == 'customers') {
|
|
$where_clients = 'tblclients.active=1';
|
|
if ($q) {
|
|
$where_clients .= ' AND types = "customer" AND (company LIKE "%' . $q . '%" OR CONCAT(firstname, " ", lastname) LIKE "%' . $q . '%" OR email LIKE "%' . $q . '%")';
|
|
}
|
|
|
|
$data = $CI->clients_model->get('', $where_clients);
|
|
} elseif ($type == 'ticket') {
|
|
$search = $CI->api_model->_search_tickets($q, 0, true);
|
|
$data = $search['result'];
|
|
} elseif ($type == 'lead' || $type == 'leads') {
|
|
$search = $CI->api_model->_search_leads($q, 0, ['junk' => 0,], true);
|
|
$data = $search['result'];
|
|
} elseif ($type == 'project') {
|
|
$where_projects = '';
|
|
if ($CI->input->post('customer_id')) {
|
|
$where_projects .= '(clientid=' . $CI->input->post('customer_id').' or clientid in (select id from tblleads where client_id='.$CI->input->post('customer_id').') )';
|
|
}
|
|
if ($CI->input->post('rel_type')) {
|
|
$where_projects .= ' and rel_type="' . $CI->input->post('rel_type').'" ' ;
|
|
}
|
|
$search = $CI->api_model->_search_projects($q, 0, $where_projects,$CI->input->post('rel_type'), true);
|
|
$data = $search['result'];
|
|
} elseif ($type == 'staff') {
|
|
$search = $CI->api_model->_search_staff($q, 0, true);
|
|
$data = $search['result'];
|
|
} elseif ($type == 'tasks') {
|
|
$search = $CI->api_model->_search_tasks($q, 0, true);
|
|
$data = $search['result'];
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
function get_available_api_permissions($data = [])
|
|
{
|
|
$viewGlobalName = _l('permission_view') . '(' . _l('permission_global') . ')';
|
|
|
|
$firstPermissionsArray = [
|
|
'get' => _l('permission_get'),
|
|
'search_get' => _l('permission_search'),
|
|
'post' => _l('permission_create'),
|
|
'delete' => _l('permission_delete'),
|
|
'put' => _l('permission_update'),
|
|
];
|
|
$secondPermissionsArray = [
|
|
'get' => _l('permission_list'),
|
|
'search_get' => _l('permission_search'),
|
|
];
|
|
$secondonePermissionsArray = [
|
|
'get' => _l('permission_list'),
|
|
'search_get' => _l('permission_search'),
|
|
'post' => _l('permission_create'),
|
|
];
|
|
$thirdPermissionsArray = [
|
|
'get' => _l('permission_list'),
|
|
'post' => _l('permission_create'),
|
|
'delete' => _l('permission_delete'),
|
|
];
|
|
$forthPermissionsArray = [
|
|
'get' => _l('permission_get'),
|
|
];
|
|
$fifthPermissionsArray = [
|
|
'get' => _l('permission_get'),
|
|
'post' => _l('permission_create'),
|
|
'delete' => _l('permission_delete'),
|
|
'get_value' => _l('permission_get_value'),
|
|
'search_get' => _l('permission_search'),
|
|
'put' => _l('permission_update'),
|
|
];
|
|
$sixthPermissionsArray = [
|
|
'get' => _l('permission_get'),
|
|
];
|
|
|
|
$apiPermissions = [
|
|
'customers' => [
|
|
'name' => _l('clients'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'contacts' => [
|
|
'name' => _l('contacts'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'invoices' => [
|
|
'name' => _l('invoices'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'items' => [
|
|
'name' => _l('items'),
|
|
'capabilities' => $secondPermissionsArray,
|
|
],
|
|
'leads' => [
|
|
'name' => _l('leads'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'milestones' => [
|
|
'name' => _l('milestones'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'projects' => [
|
|
'name' => _l('projects'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'staffs' => [
|
|
'name' => _l('staffs'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'tasks' => [
|
|
'name' => _l('tasks'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'tickets' => [
|
|
'name' => _l('tickets'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'contracts' => [
|
|
'name' => _l('contracts'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'credit_notes' => [
|
|
'name' => _l('credit_notes'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'custom_fields' => [
|
|
'name' => _l('custom_fields'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'estimates' => [
|
|
'name' => _l('estimates'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'expense_categories' => [
|
|
'name' => _l('expense_categories'),
|
|
'capabilities' => $forthPermissionsArray,
|
|
],
|
|
'expenses' => [
|
|
'name' => _l('expenses'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'taxes' => [
|
|
'name' => _l('taxes'),
|
|
'capabilities' => $forthPermissionsArray,
|
|
],
|
|
'payment_methods' => [
|
|
'name' => _l('payment_methods'),
|
|
'capabilities' => $forthPermissionsArray,
|
|
],
|
|
'payments' => [
|
|
'name' => _l('payments'),
|
|
'capabilities' => $secondonePermissionsArray,
|
|
],
|
|
'proposals' => [
|
|
'name' => _l('proposals'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'calendar' => [
|
|
'name' => _l('calendar'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'subscriptions' => [
|
|
'name' => _l('subscriptions'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
'timesheets' => [
|
|
'name' => _l('timesheets'),
|
|
'capabilities' => $firstPermissionsArray,
|
|
],
|
|
];
|
|
|
|
return hooks()->apply_filters('api_permissions', $apiPermissions, $data);
|
|
}
|
|
|
|
function api_can($api_id, $feature = '', $capability = '')
|
|
{
|
|
$CI =& get_instance();
|
|
$permissions = $CI->api_model->get_permissions($api_id, $feature, $capability);
|
|
if (count($permissions)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Format time window in seconds to human readable format
|
|
*/
|
|
if (!function_exists('format_time_window')) {
|
|
function format_time_window($seconds) {
|
|
switch ($seconds) {
|
|
case 3600:
|
|
return '1 Hour';
|
|
case 86400:
|
|
return '24 Hours';
|
|
case 604800:
|
|
return '7 Days';
|
|
case 2592000:
|
|
return '30 Days';
|
|
default:
|
|
return $seconds . ' seconds';
|
|
}
|
|
}
|
|
} |