Exemple #1
0
 /**
  * @param DTO\Record       $record
  * @param SimpleXMLElement $xmlRecord
  */
 public function addBalances(DTO\Record $record, SimpleXMLElement $xmlRecord)
 {
     $xmlBalances = $xmlRecord->Bal;
     foreach ($xmlBalances as $xmlBalance) {
         $amount = StringToUnits::convert((string) $xmlBalance->Amt);
         $currency = (string) $xmlBalance->Amt['Ccy'];
         $date = (string) $xmlBalance->Dt->Dt;
         if ((string) $xmlBalance->CdtDbtInd === 'DBIT') {
             $amount = $amount * -1;
         }
         if (isset($xmlBalance->Tp) && isset($xmlBalance->Tp->CdOrPrtry) && (string) $xmlBalance->Tp->CdOrPrtry->Cd === 'OPBD') {
             $balance = DTO\Balance::opening(new Money($amount, new Currency($currency)), new DateTimeImmutable($date));
         } else {
             $balance = DTO\Balance::closing(new Money($amount, new Currency($currency)), new DateTimeImmutable($date));
         }
         $record->addBalance($balance);
     }
 }