source: branches/version-1/data/downloads/module/mdl_paygent/paygent_bank.php @ 17402

Revision 17402, 16.9 KB checked in by satou, 18 years ago (diff)

ペイジェント決済モジュール アップデート

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once(MODULE_PATH . "mdl_paygent/mdl_paygent.inc");
8
9class LC_Page {
10    function LC_Page() {
11        /** ɬ¤º»ØÄꤹ¤ë **/
12        if (GC_MobileUserAgent::isMobile()) {
13            $this->tpl_mainpage = MODULE_PATH . "mdl_paygent/paygent_bank_mobile.tpl";
14        } else {
15            $this->tpl_mainpage = MODULE_PATH . "mdl_paygent/paygent_bank.tpl";
16        }
17        /*
18         session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
19         ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìɽ¼¨¤òÍÞÀ©¤¹¤ë¡£
20         private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
21        */
22        session_cache_limiter('private-no-expire');     
23    }
24}
25
26$objPage = new LC_Page();
27if (GC_MobileUserAgent::isMobile()) {
28    $objView = new SC_MobileView();
29} else {
30    $objView = new SC_SiteView();
31}
32$objCampaignSess = new SC_CampaignSession();
33$objCustomer = new SC_Customer();
34$objSiteInfo = $objView->objSiteInfo;
35$arrInfo = $objSiteInfo->data;
36
37// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
38$objFormParam = new SC_FormParam();
39
40// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
41$arrData = sfGetOrderTemp($uniqid);
42
43// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
44lfInitParam($arrData);
45// POSTÃͤμèÆÀ
46$objFormParam->setParam($_POST);
47
48// ¥«¡¼¥È½¸·×½èÍý
49$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
50
51// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
52$arrData = sfGetOrderTemp($uniqid);
53
54// ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
55$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
56
57switch($_POST['mode']) {
58// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
59case 'return':
60    // Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
61    $objSiteSess->setRegistFlag();
62    if (GC_MobileUserAgent::isMobile()) {
63        header("Location: " . gfAddSessionId(MOBILE_URL_SHOP_CONFIRM));
64    } else {
65        header("Location: " . URL_SHOP_CONFIRM);
66    }
67    break;
68// ¼¡¤Ø
69case 'next':
70    // ÆþÎÏÃͤÎÊÑ´¹
71    $objFormParam->convParam();
72    $objPage->arrErr = lfCheckError();
73    // ÆþÎÏ¥¨¥é¡¼¤Ê¤·¤Î¾ì¹ç
74    if(count($objPage->arrErr) == 0) {
75        // ÆþÎϥǡ¼¥¿¤Î¼èÆÀ¤ò¹Ô¤¦
76        $arrInput = $objFormParam->getHashArray();
77        // ¥¯¥ì¥¸¥Ã¥ÈÅÅʸÁ÷¿®
78        $arrRet = sfSendPaygentBANK($arrData, $arrInput, $uniqid);
79       
80        // À®¸ù
81        if(strlen($arrRet['asp_url']) > 0) {
82            // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
83            $objSiteSess->setRegistFlag();
84            LC_Helper_Send_Payment::sendPaymentData(MDL_PAYGENT_CODE, $arrData['payment_total']);
85            // ÅÐÏ¿½èÍý
86            $objQuery->begin();
87            $order_id = lfDoComplete($objQuery, $uniqid);
88            $objQuery->commit();
89            // ¥»¥Ã¥·¥ç¥ó¤ËÊݴɤµ¤ì¤Æ¤¤¤ë¾ðÊó¤ò¹¹¿·¤¹¤ë
90            $objCustomer->updateSession();
91            // ´°Î»¥á¡¼¥ëÁ÷¿®
92            if($order_id != "") {
93                $order_email = $objQuery->select("order_email", "dtb_order", "order_id = ?", array($order_id));
94                //ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬·ÈÂÓ¤«PC¤«¤Ë±þ¤¸¤ÆÃíʸ´°Î»¥á¡¼¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÊѤ¨¤ë
95                if(ereg("(ezweb.ne.jp$|docomo.ne.jp$|softbank.ne.jp$|vodafone.ne.jp$)",$order_email[0]['order_email'])){
96                    // ¥â¥Ð¥¤¥ëÈÇ
97                    sfSendOrderMail($order_id, '2');
98                }else{
99                    // PCÈÇ
100                    sfSendOrderMail($order_id, '1');
101                }
102            }
103            // ¥Ú¥¤¥¸¥§¥ó¥È·èºÑ²èÌ̤ËÁ«°Ü
104            header("Location: " . $arrRet['asp_url']);
105        // ¼ºÇÔ
106        } else {
107            $objPage->tpl_error = "·èºÑ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£". $arrRet['response'];
108        }
109    }
110    break;
111}
112
113$objDate = new SC_Date();
114$objDate->setStartYear(RELEASE_YEAR);
115$objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR);
116$objPage->arrYear = $objDate->getZeroYear();
117$objPage->arrMonth = $objDate->getZeroMonth();
118
119// ¶¦Ä̤Îɽ¼¨½àÈ÷
120$objPage = sfPaygentDisp($objPage, $payment_id);
121
122$objPage->arrNetBank = $arrNetBank;
123$objPage->arrForm = $objFormParam->getFormParamList();
124$objView->assignobj($objPage);
125// ¥Õ¥ì¡¼¥à¤òÁªÂò(¥­¥ã¥ó¥Ú¡¼¥ó¥Ú¡¼¥¸¤«¤éÁ«°Ü¤Ê¤éÊѹ¹)
126$objCampaignSess->pageView($objView);
127
128//-----------------------------------------------------------------------------------------------
129
130/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
131function lfInitParam($arrData) {
132    global $objFormParam;
133    $objFormParam->addParam("ÍøÍѼÔÀ«", "customer_family_name", PAYGENT_BANK_STEXT_LEN / 2, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"), $arrData['order_name01']);
134    $objFormParam->addParam("ÍøÍѼÔ̾", "customer_name", PAYGENT_BANK_STEXT_LEN / 2, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"), $arrData['order_name02']);
135    $objFormParam->addParam("ÍøÍѼÔÀ«¥«¥Ê", "customer_family_name_kana", PAYGENT_BANK_STEXT_LEN, "CKVa", array("EXIST_CHECK", "KANA_CHECK", "MAX_LENGTH_CHECK"), $arrData['order_kana01']);
136    $objFormParam->addParam("ÍøÍѼÔ̾¥«¥Ê", "customer_name_kana", PAYGENT_BANK_STEXT_LEN, "CKVa", array("EXIST_CHECK", "KANA_CHECK", "MAX_LENGTH_CHECK"), $arrData['order_kana02']);
137}
138
139/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
140function lfCheckError() {
141    global $objFormParam;
142    // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£
143    $arrRet =  $objFormParam->getHashArray();
144    $objErr = new SC_CheckError($arrRet);
145    $objErr->arrErr = $objFormParam->checkError();
146   
147    return $objErr->arrErr;
148}
149
150// ´°Î»½èÍý
151function lfDoComplete($objQuery, $uniqid) {
152    global $objCartSess;
153    global $objSiteSess;
154    global $objCampaignSess;
155    global $objCustomer;
156    global $arrInfo;
157   
158    // °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
159    $arrData = sfGetOrderTemp($uniqid);
160
161    // ²ñ°÷¾ðÊóÅÐÏ¿½èÍý
162    if ($objCustomer->isLoginSuccess()) {
163        // ¿·¤ªÆÏ¤±Àè¤ÎÅÐÏ¿
164        lfSetNewAddr($uniqid, $objCustomer->getValue('customer_id'));
165        // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
166        lfSetCustomerPurchase($objCustomer->getValue('customer_id'), $arrData, $objQuery);
167    } else {
168        //¹ØÆþ»þ¶¯À©²ñ°÷ÅÐÏ¿
169        switch(PURCHASE_CUSTOMER_REGIST) {
170        //̵¸ú
171        case '0':
172            // ¹ØÆþ»þ²ñ°÷ÅÐÏ¿
173            if($arrData['member_check'] == '1') {
174                // ²¾²ñ°÷ÅÐÏ¿
175                $customer_id = lfRegistPreCustomer($arrData, $arrInfo);
176                // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
177                lfSetCustomerPurchase($customer_id, $arrData, $objQuery);
178            }
179            break;
180        //Í­¸ú
181        case '1':
182            // ²¾²ñ°÷ÅÐÏ¿
183            $customer_id = lfRegistPreCustomer($arrData, $arrInfo);
184            // ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
185            lfSetCustomerPurchase($customer_id, $arrData, $objQuery);
186            break;
187        }
188    }
189   
190    // °ì»þ¥Æ¡¼¥Ö¥ë¤ò¼õÃí¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤¹¤ë
191    $order_id = lfRegistOrder($objQuery, $arrData, $objCampaignSess);
192    // ¥«¡¼¥È¾¦Éʤò¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤Ë³ÊǼ¤¹¤ë
193    lfRegistOrderDetail($objQuery, $order_id, $objCartSess);
194    // ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤òºï½ü¤¹¤ë¡£
195    lfDeleteTempOrder($objQuery, $uniqid);
196    // ¥­¥ã¥ó¥Ú¡¼¥ó¤«¤é¤ÎÁ«°Ü¤Î¾ì¹çÅÐÏ¿¤¹¤ë¡£
197    if($objCampaignSess->getIsCampaign() and $objCartSess->chkCampaign($objCampaignSess->getCampaignId())) {
198        lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id);
199    }
200   
201    // ¥»¥Ã¥·¥ç¥ó¥«¡¼¥ÈÆâ¤Î¾¦Éʤòºï½ü¤¹¤ë¡£
202    $objCartSess->delAllProducts();
203    // Ãíʸ°ì»þID¤ò²ò½ü¤¹¤ë¡£
204    $objSiteSess->unsetUniqId();
205   
206    return $order_id;
207}
208
209// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î½»½ê¤¬ÅÐÏ¿ºÑ¤ß¥Æ¡¼¥Ö¥ë¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢Ê̤ΤªÆÏ¤±Àè¤ËÄɲ乤ë
210function lfSetNewAddr($uniqid, $customer_id) {
211    $objQuery = new SC_Query();
212    $diff = false;
213    $find_same = false;
214   
215    $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";
216    $where = "order_temp_id = ?";
217    $arrRet = $objQuery->select($col, "dtb_order_temp", $where, array($uniqid));
218   
219    // Í×ÁÇ̾¤Îdeliv_¤òºï½ü¤¹¤ë¡£
220    foreach($arrRet[0] as $key => $val) {
221        $keyname = ereg_replace("^deliv_", "", $key);
222        $arrNew[$keyname] = $val;
223    }
224   
225    // ²ñ°÷¾ðÊ󥯡¼¥Ö¥ë¤È¤ÎÈæ³Ó
226    $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02";
227    $where = "customer_id = ?";
228    $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($customer_id));
229   
230    // ²ñ°÷¾ðÊó¤Î½»½ê¤È°Û¤Ê¤ë¾ì¹ç
231    if($arrNew != $arrCustomerAddr[0]) {
232        // Ê̤ΤªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤Î½»½ê¤ÈÈæ³Ó¤¹¤ë
233        $col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02";
234        $where = "customer_id = ?";
235        $arrOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($customer_id));
236
237        foreach($arrOtherAddr as $arrval) {
238            if($arrNew == $arrval) {
239                // ¤¹¤Ç¤ËƱ¤¸½»½ê¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë
240                $find_same = true;
241            }
242        }
243       
244        if(!$find_same) {
245            $diff = true;
246        }
247    }
248   
249    // ¿·¤·¤¤¤ªÆÏ¤±À褬ÅÐÏ¿ºÑ¤ß¤Î¤â¤Î¤È°Û¤Ê¤ë¾ì¹ç¤ÏÊ̤ΤªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë
250    if($diff) {
251        $sqlval = $arrNew;
252        $sqlval['customer_id'] = $customer_id;
253        $objQuery->insert("dtb_other_deliv", $sqlval);
254    }
255}
256
257/* ¹ØÆþ¾ðÊó¤ò²ñ°÷¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë */
258function lfSetCustomerPurchase($customer_id, $arrData, $objQuery) {
259    $col = "first_buy_date, last_buy_date, buy_times, buy_total, point";
260    $where = "customer_id = ?";
261    $arrRet = $objQuery->select($col, "dtb_customer", $where, array($customer_id));
262    $sqlval = $arrRet[0];
263   
264    if($sqlval['first_buy_date'] == "") {
265        $sqlval['first_buy_date'] = "Now()";
266    }
267    $sqlval['last_buy_date'] = "Now()";
268    $sqlval['buy_times']++;
269    $sqlval['buy_total']+= $arrData['total'];
270    $sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']);
271   
272    // ¥Ý¥¤¥ó¥È¤¬ÉÔ­¤·¤Æ¤¤¤ë¾ì¹ç
273    if($sqlval['point'] < 0) {
274        $objQuery->rollback();
275        sfDispSiteError(LACK_POINT);
276    }
277   
278    $objQuery->update("dtb_customer", $sqlval, $where, array($customer_id));
279}
280
281// ²ñ°÷ÅÐÏ¿¡Ê²¾ÅÐÏ¿¡Ë
282function lfRegistPreCustomer($arrData, $arrInfo) {
283    // ¹ØÆþ»þ¤Î²ñ°÷ÅÐÏ¿
284    $sqlval['name01'] = $arrData['order_name01'];
285    $sqlval['name02'] = $arrData['order_name02'];
286    $sqlval['kana01'] = $arrData['order_kana01'];
287    $sqlval['kana02'] = $arrData['order_kana02'];
288    $sqlval['zip01'] = $arrData['order_zip01'];
289    $sqlval['zip02'] = $arrData['order_zip02'];
290    $sqlval['pref'] = $arrData['order_pref'];
291    $sqlval['addr01'] = $arrData['order_addr01'];
292    $sqlval['addr02'] = $arrData['order_addr02'];
293    $sqlval['email'] = $arrData['order_email'];
294    $sqlval['tel01'] = $arrData['order_tel01'];
295    $sqlval['tel02'] = $arrData['order_tel02'];
296    $sqlval['tel03'] = $arrData['order_tel03'];
297    $sqlval['fax01'] = $arrData['order_fax01'];
298    $sqlval['fax02'] = $arrData['order_fax02'];
299    $sqlval['fax03'] = $arrData['order_fax03'];
300    $sqlval['sex'] = $arrData['order_sex'];
301    $sqlval['password'] = $arrData['password'];
302    $sqlval['reminder'] = $arrData['reminder'];
303    $sqlval['reminder_answer'] = $arrData['reminder_answer'];
304   
305    // ¥á¥ë¥Þ¥¬ÇÛ¿®Íѥե饰¤ÎȽÄê
306    switch($arrData['mail_flag']) {
307    case '1':   // HTML¥á¡¼¥ë
308        $mail_flag = 4;
309        break;
310    case '2':   // TEXT¥á¡¼¥ë
311        $mail_flag = 5;
312        break;
313    case '3':   // ´õ˾¤Ê¤·
314        $mail_flag = 6;
315        break;
316    default:
317        $mail_flag = 6;
318        break;
319    }
320    // ¥á¥ë¥Þ¥¬¥Õ¥é¥°
321    $sqlval['mailmaga_flg'] = $mail_flag;
322       
323    // ²ñ°÷²¾ÅÐÏ¿
324    $sqlval['status'] = 1;
325    // URLȽÄêÍÑ¥­¡¼
326    $sqlval['secret_key'] = sfGetUniqRandomId("t");
327   
328    $objQuery = new SC_Query();
329    $sqlval['create_date'] = "now()";
330    $sqlval['update_date'] = "now()";
331    $objQuery->insert("dtb_customer", $sqlval);
332   
333    // ¸ÜµÒID¤Î¼èÆÀ
334    $arrRet = $objQuery->select("customer_id", "dtb_customer", "secret_key = ?", array($sqlval['secret_key']));
335    $customer_id = $arrRet[0]['customer_id'];
336   
337    //¡¡²¾ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®
338    $objMailPage = new LC_Page();
339    $objMailPage->to_name01 = $arrData['order_name01'];
340    $objMailPage->to_name02 = $arrData['order_name02'];
341    $objMailPage->CONF = $arrInfo;
342    $objMailPage->uniqid = $sqlval['secret_key'];
343    $objMailView = new SC_SiteView();
344    $objMailView->assignobj($objMailPage);
345    $body = $objMailView->fetch("mail_templates/customer_mail.tpl");
346   
347    $objMail = new GC_SendMail();
348    $objMail->setItem(
349                        ''                                      //¡¡°¸Àè
350                        , sfMakeSubject("²ñ°÷ÅÐÏ¿¤Î¤´³Îǧ")     //¡¡¥µ¥Ö¥¸¥§¥¯¥È
351                        , $body                                 //¡¡ËÜʸ
352                        , $arrInfo['email03']                   //¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
353                        , $arrInfo['shop_name']                 //¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
354                        , $arrInfo["email03"]                   //¡¡reply_to
355                        , $arrInfo["email04"]                   //¡¡return_path
356                        , $arrInfo["email04"]                   //  Errors_to
357                        , $arrInfo["email01"]                   //  Bcc
358                                                        );
359    // °¸Àè¤ÎÀßÄê
360    $name = $arrData['order_name01'] . $arrData['order_name02'] ." ÍÍ";
361    $objMail->setTo($arrData['order_email'], $name);           
362    $objMail->sendMail();
363   
364    return $customer_id;
365}
366
367// ¼õÃí¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿
368function lfRegistOrder($objQuery, $arrData, $objCampaignSess) {
369    $sqlval = $arrData;
370
371    // ¼õÃí¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤Þ¤Ê¤¤Îó¤ò½üµî
372    unset($sqlval['mailmaga_flg']);     // ¥á¥ë¥Þ¥¬¥Á¥§¥Ã¥¯
373    unset($sqlval['deliv_check']);      // Ê̤ΤªÆÏ¤±Àè¥Á¥§¥Ã¥¯
374    unset($sqlval['point_check']);      // ¥Ý¥¤¥ó¥ÈÍøÍÑ¥Á¥§¥Ã¥¯
375    unset($sqlval['member_check']);     // ¹ØÆþ»þ²ñ°÷¥Á¥§¥Ã¥¯
376    unset($sqlval['password']);         // ¥í¥°¥¤¥ó¥Ñ¥¹¥ï¡¼¥É
377    unset($sqlval['reminder']);         // ¥ê¥Þ¥¤¥ó¥À¡¼¼ÁÌä
378    unset($sqlval['reminder_answer']);  // ¥ê¥Þ¥¤¥ó¥À¡¼Åú¤¨
379    unset($sqlval['mail_flag']);        // ¥á¡¼¥ë¥Õ¥é¥°
380    unset($sqlval['session']);          // ¥»¥Ã¥·¥ç¥ó¾ðÊó
381   
382    // Ãíʸ¥¹¥Æ¡¼¥¿¥¹:»ØÄ̵꤬¤±¤ì¤Ð¿·µ¬¼õÉÕ¤ËÀßÄê
383    if($sqlval["status"] == ""){
384        $sqlval['status'] = '1';           
385    }
386   
387    // Ê̤ΤªÆÏ¤±Àè¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷Àè¤ËÅÐÏ¿½»½ê¤ò¥³¥Ô¡¼¤¹¤ë¡£
388    if($arrData["deliv_check"] == "-1") {
389        $sqlval['deliv_name01'] = $arrData['order_name01'];
390        $sqlval['deliv_name02'] = $arrData['order_name02'];
391        $sqlval['deliv_kana01'] = $arrData['order_kana01'];
392        $sqlval['deliv_kana02'] = $arrData['order_kana02'];
393        $sqlval['deliv_pref'] = $arrData['order_pref'];
394        $sqlval['deliv_zip01'] = $arrData['order_zip01'];
395        $sqlval['deliv_zip02'] = $arrData['order_zip02'];
396        $sqlval['deliv_addr01'] = $arrData['order_addr01'];
397        $sqlval['deliv_addr02'] = $arrData['order_addr02'];
398        $sqlval['deliv_tel01'] = $arrData['order_tel01'];
399        $sqlval['deliv_tel02'] = $arrData['order_tel02'];
400        $sqlval['deliv_tel03'] = $arrData['order_tel03'];
401    }
402   
403    $order_id = $arrData['order_id'];       // ¥ª¡¼¥À¡¼ID
404    $sqlval['create_date'] = 'now()';       // ¼õÃíÆü
405   
406    // ¥­¥ã¥ó¥Ú¡¼¥óID
407    if($objCampaignSess->getIsCampaign()) $sqlval['campaign_id'] = $objCampaignSess->getCampaignId();
408
409    // ¥²¥Ã¥È¤ÎÃͤò¥¤¥ó¥µ¡¼¥È
410    //$sqlval = lfGetInsParam($sqlval);
411   
412    // INSERT¤Î¼Â¹Ô
413    $objQuery->insert("dtb_order", $sqlval);
414   
415    return $order_id;
416}
417
418// ¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿
419function lfRegistOrderDetail($objQuery, $order_id, $objCartSess) {
420    // ¥«¡¼¥ÈÆâ¾ðÊó¤Î¼èÆÀ
421    $arrCart = $objCartSess->getCartList();
422    $max = count($arrCart);
423   
424    // ´û¤Ë¸ºß¤¹¤ë¾ÜºÙ¥ì¥³¡¼¥É¤ò¾Ã¤·¤Æ¤ª¤¯¡£
425    $objQuery->delete("dtb_order_detail", "order_id = $order_id");
426
427    // µ¬³Ê̾°ìÍ÷
428    $arrClassName = sfGetIDValueList("dtb_class", "class_id", "name");
429    // µ¬³ÊʬÎà̾°ìÍ÷
430    $arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
431           
432    for ($i = 0; $i < $max; $i++) {
433        // ¾¦Éʵ¬³Ê¾ðÊó¤Î¼èÆÀ   
434        $arrData = sfGetProductsClass($arrCart[$i]['id']);
435       
436        // ¸ºß¤¹¤ë¾¦ÉʤΤßɽ¼¨¤¹¤ë¡£
437        if($arrData != "") {
438            $sqlval['order_id'] = $order_id;
439            $sqlval['product_id'] = $arrCart[$i]['id'][0];
440            $sqlval['classcategory_id1'] = $arrCart[$i]['id'][1];
441            $sqlval['classcategory_id2'] = $arrCart[$i]['id'][2];
442            $sqlval['product_name'] = $arrData['name'];
443            $sqlval['product_code'] = $arrData['product_code'];
444            $sqlval['classcategory_name1'] = $arrClassCatName[$arrData['classcategory_id1']];
445            $sqlval['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']];
446            $sqlval['point_rate'] = $arrCart[$i]['point_rate'];         
447            $sqlval['price'] = $arrCart[$i]['price'];
448            $sqlval['quantity'] = $arrCart[$i]['quantity'];
449            lfReduceStock($objQuery, $arrCart[$i]['id'], $arrCart[$i]['quantity']);
450            // INSERT¤Î¼Â¹Ô
451            $objQuery->insert("dtb_order_detail", $sqlval);
452        } else {
453            sfDispSiteError(CART_NOT_FOUND);
454        }
455    }
456}
457
458/* ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Îºï½ü */
459function lfDeleteTempOrder($objQuery, $uniqid) {
460    $where = "order_temp_id = ?";
461    $sqlval['del_flg'] = 1;
462    $objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid));
463    // $objQuery->delete("dtb_order_temp", $where, array($uniqid));
464}
465
466// ¥­¥ã¥ó¥Ú¡¼¥ó¼õÃí¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿
467function lfRegistCampaignOrder($objQuery, $objCampaignSess, $order_id) {
468
469    // ¼õÃí¥Ç¡¼¥¿¤ò¼èÆÀ
470    $cols = "order_id, campaign_id, customer_id, message, order_name01, order_name02,".
471            "order_kana01, order_kana02, order_email, order_tel01, order_tel02, order_tel03,".
472            "order_fax01, order_fax02, order_fax03, order_zip01, order_zip02, order_pref, order_addr01,".
473            "order_addr02, order_sex, order_birth, order_job, deliv_name01, deliv_name02, deliv_kana01,".
474            "deliv_kana02, deliv_tel01, deliv_tel02, deliv_tel03, deliv_fax01, deliv_fax02, deliv_fax03,".
475            "deliv_zip01, deliv_zip02, deliv_pref, deliv_addr01, deliv_addr02, payment_total";
476
477    $arrOrder = $objQuery->select($cols, "dtb_order", "order_id = ?", array($order_id));
478           
479    $sqlval = $arrOrder[0];
480    $sqlval['create_date'] = 'now()';
481       
482    // INSERT¤Î¼Â¹Ô
483    $objQuery->insert("dtb_campaign_order", $sqlval);
484   
485    // ¿½¤·¹þ¤ß¿ô¤Î¹¹¿·
486    $total_count = $objQuery->get("dtb_campaign", "total_count", "campaign_id = ?", array($sqlval['campaign_id']));
487    $arrCampaign['total_count'] = $total_count += 1;
488    $objQuery->update("dtb_campaign", $arrCampaign, "campaign_id = ?", array($sqlval['campaign_id']));
489   
490}
491
492// ºß¸Ë¤ò¸º¤é¤¹½èÍý
493function lfReduceStock($objQuery, $arrID, $quantity) {
494    $where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?";
495    $arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID);
496   
497    // Çä¤êÀڤ쥨¥é¡¼
498    if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) {
499        $objQuery->rollback();
500        sfDispSiteError(SOLD_OUT, "", true);
501    // ̵À©¸Â¤Î¾ì¹ç¡¢ºß¸Ë¤ÏNULL
502    } elseif($arrRet[0]['stock_unlimited'] == '1') {
503        $sqlval['stock'] = null;
504        $objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
505    // ºß¸Ë¤ò¸º¤é¤¹
506    } else {
507        $sqlval['stock'] = ($arrRet[0]['stock'] - $quantity);
508        if($sqlval['stock'] == "") {
509            $sqlval['stock'] = '0';
510        }       
511        $objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
512    }
513}
514
515?>
Note: See TracBrowser for help on using the repository browser.