Сумма выставления счета и полученная сумма

#mysql #laravel

Вопрос:

Задание Cron или один запрос mysql для расчета суммы выставления счета

предположим, у меня есть стол

Школа

ID Имя Адрес электронной почты адрес контактный номер идентификатор подписки (может быть аннулирован)
1 LA la@gmail.com НЬЮ-ЙОРК ххххххх 1

план

ID Имя Единица Измерения Интервала Количество интервалов за_студент_пер_месяц
1 Базовые модели Месяц 1 25

подписка

ID plan_id идентификатор школы предыдущая_дуе_счет предыдущая балансовая_счет trial_end_at конец_ат
1 1 1 1000 0 нулевой 2022/12/12

subscription_транзакция

ID идентификатор подписки plan_id идентификатор школы сумма payment_id тип платежа
1 1 1 1 2000 нулевой наличные в кассе

пользователь

ID Имя Адрес электронной почты Пароль адрес контактный номер role_id идентификатор школы created_at
1 Джон johndoe@gmail.com a2324324adsad1212xx НЬЮ-ЙОРК ххххххх 1 (предположим, роль-студент) 1 2021/03/03

Вопрос в том, «как создать сумму счета, зависит от использования плана отдельными школьниками».

Напр.:

  • Июль 2021 (Месяц Пробной Фазы)
    Общее Количество Зачисленных Студентов: 100
    Месяц: 5 (Июль 2021 — Декабрь 2021 @Дата Окончания подписки)
    Общая Стоимость: 7500 (Всего 100 Зачисленных Студентов * 15 На студента * 5 Месяцев)
  • Август 2021 года

    Общее Количество Зачисленных Студентов: 50 Месяцев: 5 (Август 2021 — Декабрь 2021 @Дата Окончания подписки)
    Общая Стоимость: 3000 (Всего 50 Зачисленных Студентов * 15 На студента * 4 Месяца)

  • Сентябрь 2021 года

    Общее Количество Зачисленных Студентов: 50 Месяцев: 5 (Июль 2021 — Декабрь 2021 @Дата Окончания подписки)
    Общая Стоимость: 2250 (Всего 50 Зачисленных Студентов * 15 На студента * 3 Месяца)

Total Bill Amount Per Student = 12750 (7500 3000 2250)

Вариант 1: Добавление дополнительных столбцов «bill_amount» и «received_amount» в таблице подписки. Затем после этого используйте задание cron для обновления атрибута таблицы подписки — bill_amount и received_amount.

Вариант 2: в api , напрямую вызывая один запрос mysql с помощью sum (), чтобы получить bill_amount и received_amount.