Exemplo n.º 1
0
    public static function setStatus($code, $iuser)
    {
        $sql = '
			SELECT {{codes_type}}.* FROM {{codes}}
			INNER JOIN {{codes_type}} ON {{codes_type}}.id={{codes}}.ctype
			WHERE {{codes}}.code=\'' . $code . '\' AND iuser=0
		';
        $data = DB::getRow($sql);
        if ($data) {
            $data['code'] = $code;
            if ($data['fromdate'] < date('Y-m-d H:i:s') && date('Y-m-d H:i:s') < $data['todate']) {
                $data['code'] = $code;
                $data['multiple'] = true;
                Codes::saveStatus($code, $iuser, $data);
            } else {
                $data['code'] = '';
                $data['error'] = 'Время для использования кода истекло';
            }
        } else {
            $sql = '
				SELECT * FROM {{codes_type}}
				WHERE code=\'' . $code . '\'
			';
            $data = DB::getRow($sql);
            if ($data) {
                $sql = '
					SELECT COUNT(*) FROM {{codes}}
					WHERE ctype=\'' . $data['id'] . '\'
				';
                $count = DB::getOne($sql);
                if ($data['num'] > $count) {
                    $sql = '
						SELECT id FROM {{codes}}
						WHERE ctype=\'' . $data['id'] . '\' AND iuser='******'
					';
                    $id = DB::getOne($sql);
                    if ($id) {
                        $data['code'] = '';
                        $data['error'] = 'Вы уже использовали данный код';
                    } else {
                        if ($data['fromdate'] < date('Y-m-d H:i:s') && date('Y-m-d H:i:s') < $data['todate']) {
                            $data['code'] = $code;
                            $data['multiple'] = true;
                            Codes::saveStatus($code, $iuser, $data);
                        } else {
                            $data['code'] = '';
                            $data['error'] = 'Время для использования кода истекло';
                        }
                    }
                } else {
                    $data['code'] = '';
                    $data['error'] = 'Данный код активирован максимальное количество раз';
                }
            } else {
                $data['code'] = '';
                $data['error'] = 'Такого промо-кода не существует';
            }
        }
        return $data;
    }