<?php

$bussines_path = $_SERVER['DOCUMENT_ROOT'].'/bussines';

include_once($bussines_path.'/moduls/predracuni/generate_pdf.php');

if($_GET['id'])
{
	require('../config.php');
	require('../init.php');
}

class Billing {
	
	var $datacontainer = array();
	var $path;
	
	private $c = array(
		'db'            => 'coco-bussines',
		'table_kartice' => 'ord_kartice',
		'table_paypal'  => 'ord_paypal',
		'table_moneta'  => 'ord_moneta',
		'table_abanet'  => 'ord_abanet',
		'table_am'      => 'ord_american'
	);
	
	function Billing($conf = array())
	{
		foreach($conf as $set => $val) if($val) $this->c[$set] = $val;
		
		$this->path = $_SERVER['DOCUMENT_ROOT'] . "/sys/libs/";
	}
	
	function kartice_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		//Dodaj v kartice table..
		$ins = $db->query("
			INSERT INTO 
				`".$this->c['db']."`.`".$this->c['table_kartice']."`
				(`id_stranke`,`transaction_id`,`predracun_id`) 
			VALUES 
				('".$stranka->get('id')."','".$transakcija->get('id')."','".$predracun['id']."')
			;
		");
			
		return $ins->insertID();
	}
	
	function paypal_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		// dodaj v paypal table..
		$ins = $db->query("
			INSERT INTO 
				`".$this->c['db']."`.`".$this->c['table_paypal']."`
				(`id_stranke`,`transaction_id`,`predracun_id`) 
				VALUES 
				(
					'".$stranka->get('id')."',
					'".$transakcija->get('id')."',
					'".$predracun['id']."'
				)
		");
		
		return $ins->insertID();
	}
	
	function moneta_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		// dodaj v moneta table..
		$ins = $db->query("
			INSERT INTO 
				`".$this->c['db']."`.`".$this->c['table_moneta']."`
				(`id_stranke`,`transaction_id`,`predracun_id`) 
				VALUES 
				(
					'".$stranka->get('id')."',
					'".$transakcija->get('id')."',
					'".$predracun['id']."'
				)
			;
		");
		
		return $ins->insertID();
	}
	
	function abanet_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		// dodaj v abanet table..
		$ins = $db->query("
			INSERT INTO 
				`".$this->c['db']."`.`".$this->c['table_moneta']."` 
				(`id_stranke`,`transaction_id`,`predracun_id`) 
				VALUES 
				(
					'".$stranka->get('id')."',
					'".$transakcija->get('id')."',
					'".$predracun['id']."'
				)
			;
		");
		
		return $ins->insertID();
	}
	
	function am_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		//Dodaj v am table..
		$db->query("
			UPDATE 
				`ord_american` 
			SET 
				predracun_id='".$predracun['id']."' 
			WHERE 
				id='".$_SESSION['am_id']."'
			;
		");
		
		return $_SESSION['am_id'];
	}
	
