Source for file storebasket.phpinc

Documentation is available at storebasket.phpinc

  1. <?php
  2. /**
  3.   * include to store a basket
  4.   *
  5.   * requires $_POST['ITEM'] to be an array
  6.   * of basket items.
  7.   * if $_SESSION['BAS_ID'] is set the
  8.   * basket will be overwritten.
  9.   *
  10.   * used POST values keys ($_POST['xxx']:
  11.   * - int       CREATENEWBASKET if intval a new basket will be created
  12.   * - array     ITEM array of basket items
  13.   * - string    BAS_NAME
  14.   *
  15.   * @project    Open CSP-Management
  16.   * @package    dbms
  17.   * @category   dbms_form
  18.   *
  19.   * @author     Peter Krebs <p.krebs@lvus.at>
  20.   * @copyright  (c) 2002-2003 by Peter Krebs and Landesverlag Unternehmensservice
  21.   * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
  22.   *
  23.   * @version pk-04-02-06
  24.   * @since   pk-04-02-06
  25.   *
  26.   * @todo make basket class to handle this
  27.   *
  28.   ***/
  29.  
  30.     if ((intval($_SESSION['BAS_ID'])) && (!intval($_POST['CREATENEWBASKET']))) {
  31.         $query "SELECT * FROM T_BASKET WHERE BAS_ID=".intval($_SESSION['BAS_ID']);
  32.         $bas_arr $GLOBALS['USRDB']->quickQuery($query);
  33.     else {
  34.         $bas_arr array();
  35.         $bas_arr['USR_ID'intval($_SESSION['USER_ID']);
  36.         $bas_arr['CLI_ID'0// set it later
  37.         require_once $GLOBALS['PHPINCPATH']."common/pcf_Date.phpclass";
  38.         $aDate new pcf_Date();
  39.         $bas_arr['BAS_NAME']      ="WK ".$aDate->dateStr();
  40.         $bas_arr['BAS_CREATEDATE']=$aDate->getMySqlTimeStamp();
  41.         unset($_SESSION['BAS_ID']);
  42.     }
  43.  
  44.     /*
  45.  
  46.     if ($_SERVER['REMOTE_ADDR']=="10.8.8.22") $GLOBALS['DEBUGMODE']=TRUE;
  47.     if ($_SERVER['REMOTE_ADDR']=="192.168.192.2") $GLOBALS['DEBUGMODE']=TRUE;
  48.  
  49.     */
  50.  
  51.     $bas_items=array();$bas_Attr=array();$found=FALSE;
  52.     if (is_array($_POST['ITEM'])) {
  53.         while(list($key,$val)=each($_POST['ITEM'])) {
  54.             if (intval($val['BIT_QUANT'])) {
  55.                 $bas_items[$key]=$val;
  56.                 if (is_array($_POST['ATTR'][$key])) {
  57.                     $bas_Attr[$key]=$_POST['ATTR'][$key];
  58.                 }
  59.                 $found=TRUE;
  60.             }
  61.         }
  62.     else if (is_array($_POST['QUANT'])) {
  63.         foreach ($_POST['QUANT'as $parId => $quant{
  64.             if (intval($quant)) {
  65.                 $query ="SELECT p.*, a.* FROM T_PRO_PRODUCT p, T_PRO_PART a";
  66.                 $query.=" WHERE p.PRO_ID=a.PRO_ID AND a.PAR_ID=".intval($parId);
  67.                 if ($item=$GLOBALS['USRDB']->quickquery($query)) {
  68.                     $bas_items[$parId]=$quant;
  69.                     if (is_array($_POST['ATTR'][$key])) {
  70.                         $bas_Attr[$key]=$_POST['ATTR'][$key];
  71.                     }
  72.                     $found=TRUE;
  73.                 }
  74.             }
  75.         }
  76.     }
  77.  
  78.     if (!$found{
  79.         if ($GLOBALS['DEBUGMODE']{
  80.             echo "Keine Daten! - Ihr Warenkorb ist leer oder eine Übertragung der Daten war nicht möglich";
  81.             echo "<pre>POST:\n";print_r($_POST);echo "SESSION:\n";print_r($_SESSION);echo "</pre>";
  82.             exit();
  83.         }
  84.  
  85.         $message="Keine Daten! - Ihr Warenkorb ist leer oder eine Übertragung der Daten war nicht möglich";
  86.         include $PROJECT['PHPINCPATH']."io/message.phpinc";
  87.         include $PROJECT['PHPINCPATH']."io/goback.phpinc";
  88.         exit();
  89.     }
  90.  
  91.     if (intval($_SESSION['BAS_ID'])) {
  92.         $cmd="DELETE FROM T_BASKET_ITEM WHERE BAS_ID=".intval($_SESSION['BAS_ID']);
  93.         $USRDB->executeCmd($cmd);
  94.     else {
  95.         if (!($_SESSION['BAS_ID']=$GLOBALS['USRDB']->insertArray("T_BASKET",$bas_arr))) {
  96.             $message="DB-Error! - Es konnte kein neuer Warenkorb angelegt werden.";
  97.             include $PROJECT['PHPINCPATH']."io/message.phpinc";
  98.             include $PROJECT['PHPINCPATH']."io/goback.phpinc";
  99.             exit();
  100.         }
  101.     }
  102.  
  103. /* FIX ME ?? */
  104.     reset($bas_items);$insArr=array();
  105.     $posNr=1;
  106.     if ($GLOBALS['DEBUGMODE']echo "<pre>".print_r($_SESSION['BASKET_ATTR'],TRUE)."</pre>";
  107.     while(list($key,$val)=each($bas_items)) {
  108.         if (empty($val['BPRO_ATTRIB'])) $val['BPRO_ATTRIB']=base64_encode(serialize($_SESSION['BASKET_ATTR'][$val['PAR_ID']]));
  109.         $insArr['BAS_ID']=intval($_SESSION['BAS_ID']);
  110.         if (intval($val['BIT_QUANT'])) {
  111.             if ($GLOBALS['DEBUGMODE']{echo "<pre>Pos.: ".$posNr++."\n";print_r($val);"</pre>";}
  112.             if ($key=$USRDB->insertArray("T_BASKET_ITEM",$val,$GLOBALS['DEBUGMODE'])) {
  113.                 $insArr[$key]=$val;
  114.             }
  115.         }
  116.     }
  117.  
  118.     if (!empty($_POST['BAS_NAME'])) {
  119.         $cmd ="UPDATE T_BASKET SET BAS_NAME=".DB_getSlashedValue($_POST['BAS_NAME']);
  120.         $cmd.=" WHERE BAS_ID=".intval($_SESSION['BAS_ID']);
  121.         $USRDB->executeCmd($cmd);
  122.     }
  123.  
  124.     if (empty($_SESSION['UNIQUEKEY'])) {
  125.         $_SESSION['UNIQUEKEY']=substr(base64_encode(time().$_SESSION['UNIQUE_ID']),0,16);
  126.     }
  127.  
  128.     if ($bas_items{
  129.         $_SESSION['BASKET']=base64_encode(serialize($bas_items));
  130.         $_SESSION['BASKET_ATTR']=$_POST['ATTR'];
  131.     }
  132. ?>

Documentation generated on Thu, 08 Jan 2009 17:48:34 +0100 by phpDocumentor 1.4.0a2