Подход с использованием базы данных и кода для автоматически сгенерированных счетов - PullRequest
0 голосов
/ 24 апреля 2018

Допустим, я управляю сайтом доменных имен, где продаю доменные имена и их хостинг.

Каждый из моих клиентов будет иметь стоимость:

Доменное имя: 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 месяца, повторные счета за этот месяц не будут генерироваться.

Вот почему я все еще сомневаюсь в этом подходе.

Что я могу сделать, чтобы оптимизировать этот процесс?

...