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'> </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'> </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 & 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;
}
}
?>