Бюджет: 1 000 ₽
11.85 $ – 10.39 €
Заказчик выбрал исполнителя:
Алексей Александрович  
Скрипт – Реализовать списание комиссии за неактивность (если последнее значение balance не обновлялось более года)

В базе pt_premium работаем с 2 таблицами:
1. Таблица 'account', нужные значения:
id bigint(20)
balance decimal(42,4)
2. Таблица 'account_balance'
id AUTO_INCREMENT
account_id bigint(20)
comment text utf8_unicode_ci
date timestamp
date_verify timestamp
summa decimal(42,4)
balance decimal(42,4)
status tinyint(4)
status_text text utf8_unicode_ci
tag int(11)
pay-system varchar(40) utf8_unicode_ci
pay-account blob

1. В таблице account_balance выбираем значения account_id, где comment не равен "Inactivity fee"
2. Из выбранных для каждого account_id находим самую свежую дату date (создаем массив c двумя значениями inactiveID и lastdate)
3. Из массива удаляем значения, у которых lastdate > (Текущее время – 1 год)
4. Перебираем значения inactiveID:
в таблице account для id=inactiveID находим значение balance, вводим переменную lastbalance=balance;
Если lastbalance>10:
в таблице account для id=inactiveID обновляем значение balance=lastbalance-10
в таблице account_balance добавляем строчку
id AUTO_INCREMENT
account_id=inactiveID
comment ="Inactivity fee"
date=текущая
date_verify=текущая
summa=-10.0000
balance=lastbalance-10
status=1
status_text=""
tag=0
pay-system по умолчанию null
pay-account по умолчанию null

если lastbalance >0 и <= 10:
в таблице account для id=inactiveID обновляем значение balance=0
в таблице account_balance добавляем строчку
id AUTO_INCREMENT
account_id=id
comment ="Inactivity fee"
date=текущая
date_verify=текущая
summa=-lastbalance
balance=0
status=1
status_text=""
tag=0
pay-system по умолчанию null
pay-account по умолчанию null
Опубликован 23.07.2019 в 18:36
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.