source: branches/version-1/html/admin/order/edit.php @ 17241

Revision 17241, 13.2 KB checked in by adachi, 16 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("../require.php");
8
9if(file_exists(MODULE_PATH . 'mdl_paygent/mdl_paygent.inc')) {
10    require_once(MODULE_PATH . 'mdl_paygent/mdl_paygent.inc');
11}
12
13if(file_exists(MODULE_PATH . "mdl_cybs/mdl_cybs.inc")) {
14    require_once(MODULE_PATH . "mdl_cybs/mdl_cybs.inc");
15}
16
17class LC_Page {
18    function LC_Page() {
19        $this->tpl_mainpage = 'order/edit.tpl';
20        $this->tpl_subnavi = 'order/subnavi.tpl';
21        $this->tpl_mainno = 'order';
22        $this->tpl_subno = 'index';
23        $this->tpl_subtitle = '¼õÃí´ÉÍý';
24        global $arrPref;
25        $this->arrPref = $arrPref;
26        global $arrORDERSTATUS;
27        $this->arrORDERSTATUS = $arrORDERSTATUS;
28    }
29}
30
31$conn = new SC_DBConn();
32$objPage = new LC_Page();
33
34if(function_exists("sfPaygentOrderPage")) {
35    $objPage = sfPaygentOrderPage($objPage);
36}
37
38$objView = new SC_AdminView();
39$objSess = new SC_Session();
40$objSiteInfo = new SC_SiteInfo();
41$arrInfo = $objSiteInfo->data;
42
43// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
44$objFormParam = new SC_FormParam();
45// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
46lfInitParam();
47
48// ǧ¾Ú²ÄÈݤÎȽÄê
49sfIsSuccess($objSess);
50
51// ¸¡º÷¥Ñ¥é¥á¡¼¥¿¤Î°ú¤­·Ñ¤®
52foreach ($_POST as $key => $val) {
53    if (ereg("^search_", $key)) {
54        $objPage->arrSearchHidden[$key] = $val;
55    }
56}
57
58// ɽ¼¨¥â¡¼¥ÉȽÄê
59if(sfIsInt($_GET['order_id'])) {
60    $objPage->disp_mode = true;
61    $order_id = $_GET['order_id'];
62} else {
63    $order_id = $_POST['order_id'];
64}
65$objPage->tpl_order_id = $order_id;
66
67// DB¤«¤é¼õÃí¾ðÊó¤òÆɤ߹þ¤à
68lfGetOrderData($order_id);
69
70switch($_POST['mode']) {
71case 'pre_edit':
72case 'order_id':
73    break;
74case 'edit':
75    // POST¾ðÊó¤Ç¾å½ñ¤­
76    $objFormParam->setParam($_POST);
77
78    // ÆþÎÏÃͤÎÊÑ´¹
79    $objFormParam->convParam();
80    $objPage->arrErr = lfCheckError($arrRet);
81    if(count($objPage->arrErr) == 0) {
82        $objPage->arrErr = lfCheek($arrInfo);
83        if(count($objPage->arrErr) == 0) {
84            lfRegistData($_POST['order_id']);
85            // DB¤«¤é¼õÃí¾ðÊó¤òºÆÆɹþ
86            lfGetOrderData($order_id);
87            $objPage->tpl_onload = "window.alert('¼õÃíÍúÎò¤òÊÔ½¸¤·¤Þ¤·¤¿¡£');";
88        }
89    }
90    break;
91// ºÆ·×»»
92case 'cheek':
93    // POST¾ðÊó¤Ç¾å½ñ¤­
94    $objFormParam->setParam($_POST);
95    // ÆþÎÏÃͤÎÊÑ´¹
96    $objFormParam->convParam();
97    $objPage->arrErr = lfCheckError($arrRet);
98    if(count($objPage->arrErr) == 0) {
99        $objPage->arrErr = lfCheek($arrInfo);
100    }
101    break;
102// ¥Ú¥¤¥¸¥§¥ó¥ÈÂбþ
103case 'paygent_order':
104    $objPage->paygent_return = sfPaygentOrder($_POST['paygent_type'], $order_id);
105    break;
106
107// ¥µ¥¤¥Ð¡¼¥½¡¼¥¹ Í¿¿®¥¹¥Æ¡¼¥¿¥¹¤ÎÊѹ¹
108case 'cybs_change_auth_status':
109    $objPage = sfCybsChangeAuthStatus($objPage, $_POST['cybs_auth_status']);
110    break;
111
112// ¥µ¥¤¥Ð¡¼¥½¡¼¥¹ ³Æ¼ïÏ¢·È½èÍý
113case 'cybs_do_ics_application':
114    $objPage = sfCybsDoIcsApplication($objPage, $_POST['cybs_app']);
115    break;
116
117default:
118    break;
119}
120
121// ¥µ¥¤¥Ð¡¼¥½¡¼¥¹ÍѼõÃíÊÔ½¸¥Ú¡¼¥¸¤Î½é´ü²½
122if(function_exists("sfCybsOrderPage")) {
123    $objPage = sfCybsOrderPage($objPage);
124}
125
126// »Ùʧ¤¤ÊýË¡¤Î¼èÆÀ
127$objPage->arrPayment = sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
128// ÇÛÁ÷»þ´Ö¤Î¼èÆÀ
129$arrRet = sfGetDelivTime($objFormParam->getValue('payment_id'));
130$objPage->arrDelivTime = sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
131
132$objPage->arrForm = $objFormParam->getFormParamList();
133
134$objPage->arrInfo = $arrInfo;
135
136$objView->assignobj($objPage);
137// ɽ¼¨¥â¡¼¥ÉȽÄê
138if(!$objPage->disp_mode) {
139    $objView->display(MAIN_FRAME);
140} else {
141    $objView->display('order/disp.tpl');
142}
143//-----------------------------------------------------------------------------------------------------------------------------------
144/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
145function lfInitParam() {
146    global $objFormParam;
147    // ÇÛÁ÷Àè¾ðÊó
148    $objFormParam->addParam("¤ªÌ¾Á°1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
149    $objFormParam->addParam("¤ªÌ¾Á°2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
150    $objFormParam->addParam("¥Õ¥ê¥¬¥Ê1", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
151    $objFormParam->addParam("¥Õ¥ê¥¬¥Ê2", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
152    $objFormParam->addParam("͹ÊØÈÖ¹æ1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
153    $objFormParam->addParam("͹ÊØÈÖ¹æ2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
154    $objFormParam->addParam("ÅÔÆ»Éܸ©", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
155    $objFormParam->addParam("½»½ê1", "deliv_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
156    $objFormParam->addParam("½»½ê2", "deliv_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
157    $objFormParam->addParam("ÅÅÏÃÈÖ¹æ1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
158    $objFormParam->addParam("ÅÅÏÃÈÖ¹æ2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
159    $objFormParam->addParam("ÅÅÏÃÈÖ¹æ3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
160    // ¼õÃí¾¦ÉʾðÊó
161    $objFormParam->addParam("ÃÍ°ú¤­", "discount", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"), '0');
162    $objFormParam->addParam("Á÷ÎÁ", "deliv_fee", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"), '0');
163    $objFormParam->addParam("¼ê¿ôÎÁ", "charge", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
164    $objFormParam->addParam("ÍøÍѥݥ¤¥ó¥È", "use_point", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
165    $objFormParam->addParam("¤ª»Ùʧ¤¤ÊýË¡", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
166    $objFormParam->addParam("ÇÛÁ÷»þ´ÖID", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
167    $objFormParam->addParam("Âбþ¾õ¶·", "status", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
168    $objFormParam->addParam("ÇÛãÆü", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
169    $objFormParam->addParam("¤ª»ÙʧÊýˡ̾¾Î", "payment_method");
170    $objFormParam->addParam("ÇÛÁ÷»þ´Ö", "deliv_time");
171
172    // ¼õÃí¾ÜºÙ¾ðÊó
173    $objFormParam->addParam("ñ²Á", "price", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"), '0');
174    $objFormParam->addParam("¸Ä¿ô", "quantity", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"), '0');
175    $objFormParam->addParam("¾¦ÉÊID", "product_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"), '0');
176    $objFormParam->addParam("¥Ý¥¤¥ó¥ÈÉÕͿΨ", "point_rate");
177    $objFormParam->addParam("¾¦ÉÊ¥³¡¼¥É", "product_code");
178    $objFormParam->addParam("¾¦ÉÊ̾", "product_name");
179    $objFormParam->addParam("µ¬³Ê1", "classcategory_id1");
180    $objFormParam->addParam("µ¬³Ê2", "classcategory_id2");
181    $objFormParam->addParam("µ¬³Ê̾1", "classcategory_name1");
182    $objFormParam->addParam("µ¬³Ê̾2", "classcategory_name2");
183    $objFormParam->addParam("¥á¥â", "note", MTEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
184    // DBÆɹþÍÑ
185    $objFormParam->addParam("¾®·×", "subtotal");
186    $objFormParam->addParam("¹ç·×", "total");
187    $objFormParam->addParam("»Ùʧ¤¤¹ç·×", "payment_total");
188    $objFormParam->addParam("²Ã»»¥Ý¥¤¥ó¥È", "add_point");
189    $objFormParam->addParam("¤ªÃÂÀ¸Æü¥Ý¥¤¥ó¥È", "birth_point");
190    $objFormParam->addParam("¾ÃÈñÀǹç·×", "tax");
191    $objFormParam->addParam("ºÇ½ªÊÝ»ý¥Ý¥¤¥ó¥È", "total_point");
192    $objFormParam->addParam("¸ÜµÒID", "customer_id");
193    $objFormParam->addParam("¸½ºß¤Î¥Ý¥¤¥ó¥È", "point");
194}
195
196function lfGetOrderData($order_id) {
197    global $objFormParam;
198    global $objPage;
199    if(sfIsInt($order_id)) {
200        // DB¤«¤é¼õÃí¾ðÊó¤òÆɤ߹þ¤à
201        $objQuery = new SC_Query();
202        $where = "order_id = ?";
203        $arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
204        $objFormParam->setParam($arrRet[0]);
205        list($point, $total_point) = sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
206        $objFormParam->setValue('total_point', $total_point);
207        $objFormParam->setValue('point', $point);
208        $objPage->arrDisp = $arrRet[0];
209        // ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
210        $arrRet = lfGetOrderDetail($order_id);
211        $arrRet = sfSwapArray($arrRet);
212        $objPage->arrDisp = array_merge($objPage->arrDisp, $arrRet);
213        $objFormParam->setParam($arrRet);
214
215        // ¤½¤Î¾»Ùʧ¤¤¾ðÊó¤òɽ¼¨
216        if($objPage->arrDisp["memo02"] != "") $objPage->arrDisp["payment_info"] = unserialize($objPage->arrDisp["memo02"]);
217        if($objPage->arrDisp["memo01"] == PAYMENT_CREDIT_ID){
218            $objPage->arrDisp["payment_type"] = "¥¯¥ì¥¸¥Ã¥È·èºÑ";
219        }elseif($objPage->arrDisp["memo01"] == PAYMENT_CONVENIENCE_ID){
220            $objPage->arrDisp["payment_type"] = "¥³¥ó¥Ó¥Ë·èºÑ";
221        }else{
222            $objPage->arrDisp["payment_type"] = "¤ª»Ùʧ¤¤";
223        }
224    }
225}
226
227// ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
228function lfGetOrderDetail($order_id) {
229    $objQuery = new SC_Query();
230    $col = "product_id, classcategory_id1, classcategory_id2, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate";
231    $where = "order_id = ?";
232    $objQuery->setorder("classcategory_id1, classcategory_id2");
233    $arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id));
234    return $arrRet;
235}
236
237/* ÆþÎÏÆâÍƤΥÁ¥§¥Ã¥¯ */
238function lfCheckError() {
239    global $objFormParam;
240    // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£
241    $arrRet =  $objFormParam->getHashArray();
242    $objErr = new SC_CheckError($arrRet);
243    $objErr->arrErr = $objFormParam->checkError();
244
245    return $objErr->arrErr;
246}
247
248/* ·×»»½èÍý */
249function lfCheek($arrInfo) {
250    global $objFormParam;
251
252    $arrVal = $objFormParam->getHashArray();
253
254    // ¾¦ÉʤμïÎà¿ô
255    $max = count($arrVal['quantity']);
256    $subtotal = 0;
257    $totalpoint = 0;
258    $totaltax = 0;
259    for($i = 0; $i < $max; $i++) {
260        // ¾®·×¤Î·×»»
261        $subtotal += sfPreTax($arrVal['price'][$i], $arrInfo['tax'], $arrInfo['tax_rule']) * $arrVal['quantity'][$i];
262        // ¾®·×¤Î·×»»
263        $totaltax += sfTax($arrVal['price'][$i], $arrInfo['tax'], $arrInfo['tax_rule']) * $arrVal['quantity'][$i];
264        // ²Ã»»¥Ý¥¤¥ó¥È¤Î·×»»
265        $totalpoint += sfPrePoint($arrVal['price'][$i], $arrVal['point_rate'][$i]) * $arrVal['quantity'][$i];
266    }
267
268    // ¾ÃÈñÀÇ
269    $arrVal['tax'] = $totaltax;
270    // ¾®·×
271    $arrVal['subtotal'] = $subtotal;
272    // ¹ç·×
273    $arrVal['total'] = $subtotal - $arrVal['discount'] + $arrVal['deliv_fee'] + $arrVal['charge'];
274    // ¤ª»Ùʧ¤¤¹ç·×
275    $arrVal['payment_total'] = $arrVal['total'] - ($arrVal['use_point'] * POINT_VALUE);
276
277    // ²Ã»»¥Ý¥¤¥ó¥È
278    $arrVal['add_point'] = sfGetAddPoint($totalpoint, $arrVal['use_point'], $arrInfo);
279
280    list($arrVal['point'], $arrVal['total_point']) = sfGetCustomerPoint($_POST['order_id'], $arrVal['use_point'], $arrVal['add_point']);
281
282    if($arrVal['total'] < 0) {
283        $arrErr['total'] = '¹ç·×³Û¤¬¥Þ¥¤¥Ê¥¹É½¼¨¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤ËÄ´À°¤·¤Æ²¼¤µ¤¤¡£<br />';
284    }
285
286    if($arrVal['payment_total'] < 0) {
287        $arrErr['payment_total'] = '¤ª»Ùʧ¤¤¹ç·×³Û¤¬¥Þ¥¤¥Ê¥¹É½¼¨¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤ËÄ´À°¤·¤Æ²¼¤µ¤¤¡£<br />';
288    }
289
290    if($arrVal['total_point'] < 0) {
291        $arrErr['total_point'] = 'ºÇ½ªÊÝ»ý¥Ý¥¤¥ó¥È¤¬¥Þ¥¤¥Ê¥¹É½¼¨¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤ËÄ´À°¤·¤Æ²¼¤µ¤¤¡£<br />';
292    }
293
294    $objFormParam->setParam($arrVal);
295    return $arrErr;
296}
297
298/* DBÅÐÏ¿½èÍý */
299function lfRegistData($order_id) {
300    global $objFormParam;
301    $objQuery = new SC_Query();
302
303    $objQuery->begin();
304
305    // ÆþÎϥǡ¼¥¿¤òÅϤ¹¡£
306    $arrRet =  $objFormParam->getHashArray();
307
308    foreach($arrRet as $key => $val) {
309        // ÇÛÎó¤ÏÅÐÏ¿¤·¤Ê¤¤
310        if(!is_array($val)) {
311            $sqlval[$key] = $val;
312        }
313    }
314
315    unset($sqlval['total_point']);
316    unset($sqlval['point']);
317
318    $where = "order_id = ?";
319
320    // ¼õÃí¥¹¥Æ¡¼¥¿¥¹¤ÎȽÄê
321    if ($sqlval['status'] == ODERSTATUS_COMMIT) {
322        // ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎȯÁ÷ºÑ¤ßÆü¤ò¹¹¿·¤¹¤ë
323        $sqlval['commit_date'] = "Now()";
324    }
325
326    $sqlval['update_date'] = "Now()";
327
328    // ¼õÃí¥Æ¡¼¥Ö¥ë¤Î¹¹¿·
329    $objQuery->update("dtb_order", $sqlval, $where, array($order_id));
330
331    $sql = "";
332    $sql .= " UPDATE";
333    $sql .= "     dtb_order";
334    $sql .= " SET";
335    $sql .= "     payment_method = (SELECT payment_method FROM dtb_payment WHERE payment_id = ?)";
336    $sql .= "     ,deliv_time = (SELECT deliv_time FROM dtb_delivtime WHERE time_id = ? AND deliv_id = (SELECT deliv_id FROM dtb_payment WHERE payment_id = ? ))";
337    $sql .= "     ,update_date = NOW()";
338    $sql .= " WHERE order_id = ?";
339
340    if ($arrRet['deliv_time_id'] == "") {
341        $deliv_time_id = 0;
342    }else{
343        $deliv_time_id = $arrRet['deliv_time_id'];
344    }
345    $arrUpdData = array($arrRet['payment_id'], $deliv_time_id, $arrRet['payment_id'], $order_id);
346    $objQuery->query($sql, $arrUpdData);
347
348    // ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¹¹¿·
349    $arrDetail = $objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2"));
350    $objQuery->delete("dtb_order_detail", $where, array($order_id));
351
352    $max = count($arrDetail);
353    for($i = 0; $i < $max; $i++) {
354        $sqlval = array();
355        $sqlval['order_id'] = $order_id;
356        $sqlval['product_id']  = $arrDetail[$i]['product_id'];
357        $sqlval['product_code']  = $arrDetail[$i]['product_code'];
358        $sqlval['product_name']  = $arrDetail[$i]['product_name'];
359        $sqlval['price']  = $arrDetail[$i]['price'];
360        $sqlval['quantity']  = $arrDetail[$i]['quantity'];
361        $sqlval['point_rate']  = $arrDetail[$i]['point_rate'];
362        $sqlval['classcategory_id1'] = $arrDetail[$i]['classcategory_id1'];
363        $sqlval['classcategory_id2'] = $arrDetail[$i]['classcategory_id2'];
364        $sqlval['classcategory_name1'] = $arrDetail[$i]['classcategory_name1'];
365        $sqlval['classcategory_name2'] = $arrDetail[$i]['classcategory_name2'];
366        $objQuery->insert("dtb_order_detail", $sqlval);
367    }
368    $objQuery->commit();
369}
370?>
Note: See TracBrowser for help on using the repository browser.