<?php 
if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}
require_once("./vendor/autoload.php");
require_once("invoice_helpers.php");

if($_SERVER['REQUEST_METHOD'] === "OPTIONS"){ echo json_encode(array("1")); exit(1); }

function returnInEuros($amount){
	return number_format($amount, 2, ".", ",");
}

/* priprema podataka */
$data = $_POST;

/* ===== PODACI OPĆENITO ====== */
$jezik = $data['jezik'];
$generate_signing_spot = (isset($_POST["generate_signing_spot"]) && $_POST["generate_signing_spot"] == "1")? $_POST["generate_signing_spot"] : false;

/*===== ZAGLAVLJE, PODACI O IZDAVACU RACUNA I KUPCU ======*/
$logo = (isset($data['logo']) && $data['logo']!="")? $data['logo'] : false;
$vrsta = $data['vrsta'];
$broj_dokumenta = $data['broj_dokumenta'];
$datum_kreiranja = $data['datum_kreiranja'];
$datum_isporuke = $data['datum_isporuke'];
$rok_placanja = $data['rok_placanja'];

$kupac_naziv = (isset($data['kupac']['naziv']) && $data['kupac']['naziv']!="")? $data['kupac']['naziv'] : false ;
$kupac_adresa = (isset($data['kupac']['adresa']) && $data['kupac']['adresa']!="")? $data['kupac']['adresa'] : false ;
$kupac_postanski_broj_i_mjesto = (isset($data['kupac']['postanski_broj_i_mjesto']) && $data['kupac']['postanski_broj_i_mjesto']!="")? $data['kupac']['postanski_broj_i_mjesto'] : false ;
$kupac_oib = (isset($data['kupac']['oib']) && $data['kupac']['oib']!="")? $data['kupac']['oib'] : false ;

$izdavac_racuna_naziv = (isset($data['izdavac_racuna']['naziv']))? $data['izdavac_racuna']['naziv'] : "" ;
$izdavac_racuna_adresa = (isset($data['izdavac_racuna']['adresa']))? $data['izdavac_racuna']['adresa'] : "" ;
$izdavac_racuna_postanski_broj_i_mjesto = (isset($data['izdavac_racuna']['postanski_broj_i_mjesto']))? $data['izdavac_racuna']['postanski_broj_i_mjesto'] : "" ;
$izdavac_racuna_oib = (isset($data['izdavac_racuna']['oib']))? $data['izdavac_racuna']['oib'] : "" ;
$izdavac_racuna_id_agencije = (isset($data['izdavac_racuna']['id_agencije']))? $data['izdavac_racuna']['id_agencije'] : false ;

$payment_currency = $data['valuta_placanja'];

/* ===== PODACI O PLAĆANJU ====== */
$valuta = $data['valuta'];
$racun_izdao = $data['racun_izdao'];
$iban = $data['iban'];
$swift = $data['swift'];

/* ===== OPĆI PODACI ====== */
$opci_podaci_web_stranica = $data['opci_podaci']['web_stranica'];
$opci_podaci_telefon = $data['opci_podaci']['telefon'];
$opci_podaci_mobilni = $data['opci_podaci']['mobilni'];
$opci_podaci_email = $data['opci_podaci']['email'];
$opci_podaci_disclaimer = $data['opci_podaci']['disclaimer'];
$opci_podaci_sjediste = $data['opci_podaci']['sjediste'];

/* ===== POSLOVNICA ====== */
$poslovnica_naziv = $poslovnica_adresa  = $poslovnica_postanski_broj_i_mjesto = $poslovnica_broj_tel = false;
if(isset($data['poslovnica']) && $data['poslovnica']){
	$poslovnica_naziv = $data['poslovnica']['naziv'];
	$poslovnica_adresa = $data['poslovnica']['adresa'];
	$poslovnica_postanski_broj_i_mjesto = $data['poslovnica']['postanski_broj_i_mjesto'];
	$poslovnica_broj_tel = $data['poslovnica']['broj_tel'];
}

