condition.html.php 1.7 KB

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace zin;
  3. $buildCondition = function() use($stageInfo, $stageList, $lang, $config)
  4. {
  5. if(!$config->URAndSR) return;
  6. $stageCount = count($stageList);
  7. $totalStoryTd = $stageCount === 0 ? 4 : 3;
  8. $thead = h::thead
  9. (
  10. h::tr(h::th(set::colspan($stageCount + $totalStoryTd), $lang->milestone->demandStatus)),
  11. h::tr
  12. (
  13. h::th(set::rowspan('2'), $lang->milestone->storyUnit),
  14. $stageCount ? h::th(set::colspan($stageCount), setClass('text-center'), $lang->milestone->engineeringStage) : null,
  15. h::th(set::rowspan('2'), set::colspan(2), $lang->milestone->rateChange)
  16. ),
  17. $stageCount ? h::tr(array_map(function($stage){ return h::th(set::title($stage), $stage); }, $stageList)) : null
  18. );
  19. $rateNumber = '0%';
  20. if(count($stageInfo['after']) && current($stageInfo['after'])) $rateNumber = round((array_sum($stageInfo['change']) / current($stageInfo['origin'])) * 100, 2) . '%';
  21. $tbody = h::tbody
  22. (
  23. h::tr(h::th($lang->milestone->originalStory), $stageCount ? null : h::td(set::colspan(3)), array_map(function($key) use($stageInfo){ return h::td($stageInfo['origin'][$key]); }, array_keys($stageList)), h::td(set::colspan(2), set::rowspan(3), $rateNumber)),
  24. h::tr(h::th($lang->milestone->modifyNumber), array_map(function($key) use($stageInfo){ return h::td($stageInfo['after'][$key]); }, array_keys($stageList))),
  25. h::tr(h::th($lang->milestone->changeStory), array_map(function($key) use($stageInfo){ return h::td($stageInfo['change'][$key]); }, array_keys($stageList)))
  26. );
  27. return h::table(setClass('table bordered bg-white mb-4 text-left'), $thead, $tbody);
  28. };