173 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Models;
 | |
| 
 | |
| use Illuminate\Database\Eloquent\Model;
 | |
| use Illuminate\Support\Facades\DB;
 | |
| 
 | |
| class Clients extends Model
 | |
| {
 | |
|     const CSTTS_ACTIVE = 1;
 | |
|     const CSTTS_INACTIVE = 2;
 | |
| 
 | |
|     const CCREDENTIALS_CREATE = 1;
 | |
|     const CCREDENTIALS_NOT = 2;
 | |
| 
 | |
|     const DEFAULT_PHONE_CODE = 62;
 | |
| 
 | |
|     const DEFAULT_CID = 1; // swanusa account
 | |
| 
 | |
|     const DISC_TYPE_NO = 0;
 | |
|     const DISC_TYPE_FIX = 1;
 | |
|     const DISC_TYPE_PERCENT = 2;
 | |
| 
 | |
|     public static function listClients($filter = [])
 | |
|     {
 | |
|         $params = [];
 | |
|         $select = "";
 | |
|         $join = "";
 | |
|         $where = "";
 | |
| 
 | |
|         if (isset($filter["company"])) {
 | |
|             $where .= " AND c.id = ?";
 | |
|             $params[] = $filter["company"];
 | |
|         }
 | |
| 
 | |
|         if (isset($filter["c_status"])) {
 | |
|             $where .= " AND c.c_status = ?";
 | |
|             $params[] = $filter["c_status"];
 | |
|         }
 | |
| 
 | |
|         return DB::select(
 | |
|             "SELECT c.*
 | |
| 		,c.id as client_id,u.id as user_id
 | |
| 		,c.crt as join_date
 | |
|         ,(SELECT COUNT(id) FROM t_orders_clients WHERE c_pt_id = c.id) as count_trx
 | |
|         " .
 | |
|                 $select .
 | |
|                 "
 | |
| 		FROM t_clients AS c
 | |
| 		LEFT JOIN t_users AS u ON c.id = u.client_id
 | |
|         " .
 | |
|                 $join .
 | |
|                 "
 | |
| 		WHERE c.dlt is null
 | |
|         " .
 | |
|                 $where .
 | |
|                 "
 | |
|         GROUP BY c.id
 | |
|         ;",
 | |
|             $params
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public static function showClientById($cid)
 | |
|     {
 | |
|         $params = [$cid];
 | |
|         return DB::select(
 | |
|             "SELECT c.*
 | |
| 		,c.id as client_id,u.id as user_id
 | |
| 		,c.crt as join_date
 | |
| 		FROM t_clients AS c
 | |
| 		LEFT JOIN t_users AS u ON c.id = u.client_id
 | |
| 		WHERE c.dlt is null
 | |
| 		AND c.id = ?
 | |
| 		LIMIT 1;",
 | |
|             $params
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public static function getClients()
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null;");
 | |
|     }
 | |
| 
 | |
|     public static function getClientById($cid)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND id = ? LIMIT 1;", [$cid]);
 | |
|     }
 | |
| 
 | |
|     public static function getClientByEmail($email)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND c_mail = ? LIMIT 2;", [$email]);
 | |
|     }
 | |
| 
 | |
|     public static function getClientByPhone($phone)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND c_phone = ? LIMIT 2;", [$phone]);
 | |
|     }
 | |
| 
 | |
|     public static function getClientByName($name)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND c_name = ? LIMIT 2;", [$name]);
 | |
|     }
 | |
| 
 | |
|     public static function getPicByEmail($email)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND pic_mail = ? LIMIT 2;", [$email]);
 | |
|     }
 | |
| 
 | |
|     public static function getPicByPhone($phone)
 | |
|     {
 | |
|         return DB::select("SELECT * FROM t_clients WHERE dlt is null AND pic_phone = ? LIMIT 2;", [$phone]);
 | |
|     }
 | |
| 
 | |
|     public static function addClient($data)
 | |
|     {
 | |
|         $cid = DB::table("t_clients")->insertGetId($data);
 | |
|         return $cid;
 | |
|     }
 | |
| 
 | |
|     public static function updateClient($cid, $data)
 | |
|     {
 | |
|         return DB::table("t_clients")
 | |
|             ->where("id", $cid)
 | |
|             ->update($data);
 | |
|     }
 | |
| 
 | |
|     public static function deleteClient($cid)
 | |
|     {
 | |
|         return DB::table("t_clients")
 | |
|             ->where("id", $cid)
 | |
|             ->delete();
 | |
|     }
 | |
| 
 | |
|     public static function select2Client($cid = null)
 | |
|     {
 | |
|         $query = "";
 | |
|         $params = [];
 | |
| 
 | |
|         if ($cid) {
 | |
|             $query .= "SELECT id,c_name as name FROM t_clients AS c WHERE dlt is null AND c.id = ?;";
 | |
|             $params[] = $cid;
 | |
|         } else {
 | |
|             $query .= "SELECT id,c_name as name FROM t_clients AS c WHERE dlt is null;";
 | |
|         }
 | |
| 
 | |
|         return DB::select($query, $params);
 | |
|     }
 | |
| 
 | |
|     public static function arrDiscountTypes()
 | |
|     {
 | |
|         return [Clients::DISC_TYPE_NO, Clients::DISC_TYPE_FIX, Clients::DISC_TYPE_PERCENT];
 | |
|     }
 | |
| 
 | |
|     public static function select2DiscountTypes()
 | |
|     {
 | |
|         return [
 | |
|             [
 | |
|                 "id" => Clients::DISC_TYPE_NO,
 | |
|                 "name" => "No Discount",
 | |
|             ],
 | |
|             [
 | |
|                 "id" => Clients::DISC_TYPE_FIX,
 | |
|                 "name" => "Fix Amount",
 | |
|             ],
 | |
|             [
 | |
|                 "id" => Clients::DISC_TYPE_PERCENT,
 | |
|                 "name" => "Percent Amount",
 | |
|             ],
 | |
|         ];
 | |
|     }
 | |
| }
 | 