/* ===== IZNAJMLJIVAC ====== */
$iznajmljivac_naziv = $iznajmljivac_adresa = $iznajmljivac_postanski_broj_i_mjesto = $iznajmljivac_oib = false;
if(isset($data['iznajmljivac']) && !empty($data['iznajmljivac'])){
	$iznajmljivac_naziv = $data['iznajmljivac']['naziv'];
	$iznajmljivac_adresa = $data['iznajmljivac']['adresa'];
	$iznajmljivac_postanski_broj_i_mjesto = $data['iznajmljivac']['postanski_broj_i_mjesto'];
	$iznajmljivac_oib = $data['iznajmljivac']['oib'];
}

$rezervacije = [];
/* ===== RESERVATIONS ====== */
if(isset($data['rezervacije']) && !empty($data['rezervacije'])){
	$rezervacije = $data['rezervacije'];
}

$napomene = $data['napomene'];

/* ===== KALKULACIJE ====== */

$iznos_hrk = floatval($data['iznos']) ;
$iznos_eur = (isset($data['iznos_eur']))? floatval($data['iznos_eur']) : false ;
$iznos = [
	'HRK' => $iznos_hrk,
	'EUR' => $iznos_eur
];

$obracun = obracun_za_najmodavca($iznos , $data['provizija'], $data['pdv_na_proviziju']);

$bruto_iznos = $obracun["HRK"]['bruto_iznos'];
$agencijska_provizija_postotak = $obracun["HRK"]['agencijska_provizija_postotak'];
$pdv_na_proviziju = $obracun["HRK"]['pdv_na_proviziju'];
$agencijska_provizija_iznos = $obracun["HRK"]['agencijska_provizija_iznos'];
$pdv_na_proviziju_iznos = $obracun["HRK"]['pdv_na_proviziju_iznos'];
$ukupno_odbici = $obracun["HRK"]['ukupno_odbici'];
$iznos_za_isplatu = $obracun["HRK"]['iznos_za_isplatu'];

$bruto_iznos_eur = $obracun["EUR"]['bruto_iznos'];
$agencijska_provizija_postotak_eur = $obracun["EUR"]['agencijska_provizija_postotak'];
$pdv_na_proviziju_eur = $obracun["EUR"]['pdv_na_proviziju'];
$agencijska_provizija_iznos_eur = $obracun["EUR"]['agencijska_provizija_iznos'];
$pdv_na_proviziju_iznos_eur = $obracun["EUR"]['pdv_na_proviziju_iznos'];
$ukupno_odbici_eur = $obracun["EUR"]['ukupno_odbici'];
$iznos_za_isplatu_eur = $obracun["EUR"]['iznos_za_isplatu'];


$prva_valuta = $data['valuta_placanja'] ;
$dvb = $payment_currency === "EUR" ;

if($dvb) {
	$druga_valuta = "HRK" ;
}


/* ======= OSTALO ========= */
$broj_posrednickog_racuna = (isset($data['broj_posrednickog_racuna']) && $data['broj_posrednickog_racuna']!="")? $data['broj_posrednickog_racuna'] : "0";

/* logo */
$logo_path = $logo;
$logo_type = pathinfo($logo_path, PATHINFO_EXTENSION);
$logo_data = file_get_contents($logo_path);
$logo_base64 = 'data:image/' . $logo_type . ';base64,' . base64_encode($logo_data);

ob_start();
?><!DOCTYPE html>
<html>
	<head>
		<title>Obračun za najmodavca</title>
		<meta http-equiv="Content-Type" content="text/html; charset=Windows-1250"/>
		<link rel="stylesheet" type="text/css" href="style/style.css" />
	</head>
	
