<?php

	/*
	 * @author	Martijn Polak
	 * @since	3 aug 2004
	 * @name	General purpose hepler functions
	 */

	// Includes a component from the inc/components/ dir. The first argument can be an array containing all 
	// arguments (when called from a template) or just the component name (when called manually). When
	// calling manually use $param_b for all other variables.
	// Note: use template names without the .tpl extention.
	function include_component($param_a, $param_b = null) {
		
		global $componentSettings;
		global $globalSettings;
		global $g_obj_html;
		global $g_obj_ti3a0365;
		global $g_obj_tich0105;
		global $g_arr_css;

		if (!is_array($param_a) && is_array($param_b)) {
			$param_b['name'] = $param_a;
			$param_a = $param_b;
		}

		$file = $globalSettings->general->paths->absolute->inc.'components/'.$param_a['name'].'.php';

		if (file_exists($file)) {

			if ($param_a['template']) $param_a['template'] .= '.tpl';
			$componentSettings = $param_a;
			include $file;
			unset($componentSettings);

		}

	}

	function rs2arr(&$rs, $key_as_index=false, $single_row=false) {
	
		$new_arr = array();

		while ($r = $rs->row()) {

			$r = array_map('stripslashes', $r);

			if (count($r) == 1) {
				$value = current($r);
			} elseif (count($r) == 2 && $key_as_index !== false) {
				$tmp_r = $r;
				unset($tmp_r[$key_as_index]);
				$value = current($tmp_r);
			} else {
				$value = $r;
				
			}
			if ($key_as_index && isset($r[$key_as_index])) {
				$new_arr[$r[$key_as_index]] = $value;
			} else {
				$new_arr[] = $value;
			}		

			$rs->moveNext();
		}
		$rs->Close();

		return ($single_row) ? current($new_arr) : $new_arr;
	}


	function array_transpose($arr) {
		$new_arr = array();

		foreach ($arr as $sub_key => $sub_arr) {
			foreach ($sub_arr as $key => $value) {
				$new_arr[$key][$sub_key] = $value;
			}
		}

		return $new_arr;
	}


