Source for file storebasket.phpinc
Documentation is available at storebasket.phpinc
* include to store a basket
* requires $_POST['ITEM'] to be an array
* if $_SESSION['BAS_ID'] is set the
* basket will be overwritten.
* used POST values keys ($_POST['xxx']:
* - int CREATENEWBASKET if intval a new basket will be created
* - array ITEM array of basket items
* @project Open CSP-Management
* @author Peter Krebs <p.krebs@lvus.at>
* @copyright (c) 2002-2003 by Peter Krebs and Landesverlag Unternehmensservice
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @todo make basket class to handle this
if ((intval($_SESSION['BAS_ID'])) &&
(!intval($_POST['CREATENEWBASKET']))) {
$query =
"SELECT * FROM T_BASKET WHERE BAS_ID=".
intval($_SESSION['BAS_ID']);
$bas_arr =
$GLOBALS['USRDB']->quickQuery($query);
$bas_arr['USR_ID'] =
intval($_SESSION['USER_ID']);
$bas_arr['CLI_ID'] =
0; // set it later
require_once $GLOBALS['PHPINCPATH'].
"common/pcf_Date.phpclass";
$bas_arr['BAS_NAME'] =
"WK ".
$aDate->dateStr();
$bas_arr['BAS_CREATEDATE']=
$aDate->getMySqlTimeStamp();
unset
($_SESSION['BAS_ID']);
if ($_SERVER['REMOTE_ADDR']=="10.8.8.22") $GLOBALS['DEBUGMODE']=TRUE;
if ($_SERVER['REMOTE_ADDR']=="192.168.192.2") $GLOBALS['DEBUGMODE']=TRUE;
$bas_items=
array();$bas_Attr=
array();$found=
FALSE;
while(list
($key,$val)=
each($_POST['ITEM'])) {
if (intval($val['BIT_QUANT'])) {
$bas_Attr[$key]=
$_POST['ATTR'][$key];
foreach ($_POST['QUANT'] as $parId =>
$quant) {
$query =
"SELECT p.*, a.* FROM T_PRO_PRODUCT p, T_PRO_PART a";
$query.=
" WHERE p.PRO_ID=a.PRO_ID AND a.PAR_ID=".
intval($parId);
if ($item=
$GLOBALS['USRDB']->quickquery($query)) {
$bas_items[$parId]=
$quant;
$bas_Attr[$key]=
$_POST['ATTR'][$key];
if ($GLOBALS['DEBUGMODE']) {
echo
"Keine Daten! - Ihr Warenkorb ist leer oder eine Übertragung der Daten war nicht möglich";
echo
"<pre>POST:\n";print_r($_POST);echo
"SESSION:\n";print_r($_SESSION);echo
"</pre>";
$message=
"Keine Daten! - Ihr Warenkorb ist leer oder eine Übertragung der Daten war nicht möglich";
include $PROJECT['PHPINCPATH'].
"io/message.phpinc";
include $PROJECT['PHPINCPATH'].
"io/goback.phpinc";
if (intval($_SESSION['BAS_ID'])) {
$cmd=
"DELETE FROM T_BASKET_ITEM WHERE BAS_ID=".
intval($_SESSION['BAS_ID']);
$USRDB->executeCmd($cmd);
if (!($_SESSION['BAS_ID']=
$GLOBALS['USRDB']->insertArray("T_BASKET",$bas_arr))) {
$message=
"DB-Error! - Es konnte kein neuer Warenkorb angelegt werden.";
include $PROJECT['PHPINCPATH'].
"io/message.phpinc";
include $PROJECT['PHPINCPATH'].
"io/goback.phpinc";
reset($bas_items);$insArr=
array();
if ($GLOBALS['DEBUGMODE']) echo
"<pre>".
print_r($_SESSION['BASKET_ATTR'],TRUE).
"</pre>";
while(list
($key,$val)=
each($bas_items)) {
if (empty($val['BPRO_ATTRIB'])) $val['BPRO_ATTRIB']=
base64_encode(serialize($_SESSION['BASKET_ATTR'][$val['PAR_ID']]));
$insArr['BAS_ID']=
intval($_SESSION['BAS_ID']);
if (intval($val['BIT_QUANT'])) {
if ($GLOBALS['DEBUGMODE']) {echo
"<pre>Pos.: ".
$posNr++.
"\n";print_r($val);"</pre>";}
if ($key=
$USRDB->insertArray("T_BASKET_ITEM",$val,$GLOBALS['DEBUGMODE'])) {
if (!empty($_POST['BAS_NAME'])) {
$cmd =
"UPDATE T_BASKET SET BAS_NAME=".
DB_getSlashedValue($_POST['BAS_NAME']);
$cmd.=
" WHERE BAS_ID=".
intval($_SESSION['BAS_ID']);
$USRDB->executeCmd($cmd);
if (empty($_SESSION['UNIQUEKEY'])) {
$_SESSION['BASKET_ATTR']=
$_POST['ATTR'];
Documentation generated on Thu, 08 Jan 2009 17:48:34 +0100 by phpDocumentor 1.4.0a2