	function paysafecard_izdaj()
	{
		global $db;
		global $transakcija;
		global $predracun;
		global $stranka;
		
		//Dodaj v paysafecard table..
		$ins = $db->query("
			INSERT INTO 
				`ord_paysafecard` 
				(`id_stranke`,`transaction_id`,`predracun_id`) 
				VALUES 
				(
					'".$stranka->get('id')."',
					'".$transakcija->get('id')."',
					'".$predracun['id']."'
				)
			;
		");
		
		return $ins->insertID();
	}
	
	function predracun_izdaj()
	{
		global $transakcija;
		global $bonusi;
		global $stranka;
		
		// preveri da je podana dostava
		if(
			!$stranka->get('dostava_naziv')  ||
			!$stranka->get('dostava_naziv2') ||
			!$stranka->get('dostava_kraj')   ||
			!$stranka->get('dostava_postna')
		)
		return 'Ni podanega partnerja oz. dobavitelja.';
		
		global $db;
		
		// zgenerira novo stevilko, ki je unique za vsak predracun
		$q = $db->query("
			SELECT 
				(stevilka+1) as stevilka 
			FROM 
				`coco-bussines`.`modul_predracuni`
			ORDER BY 
				stevilka DESC 
			LIMIT 0, 1
			;
		");
		
		$r = $q->fetch(MYSQL_ASSOC);
		$stevilka = $r['stevilka'];
		
		if(!$stevilka) $stevilka = 1;
		
		
		// nov predracun insert..
		$insert = $db->query("
			INSERT INTO 
				`coco-bussines`.`modul_predracuni`
				(`stevilka`) 
			VALUES 
				('".$stevilka."')
			;
		");
		
		$ID = $insert->insertID();
		
		$tbon = $transakcija->get('bon');
		
		$datum_izdaje = date('Y-m-d');
		
		$dni = 3;
		
		$datum_veljavnosti = date('Y-m-d', (time() + ($dni * 24 * 60 * 60)));
		
		// napolni podatke
		$db->query("
			UPDATE 
				`coco-bussines`.`modul_predracuni`
			SET 
				`opis`='Nakup v spletni trgovini',
				`datum`='".$datum_izdaje."',
				`valuta`='".$datum_veljavnosti."',
				`dobava`='".$dni." dni po nakazilu',
				`vnasalec`='0',
				`enotni_rabat`='0',
				`super_rabat`='0',
				`dobavitelj_naziv`='".$stranka->get('dostava_naziv')."',
				`dobavitelj_naziv2`='".$stranka->get('dostava_naziv2')."',
				`dobavitelj_naslov`='".$stranka->get('dostava_naslov')."',
				`dobavitelj_postna_st`='".$stranka->get('dostava_postna')."',
				`dobavitelj_posta`='".$stranka->get('dostava_kraj')."',
				`dobavitelj_drzava`='".$stranka->get('dostava_drzava')."',
				`dobavitelj_id_st`='".$stranka->get('id')."',
				`dobavitelj_zavezanec`=' ',
				`dobavitelj_telefon`='".$stranka->get('dostava_telefon')."',
				`dobavitelj_email`='".$stranka->get('email')."',
				`z_ddv`='',
				`zacetni_tekst`='',
				`koncni_tekst`='',
				`shranjeno`='1',
				`id_transakcije`='".$transakcija->get('id')."'
			WHERE 
				id='".$ID."' AND deleted<>1 
			LIMIT 1
			;
		");
		
		// dobi podatke o izdelkih za povezavo z ean
		$WHERE = '';
		foreach((array)$transakcija->get_orders() as $iid => $i)
		{
			if(
				$i['ean'] == 'zavijanje' ||
				$i['ean'] == 'strosek_dostave'
			) continue;
			
			$WHERE .= "z.`ean`='".$i['ean']."' OR ";
		}
		if($WHERE) $WHERE = 'AND ('.substr($WHERE, 0, -4).')';
		
		$qi = $db->query("
			SELECT 
				z.*, 
				i.*
			FROM
				`coco-bussines`.`modul_izdelki` i
				JOIN
				`coco-bussines`.`modul_izdelki_zaloga` z
				ON
				i.`id`=z.`izdelek_id`
			WHERE
				z.`deleted`<>1
				{$WHERE}
			;
		");
		
		$izd = array();
		
		while($r = $qi->fetch(MYSQL_ASSOC))
		{
			#preprint($r);
			$izd[$r['ean']] = $r;
		}
		
		#exit;
		
		// vnos izdelkov v predracun
		foreach((array)$transakcija->get_orders() as $r)
		{
			if(
				$r['ean'] == 'zavijanje' ||
				$r['ean'] == 'strosek_dostave'
			)
			{
				
				if(
					$r['ean'] == 'strosek_dostave' &&
					$tbon['vrsta'] == 3 // brezplacna dostava
				)
				{
					// ce je strosek dostave in uveljavljen bon brezplacne dostave
					// potem preskoci vnos
					continue;
				}
			
				$db->query("
					INSERT INTO 
						`coco-bussines`.`modul_predracuni_izdelki`
						(
							`predracuni_id`,
							`sifra`, 
							`naziv`, 
							`kolicina`, 
							`merska_enota`, 
							`nc_brez_ddv`, 
							`nc_z_ddv`, 
							`nv_brez_ddv`, 
							`nv_z_ddv`, 
							`popust_procent`, 
							`ddv`
						) 
						VALUES
						(
							'".$ID."',
							'".$r['sifra']."', 
							'".($r['ean']=='zavijanje'?'Zavijanje':'Strošek dostave')."', 
							'".$r['kolicina']."',
							'".$r['enota']."', 
							'".$r['cena']."', 
							'".DDV($r['cena'],$r['ddv'])."', 
							'".$r['cena']*$r['kolicina']."', 	
							'".DDV($r['cena'],$r['ddv'])*$r['kolicina']."', 
							'".$r['popust']."', 
							'".$r['ddv']."'
						)
					;
				");
				continue;
			}
			
			$insert_izdelek = $db->query("
				INSERT INTO 
					`coco-bussines`.`modul_predracuni_izdelki`
					(
						`predracuni_id`, 
						`izdelek_id`, 
						`id_kompleti`,
						`sifra`, 
						`naziv`,
						`kolicina`, 
						`merska_enota`, 
						`nc_brez_ddv`, 
						`nc_z_ddv`, 
						`nv_brez_ddv`, 
						`nv_z_ddv`, 
						`popust_procent`, 
						`ddv`,
						`vec_za_manj`,
						`atr1`,
						`atr2`
					) 
					VALUES
						(
						'".$ID."', 
						'".$izd[$r['ean']]['izdelek_id']."',
						'".$r['id_kompleti']."',
						'".$izd[$r['ean']]['sifra']."', 
						'".$izd[$r['ean']]['naziv']."', 
						'".$r['kolicina']."',
						'".$r['enota']."', 
						'".$r['cena']."', 
						'".DDV($r['cena'],$r['ddv'])."', 
						'".Obracunaj_Popust($r['cena'],$r['popust'])*$r['kolicina']."', 	
						'".DDV(Obracunaj_Popust($r['cena'],$r['popust']),$r['ddv'])*$r['kolicina']."', 
						'".$r['popust']."', 
						'".$r['ddv']."', 
						'".$r['vec_za_manj']."',
						'".$izd[$r['ean']]['atr1']."',
						'".$izd[$r['ean']]['atr2']."'
						)
				;
			");
			
			$izdpid = $insert_izdelek->insertID();
			
			// vnos kolicin za izdelke v predracunu
			$db->query("
				INSERT INTO 
					`coco-bussines`.`modul_predracuni_izdelki_kolicina`
					(`predracuni_id`, `predracuni_izdelek_id`, `koda`, `kolicina`, `ean`) 
				VALUES
					('".$ID."', '".$izdpid."', '".$izd[$r['ean']]['koda']."', '".$r['kolicina']."', '".$r['ean']."')
				;
			");
		}
		
		// vnos bonusov (ce so seveda)
		foreach((array)$transakcija->get('bonusi') as $bid)
		{
			$bonus = $bonusi->get($bid);
			$bonus_vrednost += $bonus['vrednost'];
		}
		
		$db->query("
			INSERT INTO 
				`coco-bussines`.`modul_predracuni_bonusi` 
				(
				`id_predracuni`, 
				`vrednost`, 
				`datum`
				)
			VALUES
				(
				'".$ID."',
				'".$bonus_vrednost."',
				'".date('Y-m-d')."'
				)
			;
		");
		
		// update porabljenih
		$bonusi->update($transakcija->get('bonusi'), array(
			'porabljen'      => 1,
			'id_transakcija' => $transakcija->get('id')
		));
		
		
		// vnos bonov...
		if($tbon)
		{
			
			if($tbon['vrsta'] == 1)  //denarna vrednost
				$vrednost_bona = $tbon['vrednost'].' &euro;';

			elseif($tbon['vrsta'] == 2) //procentualna vrednost
				$vrednost_bona = $tbon['vrednost'].' %';

			elseif($tbon['vrsta'] == 3) //brezplacna dostava
				$vrednost_bona = 'Brezplačna dostava';
		
			$db->query("
				INSERT INTO 
					`coco-bussines`.`modul_predracuni_boni` 
					(
					`id_predracuni`, 
					`vrednost`, 
					`datum`,
					`opis`,
					`koda`,
					`id_boni`,
					`vrsta`,
					`popust`
					)
				VALUES
					(
					'".$ID."',
					'".$vrednost_bona."',
					'".date('Y-m-d')."',
					'".$tbon['opis']."',
					'".$tbon['koda']."',
					'".$tbon['id']."',
					'".$tbon['vrsta']."',
					'".$tbon['vrednost']."'
					)
				;
			");
		}
		
		return array(
			'id'       => $ID,
			'stevilka' => $stevilka,
			'pdf'      => generate_pdf(true, $stevilka)
		);

	}

}

?>