function fmt_plain_text($type, $data) {

	$return = '';

	switch ($type) {
		case 'handelsnaam':
			$return  = implode("\n",$data);

			break;

		case 'adres':
			foreach ($data as $d) {
				$return .= $d['adr_adres'] .' '.$d['adr_huisnummer'].' '.$d['adr_adrestoevoeging'] ."\n" .$d['adr_postcode'].' '.$d['adr_plaats'].($d['adr_type'] ? " (".$d['adr_type'].")":"")."\n";
			}

			break;

		case 'bedrijfsleiding':

			foreach ((array)$data as $d) {
				if (is_numeric($d['bct_bed_id_connect'])) {
					$return .= $d['bedrijf']['nam_beschrijving'] .' '.$d['bedrijf']['adr_plaats'] .' ('.$d['bedrijf']['bed_handelsregisternummer'] . ($d['bedrijf']['bed_subdossiernummer'] != '0000' ? ('.'.$d['bedrijf']['bed_subdossiernummer']) : '') .")\n";
				} else {
					$return .= $d['ctc_voorletters'] .' '.$d['ctc_tussenvoegsels'] .' '.$d['ctc_naam'] .($d['ctc_geboortedatum'] ? (' ('.$d['ctc_geboortedatum'].')') : '')."\n";
				}
				
			}

			break;

		case 'biknacecode':
			foreach ($data as $d) {
				$return .= $d['code'] .': '.$d['beschrijving'] ." (".strtoupper($d['type']).")\n";
			}
			break;

		case 'calamiteitcurator':

			foreach ((array)$data as $d) {
				$return .= $d['cur_naam'] .($d['cur_plaats'] ? ' - '.$d['cur_plaats'] : ''). ($d['cur_maatschap'] ? ' ('.$d['cur_maatschap'].')' : ''). " \n";
			}
			break;
		case 'bedrijf.relaties':
			foreach ($data as $d) {
				$return .= $d['nam_beschrijving'] . " (".$d['con_relatie'].")\n";
			}
			break;

		case 'kapitaal':
			$data = current($data);
			$return = ($data['kap_bedrag_maatschappelijk'] ? 'Maatschappelijk: &euro; '.number_format($data['kap_bedrag_maatschappelijk'],2, ',', '.')."\n" : '').
					  ($data['kap_bedrag_geplaatst'] ? 'Geplaatst: &euro; '.number_format($data['kap_bedrag_geplaatst'],2, ',', '.')."\n" : '').
					  ($data['kap_bedrag_gestort'] ? 'Gestort: &euro; '.number_format($data['kap_bedrag_gestort'],2, ',', '.')."\n" : '');

			break;
	
		case 'bedrijf':
			$return = $data['nam_beschrijving']
					. ($data['adr_plaats'] ? ' - '.$data['adr_plaats'] : '')
					. ' ('.$data['bed_handelsregisternummer'].($data['bed_subdossiernummer'] != '0000' ? ('.'.$data['bed_subdossiernummer']) : '').')';
			break;

		case 'bedrijf_full':

			$kvk = $data['bed_handelsregisternummer'];
			if ($kvk) {
				if (substr($kvk, 0, 2) != '99' && substr($kvk, 0, 2) != '98' && substr($kvk, 0, 2) != '97' ) {
					$kvk = 'KvK: '. $kvk;
				}
			}

			$return = $data['nam_beschrijving'] ."\n"
					. ($data['adr_adres'] ? $data['adr_adres'] ." ". $data['adr_huisnummer'] ." ". $data['adr_adres_huisnummer'] . "\n" : '')
					. (($data['adr_postcode'] || $data['adr_plaats']) ? $data['adr_postcode'] .' '.$data['adr_plaats'] ."\n" : '')
					. ($kvk ? $kvk ."\n" : '');

			break;


		case 'contactpersoon_full':

			$return = '';
			foreach ((array)$data as $d) {
				if (is_numeric($d['bct_bed_id_connect'])) {

					$kvk = $d['bedrijf']['bed_handelsregisternummer'];
					if ($kvk) {
						if (substr($kvk, 0, 2) != '99' && substr($kvk, 0, 2) != '98' && substr($kvk, 0, 2) != '97' ) {
							$kvk = 'KvK: '. $kvk;
						}
					}

					$return .= $d['bedrijf']['nam_beschrijving']."\n"
							. ($d['bedrijf']['adr_adres'] ? $d['bedrijf']['adr_adres'] ." ". $d['bedrijf']['adr_huisnummer'] ." ". $d['bedrijf']['adr_adres_huisnummer'] . "\n" : '')
							. (($d['bedrijf']['adr_postcode'] || $d['bedrijf']['adr_plaats']) ? $d['bedrijf']['adr_postcode'] .' '.$d['bedrijf']['adr_plaats'] ."\n" : '')
							. ($d['bedrijf']['lnd_beschrijving'] ? $d['bedrijf']['lnd_beschrijving']."\n" : '')	
							. ($kvk ? $kvk ."\n" : '')
							. ($d['bvd_beschrijving'] ? 'Bevoegdheid: '. $d['bvd_beschrijving'] .($d['bct_bedrag_bevoegd'] ? ' (tot: [EURO] '.number_format($d['bct_bedrag_bevoegd'],0,',','.').')' : '')."\n" : '')
							. ($d['fnc_beschrijving'] ? 'Functie: '. $d['fnc_beschrijving']."\n" : '')
							. ($d['bct_datum_in_dienst'] ? 'In functie: '. $d['bct_datum_in_dienst']."\n" : '')
							. ($d['bct_datum_uit_dienst'] ? 'Uit functie: '. $d['bct_datum_uit_dienst']."\n" : '')
								
							. "\n";
				} else {

					$return .= ($d['ctc_voornaam'] ? $d['ctc_voornaam'] : $d['ctc_voorletters']) . ' ' .($d['ctc_tussenvoegsels'] ? $d['ctc_tussenvoegsels'].' ' : '') . $d['ctc_naam'] ."\n"
							. ($d['ctc_adres'] ? $d['ctc_adres'] ."\n" : '')
							. (($d['ctc_postcode'] || $d['ctc_plaats']) ? $d['ctc_postcode'] .' '.$d['ctc_plaats'] ."\n" : '')
							. ($d['ctc_land'] ? $d['ctc_land'] ."\n" : '')
							. ($d['bvd_beschrijving'] ? 'Bevoegdheid: '. $d['bvd_beschrijving'] .($d['bct_bedrag_bevoegd'] ? ' (tot: [EURO] '.number_format($d['bct_bedrag_bevoegd'],0,',','.').')' : '')."\n" : '')
							
							. ($d['fnc_beschrijving'] ? 'Functie: '. $d['fnc_beschrijving']."\n" : '')
							. ($d['bct_datum_in_dienst'] ? 'In functie: '. $d['bct_datum_in_dienst']."\n" : '')
							. ($d['bct_datum_uit_dienst'] ? 'Uit functie: '. $d['bct_datum_uit_dienst']."\n" : '')
							. ($d['ctc_geboortedatum'] ? 'Geboren: '. $d['ctc_geboortedatum']."\n" : '')
								
							. "\n";
				}
				
			}
			
			return $return;

			break;

		case 'aandeelhouder_full':

			$return = '';
			foreach ((array)$data as $d) {
				if (is_numeric($d['ban_bed_id_connect'])) {

					$kvk = $d['bedrijf']['bed_handelsregisternummer'];

					if ($kvk) {
						if (substr($kvk, 0, 2) != '99' && substr($kvk, 0, 2) != '98' && substr($kvk, 0, 2) != '97' ) {
							$kvk = 'KvK: '. $kvk;
						}
					}

					$return .= $d['bedrijf']['nam_beschrijving']."\n"
							. ($d['bedrijf']['adr_adres'] ? $d['bedrijf']['adr_adres'] ." ". $d['bedrijf']['adr_huisnummer'] ." ". $d['bedrijf']['adr_adres_huisnummer'] . "\n" : '')
							. (($d['bedrijf']['adr_postcode'] || $d['bedrijf']['adr_plaats']) ? $d['bedrijf']['adr_postcode'] .' '.$d['bedrijf']['adr_plaats'] ."\n" : '')
							. ($d['bedrijf']['lnd_beschrijving'] ? $d['bedrijf']['lnd_beschrijving']."\n" : '')	
							. ($kvk ? $kvk ."\n" : '')
							. ($d['ban_actief_vanaf'] ? 'Actief vanaf: '. $d['ban_actief_vanaf']."\n" : '')
							. ($d['ban_percentage'] ? 'Percentage: '. $d['ban_percentage']."%\n" : '')
								
							. "\n";
				} else {

					$return .= $d['and_naam'] ."\n"
							. ($d['and_adres'] ? $d['and_adres'] ."\n" : '')
							. (($d['and_postcode'] || $d['and_plaats']) ? $d['and_postcode'] .' '.$d['and_plaats'] ."\n" : '')
							. ($d['ban_actief_vanaf'] ? 'Actief vanaf: '. $d['ban_actief_vanaf']."\n" : '')
							. ($d['ban_percentage'] ? 'Percentage: '. $d['ban_percentage']."%\n" : '')
								
							. "\n";
				}
				
			}
			
			return $return;

			break;

		case 'bank_info':

			$return = $data['bnk_naam'] ."\n"
					. ($data['bbk_nummer'] ? 'Rekening: '.$data['bbk_nummer']."\n" : '')
					. ($data['bbk_kredietfaciliteit'] && $data['bbk_krediet_hoogte'] > 0 ? 'Hoogte kredietbedrag: [EURO] '.number_format($data['bbk_krediet_hoogte'], 0,',','.')."\n" : '');

			break;

		case 'onroerend_goed':

			$return = '';
			foreach ((array)$data as $d) {
				$return .= ucwords($d['onr_onroerend_goed']) ."\n"
						. ($d['onr_oppervlakte'] ? 'Oppervlakte: '. $d['onr_oppervlakte']." m2\n" : '')
						. ($d['onr_hypotheek_bedrag'] ? 'Bedrag: [EURO] '. number_format($d['onr_hypotheek_bedrag'], 0,',','.')."\n" : '');
			}
			break;

		case 'accountant':

			$return = $data['acc_naam'] ."\n"
					. ($data['acc_plaats'] ? $data['acc_plaats']." \n" : '');
			
			break;


		case 'neven_vestigingen':
			$return = '';
			foreach ((array)$data as $d) {
				$return .= $d['nam_beschrijving'] .' (' . $d['bed_handelsregisternummer'] . ($d['bed_subdossiernummer'] != '0000' ? ('.'.$d['bed_subdossiernummer']) : '') .")\n"
						.  $d['adr_adres'] .' '.$d['adr_huisnummer'].' '.$d['adr_adrestoevoeging'] ."\n" 
						.  $d['adr_postcode'].' '.$d['adr_plaats']."\n\n";
			}

			break;

		case 'aansprakelijkheidsverklaring':
			$return = '';
			foreach ((array)$data as $d) {
				$return .= $d['bedrijf']['nam_beschrijving'] .' (' . $d['bedrijf']['bed_handelsregisternummer'] . ($d['bedrijf']['bed_subdossiernummer'] != '0000' ? ('.'.$d['bedrijf']['bed_subdossiernummer']) : '') .")\n"
						.  ($d['bedrijf']['adr_adres'] ? ($d['bedrijf']['adr_adres'] .' '.$d['bedrijf']['adr_huisnummer'].' '.$d['bedrijf']['adr_adrestoevoeging'] ."\n") : '') 
						.  ($d['bedrijf']['adr_plaats'] ? ($d['bedrijf']['adr_postcode'].' '.$d['bedrijf']['adr_plaats']."\n") : '')
						.  'Datum afgifte: '.$d['ans_datum_afgifte']."\n"
						.  'Vanaf: '.str_replace('01-01-','',$d['ans_datum_ingang'])."\n\n";

			}

			break;

		case 'instemmingsverklaring':
			$return = '';
			foreach ((array)$data as $d) {
				$return .= $d['bedrijf']['nam_beschrijving'] .' (' . $d['bedrijf']['bed_handelsregisternummer'] . ($d['bedrijf']['bed_subdossiernummer'] != '0000' ? ('.'.$d['bedrijf']['bed_subdossiernummer']) : '') .")\n"
						.  ($d['bedrijf']['adr_adres'] ? ($d['bedrijf']['adr_adres'] .' '.$d['bedrijf']['adr_huisnummer'].' '.$d['bedrijf']['adr_adrestoevoeging'] ."\n") : '')
						.  ($d['bedrijf']['adr_plaats'] ? ($d['bedrijf']['adr_postcode'].' '.$d['bedrijf']['adr_plaats']."\n") : '')
						.  'Datum afgifte: '.$d['inv_datum_afgifte']."\n"
						.  'Boekjaar: '.str_replace('01-01-','',$d['inv_boekjaar'])."\n\n";

			}

			break;

	}

	return trim($return);

}

