Ignore:
Timestamp:
2007/08/06 22:04:26 (15 years ago)
Author:
nanasess
Message:

LC_Page のクラス化対応
決済モジュールは, プラグインとして実装予定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/shopping/complete.php

    r15080 r15223  
    11<?php 
    2 /*  
     2/* 
    33 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 
    44 * 
     
    66 */ 
    77 
     8// {{{ requires 
    89require_once("../require.php"); 
     10require_once(CLASS_PATH . "page_extends/shopping/LC_Page_Shopping_Complete_Ex.php"); 
    911 
    10 class LC_Page { 
    11     function LC_Page() { 
    12         $this->tpl_mainpage = 'shopping/complete.tpl'; 
    13         $this->tpl_css = URL_DIR.'css/layout/shopping/complete.css'; 
    14         $this->tpl_title = "ご注文完了"; 
    15         global $arrCONVENIENCE; 
    16         $this->arrCONVENIENCE = $arrCONVENIENCE; 
    17         global $arrCONVENIMESSAGE; 
    18         $this->arrCONVENIMESSAGE = $arrCONVENIMESSAGE; 
    19         global $arrCONVENIENCE; 
    20         global $arrCONVENIMESSAGE; 
    21         $objPage->arrCONVENIENCE = $arrCONVENIENCE; 
    22         $objPage->arrCONVENIMESSAGE = $arrCONVENIMESSAGE; 
    23         /* 
    24          session_start時のno-cacheヘッダーを抑制することで 
    25          「戻る」ボタン使用時の有効期限切れ表示を抑制する。 
    26          private-no-expire:クライアントのキャッシュを許可する。 
    27         */ 
    28         session_cache_limiter('private-no-expire');      
     12// }}} 
     13// {{{ generate page 
    2914 
    30     } 
    31 } 
    32  
    33 $conn = new SC_DBConn(); 
    34 $objPage = new LC_Page(); 
    35 $objView = new SC_SiteView(); 
    36 $objSiteSess = new SC_SiteSession(); 
    37 $objCartSess = new SC_CartSession(); 
    38 $objCampaignSess = new SC_CampaignSession(); 
    39 $objSiteInfo = $objView->objSiteInfo; 
    40 $arrInfo = $objSiteInfo->data; 
    41 $objCustomer = new SC_Customer(); 
    42  
    43 // 前のページで正しく登録手続きが行われたか判定 
    44 sfIsPrePage($objSiteSess); 
    45 // ユーザユニークIDの取得と購入状態の正当性をチェック 
    46 $uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess); 
    47 if ($uniqid != "") { 
    48      
    49     // 完了処理 
    50     $objQuery = new SC_Query(); 
    51     $objQuery->begin(); 
    52     $order_id = lfDoComplete($objQuery, $uniqid); 
    53     $objQuery->commit(); 
    54      
    55     // セッションに保管されている情報を更新する 
    56     $objCustomer->updateSession(); 
    57  
    58     // 完了メール送信 
    59     if($order_id != "") { 
    60         sfSendOrderMail($order_id, '1'); 
    61     } 
    62  
    63     // その他情報の取得 
    64     $arrResults = $objQuery->getall("SELECT memo02, memo05 FROM dtb_order WHERE order_id = ? ", array($order_id)); 
    65  
    66     if (count($arrResults) > 0) {    
    67         if (isset($arrResults[0]["memo02"]) || isset($arrResults[0]["memo05"])) { 
    68             // 完了画面で表示する決済内容 
    69             $arrOther = unserialize($arrResults[0]["memo02"]); 
    70             // 完了画面から送信する決済内容 
    71             $arrModuleParam = unserialize($arrResults[0]["memo05"]); 
    72              
    73             // データを編集 
    74             foreach($arrOther as $key => $val){ 
    75                 // URLの場合にはリンクつきで表示させる 
    76                 if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) { 
    77                     $arrOther[$key]["value"] = "<a href='#' onClick=\"window.open('". $val["value"] . "'); \" >" . $val["value"] ."</a>"; 
    78                 } 
    79             } 
    80                      
    81             $objPage->arrOther = $arrOther; 
    82             $objPage->arrModuleParam = $arrModuleParam; 
    83         } 
    84     } 
    85      
    86     // アフィリエイト用コンバージョンタグの設定 
    87     $objPage->tpl_conv_page = AFF_SHOPPING_COMPLETE; 
    88     $objPage->tpl_aff_option = "order_id=$order_id"; 
    89     //合計価格の取得 
    90     $total = $objQuery->get("dtb_order", "total", "order_id = ? ", array($order_id)); 
    91     if($total != "") { 
    92         $objPage->tpl_aff_option.= "|total=$total"; 
    93     } 
    94 } 
    95  
    96 $objPage->arrInfo = $arrInfo; 
    97 // キャンペーンからの遷移かチェック 
    98 $objPage->is_campaign = $objCampaignSess->getIsCampaign(); 
    99 $objPage->campaign_dir = $objCampaignSess->getCampaignDir(); 
    100  
    101 $objView->assignobj($objPage); 
    102 // フレームを選択(キャンペーンページから遷移なら変更) 
    103 $objCampaignSess->pageView($objView); 
    104  
    105 // セッション開放 
    106 $objCampaignSess->delCampaign(); 
    107 //-------------------------------------------------------------------------------------------------------------------------- 
    108 // エビスタグ引渡し用データを生成する 
    109 function lfGetEbisData($order_id) { 
    110     $objQuery = new SC_Query(); 
    111     $col = "customer_id, total, order_sex, order_job, to_number(to_char(age(current_timestamp, order_birth), 'YYY'), 999) AS order_age"; 
    112     $arrRet = $objQuery->select($col, "dtb_order", "order_id = ?", array($order_id)); 
    113      
    114     if($arrRet[0]['customer_id'] > 0) { 
    115         // 会員番号 
    116         $arrEbis['m1id'] = $arrRet[0]['customer_id']; 
    117         // 非会員or会員 
    118         $arrEbis['o5id'] = '1'; 
    119     } else { 
    120         // 会員番号 
    121         $arrEbis['m1id'] = ''; 
    122         // 非会員or会員 
    123         $arrEbis['o5id'] = '2';  
    124     } 
    125      
    126     // 購入金額 
    127     $arrEbis['a1id'] = $arrRet[0]['total']; 
    128     // 性別 
    129     $arrEbis['o2id'] = $arrRet[0]['order_sex']; 
    130     // 年齢 
    131     $arrEbis['o3id'] = $arrRet[0]['order_age']; 
    132     // 職業 
    133     $arrEbis['o4id'] = $arrRet[0]['order_job']; 
    134          
    135     $objQuery->setgroupby("product_id"); 
    136     $arrRet = $objQuery->select("product_id", "dtb_order_detail", "order_id = ?", array($order_id)); 
    137     $arrProducts = sfSwapArray($arrRet); 
    138      
    139     $line = ""; 
    140     // 商品IDをアンダーバーで接続する。 
    141     foreach($arrProducts['product_id'] as $val) { 
    142         if($line != "") { 
    143             $line .= "_$val";        
    144         } else { 
    145             $line .= "$val"; 
    146         } 
    147     } 
    148      
    149     // 商品ID  
    150     $arrEbis['o1id'] = $line; 
    151      
    152     return $arrEbis; 
    153 } 
    154  
    155 // 完了処理 
    156 function lfDoComplete($objQuery, $uniqid) { 
    157     global $objCartSess; 
    158     global $objSiteSess; 
    159     global $objCampaignSess; 
    160     global $objCustomer; 
    161     global $arrInfo; 
    162      
    163     // 一時受注テーブルの読込 
    164     $arrData = sfGetOrderTemp($uniqid); 
    165  
    166     // 会員情報登録処理 
    167     if ($objCustomer->isLoginSuccess()) { 
    168         // 新お届け先の登録 
    169         lfSetNewAddr($uniqid, $objCustomer->getValue('customer_id')); 
    170         // 購入集計を顧客テーブルに反映 
    171         lfSetCustomerPurchase($objCustomer->getValue('customer_id'), $arrData, $objQuery); 
    172     } else { 
    173         //購入時強制会員登録 
    174         switch(PURCHASE_CUSTOMER_REGIST) { 
    175         //無効 
    176         case '0': 
    177             // 購入時会員登録 
    178             if($arrData['member_check'] == '1') { 
    179                 // 仮会員登録 
    180                 $customer_id = lfRegistPreCustomer($arrData, $arrInfo); 
    181                 // 購入集計を顧客テーブルに反映 
    182                 lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 
    183             } 
    184             break; 
    185         //有効 
    186         case '1': 
    187             // 仮会員登録 
    188             $customer_id = lfRegistPreCustomer($arrData, $arrInfo); 
    189             // 購入集計を顧客テーブルに反映 
    190             lfSetCustomerPurchase($customer_id, $arrData, $objQuery); 
    191             break; 
    192         } 
    193          
    194     } 
    195     // 一時テーブルを受注テーブルに格納する 
    196     $order_id = lfRegistOrder($objQuery, $arrData, $objCampaignSess); 
    197     // カート商品を受注詳細テーブルに格納する 
    198     lfRegistOrderDetail($objQuery, $order_id, $objCartSess); 
    199     // 受注一時テーブルの情報を削除する。 
    200     lfDeleteTempOrder($objQuery, $uniqid); 
    201     // キャンペーンからの遷移の場合登録する。 
    202     if($objCampaignSess->getIsCampaign() and $objCartSess->chkCampaign($objCampaignSess->getCampaignId())) { 
    203         lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id); 
    204     } 
    205      
    206     // セッションカート内の商品を削除する。 
    207     $objCartSess->delAllProducts(); 
    208     // 注文一時IDを解除する。 
    209     $objSiteSess->unsetUniqId(); 
    210      
    211     return $order_id; 
    212 } 
    213  
    214 // 会員登録(仮登録) 
    215 function lfRegistPreCustomer($arrData, $arrInfo) { 
    216     // 購入時の会員登録 
    217     $sqlval['name01'] = $arrData['order_name01']; 
    218     $sqlval['name02'] = $arrData['order_name02']; 
    219     $sqlval['kana01'] = $arrData['order_kana01']; 
    220     $sqlval['kana02'] = $arrData['order_kana02']; 
    221     $sqlval['zip01'] = $arrData['order_zip01']; 
    222     $sqlval['zip02'] = $arrData['order_zip02']; 
    223     $sqlval['pref'] = $arrData['order_pref']; 
    224     $sqlval['addr01'] = $arrData['order_addr01']; 
    225     $sqlval['addr02'] = $arrData['order_addr02']; 
    226     $sqlval['email'] = $arrData['order_email']; 
    227     $sqlval['tel01'] = $arrData['order_tel01']; 
    228     $sqlval['tel02'] = $arrData['order_tel02']; 
    229     $sqlval['tel03'] = $arrData['order_tel03']; 
    230     $sqlval['fax01'] = $arrData['order_fax01']; 
    231     $sqlval['fax02'] = $arrData['order_fax02']; 
    232     $sqlval['fax03'] = $arrData['order_fax03']; 
    233     $sqlval['sex'] = $arrData['order_sex']; 
    234     $sqlval['password'] = $arrData['password']; 
    235     $sqlval['reminder'] = $arrData['reminder']; 
    236     $sqlval['reminder_answer'] = $arrData['reminder_answer']; 
    237      
    238     // メルマガ配信用フラグの判定 
    239     switch($arrData['mail_flag']) { 
    240     case '1':   // HTMLメール 
    241         $mail_flag = 4; 
    242         break; 
    243     case '2':   // TEXTメール 
    244         $mail_flag = 5; 
    245         break; 
    246     case '3':   // 希望なし 
    247         $mail_flag = 6; 
    248         break; 
    249     default: 
    250         $mail_flag = 6; 
    251         break; 
    252     } 
    253     // メルマガフラグ 
    254     $sqlval['mailmaga_flg'] = $mail_flag; 
    255          
    256     // 会員仮登録 
    257     $sqlval['status'] = 1; 
    258     // URL判定用キー 
    259     $sqlval['secret_key'] = sfGetUniqRandomId("t");  
    260      
    261     $objQuery = new SC_Query(); 
    262     $sqlval['create_date'] = "now()"; 
    263     $sqlval['update_date'] = "now()"; 
    264     $objQuery->insert("dtb_customer", $sqlval); 
    265      
    266     // 顧客IDの取得 
    267     $arrRet = $objQuery->select("customer_id", "dtb_customer", "secret_key = ?", array($sqlval['secret_key'])); 
    268     $customer_id = $arrRet[0]['customer_id']; 
    269      
    270     // 仮登録完了メール送信 
    271     $objMailPage = new LC_Page(); 
    272     $objMailPage->to_name01 = $arrData['order_name01']; 
    273     $objMailPage->to_name02 = $arrData['order_name02']; 
    274     $objMailPage->CONF = $arrInfo; 
    275     $objMailPage->uniqid = $sqlval['secret_key']; 
    276     $objMailView = new SC_SiteView(); 
    277     $objMailView->assignobj($objMailPage); 
    278     $body = $objMailView->fetch("mail_templates/customer_mail.tpl"); 
    279      
    280     $objMail = new GC_SendMail(); 
    281     $objMail->setItem( 
    282                         ''                                      // 宛先 
    283                         , sfMakeSubject("会員登録のご確認")     // サブジェクト 
    284                         , $body                                 // 本文 
    285                         , $arrInfo['email03']                   // 配送元アドレス 
    286                         , $arrInfo['shop_name']                 // 配送元 名前 
    287                         , $arrInfo["email03"]                   // reply_to 
    288                         , $arrInfo["email04"]                   // return_path 
    289                         , $arrInfo["email04"]                   //  Errors_to 
    290                         , $arrInfo["email01"]                   //  Bcc 
    291                                                         ); 
    292     // 宛先の設定 
    293     $name = $arrData['order_name01'] . $arrData['order_name02'] ." 様"; 
    294     $objMail->setTo($arrData['order_email'], $name);             
    295     $objMail->sendMail(); 
    296      
    297     return $customer_id; 
    298 } 
    299  
    300 // 受注テーブルへ登録 
    301 function lfRegistOrder($objQuery, $arrData, $objCampaignSess) { 
    302     $sqlval = $arrData; 
    303  
    304     // 受注テーブルに書き込まない列を除去 
    305     unset($sqlval['mailmaga_flg']);     // メルマガチェック 
    306     unset($sqlval['deliv_check']);      // 別のお届け先チェック 
    307     unset($sqlval['point_check']);      // ポイント利用チェック 
    308     unset($sqlval['member_check']);     // 購入時会員チェック 
    309     unset($sqlval['password']);         // ログインパスワード 
    310     unset($sqlval['reminder']);         // リマインダー質問 
    311     unset($sqlval['reminder_answer']);  // リマインダー答え 
    312     unset($sqlval['mail_flag']);        // メールフラグ 
    313     unset($sqlval['session']);          // セッション情報 
    314      
    315     // 注文ステータス:指定が無ければ新規受付に設定 
    316     if($sqlval["status"] == ""){ 
    317         $sqlval['status'] = '1';             
    318     } 
    319      
    320     // 別のお届け先を指定していない場合、配送先に登録住所をコピーする。 
    321     if($arrData["deliv_check"] == "-1") { 
    322         $sqlval['deliv_name01'] = $arrData['order_name01']; 
    323         $sqlval['deliv_name02'] = $arrData['order_name02']; 
    324         $sqlval['deliv_kana01'] = $arrData['order_kana01']; 
    325         $sqlval['deliv_kana02'] = $arrData['order_kana02']; 
    326         $sqlval['deliv_pref'] = $arrData['order_pref']; 
    327         $sqlval['deliv_zip01'] = $arrData['order_zip01']; 
    328         $sqlval['deliv_zip02'] = $arrData['order_zip02']; 
    329         $sqlval['deliv_addr01'] = $arrData['order_addr01']; 
    330         $sqlval['deliv_addr02'] = $arrData['order_addr02']; 
    331         $sqlval['deliv_tel01'] = $arrData['order_tel01']; 
    332         $sqlval['deliv_tel02'] = $arrData['order_tel02']; 
    333         $sqlval['deliv_tel03'] = $arrData['order_tel03']; 
    334     } 
    335      
    336     $order_id = $arrData['order_id'];       // オーダーID 
    337     $sqlval['create_date'] = 'now()';       // 受注日 
    338      
    339     // キャンペーンID 
    340     if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId(); 
    341  
    342     // ゲットの値をインサート 
    343     //$sqlval = lfGetInsParam($sqlval); 
    344      
    345     // INSERTの実行 
    346     $objQuery->insert("dtb_order", $sqlval); 
    347      
    348     return $order_id; 
    349 } 
    350  
    351 // 受注詳細テーブルへ登録 
    352 function lfRegistOrderDetail($objQuery, $order_id, $objCartSess) { 
    353     // カート内情報の取得 
    354     $arrCart = $objCartSess->getCartList(); 
    355     $max = count($arrCart); 
    356      
    357     // 既に存在する詳細レコードを消しておく。 
    358     $objQuery->delete("dtb_order_detail", "order_id = $order_id"); 
    359  
    360     // 規格名一覧 
    361     $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name"); 
    362     // 規格分類名一覧 
    363     $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name"); 
    364              
    365     for ($i = 0; $i < $max; $i++) { 
    366         // 商品規格情報の取得     
    367         $arrData = sfGetProductsClass($arrCart[$i]['id']); 
    368          
    369         // 存在する商品のみ表示する。 
    370         if($arrData != "") { 
    371             $sqlval['order_id'] = $order_id; 
    372             $sqlval['product_id'] = $arrCart[$i]['id'][0]; 
    373             $sqlval['classcategory_id1'] = $arrCart[$i]['id'][1]; 
    374             $sqlval['classcategory_id2'] = $arrCart[$i]['id'][2]; 
    375             $sqlval['product_name'] = $arrData['name']; 
    376             $sqlval['product_code'] = $arrData['product_code']; 
    377             $sqlval['classcategory_name1'] = $arrClassCatName[$arrData['classcategory_id1']]; 
    378             $sqlval['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']]; 
    379             $sqlval['point_rate'] = $arrCart[$i]['point_rate'];          
    380             $sqlval['price'] = $arrCart[$i]['price']; 
    381             $sqlval['quantity'] = $arrCart[$i]['quantity']; 
    382             lfReduceStock($objQuery, $arrCart[$i]['id'], $arrCart[$i]['quantity']); 
    383             // INSERTの実行 
    384             $objQuery->insert("dtb_order_detail", $sqlval); 
    385         } else { 
    386             sfDispSiteError(CART_NOT_FOUND); 
    387         } 
    388     } 
    389 } 
    390  
    391 // キャンペーン受注テーブルへ登録 
    392 function lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id) { 
    393  
    394     // 受注データを取得 
    395     $cols = "order_id, campaign_id, customer_id, message, order_name01, order_name02,". 
    396             "order_kana01, order_kana02, order_email, order_tel01, order_tel02, order_tel03,". 
    397             "order_fax01, order_fax02, order_fax03, order_zip01, order_zip02, order_pref, order_addr01,". 
    398             "order_addr02, order_sex, order_birth, order_job, deliv_name01, deliv_name02, deliv_kana01,". 
    399             "deliv_kana02, deliv_tel01, deliv_tel02, deliv_tel03, deliv_fax01, deliv_fax02, deliv_fax03,". 
    400             "deliv_zip01, deliv_zip02, deliv_pref, deliv_addr01, deliv_addr02, payment_total"; 
    401  
    402     $arrOrder = $objQuery->select($cols, "dtb_order", "order_id = ?", array($order_id));  
    403              
    404     $sqlval = $arrOrder[0]; 
    405     $sqlval['create_date'] = 'now()'; 
    406          
    407     // INSERTの実行 
    408     $objQuery->insert("dtb_campaign_order", $sqlval); 
    409      
    410     // 申し込み数の更新 
    411     $total_count = $objQuery->get("dtb_campaign", "total_count", "campaign_id = ?", array($sqlval['campaign_id'])); 
    412     $arrCampaign['total_count'] = $total_count += 1; 
    413     $objQuery->update("dtb_campaign", $arrCampaign, "campaign_id = ?", array($sqlval['campaign_id'])); 
    414      
    415 } 
    416  
    417  
    418  
    419 /* 受注一時テーブルの削除 */ 
    420 function lfDeleteTempOrder($objQuery, $uniqid) { 
    421     $where = "order_temp_id = ?"; 
    422     $sqlval['del_flg'] = 1; 
    423     $objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid)); 
    424     // $objQuery->delete("dtb_order_temp", $where, array($uniqid)); 
    425 } 
    426  
    427 // 受注一時テーブルの住所が登録済みテーブルと異なる場合は、別のお届け先に追加する 
    428 function lfSetNewAddr($uniqid, $customer_id) { 
    429     $objQuery = new SC_Query(); 
    430     $diff = false; 
    431     $find_same = false; 
    432      
    433     $col = "deliv_name01,deliv_name02,deliv_kana01,deliv_kana02,deliv_tel01,deliv_tel02,deliv_tel03,deliv_zip01,deliv_zip02,deliv_pref,deliv_addr01,deliv_addr02"; 
    434     $where = "order_temp_id = ?"; 
    435     $arrRet = $objQuery->select($col, "dtb_order_temp", $where, array($uniqid)); 
    436      
    437     // 要素名のdeliv_を削除する。 
    438     foreach($arrRet[0] as $key => $val) { 
    439         $keyname = ereg_replace("^deliv_", "", $key); 
    440         $arrNew[$keyname] = $val; 
    441     } 
    442      
    443     // 会員情報テーブルとの比較 
    444     $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02"; 
    445     $where = "customer_id = ?"; 
    446     $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($customer_id)); 
    447      
    448     // 会員情報の住所と異なる場合 
    449     if($arrNew != $arrCustomerAddr[0]) { 
    450         // 別のお届け先テーブルの住所と比較する 
    451         $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02"; 
    452         $where = "customer_id = ?"; 
    453         $arrOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($customer_id)); 
    454  
    455         foreach($arrOtherAddr as $arrval) { 
    456             if($arrNew == $arrval) { 
    457                 // すでに同じ住所が登録されている 
    458                 $find_same = true; 
    459             } 
    460         } 
    461          
    462         if(!$find_same) { 
    463             $diff = true; 
    464         } 
    465     } 
    466      
    467     // 新しいお届け先が登録済みのものと異なる場合は別のお届け先テーブルに登録する 
    468     if($diff) { 
    469         $sqlval = $arrNew; 
    470         $sqlval['customer_id'] = $customer_id; 
    471         $objQuery->insert("dtb_other_deliv", $sqlval); 
    472     } 
    473 } 
    474  
    475 /* 購入情報を会員テーブルに登録する */ 
    476 function lfSetCustomerPurchase($customer_id, $arrData, $objQuery) { 
    477     $col = "first_buy_date, last_buy_date, buy_times, buy_total, point"; 
    478     $where = "customer_id = ?"; 
    479     $arrRet = $objQuery->select($col, "dtb_customer", $where, array($customer_id)); 
    480     $sqlval = $arrRet[0]; 
    481      
    482     if($sqlval['first_buy_date'] == "") { 
    483         $sqlval['first_buy_date'] = "Now()"; 
    484     } 
    485     $sqlval['last_buy_date'] = "Now()"; 
    486     $sqlval['buy_times']++; 
    487     $sqlval['buy_total']+= $arrData['total']; 
    488     $sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']); 
    489      
    490     // ポイントが不足している場合 
    491     if($sqlval['point'] < 0) { 
    492         $objQuery->rollback(); 
    493         sfDispSiteError(LACK_POINT); 
    494     } 
    495      
    496     $objQuery->update("dtb_customer", $sqlval, $where, array($customer_id)); 
    497 } 
    498  
    499 // 在庫を減らす処理 
    500 function lfReduceStock($objQuery, $arrID, $quantity) { 
    501     $where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?"; 
    502     $arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID); 
    503      
    504     // 売り切れエラー 
    505     if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) { 
    506         $objQuery->rollback(); 
    507         sfDispSiteError(SOLD_OUT, "", true); 
    508     // 無制限の場合、在庫はNULL 
    509     } elseif($arrRet[0]['stock_unlimited'] == '1') { 
    510         $sqlval['stock'] = null; 
    511         $objQuery->update("dtb_products_class", $sqlval, $where, $arrID); 
    512     // 在庫を減らす 
    513     } else { 
    514         $sqlval['stock'] = ($arrRet[0]['stock'] - $quantity); 
    515         if($sqlval['stock'] == "") { 
    516             $sqlval['stock'] = '0'; 
    517         }        
    518         $objQuery->update("dtb_products_class", $sqlval, $where, $arrID); 
    519     } 
    520 } 
    521  
    522 // GETの値をインサート用に整える 
    523 function lfGetInsParam($sqlVal){ 
    524      
    525     foreach($_GET as $key => $val){ 
    526         // カラムの存在チェック 
    527         if(sfColumnExists("dtb_order", $key)) $sqlVal[$key] = $val; 
    528     } 
    529      
    530     return $sqlVal; 
    531 } 
    532  
     15$objPage = new LC_Page_Shopping_Complete_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
    53319?> 
Note: See TracChangeset for help on using the changeset viewer.