save.php
3375a8a6
 <?php
40e4230b
 require_once "lib/api.php";
 require_once "lib/auftrag.php";
3375a8a6
 session_start();
 
40e4230b
 $handle_length = 8;
3a6b9e82
 if (! isset($_SESSION['handle']) || !$_SESSION['handle']) {
     $random = base64_encode(md5(microtime()));
40e4230b
     $_SESSION['handle'] = substr(str_replace(array('+', '=', '/'), '', $random), 0, $handle_length);
71db6706
     $_SESSION['date'] = date('Y-m-d H:i:s.v');
3375a8a6
     $_SESSION['complete'] = false;
 }
 
71db6706
 
3375a8a6
 $redirect = NULL;
 if (isset($_REQUEST['form'])) {
     switch ($_REQUEST['form']) {
64ed8519
         case 'start':
3a6b9e82
             $number = '';
3375a8a6
             if (isset($_REQUEST['phone']) && trim($_REQUEST['phone']) != '') {
9402d799
                 $number = trim($_REQUEST['phone']);
3375a8a6
             }
3a6b9e82
             $name = '';
             if (isset($_REQUEST['name']) && trim($_REQUEST['name']) != '') {
                 $name = trim($_REQUEST['name']);
             }
 
             if (! $number || !$name) {
                 $redirect = 'index.php?error&num='.urlencode($number).'&name='.urlencode($name);
3375a8a6
                 break;
             }
71db6706
 
             if (substr($number, 0, 1) != 0 && substr($number, 0, 3) != '+49') {
9402d799
                 $number = '07192'.$number;
             }
3375a8a6
 
40e4230b
            $number = format_number_national($number);
3375a8a6
 
d4c1bfec
             $_SESSION['name'] = htmlspecialchars($name);
03ef9c50
             $_SESSION['phone'] = htmlspecialchars($number);
3a6b9e82
             if (isset($_REQUEST['save']) && $_REQUEST['save'] == 'yes' && $_SESSION['mode'] != 'local') {
d4c1bfec
                 setcookie('NAME', $name, time() + 24*3600*500, "");
b7442cef
                 setcookie('NUMBER', $number, time() + 24*3600*500, "");
             }
3375a8a6
 
d72f67d6
             $redirect = 'address.php';
3375a8a6
             break;
 
64ed8519
         case 'address':
3a6b9e82
             $fields = array("firma", "fname", "lname", "address", "zip", "city");
3375a8a6
             foreach ($fields as $f) {
3a6b9e82
                 if (isset($_REQUEST[$f]) && trim($_REQUEST[$f]) != '') {
03ef9c50
                     $_SESSION[$f] = trim(htmlspecialchars($_REQUEST[$f]));
3375a8a6
                 } else {
                     if (! isset($_SESSION[$f])) {
                         $_SESSION[$f] = '';
                     }
                 }
             }
9b550393
             if ($_SESSION['lname'] == '') {
                 $redirect = 'address.php?error';
                 break;
             }
3a6b9e82
             if ($_SESSION['mode'] == 'local') {
                 $_SESSION['angeliefert'] = true;
                 $redirect = 'gitterbox.php';
             } elseif (isset($_SESSION['angeliefert'])) {
64ed8519
                 if ($_SESSION['angeliefert']) {
                     $redirect = 'gitterbox.php';
                 } else {
                     $redirect = 'gitterbox_spaeter.php';
                 }
             } else {
                 $redirect = 'anlieferung.php';
             }
3375a8a6
             break;
 
64ed8519
         case 'anlieferung':
             if (isset($_REQUEST['schonda'])) {
                 $_SESSION['angeliefert'] = true;
                 $redirect = 'gitterbox.php';
3375a8a6
             }
64ed8519
             if (isset($_REQUEST['kommtnoch'])) {
                 $_SESSION['angeliefert'] = false;
                 $redirect = 'gitterbox_spaeter.php';
             }
             break;
         case 'gitterbox':
3375a8a6
             if (isset($_REQUEST['lieferart'])) {
                 if ($_REQUEST['lieferart'] == 'gitterbox') {
                     $_SESSION['lieferart'] = 'gitterbox';
03ef9c50
                     $_SESSION['gbcount'] = htmlspecialchars($_REQUEST['gbcount']);
3375a8a6
                 }
                 if ($_REQUEST['lieferart'] == 'anhaenger') {
                     $_SESSION['lieferart'] = 'anhaenger';
03ef9c50
                     $_SESSION['kennz'] = htmlspecialchars($_REQUEST['kennz']);
64ed8519
                     if ($_SESSION['angeliefert'] === false && ! $_SESSION['kennz']) {
                         $redirect = 'gitterbox_spaeter.php?error';
                         break;
                     }
3375a8a6
                 }
             }
d72f67d6
             $redirect = 'gebrauchte.php';
3375a8a6
             break;
 
64ed8519
          case 'gebrauchte':
3375a8a6
             if (isset($_REQUEST['kartonsja'])) {
                 $_SESSION['kartons'] = true;
             } 
             if (isset($_REQUEST['kartonsnein'])) {
                 $_SESSION['kartons'] = false;
             }
 
d72f67d6
             $redirect = 'auftrag.php';
3375a8a6
             break;
64ed8519
          case 'auftrag':
3375a8a6
             if (isset($_REQUEST['5er'])) {
                 $_SESSION['neue'] = '5er';
             }
             if (isset($_REQUEST['10er'])) {
                 $_SESSION['neue'] = '10er';
             }
             if (isset($_REQUEST['submit']) && isset($_REQUEST['sonstiges']) && $_REQUEST['sonstiges'] != '') {
                 $_SESSION['neue'] = 'sonstiges';
03ef9c50
                 $_SESSION['sonstiges'] = htmlspecialchars($_REQUEST['sonstiges']);
3375a8a6
             }
 
 
d72f67d6
             $redirect = 'frischsaft.php';
3375a8a6
             break;
 
64ed8519
          case 'frischsaft':
3375a8a6
             if (isset($_REQUEST['frischsaftnein'])) {
                 $_SESSION['frischsaft'] = 0;
             } elseif (isset($_REQUEST['frischsaft'])) {
03ef9c50
                 $_SESSION['frischsaft'] = htmlspecialchars($_REQUEST['frischsaft']);
3375a8a6
             }
 
d72f67d6
             $redirect = 'summary.php';
3375a8a6
             break;
64ed8519
         case 'summary':
03ef9c50
             if (isset($_REQUEST['anmerkungen'])) {
                 $_SESSION['anmerkungen'] = htmlspecialchars($_REQUEST['anmerkungen']);
             }
3375a8a6
 
             $_SESSION['complete'] = true;
             $redirect = 'finish.php?handle='.$_SESSION['handle'];
             break;
 
     }
 }
 
