コード例 #1
0
ファイル: Decoder.php プロジェクト: vdbelt/camt
 /**
  * @param SimpleXMLElement $statementXml
  * @param Statement $statement
  */
 private function addBalancesToStatement(SimpleXMLElement $statementXml, Statement $statement)
 {
     $balancesXml = $statementXml->Bal;
     foreach ($balancesXml as $balanceXml) {
         $amount = StringToUnits::convert((string) $balanceXml->Amt);
         $currency = (string) $balanceXml->Amt['Ccy'];
         $date = (string) $balanceXml->Dt->Dt;
         if ((string) $balanceXml->CdtDbtInd === 'DBIT') {
             $amount = $amount * -1;
         }
         if ((string) $balanceXml->Tp->CdOrPrtry->Cd === 'OPBD') {
             $balance = Balance::opening(new Money($amount, new Currency($currency)), new DateTimeImmutable($date));
         } else {
             $balance = Balance::closing(new Money($amount, new Currency($currency)), new DateTimeImmutable($date));
         }
         $statement->addBalance($balance);
     }
 }