/**
  * @param Command $commandSet
  * @return mixed[]
  */
 private static function getProvisionTotalList(ServiceContract $contract, int $type = NULL)
 {
     $provTotalArray = NULL;
     // compute data
     $provisions = $contract->getProvisionList(CommandSet::type_general, Command::type_general, $type);
     if (!empty($provisions)) {
         foreach ($provisions as $id => $prov) {
             // a provision
             $type = CommandProvision::$provisionNames[$prov->getType()];
             $budget_days = $prov->getProvisionDays();
             $budget = $prov->getProvisionBudget();
             // compute total per category
             $provDaysTotalArray["{$type}"] += $budget_days;
             $provBudgetTotalArray["{$type}"] += $budget;
             // compute total for all categories
             $globalDaysTotal += $budget_days;
             $globalBudgetTotal += $budget;
         }
         // prepare for the view
         $provTotalArray = array();
         foreach ($provDaysTotalArray as $type => $daysPerType) {
             $provTotalArray[$type] = array('type' => $type, 'budget_days' => $daysPerType, 'budget' => $provBudgetTotalArray[$type]);
         }
         $provTotalArray['TOTAL'] = array('type' => 'TOTAL', 'budget_days' => $globalDaysTotal, 'budget' => $globalBudgetTotal);
     }
     return $provTotalArray;
 }