3a6b9e82
 $data = array("handle" => $_SESSION['handle']);
 
40e4230b
 $ret = api_call('auftrag/lesen', $data);
3a6b9e82
 
 if (!isset($ret['auftrag'])) {
     echo 'Es gibt ein Problem beim Speichern der Auftragsdaten. Bitte wenden Sie sich persönlich an uns oder verwenden Sie einen Papierauftrag.';
     die();
 }
 
 
 $auftrag = $ret['auftrag'];
 
 
 if (isset($_SESSION['kundennr'])) {
     $auftrag['kundennr'] = $_SESSION['kundennr'];
 }
 $addrfields = array("kundennr" => "kundennr", "firma" => "firma", "fname" => "vorname", "lname" => "nachname", "address" => "adresse", "zip" => "plz", "city" => "ort", "phone" => "telefon");
 foreach ($addrfields as $sesskey => $apikey) {
     if (isset($_SESSION[$sesskey]) && $_SESSION[$sesskey] != 'bekannt') {
         $auftrag['kundendaten'][$apikey] = $_SESSION[$sesskey];
     }
 }
489c0171
 $auftrag['kundendaten']['telefon'] = format_number($auftrag['kundendaten']['telefon']);
3a6b9e82
 
 if (count($auftrag['bestellung']) > 1) {
     echo 'Diese Bestellung wurde auf anderem Wege an uns übermittelt und kann mit dieser Oberfläche leider nicht verändert werden';
     die();
 }
3375a8a6
 
3a6b9e82
 if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'gitterbox' && isset($_SESSION['gbcount']) && $_SESSION['gbcount'] > 0) {
     if ($_SESSION['gbcount'] < count($auftrag['bestellung'][0]["gitterbox"])) {
         $auftrag['bestellung'][0]["gitterbox"] = array();
     }
     while (count($auftrag['bestellung'][0]["gitterbox"]) < $_SESSION['gbcount']) {
         $auftrag['bestellung'][0]["gitterbox"][] = array("id" => null);
     }
 } else {
     $auftrag['bestellung'][0]["gitterbox"] = array();
3375a8a6
 }
 
3a6b9e82
 if (isset($_SESSION['lieferart']) && $_SESSION['lieferart'] == 'anhaenger') {
     $auftrag['bestellung'][0]['anhaenger'] = array(array("kennz" => null));
     if (isset($_SESSION['kennz']) && $_SESSION['kennz'] != '') {
         $auftrag['bestellung'][0]['anhaenger'][0]["kennz"] = $_SESSION['kennz'];
     }
 }
 
 if (isset($_SESSION['kartons']) && $_SESSION['kartons']) {
     $auftrag['bestellung'][0]['gebrauchte'] = true;
 } else {
     $auftrag['bestellung'][0]['gebrauchte'] = false;
 }
 
 $auftrag['bestellung'][0]['neue'] = array();
 if (isset($_SESSION['neue']) && $_SESSION['neue'] == 'sonstiges') {
     $auftrag['bestellung'][0]['neue']["sonstiges"] = $_SESSION["sonstiges"];
 } elseif (isset($_SESSION['neue']) && $_SESSION['neue'] == '10er') {
     $auftrag['bestellung'][0]['neue']["10er"] = "100%";
 } else {
     $auftrag['bestellung'][0]['neue']["5er"] = "100%";
 }
 
 if (isset($_SESSION['frischsaft']) && $_SESSION['frischsaft'] > 0) {
     $auftrag['bestellung'][0]['frischsaft'] = $_SESSION['frischsaft'];
 } else {
     $auftrag['bestellung'][0]['frischsaft'] = null;
 }
 
 
 if (isset($_SESSION['anmerkungen']) && $_SESSION['anmerkungen'] != '') {
     $auftrag['bestellung'][0]['anmerkungen'] = $_SESSION['anmerkungen'];
 }
 
06a8237c
 if (isset($_SESSION['complete']) && $_SESSION['complete'] == true && !$auftrag['status']['bestellt']) {
d69b9b22
     $auftrag['status']['bestellt'] = time();
3a6b9e82
 }
 
40e4230b
 $ret = api_call('auftrag/anlieferung', $auftrag);
3a6b9e82
 
 if ($ret['status'] == 'error') {
     echo 'Es gibt ein Problem beim Speichern des Auftrags. Bitte verwenden Sie diesmal einen Papier-Auftrag.';
     die();
 }
 
 
3375a8a6
 
 header('Location: '.$redirect);