Beispiel #1
0
 /**
  * Init use mode and user id.
  *
  * @param int $mode			Discount manager mode.
  * @param array $params		Initial params (userId, orderId).
  * 		keys are case sensitive:
  * 			<ul>
  * 			<li>int userId		Order owner (for MODE_MANAGER or MODE_ORDER only).
  * 			<li>int orderId		Edit order id (for MODE_ORDER only(!)).
  * 			<li>int oldUserId	Old order owner for MODE_MANAGER or MODE_ORDER only).
  * 			</ul>
  * @return void
  */
 public static function initUseMode($mode = self::MODE_CLIENT, $params = array())
 {
     $adminSection = defined('ADMIN_SECTION') && ADMIN_SECTION === true;
     $mode = (int) $mode;
     if (!is_array($params)) {
         $params = array();
     }
     self::$checkActivity = true;
     if ($adminSection) {
         if ($mode != self::MODE_MANAGER && $mode != self::MODE_ORDER && $mode != self::MODE_SYSTEM) {
             self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_MODE');
             self::$useMode = self::MODE_SYSTEM;
         } else {
             self::$orderId = null;
             self::$allowedSave = false;
             self::$userId = null;
             self::$useMode = self::MODE_SYSTEM;
             switch ($mode) {
                 case self::MODE_MANAGER:
                     if (!isset($params['userId']) || (int) $params['userId'] < 0) {
                         self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_USER_ID');
                     }
                     if (isset($params['orderId'])) {
                         self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_ORDER_ID_EXIST');
                     }
                     if (empty(self::$errors)) {
                         self::$userId = (int) $params['userId'];
                         self::$orderId = null;
                         self::$allowedSave = true;
                         self::$useMode = self::MODE_MANAGER;
                         if (isset($params['oldUserId'])) {
                             self::migrateStorage($params['oldUserId']);
                         }
                     }
                     break;
                 case self::MODE_ORDER:
                     if (!isset($params['userId']) || (int) $params['userId'] < 0) {
                         self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_USER_ID');
                     }
                     if (!isset($params['orderId']) || (int) $params['orderId'] <= 0) {
                         self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_ORDER_ID_ABSENT');
                     }
                     if (empty(self::$errors)) {
                         self::$userId = (int) $params['userId'];
                         self::$orderId = (int) $params['orderId'];
                         self::$allowedSave = true;
                         self::$useMode = self::MODE_ORDER;
                         if (isset($params['oldUserId'])) {
                             self::migrateStorage($params['oldUserId']);
                         }
                     }
                     break;
                 case self::MODE_SYSTEM:
                     break;
             }
         }
     } else {
         self::$orderId = null;
         self::$allowedSave = false;
         if ($mode != self::MODE_CLIENT) {
             self::$useMode = self::MODE_SYSTEM;
             self::$errors[] = Loc::getMessage('BX_SALE_DCM_ERR_BAD_MODE');
         } else {
             self::$useMode = self::MODE_CLIENT;
             self::initUserId();
             if (self::isSuccess()) {
                 self::$allowedSave = true;
             }
         }
     }
 }