Допустим, я управляю сайтом доменных имен, где продаю доменные имена и их хостинг.
Каждый из моих клиентов будет иметь стоимость:
Доменное имя: example.com
Стоимость: 100,00 долларов
Продолжительность: 1 год
Что я хочу сделать в своей программе, так это автоматически генерировать счет-фактуру, когда срок действия их доменного имени истекает.
У меня уже есть следующий подход:
Таблица текущих счетов:
Recurring_Invoices
InvoiceID[ID]
domain_name[VARCHAR]
Price[Double]
Last_Invoice_Date[DATETIME]
Is_Recurring[BYTE]
Next_Invoice_Date[DATETIME]
Мой подход на уровне кода следующий:
Каждый раз, когда запускается моя программа, я проверяю, есть ли счета за этот месяц. В псевдокоде я сделаю:
void getRecurringInvoices()
{
//Select the invoices WHERE Is_Recurring = 1
}
foreach (Invoice i in RecurringInvoices)
{
// Get the month of Next_Invoice_Date
if(Month of Next_Invoice_Date == DateTime.Now.Month)
{
//this is an invoice that needs to be generated + Next Invoice Date needs
to be prolonged with 1 year
}
Я хотел спросить, подходит ли этот подход. Единственное, что меня беспокоит, это то, что если моя программа не будет запущена в течение 1 месяца, повторные счета за этот месяц не будут генерироваться.
Вот почему я все еще сомневаюсь в этом подходе.
Что я могу сделать, чтобы оптимизировать этот процесс?