<body>
	<script type='text/php'>
		if ( isset($pdf) ) { 
			$size = 9;
			$y = $pdf->get_height() - 30;
			$x = $pdf->get_width() - 60 - 9;
			$pdf->page_text($x, $y,'{PAGE_NUM}/{PAGE_COUNT}', 'helvetica', $size);
		} 
    </script>
    <table class="first-section" border="0">
		<tr>
			<td style="vertical-align: top;" >
				<p class="invoice-number"><?=$vrsta?>: <?=$broj_dokumenta?></p>
				<div class="dates">
					<div class="datum font-med">
						<span class="datum-1 font-normal">Datum kreiranja</span>
						<span class="date-value font-normal"><?=$datum_kreiranja?></span>
					</div>
				</div>
			</td>
			<td style="vertical-align: top; text-align: right; " >
				<img src="<?=$logo_base64?>" class="logo" alt="<?=$izdavac_racuna_naziv?>" />
			</td> 
		</tr>
		<tr>
			<td style="vertical-align: top;">
				<div class="seller-info">
					<p class="font-small weight-small">Račun izdao :</p>
					<p class="font-normal">
						<b><?=$izdavac_racuna_naziv?></b>
					</p>
					<p class="font-small weight-small"><?=$izdavac_racuna_adresa.", ".$izdavac_racuna_postanski_broj_i_mjesto?></p>
					<p class="font-normal">OIB:<span class="weight-high"><b><?=$izdavac_racuna_oib?></b></span></p>
					<?php if($izdavac_racuna_id_agencije){ ?>
					<p class="font-normal">ID:<span class="weight-small"><?=$izdavac_racuna_id_agencije?></span></p>
					<?php } ?>

				</div>
			</td>
			<td style="vertical-align: top; ">
				<div class="buyer-info">
					<p class="font-small weight-small">Kupac :</p>
					<p class="weight-high font-normal"><b><?=$kupac_naziv?></b></p>
					<p class="font-normal weight-small">
						<?=($kupac_adresa)? $kupac_adresa : ""?>
						<?=($kupac_adresa&&$kupac_postanski_broj_i_mjesto)? ", " : "" ?>
						<?=($kupac_postanski_broj_i_mjesto)? $kupac_postanski_broj_i_mjesto : "" ?></p>
					<p class="font-normal">
						<?php if($kupac_oib){  ?>
						OIB:<span class="weight-high"><b><?=$kupac_oib?></b></span>
						<?php } ?>
					</p>
				</div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: top; ">
				<?php if($poslovnica_naziv){ ?>
				<div class="office-and-owner">
					<p>Poslovnica :</p>
					<p><b><?=$poslovnica_naziv?></b></p>
					<p ><?=$poslovnica_adresa.", ".$poslovnica_postanski_broj_i_mjesto?></p>
					<p >Tel: <?=$poslovnica_broj_tel?></p>
				</div>
				<?php
				}

				if($iznajmljivac_naziv){ ?>
				<div class="office-and-owner">
					<p>Iznajmljivač :</p>
					<p><b><?=$iznajmljivac_naziv?></b></p>
					<p ><?=$iznajmljivac_adresa.", ".$iznajmljivac_postanski_broj_i_mjesto?></p>
					<p >OIB: <?=$iznajmljivac_oib?></p>
				</div>
				<?php } ?>
			</td>
		</tr>
	</table>
	<!-- second section -->
	<p class="font-normal weight-small" >Posrednički račun:<b> <?=$broj_posrednickog_racuna?></b></p>
	<p class="font-normal weight-small">Detalji o najmodavcu</p>
	<table 	class="second-section obracun-table">
		<tr>
			<td> 
				Ime
			</td>
			<td> 
				<?=$iznajmljivac_naziv?>
			</td>
		</tr>
		<tr>
			<td> 
				Adresa
			</td>
			<td> 
				<?=$iznajmljivac_adresa?>, <?=$iznajmljivac_postanski_broj_i_mjesto?>
			</td>
		</tr>
		<tr>
			<td> 
				OIB
			</td>
			<td> 
				<?=$iznajmljivac_oib?>
			</td>
		</tr>
	</table>
	<!-- reervacije -->
	<p class="font-normal weight-small">Detalji o rezervaciji</p>
	<table 	class="second-section obracun-table detalji-rez">
		<tr>
			<td> 
				Ime i prezime
			</td>
			<td> 
				Objekt
			</td>
			<td> 
				Smještajna jedinica
			</td>
			<td> 
				Period od - do
			</td>
		</tr>
		<?php 
			foreach($rezervacije as $reserv){
				$start_date = date_format(new DateTime($reserv['reservation_start_date']),"d.m.Y");
				$end_date = date_format(new DateTime($reserv['reservation_end_date']),"d.m.Y");
		?>
		<tr>
			<td> 
				<?=$reserv['reservation_name']?> <?=$reserv['reservation_surname']?>
			</td>
			<td> 
				<?=$reserv['property_name']?>
			</td>
			<td> 
				<?=$reserv['unit_name']?>
			</td>
			<td> 
				<?=$start_date?> - <?=$end_date?>
			</td>
		</tr>
		<?php } ?>
	</table>
	<!-- third section -->
	<p class="font-normal weight-small">Obračun</p>
	<table 	class="second-section obracun-table obracun-kalk">
		<tr>
			<td> Opis </td>
			<td> Iznos</td>
		</tr>
		<tr>
			<td> Bruto iznos </td>
			<td> 
				<?=returnInEuros($obracun[$prva_valuta]['bruto_iznos'])?> <?=$prva_valuta?> <br>
				<?php if($dvb){ ?> 
				<small><?=returnInEuros($obracun[$druga_valuta]['bruto_iznos'])?> <?=$druga_valuta?> </small>
				<?php } ?>
			</td>
		</tr>
		<tr>
			<td> Agencijska provizija postotak </td>
			<td> <?=returnInEuros($agencijska_provizija_postotak)?>% </td>
		</tr>
		<tr>
			<td> Agencijska provizija iznos (<?=returnInEuros($agencijska_provizija_postotak)?>%) </td>
			<td> 
				<?=returnInEuros($obracun[$prva_valuta]['agencijska_provizija_iznos'])?> <?=$prva_valuta?> <br>
				<?php if($dvb){ ?> 
				<small><?=returnInEuros($obracun[$druga_valuta]['agencijska_provizija_iznos'])?> <?=$druga_valuta?> </small>
				<?php } ?>
			</td>

		</tr>
		<tr>
			<td> <?=returnInEuros($pdv_na_proviziju)?>% PDV na proviziju </td>
			<td> 
				<?=returnInEuros($obracun[$prva_valuta]['pdv_na_proviziju_iznos'])?> <?=$prva_valuta?> <br>
				<?php if($dvb){ ?> 
				<small><?=returnInEuros($obracun[$druga_valuta]['pdv_na_proviziju_iznos'])?> <?=$druga_valuta?> </small>
				<?php } ?>
			</td>
		</tr>
		<tr>
			<td> Ukupno odbici </td>
			<td> 
				<?=returnInEuros($obracun[$prva_valuta]['ukupno_odbici'])?> <?=$prva_valuta?> <br>
				<?php if($dvb){ ?> 
				<small><?=returnInEuros($obracun[$druga_valuta]['ukupno_odbici'])?> <?=$druga_valuta?> </small>
				<?php } ?>
			</td>
		</tr>
		<tr>
			<td> Iznos za isplatu </td>
			<td> 
				<?=returnInEuros($obracun[$prva_valuta]['iznos_za_isplatu'])?> <?=$prva_valuta?> <br>
				<?php if($dvb){ ?>
				<small><?=returnInEuros($obracun[$druga_valuta]['iznos_za_isplatu'])?> <?=$druga_valuta?> </small>
				<?php } ?>
			</td>
		</tr>
		
	</table>
	<br>
	<?php 
		foreach ($napomene as $note) {
			?><p class="font-xsmall"><?=$note?></p><?php
		}
	?>
	<br>
	<br>
	<div class="company-info" style="page-break-inside: avoid;">
		<table class="first-info-line font-xsmall">
			<tr>
				<td>
					Naše adrese<br>
					Sjedište: <?=$opci_podaci_sjediste?><br>
					Internet: <?=$opci_podaci_web_stranica?>
				</td>
				<td>
					Pravni podaci:<br>
					OIB: <?=$izdavac_racuna_oib?><br>
					IBAN: <?=$iban?><br>
					SWIFT: <?=$swift?>
				</td>
				<td>
					Kontakt<br>
					Telefon: <?=$opci_podaci_telefon?><br>
					Mobilni: <?=$opci_podaci_mobilni?><br>
					E-mail: <?=$opci_podaci_email?>
				</td>
			</tr>
		</table>
		<p class="font-xsmall bottom-disclaimer">
			<?=$opci_podaci_disclaimer?>
		</p>
	</div>
</body>
</html>
<?php

$html = ob_get_clean();
if(!isset($_POST['debug'])){
	$options = new Dompdf\Options();
	$options->set('isHtml5ParserEnabled', true);
	$options->set('isPhpEnabled', true);

	$dompdf = new Dompdf\Dompdf($options);
	$dompdf->loadHtml($html);
	$dompdf->setPaper('A4', 'portrait');
	$dompdf->render();
	$file_name = $izdavac_racuna_oib."-".str_replace([" ",".","/","\\"], "-", $broj_dokumenta);
	$dompdf->stream($file_name);
} else {
	echo $html;
}

?>

