<?php

namespace common\components\giro;

use common\components\giro\GiroBase;

/**
 *@property common\components\giro\GiroBeszedFej $fej
 *@property common\components\giro\GiroBeszedLab $lab
 *@property common\components\giro\GiroBeszedTetel[] $tetelek
 *
 */
class GiroBeszed extends GiroBase {
	
	public $fej;
	public $lab;
	public $tetelek = [];
	
	public function __construct() {
	}
	
	
	public static function createFileContent($number,$datum /**összeállítás dátum*/,   $requests,  $terhelesiDatum = null) {
		if ( !isset($terhelesiDatum)){
			$terhelesiDatum = date('Ymd' ,strtotime("+5 day"));
		}
		
		$s = self::createFej($number, $datum);
		$s .= self::createTetelek($requests,$terhelesiDatum);
		$s .= self::createLab($requests);
		return $s;
	}
	
	public static function createFej($number, $daturm) {
		$fej = new GiroBeszedFej ();
		$fej->duplumKod = \Yii::$app->params['ugiro_duplom_kod'];
		$fej->kezdemenyezoAzonosito = \Yii::$app->params['ugiro_kezdemenyezo_azonosito'];//"A25366936T244"; // "66658092128";
		$fej->uzenetSorszam->osszeallitasDatuma = $daturm;
		$fej->uzenetSorszam->sorszam = $number;
		$fej->kezdemenyezoBankszamla->szamlaszam = \Yii::$app->params['ugiro_kezdemenyezo_szamlaszam']; // "5860025215371128";
// 		$fej->kezdemenyezoBankszamla->bankszerv = "58600252"; // "TAKBHUHB";
		$fej->ertesitesiHatarido = "";
		$fej->kezdemenyezoCegNeve = \Yii::$app->params['company_name'];
		
		return $fej->toString ();
	}
	
	public static function createTetelek($requests,$terhelesiDatum){
		$s = "";
		$i = 0;
		foreach ($requests as $request){
			$i++;
			$s .= self::createTetel($request,$i,$terhelesiDatum);
		}
		return $s;
	}
	
	/**
	 * @param common\models\TicketInstallmentRequest $request
	 * */
	public static function createTetel($request,$sorszam,$terhelesiDatum) {
		$tetel = new GiroBeszedTetel ();
		$customer = $request->customer;
		$tetel->tetelSorszam = $request->number;
		$tetel->terhelesiDatum = $terhelesiDatum;
		$tetel->osszeg = $request->money;
// 		$tetel->kotelezettBankszamla->bankszerv = "58600252";
		$tetel->kotelezettBankszamla->szamlaszam = $customer->bank_account;
		$tetel->ugyfelazonositoAKezdemenyezonel =  $customer->id_customer;
// 		$tetel->ugyfelNeve = "Schneider Roland";
// 		$tetel->ugyfelCime = "Mosonmagyarovar, Gardonyi 31";
		$tetel->szamlaTulajdonosNeve = $customer->name;
		$tetel->kozlemeny = "Fitness berlet. Megbizas azon: " .    $request->id_ticket_installment_request;
		
		return  $tetel->toString();
	}
	
	public static function createLab($requests) {
		$lab = new GiroBeszedLab ();
		
		$osszeg = 0;
		foreach ($requests as $request ){
			$osszeg += $request->money;
		}
		
		$lab->tetelekOsszerteke = $osszeg;
		$lab->tetelekSzama = count($requests);
		
		return $lab->toString ();
	}
	
	
	public function toString( ) {
		$s = "";
		$s .= $this->fej->toString();
		
		foreach ($this->tetelek as $tetel ){
			$s .= $tetel->toString();
		}
		
		$s .= $this->lab->toString();
		return $s;
	}
	
}