Разработчикам: заморозка услуг

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

Параметр "Не уходить в минус" в самой услуге

В услуге в таблице services в поле param вставляется фгагмент: 'wait_pos_balance' => '1'. Когда эта конкретная услуга подключается клиенту, то проверяется: $service_new->{param}{wait_pos_balance} && $user->{balance} < $service_new->{approximate_price} и тогда в этой подключаемой услуге устанавливается нулевая стоимость и тег wait_pos_balance. Длительность услуги 1 сек - т.е. как можно скорейшее завершение.

В этом варианте заморозки wait_pos_balance вроде как не проверяется модулем ядра services - он просто постоянно пытается завершить эту услугу. А если денег недостаточно и в услуге уже есть тег wait_pos_balance, то ее завершение блокируется (die в самой услуге). Как только денег становится достаточно - замораживаемая услуга таки завершается и подключается новая на полную стоимость.

  • ajUserSrvInfo.pl кода в тегах услуги видит wait_pos_balance, пишет: Будет активирована когда будет достаточно финансов
  • ajUserSrvList.pl в поле "стоимость" пишет "Заморожена"