1. Уже есть в БД
1.1. В файле есть ДНР
1.1.1. Если ДНР в файле не равен ДНР в базе - обновляем ДНР Обновляем статус текущего месяца на указанный в файле : если статус = "текущий", а ранее клиент таким не был - ставим ему статус "новый", иначе - тот статус, что указан в файле.
1.2. В файле нет ДНР
1.2.1. Не обновляем ДНР в базе. Обновляем статус текущего месяца на указанный в файле : если статус = "текущий", а ранее клиент таким не был - ставим ему статус "новый", иначе - тот статус, что указан в файле.
2. Еще нет в ДБ
2.1. В файле есть ДНР
2.1.1. Запоминаем ДНР
2.1.1.1. Если статус в файле указан как текущий: В месяце ДНР указываем статус "новый", далее от ДНР и до сегодняшнего для ставим статус "текущий". Если статус не указан как "текущий": От ДНР до даты загрузки запоминаем статус, указанный в файле.
2.2. В файле нет ДНР
2.2.1. Как ДНР указываем дату загрузки
2.2.1.1. Если статус в файле указан как текущий: В месяце ДНР указываем статус "новый", далее от ДНР и до сегодняшнего для ставим статус "текущий". Если статус не указан как "текущий": В месяце ДНР указываем статус, указанный в файле.