riainvoice/application/modules/custom_values/models/Mdl_custom_values.php
gandhimathi Bharathirajan c940cb1a2c all files
2017-09-11 14:38:03 +05:30

175 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 Mdl_Custom_Values
*/
class Mdl_Custom_Values extends MY_Model
{
public $table = 'ip_custom_values';
public $primary_key = 'ip_custom_values.custom_values_id';
/**
* @return string[]
*/
public static function custom_types()
{
return array_merge(Mdl_Custom_Values::user_input_types(), Mdl_Custom_Values::custom_value_fields());
}
/**
* @return string[]
*/
public static function user_input_types()
{
return array(
'TEXT',
'DATE',
'BOOLEAN'
);
}
/**
* @return string[]
*/
public static function custom_value_fields()
{
return array(
'SINGLE-CHOICE',
'MULTIPLE-CHOICE'
);
}
/**
* @param $fid
*/
public function save_custom($fid)
{
$field_id = null;
$this->load->module('custom_fields');
$field_custom = $this->mdl_custom_fields->get_by_id($fid);
if (!$field_custom) {
return;
}
$db_array = $this->db_array();
$db_array['custom_values_field'] = $fid;
parent::save(null, $db_array);
}
/**
* @return array
*/
public function validation_rules()
{
return array(
'custom_values_value' => array(
'field' => 'custom_values_value',
'label' => 'Value',
'rules' => 'required'
)
);
}
/**
* @return array
*/
public function custom_tables()
{
return array(
'ip_client_custom' => 'client',
'ip_invoice_custom' => 'invoice',
'ip_payment_custom' => 'payment',
'ip_quote_custom' => 'quote',
'ip_user_custom' => 'user'
);
}
/**
* @param $id
* @return $this
*/
public function get_by_fid($id)
{
$this->where('custom_values_field', $id);
return $this->get();
}
/**
* @param $column
* @return $this
*/
public function get_by_column($id)
{
$this->where('custom_field_id', $id);
return $this->get();
}
/**
* @param $id
* @return mixed
*/
public function get_by_id($id)
{
return $this->where('custom_values_id', $id)->get();
}
/**
* @param $column
* @param $id
* @return bool
*/
public function column_has_value($fid, $id)
{
$this->where('custom_field_id', $fid);
$this->where('custom_values_id', $id);
$this->get();
if ($this->num_rows()) {
return true;
}
return false;
}
/**
* @return $this
*/
public function get_grouped()
{
$this->db->select('count(custom_field_label) as count');
$this->db->group_by('ip_custom_fields.custom_field_id');
return $this->get();
}
public function default_select()
{
$this->db->select('ip_custom_fields.*,ip_custom_values.*', false);
}
public function default_join()
{
$this->db->join('ip_custom_fields', 'ip_custom_values.custom_values_field = ip_custom_fields.custom_field_id', 'inner');
}
public function default_order_by()
{
//$this->db->group_by('ip_custom_fields.custom_field_label');
}
public function default_group_by()
{
//$this->db->group_by('ip_custom_values.custom_values_field');
}
}