Фіксація порушення дедлайнів періодів

Задача: відображення фактичної дати завершення періоду при збереженні початкової дати дедлайну, відображення інформації про порушення термінів дедлайну у явному вигляді

Введення milestones (варіант 1)

Один з варіантів вирішення - введення структури milestones https://standard.open-contracting.org/latest/en/schema/reference/#milestone 

Плюси - частково відповідає стандарту. Мінуси - потенційно надлишкова структура даних.

Milestones
    "awards": [
      {
        "status": "pending",
        "verificationPeriod": {
          "startDate": "2019-11-01T14:56:43.138787+02:00",
          "endDate": "2019-11-15T18:00:00.138787+02:00"
        },
		"signingPeriod": {
          "startDate": "2019-11-01T14:56:43.138787+02:00",
          "endDate": "2019-11-22T18:00:00.138787+02:00"
        },
		"milestones": [
	      {
            "status": "met",
            "dateModified": "2019-11-01T15:56:43.138787+02:00",
            "id": "b6a88803c02f4ce989fae7e0839cc789",
            "dateMet": "2019-11-01T15:56:43.138787+02:00",
            "type": "verification",
            "dueDate": "2019-11-15T18:00:00+02:00"
          },
     	  {
            "status": "processing",
            "dateModified": "2019-04-23T13:44:17.119411+03:00",
            "id": "8ed161764c1f4d039c348998ba4f6bb6",
            "type": "signing",
            "dueDate": "2019-11-22T18:00:00+02:00"
          }
     ],
        "suppliers": [
      ...
        "date": "2019-11-01T14:56:43.138787+02:00",
        "id": "b716b301dfb740fea8d34397242dcca1"
      },

type:

  1. для award`ів
    1. verification - Перевірка документів учасника
    2. signing - Підписання протоколу та договору 
    3. admission (з'являється для award`у, який отримує статус pending.admission) - Підтвердження набуття статусу переможця
  2. для процедури та для контрактів до обговорення. Для процедури зеленої енергетики може не знадобитись

status:

  1. scheduled - Заплановано
  2. processing - Виконується
  3. met - Виконано (потрібна дія виконана в межах періоду)
  4. notMet - Не виконано (потрібна дія не виконана (автоматичне або ручне скасування, дискваліфікація аварду, розірвання контракту))
  5. partiallyMet - Виконано (потрібна дія виконана поза межами періоду)

Розширення структури періодів (Варіант 2)

Розширити структуру періодів, додати інформацію про статус та фактичну дату завершення періоду
В поточній логіці роботи ЦБД endDate перезаписується при завершенні періоду (наприклад, при підтвердженні протоколу та переході до роботи з договором verificationPeriod.endDate змінюється на дату зміни статусу)

Розширення структури Period
"verificationPeriod": {
    "startDate": "2017-05-18T10:56:31.593993+03:00",
    "endDate": "2017-06-08T20:00:00+03:00"
    "status": 
    "dateMet": 
    }





  • No labels