riainvoice/application/modules/users/controllers/Ajax.php
gandhimathi Bharathirajan c940cb1a2c all files
2017-09-11 14:38:03 +05:30

107 lines
3.7 KiB
PHP

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
* InvoicePlane
*
* @author InvoicePlane Developers & Contributors
* @copyright Copyright (c) 2012 - 2017 InvoicePlane.com
* @license https://invoiceplane.com/license.txt
* @link https://invoiceplane.com
*/
/**
* Class Ajax
*/
class Ajax extends Admin_Controller
{
public $ajax_controller = true;
public function save_user_client()
{
$user_id = $this->input->post('user_id');
$client_id = $this->input->post('client_id');
$this->load->model('clients/mdl_clients');
$this->load->model('users/mdl_user_clients');
$client = $this->mdl_clients->get_by_id($client_id);
if ($client) {
$client_id = $client->client_id;
// Is this a new user or an existing user?
if (!empty($user_id)) {
// Existing user - go ahead and save the entries
$user_client = $this->mdl_user_clients->where('ip_user_clients.user_id', $user_id)
->where('ip_user_clients.client_id', $client_id)->get();
if (!$user_client->num_rows()) {
$this->mdl_user_clients->save(null, array('user_id' => $user_id, 'client_id' => $client_id));
}
} else {
// New user - assign the entries to a session variable until user record is saved
$user_clients = $this->session->userdata('user_clients') ? $this->session->userdata('user_clients') : array();
$user_clients[$client_id] = $client_id;
$this->session->set_userdata('user_clients', $user_clients);
}
}
}
public function load_user_client_table()
{
$session_user_clients = $this->session->userdata('user_clients');
if ($session_user_clients) {
$this->load->model('clients/mdl_clients');
$data = array(
'id' => null,
'user_clients' => $this->mdl_clients->where_in('ip_clients.client_id', $session_user_clients)->get()->result()
);
} else {
$this->load->model('users/mdl_user_clients');
$data = array(
'id' => $this->input->post('user_id'),
'user_clients' => $this->mdl_user_clients->where('ip_user_clients.user_id', $this->input->post('user_id'))->get()->result()
);
}
$this->layout->load_view('users/partial_user_client_table', $data);
}
public function modal_add_user_client($user_id = null)
{
$this->load->model('clients/mdl_clients');
if ($session_user_clients = $this->session->userdata('user_clients')) {
$clients = $this->mdl_clients->where_not_in('ip_clients.client_id', $session_user_clients)->get()->result();
$assigned_clients = array();
} else {
$this->load->model('users/mdl_user_clients');
$assigned_clients_query = $this->mdl_user_clients->where('ip_user_clients.user_id', $user_id)->get()->result();
$assigned_clients = array();
foreach ($assigned_clients_query as $assigned_client) {
$assigned_clients[] = (int)$assigned_client->client_id;
}
if (empty($assigned_clients)) {
$clients = $this->mdl_clients->get()->result();
} else {
$clients = $this->mdl_clients->where_not_in('ip_clients.client_id', $assigned_clients)->get()->result();
}
}
$data = array(
'user_id' => $user_id,
'clients' => $clients,
);
$this->layout->load_view('users/modal_user_client', $data);
}
}