コード例 #1
0
ファイル: company.php プロジェクト: sgh1986915/php-crm
 public static function get_companys($search = false)
 {
     if (self::$get_companys_cache !== false) {
         return self::$get_companys_cache;
     }
     $where = 'WHERE 1';
     $sql = "SELECT c.*, c.company_id AS id ";
     $sql .= " FROM `" . _DB_PREFIX . "company` c ";
     $company_access = self::get_company_data_access();
     switch ($company_access) {
         case _COMPANY_ACCESS_ALL:
             break;
         case _COMPANY_ACCESS_ASSIGNED:
             // we only want companies that are directly linked with the currently logged in user contact (from the staff user account settings area)
             $sql .= " LEFT JOIN `" . _DB_PREFIX . "company_user_rel` cur ON c.company_id = cur.company_id ";
             $where .= " AND (cur.user_id = " . (int) module_security::get_loggedin_id() . ")";
             break;
         case _COMPANY_ACCESS_CONTACT:
             // only parent company of current user account contact
             $sql .= " LEFT JOIN `" . _DB_PREFIX . "company_customer` cc ON c.company_id = cc.company_id ";
             $sql .= " LEFT JOIN `" . _DB_PREFIX . "user` u ON cc.customer_id = u.customer_id ";
             $sql .= " LEFT JOIN `" . _DB_PREFIX . "company_vendor` cv ON c.company_id = cv.company_id ";
             $sql .= " LEFT JOIN `" . _DB_PREFIX . "user` uv ON cv.vendor_id = uv.vendor_id ";
             $where .= " AND (u.user_id = " . (int) module_security::get_loggedin_id() . " OR uv.user_id = " . (int) module_security::get_loggedin_id() . ")";
             break;
     }
     $sql .= $where;
     $sql .= " GROUP BY c.company_id ";
     self::$get_companys_cache = qa($sql);
     return self::$get_companys_cache;
 }