source: temp/trunk/html/admin/order/edit.php @ 1328

Revision 1328, 11.0 KB checked in by naka, 20 years ago (diff)

* empty log message *

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