def worker(req): contract = req.params()['service_contract'] new_internet_tariff = req.params()['new_internet_tariff'] start_date = req.params()['start_date'] tariff = Tariff(contract=contract) if not tariff.is_personal(): planned_tariff = tariff.getOpenTarPlan() if not planned_tariff.tarplan == new_internet_tariff: #меняем тариф если запланированный план и новый тариф не совпадают return tariff.changeTariff(new_internet_tariff, start_date) else: if not planned_tariff.start_date == start_date: #меняем тариф если дата начала запланированного плана и дата начала нового тарифа не совпадают return tariff.changeTariff(new_internet_tariff, start_date) else: #попытка перейти на тот же тариф и на туже дату return {'success': False, 'title': u'Смена тарифа была уже произведена ранее', \ 'message': u'Тариф "%s" на Интернет начнёт действовать с %s' % (planned_tariff.tarplan.name, start_date) } else: #для абонентов с персональными тарифами смена тарифа запрещена return {'success': False, 'title': u'Смена тарифа невозможна', \ 'message': u'У вас действует персональный тариф. Для его смены обратитесь в абон. отдел' }