function tpl_fmt_plain_text($params, &$smarty) {

	if ($params['type'] && $params['data']) {
		$txt = fmt_plain_text($params['type'], $params['data']);

		if ($params['assign']) {
			$smarty->assign($params['assign'], $txt);
		} else {
			echo $txt;
		}
	}
}

function tpl_print_organigram($params) {

	if ($params['first']) {
		echo '<ul class="relaties">';
	} else {
		echo '<ul>';
	}

	foreach ($params['data'] as $item) {
		echo '<li'.($params['highlight'] == $item['id'] ? ' class="highlight"' : '').'>'.$item['name'];
		if ($params['highlight'] != $item['id']) echo ' (<a target="_top" href="/bedrijf/'.$item['id'].'">kvk: '.$item['data']['bed_handelsregisternummer'].'</a>)';
		if ($item['children']) {
			tpl_print_organigram(array(	'data'		=> $item['children']
									,	'highlight'	=> $params['highlight']
								));
		}
		echo '</li>';
	}

	echo '</ul>';

}


function tpl_print_btn_bar($params) {


	$bar = '<a href="javascript:iapp_wnd_close('.$params['close'].');" class="btn_l"><img src="/img/icon/btn_win_close.png" alt="Sluiten" title="Sluiten"></a>';
	//<!--a href="" class="btn_l"><img src="/img/icon/btn_wins_close.png"></a-->
	if ($params['next']) $bar .= '<a href="javascript:iapp_wnd_close(\'go_next\', \''.$params['next'].'\');" class="btn_l"><img src="/img/icon/btn_win_next.png" alt="Volgende" title="Volgende"></a>';
	
	if (!$params['hide_all_save']) {

		$submit_check = $params['submit_check'] ? 'if('.$params['submit_check'].')' : '';
		if ($params['next'] && !$params['hide_save_next']) $bar .= '<a href="javascript:formSubmit(\'form_edit\', true, \'save_next\');" class="btn_r"><img src="/img/icon/btn_save_next.png" alt="Opslaan en volgende" title="Opslaan en volgende"></a>';
		if (!$params['hide_save_close']) $bar .= '<a href="javascript:'.$submit_check.'formSubmit(\'form_edit\', true, \'save_close\');" class="btn_r"><img src="/img/icon/btn_save_close.png" alt="Opslaan en sluiten" title="Opslaan en sluiten"></a>';
		if (!$params['hide_save']) $bar .= '<a href="javascript:'.$submit_check.'formSubmit(\'form_edit\', true, \'save\');" class="btn_r"><img src="/img/icon/btn_save.png" alt="Opslaan" title="Opslaan"></a>';

	}


	echo $bar;

}


function generate_query($tbl_name, $data, $key_field) {

	$fields = array();
	foreach ($data as $fld => $value) {
		if ($fld == $key_field) continue;
		$fields[] = $fld .' = ' . $value;
	}

	if (isset($data[$key_field]) && !empty($data[$key_field])) {
		//--- update
		$query = 'UPDATE '.$tbl_name.' SET ' . implode(', ',$fields) .' WHERE '.$key_field .' = '.$data[$key_field];
	} else {
		//--- insert
		$query = 'INSERT INTO '.$tbl_name.' SET ' . implode(', ',$fields);
	}

	return $query;
}

?>