HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/test.creativefellows.nl/ergatis/src/ClientAanmelding.php
<?php
	
	/**
	* Description
	*/
	class ClientAanmelding
	{
		private $connection;
		private $settings;
		private $mysql_host = "localhost";
		private $mysql_user	= "tomas_spdb";
		private $mysql_pass	= "Gzdw626_";
		private $mysql_db	= "tomassen_sitagreportal";
		private $debug		= false;
				
		
		function __construct($settings = null)
		{
			$this->settings	= $settings;
		}			
		
		private function connectDB()
		{
			if($this->debug == true) return;
			
			$con = mysqli_connect($this->mysql_host, $this->mysql_user, $this->mysql_pass, $this->mysql_db);
			mysqli_set_charset($con,"utf8");
			
		    if($con) $this->connection = $con;
			else die('Could not connect to database!');
	   
		 	return $this->connection;
		}

		
		public function closeDB()
		{
			if($this->debug == true) return;
		    mysqli_close($this->connection);
		}


		private function esc($escape)
		{
			if($this->debug == true) return $escape;
			
			return mysqli_real_escape_string($this->connection,$escape);
		}	
		
		
		private function insertDb($table, $data)
		{
			$cols = '';
			$vals = '';
	
			foreach($data as $k => $v)
			{
				$cols .= "," . $this->esc($k);
				$vals .= ",'" . $this->esc($v)."'";
			}
			$cols = substr($cols, 1);
			$vals = substr($vals, 1);
			
			$sql = "INSERT INTO " . $table . " (" . $cols . ") VALUES (" . $vals . ")";
			
			if($this->debug == true)
			{
				echo $sql."<br /><br />";
				return;
			}
				
			$query 	= mysqli_query($this->connection, $sql) or die( "Error:". mysqli_error($this->connection)." | Query : ". $sql);	
	
			return mysqli_insert_id($this->connection);			
		}
		
		
		public function run($query, $return_as_array = true,$debug = false)
		{
			if($this->debug == true)
			{
				echo $sql."<br /><br />";
				return;
			}
		
			$data 	= array();
			$result = mysqli_query($this->connection, $query) or die( "Error:". mysqli_error($this->connection)." | Query : ". $query);	
				
			if(!$result) return null;
		
			while($row = mysqli_fetch_assoc($result)){
				array_push($data,$row);
		    }

			if($return_as_array == true) return $data;
			else return $data[0];
				
		}
		
		public function fieldName($str)
		{
			if(is_array($str)) return;
			
			else return preg_replace("/[-]+/","_",preg_replace("/[^0-9a-zA-Z-#\/]/",'_', strtolower($str)));
		}	
		
		
		public function getField($f)
		{
			
			$alt_lbl = (isset($f[3])) ? '<span class="alt-label">'.$f[3].'</span>' : '';
			
			$fieldname = $this->fieldName($f[0]);
		
			switch($f[2]){
			
				case "lbl":
				
					$aanm_form .= '<div class="form-row">';
						$aanm_form .= '<h3>'.$f[0].'</h3>';
					$aanm_form .= '</div>';
				
				break;
			
				case "radio":
			
					$aanm_form .= '<div class="form-row">';
						$aanm_form .= "<label class='legend'>".$f[1]."</label>";		
					
						$aanm_form .= "<div class='input-wrapper'>";
						foreach($f[3] as $i => $o){
							$checked = ($i == 0) ? " checked" : null;
							$aanm_form .= '<span class="floatleft"><input type="radio" name="'.$fieldname.'" value="'.$i.'" id="'.$fieldname.$i.'" '.$checked.' /> <label for="'.$fieldname.$i.'">'.$o.'</label></span>';
						}
						$aanm_form .= "</div>";
						
					
					$aanm_form .= '</div>';
					
				break;
			
				case "checkbox":
			
					$aanm_form .= '<div class="form-row">';
						$aanm_form .= "<label class='legend'>".$f[1]."</label>";		
					
						$aanm_form .= "<div class='input-wrapper'>";
						foreach($f[3] as $i => $o){
							$aanm_form .= '<span class="floatleft"><input type="checkbox" name="'.$fieldname.'[]" value="'.$o.'" id="'.$fieldname.$i.'" /> <label for="'.$fieldname.$i.'">'.$o.'</label></span>';
						}
						$aanm_form .= "</div>";
					
					$aanm_form .= '</div>';
					
				break;
			
				case "select":
				
					$aanm_form .= '<div class="form-row">';
						$aanm_form .= "<label class='legend'>".$f[1]."</label>";		
					
						$aanm_form .= "<div class='input-wrapper'>";
						$aanm_form .= '<select name="'.$fieldname.'" id="'.$fieldname.'">';
						foreach($f[3] as $i => $o){
							// fieldgroup
							if(!is_array($o)){
							 	$aanm_form .= '<option value="0">'.$o.'</option>';
							//	$aanm_form .= '<optgroup label="'.$o.'">';
							
							}
							else{		
																			
								// group 
								foreach($o as $group){
							
									// options
									$is_open = false;
									foreach($group as $x => $option){
									
										if(!is_array($option)){
											$is_open = true;
											$aanm_form .= '<optgroup label="'.$option.'">';
										}
									
										else{
											$aanm_form .= '<option value="'.$option[0].'">'.$option[0].'</option>';
										}
										// close option group
										if(($x+1) == count($group) && $is_open == true) $aanm_form .= '</optgroup>';
									
									}
							
								}

							}
						}
						$aanm_form .= '</select>';
						$aanm_form .= "</div>";
						
					
					$aanm_form .= '</div>';
					
				break;
			
	
				case "select_custom":
				
					$aanm_form .= '<div class="form-row" id="fieldset-'.$this->fieldName($f[1]).'">';
					
						$aanm_form .= '<label class="legend">'.$f[1].'</label>';
						$aanm_form .= '<div class="input-wrapper">';
						
							$aanm_form .= '<input type="hidden" name="'.$fieldname.'_name" id="'.$fieldname.'_name" value="0">';
							$aanm_form .= '<input type="hidden" name="'.$fieldname.'" id="'.$fieldname.'" value="0">';
					
							$aanm_form .= '<div class="form-text fake-input not-selected">'. $f[4] .'</div>';
						
							$aanm_form .= '<div class="fake-input-values hidden" id="values-'. uniqid() .'">';
							$aanm_form .= '<ul class="fake-input-selector">';
						
							foreach($f[3] as $i => $productgroep){
							
								// product groepen
								$aanm_form .= '<li class="header">';
									$aanm_form .= '<span>'. $productgroep[0] . '</span>';
									if($productgroep[2]) $aanm_form .= '<a href="#" class="extra-info" rel="'.$productgroep[2].'"></a>';
								$aanm_form .= '</li>';

								// product opties
								foreach($productgroep[1] as $producten){
							
									if( is_array($producten[1]) ){		
													
										$aanm_form .= '<li class="header-subgroup">';
											//$aanm_form .= '<a href="#" class="toggle-option">'. $producten[0] . '</a>';
											$aanm_form .= '<span class="toggle-option">'. $producten[0] . '</span>';
											$aanm_form .= '<div class="subgroup2">';	//style="display:none;"										
												foreach($producten[1] as $sub_option){
													$aanm_form .= '<div class="list-option">';
														$aanm_form .= '<a href="#" rel="'. $sub_option[0] .'" class="option">'. $sub_option[1] .'</a>';
														if($sub_option[2]) $aanm_form .= '<a href="#" class="extra-info" rel="'.$sub_option[2].'"></a>';
													$aanm_form .= '</div>';
												}
											
											$aanm_form .= '</div>';
										$aanm_form .= '</li>';
									
									}
									else{
								
										$aanm_form .= '<li>';
											$aanm_form .= '<a href="#" rel="'. $producten[0] .'" class="option">'. $producten[1] .'</a>';
											if($producten[2]) $aanm_form .= '<a href="#" class="extra-info" rel="'.$producten[2].'"></a>';
										$aanm_form .= '</li>';
																		
									}
								}
								
								
							}
							$aanm_form .= '</ul>';
							$aanm_form .= '</div>';
						$aanm_form .= '</div>';
				
				
					$aanm_form .= "</div>";
			
				break;
			
				case "datum":
	
					$fieldname = $fieldname;
					$aanm_form .= '<div class="form-row">';

						$aanm_form .= '<label class="legend">'.$f[1].$alt_lbl.'</label>';		
						$aanm_form .= "<div class='input-wrapper'>";
							$aanm_form .= '<input type="text" name="'. $fieldname .'-dd" class="form-text date" autocomplete="off" placeholder="dd" maxlength="2" />';
							$aanm_form .= '<input type="text" name="'. $fieldname .'-mm" class="form-text date" autocomplete="off" placeholder="mm" maxlength="2" />';
							$aanm_form .= '<input type="text" name="'. $fieldname .'-jjjj" class="form-text date" autocomplete="off" placeholder="jjjj" maxlength="4" />';
						$aanm_form .= '</div>';

					$aanm_form .= "</div>";
				
				break;
				
				case "hidden":
	
					$aanm_form .= '<input type="hidden" name="'. $fieldname .'" value="'. $f[3] .'"/>';
				
				break;
				
				case "ideal_banks":
				
					$aanm_form .= '<div class="form-row">';
						$aanm_form .= "<label class='legend'>".$f[1]."</label>";		
						$aanm_form .= "<div class='input-wrapper'>";
						$aanm_form .= $f[3];
						$aanm_form .= "</div>";
					$aanm_form .= '</div>';
					
				break;
				
				case "button":
				
					$aanm_form .= '<button class="button primary" type="submit" name="submit">'. $f[1].'</button>';
			
				break;
				
				case "textarea":
				
					$aanm_form .= '<div class="form-row" id="fieldset-'.$this->fieldName($f[1]).'">';
					
						$aanm_form .= '<label class="legend">'.$f[1].$alt_lbl.'</label>';						
						$aanm_form .= '<div class="input-wrapper">';
							$aanm_form .= '<textarea name="'.$fieldname.'" id="'.$fieldname.'" class="form-text textarea" placeholder="'.($f[4] != "" ? $f[4] : "").'"></textarea>';
							$aanm_form .= $f[5] ? $f[5] : '';
						$aanm_form .= '</div>';			
						
					$aanm_form .= "</div>";
				
				break;
			
				default:
				
					$aanm_form .= '<div class="form-row" id="fieldset-'.$this->fieldName($f[1]).'">';
					
						$aanm_form .= '<label class="legend">'.$f[1].$alt_lbl.'</label>';		
					
						
							if(is_array($f[0])){
								$aanm_form .= "<div class='input-wrapper'>";
							
									foreach($f[0] as $sub_element)
									{
										if(isset($sub_element[2])){
			
										$aanm_form .= '<input type="hidden" name="'.$this->fieldName($sub_element[0]).'" id="'.$this->fieldName($sub_element[0]).'" value="0">';

										$aanm_form .= '<div class="form-text fake-input aanhef not-selected">Aanhef</div>';

										$aanm_form .= '<div class="fake-input-values aanhef hidden" id="values-'. uniqid() .'">';
										$aanm_form .= '<ul class="fake-input-selector">';
									
											foreach($sub_element[2] as $i => $o){
												$aanm_form .= '<li><a href="#" rel="'. ( $i+1 ) .'" class="option">'. $o .'</a></li>';
											}
										$aanm_form .= '</ul>';
										$aanm_form .= '</div>';
										
										}
										else $aanm_form .= '<input type="text" name="'.$this->fieldName($sub_element[0]).'" class="form-text '.$this->fieldName($sub_element[1]).'" autocomplete="off" placeholder="'.ucfirst($sub_element[1]).'"/>';
									}
								
								$aanm_form .= '</div>';			
							
							}
							else {
								$aanm_form .= '<div class="input-wrapper">';
									$aanm_form .= '<input type="text" name="'.$fieldname.'" class="form-text" autocomplete="off" />';
								$aanm_form .= '</div>';			
							}	

			
					$aanm_form .= "</div>";
				
				break;
			
			}
				
			return $aanm_form;
		}
		
		
		public function insertPortal($personal_info=null, $client_data=null)
		{
			$this->connectDB();
			
			// set
			$sex = array(0 => 'm', 1 => 'm', 2 => 'w');

			// client
			$pi = $this->insertDb(
				'personal_info',
				array(
					'sex' => $sex[$personal_info['aanhef']],
					'initials' => $personal_info['voornaam'], 
					'insertion' => $personal_info['tussenvoegsel'], 
					'last_name' => $personal_info['achternaam'],
					'address' => $personal_info['straat'] . ' ' . $personal_info['huisnummer'],
					'postal_code' => $personal_info['postcode'],
					'city' => $personal_info['plaats'], 
					'phone' => $personal_info['telefoon'], // 
					'email' => $personal_info['email'] // 
				)
			);
			
			
			// factuur
			$pii =  $this->insertDb(
				'personal_info',
				array(
					'address' => $personal_info['straat'] . ' ' . $personal_info['huisnummer'],
					'postal_code' => $personal_info['postcode'],
					'city' => $personal_info['plaats'], //
					'department' => $personal_info['naam_volledig']
				)
			);
			
			
			// dossier
			$dossierId = $this->insertDb(
				'dossiers',
				array(
					'personal_info_id' => $pi,
					'question' => $client_data['opmerkingen'],
					'origin' => 'website',
					'time_stamp' => time(),
					'personal_info_id_invoice' => $pii,
					'invoice_agreement' => 50,
					'application_email' => $client_data['html'],
				)
			);
			
			$calendarId = $this->insertDb('calendars', array('dossier_id' => $dossierId));

			// insert product data
			$pid 	= 12;

			$this->insertDb(
				'dossiers_products', 
				array(
					'dossier_id' => $dossierId,
					'product_id' => $pid,
					'price' => $client_data['totaal'],
					'main_product' => 1
				)
			);	
			
		}

			
		public function confirmToCLient($personal_info=null, $client_data=null)
		{
			
			/*
			 * subject
			 */
			$subject = htmlspecialchars("Bevestiging Schriftelijke Raadpleging Sitagre - ". $personal_info['voornaam'] ." ". $personal_info['tussenvoegsel'] ." ". $personal_info['achternaam']);

			/*
			 * html mail
			 */
			$data = "<html><head><title>$subject</title></head><body>\n";
			$data .= "<table cellpadding='5' cellspacing='0' border='0' style='font:12px Helvetica,Arial,sans-serif;'>\n";
			
				$data .= "<tr><td colspan='2'>&nbsp;</td></tr>";
				$data .= "<tr><td colspan='2' style='border-bottom:solid 1px #dddddd;padding-bottom:24px;'><img src='". $this->settings["website"] . str_replace("svg","png",$this->settings["logo"]) ."' alt='". $this->settings["bedrijfsnaam"] ."' style='". $this->settings["logo_style"] ."' /></td></tr>";
				$data .= "<tr><td colspan='2'>&nbsp;</td></tr>";
				
				$data .= "<tr>\n";
				$data .= "<td colspan='2' style='font-size:14px;font-weight:bold;padding-bottom:15px;'>$subject</td>\n";
				$data .= "</tr>\n";
				$data .= "<tr>\n";
				$data .= "<td colspan='2' style='font-size:12px;padding-bottom:15px;'>Dank voor uw schriftelijke raadpleging bij Sitagre, binnen 3 werkdagen ontvangt u eenmalig schriftelijk antwoord op uw vraag.</td>\n";
				$data .= "</tr>\n";
			
				$data .= "<tr>\n";
					$data .= '<td style="width:200px;font-weight:bold;">Naam</td>';
					$data .= '<td>'.  $personal_info['voornaam'] .' '. $personal_info['tussenvoegsel'] .' '. $personal_info['achternaam'] .'</td>';
				$data .= "</tr>\n";
			
				$data .= "<tr>\n";
					$data .= '<td style="width:200px;font-weight:bold;">Adres</td>';
					$data .= '<td>'. $personal_info['straat'] .' '. $personal_info['huisnummer'] .'</td>';
				$data .= "</tr>\n";
			
				$data .= "<tr>\n";
					$data .= '<td style="width:200px;font-weight:bold;">Postcode &amp; woonplaats</td>';
					$data .= '<td>'. $personal_info['postcode'] .' '. $personal_info['plaats'] .'</td>';
				$data .= "</tr>\n";
			
				$data .= "<tr>\n";
					$data .= '<td style="width:200px;font-weight:bold;">E-mailadres</td>';
					$data .= '<td>'. $personal_info['email'] .'</td>';
				$data .= "</tr>\n";
			
				$data .= "<tr>\n";
					$data .= '<td style="width:200px;font-weight:bold;vertical-align:top;">Vraagstelling</td>';
					$data .= '<td>'. $client_data['opmerkingen'] .'</td>';
				$data .= "</tr>\n";
			$data .= "</table>\n";
			$data .= "</body></html>";

			/*
			 * headers
			 */
			$headers 	= "From: geen-antwoord@sitagre.nl\n";  
			$headers   	.= "Content-type: text/html; charset=UTF-8\n";
			$headers	.= "MIME-Version: 1.0\n";	
			$headers 	.= 'X-Mailer: PHP/'.phpversion();
		
		
			/*
			 * mail customer
			 */
			mail($personal_info['email'], $subject, $data, $headers);
			
			/*
			 * mail ergatis
			 */
			if(mail("aanmeldingen@sitagre.nl", $subject, $data, $headers)) return true;
			else return false;
			
			
		}
			
	}

?>