source: closed/feature-module-paygent/html/admin/order/edit.php @ 16555

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