Source for file storeorder.phpinc

Documentation is available at storeorder.phpinc

  1. <?php
  2. /** ##################################
  3.   *
  4.   *     project:     GNU CMS / SHOP / PORTAL
  5.   *     class:       shop/storeorder.php
  6.   *
  7.   *     (c) 2003 Landesverlag Unternehmensservice
  8.   *     p.krebs@lvus.at
  9.   *
  10.   * ##################################
  11. **/
  12.  
  13.  
  14.     if (!($frmObj=&DBMS_form_loadName("T_CLI_CLIENT"))) {
  15.         $ERR="FORM_NOT_FOUND T_CLI_CLIENT";
  16.         include $GLOBALS['PROJECT']['PHPINCPATH']."io/errors.phpinc";
  17.         die();
  18.     }
  19.  
  20.     $DBVAL=$client;
  21.     reset($DBVAL);
  22.     $errors=TRUE;
  23.     $frmObj->clearErrors();
  24.  
  25.     $GLOBALS['DEBUGMODE']=FALSE;
  26.  
  27.     if (!intval($client['CLI_ID'])) {
  28.         do {
  29.             $query="INSERT INTO T_CLI_CLIENT (";
  30.             if (!($frmObj->getInsertCols($DBVAL,$query,"T_CLI_CLIENT"))) break;
  31.             $query.=") VALUES (";
  32.             if (!($frmObj->getInsertValues($DBVAL,$query,"T_CLI_CLIENT"))) break;
  33.             $query.=")";
  34.             $errors=FALSE;
  35.         while (FALSE);
  36.  
  37.         if (!$errors{
  38.             $client['CLI_ID']=$USRDB->insert($query,"T_CLI_CLIENT","CLI_ID",TRUE,$GLOBALS['DEBUGMODE']);
  39.         }
  40.     else {
  41.         do {
  42.             $query="UPDATE T_CLI_CLIENT SET ";
  43.             if (!($frmObj->getUpdateValues($DBVAL,$query,"T_CLI_CLIENT"))) break;
  44.             $query .= " WHERE ";
  45.             if (!($frmObj->getWhereValues($DBVAL,$query,"T_CLI_CLIENT"))) break;
  46.             $errors=FALSE;
  47.         while (FALSE);
  48.         if (!$errors{
  49.             $USRDB->executeCmd($query);
  50.         }
  51.     }
  52.  
  53.     $_SESSION['CLI_ID']=$client['CLI_ID'];
  54.  
  55.     if ($GLOBALS['DEBUGMODE']echo "<pre>$query</pre>";
  56.  
  57.     if ($errors{
  58.         $frmObj->writeErros();
  59.         exit(0);
  60.     }
  61.  
  62.     if (!($frmObj=&DBMS_form_loadName("T_ADDRESS"))) {
  63.         $ERR="FORM_NOT_FOUND T_ADDRESS";
  64.         include $GLOBALS['PROJECT']['PHPINCPATH']."io/errors.phpinc";
  65.         die();
  66.     }
  67.  
  68.     $iAddr['CLI_ID']            =$client['CLI_ID'];
  69.     $iAddr['ADR_ISDEFAULT']     =1;
  70.     $iAddr['ADR_CO']            =$client['CLI_NAME3'];
  71.     $iAddr['ADR_CO2']           =$client['CLI_NAME1']." ".$client['CLI_NAME2'];
  72.  
  73.     $DBVAL=$iAddr;
  74.     reset($DBVAL);
  75.     $errors=TRUE;
  76.     $frmObj->clearErrors();
  77.  
  78.     if (!intval($iAddr['ADR_ID'])) {
  79.         do {
  80.             $query="INSERT INTO T_ADDRESS (";
  81.             if (!($frmObj->getInsertCols($DBVAL,$query,"T_ADDRESS"))) break;
  82.             $query.=") VALUES (";
  83.             if (!($frmObj->getInsertValues($DBVAL,$query,"T_ADDRESS"))) break;
  84.             $query.=")";
  85.             $errors=FALSE;
  86.         while (FALSE);
  87.  
  88.         if (!$errors{
  89.             $iAddr['ADR_ID']=$USRDB->insert($query,"T_ADDRESS","ADR_ID",TRUE,$GLOBALS['DEBUGMODE']);
  90.         }
  91.     else {
  92.         do {
  93.             $query="UPDATE T_ADDRESS SET ";
  94.             if (!($frmObj->getUpdateValues($DBVAL,$query,"T_ADDRESS"))) break;
  95.             $query .= " WHERE ";
  96.             if (!($frmObj->getWhereValues($DBVAL,$query,"T_ADDRESS"))) break;
  97.             $errors=FALSE;
  98.         while (FALSE);
  99.         if (!$errors{
  100.             $USRDB->executeCmd($query);
  101.         }
  102.     }
  103.  
  104.     if ($GLOBALS['DEBUGMODE']echo "<pre>$query</pre>";
  105.  
  106.     if ($errors{
  107.         $frmObj->writeErros();
  108.         exit(0);
  109.     }
  110.  
  111.     if ($client['CLI_DEFAULTADDR'!= $iAddr['ADR_ID']{
  112.         $query "UPDATE T_CLI_CLIENT SET CLI_DEFAULTADDR=".intval($iAddr['ADR_ID']);
  113.         $query.= " WHERE CLI_ID=".intval($client['CLI_ID']);
  114.         $USRDB->executeCmd($query);
  115.         if ($GLOBALS['DEBUGMODE']echo "<pre>$query</pre>";
  116.     }
  117.  
  118.     if ($_SESSION['USER_ID']{
  119.         $query "REPLACE INTO T_CLI_USER (CLI_ID,USR_ID) ";
  120.         $query.= " VALUES (".intval($client['CLI_ID']).",".intval($_SESSION['USER_ID']).")";
  121.         $USRDB->executeCmd($query);
  122.         if ($GLOBALS['DEBUGMODE']echo "<pre>$query</pre>";
  123.     }
  124.  
  125.     unset ($_SESSION['BASKET']);
  126.  
  127.     $ORDER=array();
  128.     if (isset($_POST['ORDER']&& is_array($_POST['ORDER'])) {
  129.         reset($_POST['ORDER']);
  130.         while(list($key,$val)=each($_POST['ORDER'])) {
  131.             $ORDER[$key]=$val;
  132.         }
  133.     }
  134.  
  135.     $ORDER['USR_ID']=intval($_SESSION['USER_ID']);
  136.     $ORDER['CLI_ID']=intval($client['CLI_ID']);
  137.     $ORDER['OST_ID']=100;
  138.     $ORDER['ORD_SUBMITDATE']="";
  139.  
  140.     $ORDER['ORD_REMOTEHOST']=$_SERVER['REMOTE_ADDR'];
  141.     $ORDER['ORD_CREATEDATE']="";
  142.  
  143.     $ORDER['ORD_IADDR']     =intval($iAddr['ADR_ID']);
  144.     $ORDER['ORD_INAME1']    =$iAddr['ADR_CO2'];
  145.     $ORDER['ORD_INAME2']    =$iAddr['ADR_CO'];
  146.     $ORDER['ORD_ISTREET']   =$iAddr['ADR_STREET'];
  147.     $ORDER['ORD_ICOUNTRY']  =$iAddr['ADR_COUNTRY'];
  148.     $ORDER['ORD_IZIP']      =$iAddr['ADR_ZIP'];
  149.     $ORDER['ORD_ICITY']     =$iAddr['ADR_CITY'];
  150.     $ORDER['ORD_IPHONE']    =$iAddr['ADR_PHONE'];
  151.     $ORDER['ORD_IFAX']      =$iAddr['ADR_FAX'];
  152.  
  153.     $ORDER['ORD_DADDR']     =intval($dAddr['ADR_ID']);
  154.     $ORDER['ORD_DNAME1']    =$dAddr['ADR_CO2'];
  155.     $ORDER['ORD_DNAME2']    =$dAddr['ADR_CO'];
  156.     $ORDER['ORD_DSTREET']   =$dAddr['ADR_STREET'];
  157.     $ORDER['ORD_DCOUNTRY']  =$dAddr['ADR_COUNTRY'];
  158.     $ORDER['ORD_DZIP']      =$dAddr['ADR_ZIP'];
  159.     $ORDER['ORD_DCITY']     =$dAddr['ADR_CITY'];
  160.     $ORDER['ORD_DPHONE']    =$dAddr['ADR_PHONE'];
  161.     $ORDER['ORD_DFAX']      =$dAddr['ADR_FAX'];
  162.  
  163.     // if ($_SERVER['REMOTE_ADDR']=="10.8.8.22") $GLOBALS['DEBUGMODE']=TRUE;
  164.  
  165.     if (!($frmObj=&DBMS_form_loadName("T_ORDER"))) {
  166.         $ERR="FORM_NOT_FOUND T_ORDER";
  167.         include $GLOBALS['PROJECT']['PHPINCPATH']."io/errors.phpinc";
  168.         die();
  169.     }
  170.  
  171.     $DBVAL=$ORDER;
  172.     reset($DBVAL);
  173.     $errors=TRUE;
  174.     $frmObj->clearErrors();
  175.     do {
  176.         if ($GLOBALS['DEBUGMODE']{echo "<pre>";print_r($DBVAL);echo "</pre>";}
  177.         $query="INSERT INTO T_ORDER (";
  178.         if (!($frmObj->getInsertCols($DBVAL,$query,"T_ORDER"))) break;
  179.         $query.=") VALUES (";
  180.         if (!($frmObj->getInsertValues($DBVAL,$query,"T_ORDER"))) break;
  181.         $query.=")";
  182.         $errors=FALSE;
  183.     while (FALSE);
  184.  
  185.     if ($GLOBALS['DEBUGMODE']echo "<p>$query</p>";
  186.  
  187.     if (!$errors{
  188.         $ORDER['ORD_ID']=$USRDB->insert($query,"T_ORDER","ORD_ID",TRUE,$GLOBALS['DEBUGMODE']);
  189.     else {
  190.         $frmObj->writeErros();
  191.         exit(0);
  192.     }
  193.  
  194.     if (!($frmObj=&DBMS_form_loadName("T_ORDER_ITEM"))) {
  195.         $ERR="FORM_NOT_FOUND T_ORDER_ITEM";
  196.         include $GLOBALS['PROJECT']['PHPINCPATH']."io/errors.phpinc";
  197.         die();
  198.     }
  199.  
  200.  
  201.     if ($PROJECT['ORDER']['USEKATALOG']{
  202.         reset($ORDER_PARTS);$sep="";$partList="";
  203.         while(list($id,$quant)=each($ORDER_PARTS)) {
  204.             $partList.=$sep.$id;
  205.             $sep=",";
  206.         }
  207.  
  208.         $query "SELECT p.PRO_NUMBER,p.PRO_NAME,a.* FROM T_PRO_PRODUCT p,T_PRO_PART a";
  209.         $query.= " WHERE p.PRO_ID=a.PRO_ID AND a.PAR_ID IN (".$partList.")";
  210.         $query.= " ORDER BY p.PGP_ID,p.PRO_SORTORDER,a.PAR_SORTORDER ";
  211.  
  212.         if ($cursor=$USRDB->query($query)) {
  213.             while($part=$cursor->fetchArrayFld()) {
  214.                 $DBVAL=$part;
  215.                 $DBVAL['ORD_ID']        =$ORDER['ORD_ID'];
  216.                 $DBVAL['OIT_QUANT']     =intval($ORDER_PARTS[$part['PAR_ID']]);
  217.                 $DBVAL['OIT_CHANGEDBY'=$_SESSION['USER_ID'];
  218.                 $DBVAL['OIT_CREATION']  ="";
  219.                 do {
  220.                     $query="INSERT INTO T_ORDER_ITEM (";
  221.                     if (!($frmObj->getInsertCols($DBVAL,$query,"T_ORDER_ITEM"))) break;
  222.                     $query.=") VALUES (";
  223.                     if (!($frmObj->getInsertValues($DBVAL,$query,"T_ORDER_ITEM"))) break;
  224.                     $query.=")";
  225.                     $errors=FALSE;
  226.                 while (FALSE);
  227.  
  228.                 if ($GLOBALS['DEBUGMODE']echo "<p>$query</p>";
  229.  
  230.                 if (!$errors{
  231.                     $newId=$USRDB->insert($query,"T_ORDER_ITEM","OIT_ID",TRUE,$GLOBALS['DEBUGMODE']);
  232.                 else {
  233.                     $frmObj->writeErros();
  234.                 }
  235.             }
  236.         }
  237.     else {
  238.         if (is_array($bas_items)) {
  239.             if ($GLOBALS['DEBUGMODE']echo "<pre>";print_r($bas_items);echo "</pre>";}
  240.  
  241.             while(list($key,$basValArr)=each($bas_items)) {
  242.                 if (is_array($basValArr)) {
  243.                     reset($basValArr);
  244.                     while(list($basKey,$basVal)=each($basValArr)) {
  245.                         $ordKey=str_replace("BIT_","OIT_",$basKey);
  246.                         $DBVAL[$ordKey]=$basVal;
  247.                     }
  248.                 }
  249.                 $DBVAL['ORD_ID']        =$ORDER['ORD_ID'];
  250.                 $DBVAL['PAR_NUMBER']    =$basValArr['BPRO_NR'];
  251.                 $DBVAL['PAR_NAME']      =$basValArr['BPRO_NAME']." ";
  252.                 $DBVAL['PAR_PRICE']     =doubleval($basValArr['BPRO_PRICE']);
  253.                 $DBVAL['OIT_QUANT']     =intval($basValArr['BIT_QUANT']);
  254.  
  255.                 $DBVAL['OIT_CHANGEDBY'=$_SESSION['USER_ID'];
  256.                 $DBVAL['OIT_CREATION']  ="";
  257.                 do {
  258.                     $query="INSERT INTO T_ORDER_ITEM (";
  259.                     if (!($frmObj->getInsertCols($DBVAL,$query,"T_ORDER_ITEM"))) break;
  260.                     $query.=") VALUES (";
  261.                     if (!($frmObj->getInsertValues($DBVAL,$query,"T_ORDER_ITEM"))) break;
  262.                     $query.=")";
  263.                     $errors=FALSE;
  264.                 while (FALSE);
  265.  
  266.                 if ($GLOBALS['DEBUGMODE']echo "<p>$query</p>";
  267.  
  268.                 if (!$errors{
  269.                     $newId=$USRDB->insert($query,"T_ORDER_ITEM","OIT_ID",TRUE,$GLOBALS['DEBUGMODE']);
  270.                 else {
  271.                     $frmObj->writeErros();
  272.                 }
  273.             }
  274.         }
  275.     }
  276. ?>

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