<?php

namespace Kufer\Web\KuferTools\Dozent\HonorarBfi\HonorarUebersicht;

class HonorarUebersichtView extends \Kufer\Web\KuferTools\Basis\View\ViewSight
{
  public function getTemplatePathRelative()
  {
    return 'dozent/honorarbfi/honoraruebersicht.sgt';
  }

  public function getDefaultDataModulArray()
  {
    $dm = new \Datamodul();
    $dm->reklamationsgruende = $this->viewModel->reklamationsgruende;
    $dm->reklamationsgruendeJson = \StringOperations::htmlentities(\JsonOperations::encode($this->viewModel->reklamationsgruende));
    return array($dm);
  }

  public function getBodyDataModulArray()
  {
    
    $honorardaten = array();
    foreach($this->viewModel->honorardaten as $datum=>$abrechnungArray) {
      $dm = new \Datamodul();
      $dm->datum = $datum;
      $datumObj = new \DateObj($datum);
      $dm->monatUndJahr = $datumObj->getMonthNameAustria() . ' ' . $datumObj->getYear();
      $betrag = 0;
      foreach($abrechnungArray as $abrechnung) {
        
        
        $abrechnung->betrag = \MathOperations::floatToString($abrechnung->honorarabrechnung->betrag);
        $abrechnung->text = $abrechnung->honorarabrechnung->text;
        $abrechnung->datum = $abrechnung->honorarabrechnung->datum;
        $abrechnung->datum_von = $abrechnung->honorarabrechnung->datum_von;
        $abrechnung->zahlnummer = $abrechnung->honorarabrechnung->zahlnummer;
        $abrechnung->storniert = $abrechnung->honorarabrechnung->storniert;
        $abrechnung->reklamiert = !\DateTimeOperations::isEmptyOrDefault($abrechnung->honorarabrechnung->reklamation_dat);

        if (!$abrechnung->storniert) {
          $betrag += $abrechnung->honorarabrechnung->betrag;
        }

        foreach($abrechnung->zahlungen as $key=>$zahlung) {
          $zahlung->knr = $zahlung->kurs->id;
          $zahlung->kurstitel = $zahlung->kurs->kurzbez;
          $zahlung->deputatname = $zahlung->deputat->titel;
          $zahlung->deputatid = $zahlung->deputat->id;
          $zahlung->zahlungsids = implode('_', \ArrayOperations::mapAttribut($zahlung->zahlungen, 'id'));
          $zahlung->zahlungSumme = \MathOperations::floatToString($zahlung->zahlungSumme);
        }
      }
      $dm->betrag = \MathOperations::floatToString($betrag);
      $dm->abrechnungen = $abrechnungArray;
      $dm->anzahlAbrechnungen = count($abrechnungArray);

      $honorardaten[] = $dm;
    }

    return $honorardaten;
  }


}

class HonorarUebersichtViewModel
{
  public $honorardaten;
  public $reklamationsgruende;
}