Название: Перерасчёт группе клиентов Отправлено: SeMant от 20 Апреля 2014, 07:30:27 В связи с проблемами в стране верхний провайдер отказывался 6 дней ремонтиновать линию. Теперь необходимо всем сделать перерасчёт за эти дни. Директор хочет, чтобы услуга у всех, кому доступ разрешён, была продлена. Режим услуги Стандарт.
Возможно ли на ходу продливать жизнь назначенной услуге или сделать перерасчёт группе клиентов ( если ничего не путаю, то об этом Я читал, но найти ничего не смог). Как мне наиболее безболезненно выйти из этой ситуации ? Название: Re: Перерасчёт группе клиентов Отправлено: Dolphin от 20 Апреля 2014, 16:26:12 На этапе переезда на N+, был вопрос, об изменении времени начала и конца услуги.
Правил руками. В представлениях базы, есть таблица: `v_services`. В ней поля `tm_start` и `tm_end` соответствуют началу и концу даты услуги. В твоем случае, нужно выбрать по условию и обновить `tm_end` с новым значением +6 дней. Не знаю, на сколько это будет корректным, но у меня прокатило. Название: Re: Перерасчёт группе клиентов Отправлено: Sis от 29 Января 2016, 23:02:57 а это разве поменяет что то у действующих клиентов?
Название: Re: Перерасчёт группе клиентов Отправлено: Tooreagen от 31 Января 2016, 11:39:03 На этапе переезда на N+, был вопрос, об изменении времени начала и конца услуги. Правил руками. В представлениях базы, есть таблица: `v_services`. В ней поля `tm_start` и `tm_end` соответствуют началу и концу даты услуги. В твоем случае, нужно выбрать по условию и обновить `tm_end` с новым значением +6 дней. Не знаю, на сколько это будет корректным, но у меня прокатило. В N+ это таблица users_services, поле tm_end в секундах. Название: Re: Перерасчёт группе клиентов Отправлено: Efendy от 31 Января 2016, 15:52:37 Выложу детальную инфу:
users_services - таблица с уже подключенными услугами к конкретным абонам. Ее изменение влияет на текущие услуги. Т.е. можно менять время окончания и услуга будет продлена. Стоимость этой, уже подключенной услуги, при этом не меняется. Если надо изменить - это надо править платеж-списание. services - таблица с параметрами услуг. Это не подключенные услуги, а именно их описание и параметры. Изменения в этой таблице никак не влияет на текущие подключенные услуги. v_services - это виртуальная таблица, которая просто соединяет users_services и services чтобы можно было по подключенной услуге получить больше инфы. Можно менять эту таблицу и изменения будут наноситься на таблицы users_services и services. Но я бы не рекомендовал менять именно ее, лучше users_services. поле tm_end - это время окончания услуги в так называемом виде timestamp - количество секунд, прошедшее с 1970 года. Чтобы добавить сутки, можно сделать так: tm_end = tm_end + 24*60*60, что в идеале не совсем корректно из-за всяких переходов на летнее или зимнее время, но то такие нюансы, что вам париться не надо. Если хочется сделать идеально красиво - юзайте функцию interval в mysql Название: Re: Перерасчёт группе клиентов Отправлено: Sis от 16 Июля 2016, 04:04:03 Я не очень силён в мускуле, мне нужно добавить 2 дня ко всем текущим услугам. Значит это будет выглядеть примерно так
UPDATE users_services SET tm_end = tm_end + 48*60*60 верно, подскажите? Название: Re: Перерасчёт группе клиентов Отправлено: Tooreagen от 22 Июля 2016, 11:50:26 Я не очень силён в мускуле, мне нужно добавить 2 дня ко всем текущим услугам. Значит это будет выглядеть примерно так Аналогично. Нужно нескольку десятков абонов продлить услугу. Подскажите правильную команду, а то уже запарился в таблице копошится.UPDATE users_services SET tm_end = tm_end + 48*60*60 верно, подскажите? Название: Re: Перерасчёт группе клиентов Отправлено: Efendy от 22 Июля 2016, 13:18:51 Я не очень силён в мускуле, мне нужно добавить 2 дня ко всем текущим услугам. Значит это будет выглядеть примерно так верно. Но бекап все равно лучше сделатьUPDATE users_services SET tm_end = tm_end + 48*60*60 верно, подскажите? Название: Re: Перерасчёт группе клиентов Отправлено: Tooreagen от 22 Июля 2016, 14:57:48 Я не очень силён в мускуле, мне нужно добавить 2 дня ко всем текущим услугам. Значит это будет выглядеть примерно так верно. Но бекап все равно лучше сделатьUPDATE users_services SET tm_end = tm_end + 48*60*60 верно, подскажите? А как указать конкретные uid, если несколько абонов Название: Re: Перерасчёт группе клиентов Отправлено: Efendy от 22 Июля 2016, 15:45:46 Код: UPDATE users_services SET tm_end = tm_end + 48*60*60 WHERE uid IN (11, 20, 56); Название: Re: Перерасчёт группе клиентов Отправлено: Tooreagen от 22 Июля 2016, 15:50:23 Код: UPDATE users_services SET tm_end = tm_end + 48*60*60 WHERE uid IN (11, 20, 56); |