source: branches/beta/html/mobile/nonmember/deliv_addr.php @ 15120

Revision 15120, 12.6 KB checked in by adati, 17 years ago (diff)

1.4.2betaのマージ

Line 
1<?php
2/**
3 *
4 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
5 *
6 * http://www.lockon.co.jp/
7 *
8 * ÇÛÁ÷Àè¤ÎÄɲÃ
9 */
10require_once("../require.php");
11
12class LC_Page{
13    function LC_Page(){
14        $this->tpl_mainpage = 'nonmember/deliv_addr.tpl';
15        $this->tpl_title = "¾¤Î¤ªÆϤ±Àè¤ÎÅÐÏ¿";
16    }
17}
18
19$objPage = new LC_Page();
20$objView = new SC_MobileView(false);
21$objQuery = new SC_Query();
22$objCustomer = new SC_Customer();
23$objConn = new SC_DBConn();
24$objSiteSess = new SC_SiteSession();
25$objCartSess = new SC_CartSession();
26
27$objPage->arrForm = $_POST;
28$objPage->arrPref = $arrPref;
29
30//Ê̤ΤªÆϤ±Àè£Ä£ÂÅÐÏ¿ÍÑ¥«¥é¥àÇÛÎó
31$arrRegistColumn = array(
32                             array(  "column" => "name01",      "convert" => "aKV" ),
33                             array(  "column" => "name02",      "convert" => "aKV" ),
34                             array(  "column" => "kana01",      "convert" => "CKV" ),
35                             array(  "column" => "kana02",      "convert" => "CKV" ),
36                             array(  "column" => "zip01",       "convert" => "n" ),
37                             array(  "column" => "zip02",       "convert" => "n" ),
38                             array(  "column" => "pref",        "convert" => "n" ),
39                             array(  "column" => "addr01",      "convert" => "aKV" ),
40                             array(  "column" => "addr02",      "convert" => "aKV" ),
41                             array(  "column" => "tel01",       "convert" => "n" ),
42                             array(  "column" => "tel02",       "convert" => "n" ),
43                             array(  "column" => "tel03",       "convert" => "n" ),
44                        );
45
46//-- ¥Ç¡¼¥¿ÀßÄê
47foreach($_POST as $key => $val) {
48    if ($key != "mode" && $key != "return" && $key != "submit" && $key != session_name()) {
49        $objPage->list_data[ $key ] = $val;
50    }
51}
52
53// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
54$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
55
56                     
57    //-- ÆþÎϥǡ¼¥¿¤ÎÊÑ´¹
58    $objPage->arrForm = lfConvertParam($objPage->arrForm, $arrRegistColumn);                       
59
60
61if($_SESSION['deliv_info']){
62   
63    foreach($_SESSION['deliv_info'] as $key => $val){
64        $objPage->arrForm[$key] = $val;
65    }
66   
67}
68
69// Ìá¤ë¥Ü¥¿¥óÍѽèÍý
70if (!empty($_POST["return"])) {
71    switch ($_POST["mode"]) {
72    case 'complete':
73        $_POST["mode"] = "set2";
74        break;
75    case 'set2':
76        $_POST["mode"] = "set1";
77        break;
78    default:
79        header("Location: " . gfAddSessionId('deliv.php'));
80        exit;
81
82    }
83}
84
85switch ($_POST['mode']){
86    case 'set1':
87        $objPage->arrErr = lfErrorCheck1($objPage->arrForm);
88        if (count($objPage->arrErr) == 0 && empty($_POST["return"])) {
89            $objPage->tpl_mainpage = 'nonmember/set1.tpl';
90
91            $checkVal = array("pref", "addr01", "addr02", "addr03", "tel01", "tel02", "tel03");
92            foreach($checkVal as $key) {
93                unset($objPage->list_data[$key]);
94            }
95
96            // ͹ÊØÈֹ椫¤é½»½ê¤Î¼èÆÀ
97            if (@$objPage->arrForm['pref'] == "" && @$objPage->arrForm['addr01'] == "" && @$objPage->arrForm['addr02'] == "") {
98                $address = lfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']);
99
100                $objPage->arrForm['pref'] = @$address[0]['state'];
101                $objPage->arrForm['addr01'] = @$address[0]['city'] . @$address[0]['town'];
102            }
103        } else {
104            $checkVal = array("name01", "name02", "kana01", "kana02", "zip01", "zip02");
105            foreach($checkVal as $key) {
106                unset($objPage->list_data[$key]);
107            }
108        }
109        break;
110    case 'set2':
111        $objPage->arrErr = lfErrorCheck2($objPage->arrForm);
112        if (count($objPage->arrErr) == 0 && empty($_POST["return"])) {
113             // ÅÐÏ¿
114            $other_deliv_id = lfRegistData($_POST,$arrRegistColumn,$uniqid);
115
116            // ÅÐÏ¿ºÑ¤ß¤ÎÊ̤ΤªÆϤ±Àè¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤à
117            lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id);
118           
119            $_SESSION['deliv_info'] = $_POST;
120            // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
121            $objSiteSess->setRegistFlag();
122            // ¤ª»Ùʧ¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
123            header("Location: " . gfAddSessionId('./payment.php'));
124            exit;
125
126//          $objPage->tpl_mainpage = 'nonmember/set2.tpl';
127        } else {
128            $objPage->tpl_mainpage = 'nonmember/set1.tpl';
129
130            $checkVal = array("pref", "addr01", "addr02", "addr03", "tel01", "tel02", "tel03");
131            foreach($checkVal as $key) {
132                unset($objPage->list_data[$key]);
133            }
134        }
135        break;
136    case 'complete':
137        $objPage->arrErr = lfErrorCheck($objPage->arrForm);
138        if (count($objPage->arrErr) == 0) {
139            // ÅÐÏ¿
140            $other_deliv_id = lfRegistData($_POST,$arrRegistColumn,$uniqid);
141
142            // ÅÐÏ¿ºÑ¤ß¤ÎÊ̤ΤªÆϤ±Àè¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤à
143            lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id);
144
145            // Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
146            $objSiteSess->setRegistFlag();
147            // ¤ª»Ùʧ¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
148            header("Location: " . gfAddSessionId('./payment.php'));
149            exit;
150        } else {
151            sfDispSiteError(CUSTOMER_ERROR, "", false, "", true);
152        }
153        break;
154    default:
155        $deliv_count = $objQuery->count("dtb_other_deliv", "customer_id=?", array($objCustomer->getValue('customer_id')));
156        if ($deliv_count >= DELIV_ADDR_MAX){
157            sfDispSiteError(FREE_ERROR_MSG, "", false, "ºÇÂçÅÐÏ¿·ï¿ô¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£");
158        }
159}
160
161$objView->assignobj($objPage);
162$objView->display(SITE_FRAME);
163
164//-------------------------------------------------------------------------------------------------------------
165
166//----¡¡¼èÆÀʸ»úÎó¤ÎÊÑ´¹
167function lfConvertParam($array, $arrRegistColumn) {
168    /*
169     *  ʸ»úÎó¤ÎÊÑ´¹
170     *  K :  ¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
171     *  C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
172     *  V :  ÂùÅÀÉÕ¤­¤Îʸ»ú¤ò°ìʸ»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍѤ·¤Þ¤¹
173     *  n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖȾ³Ñ(ŽÊŽÝŽ¶Ž¸)¡×¤ËÊÑ´¹
174     *  a :  Á´³Ñ±Ñ¿ô»ú¤òȾ³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë
175     */
176    // ¥«¥é¥à̾¤È¥³¥ó¥Ð¡¼¥È¾ðÊó   
177    foreach ($arrRegistColumn as $data) {
178        $arrConvList[ $data["column"] ] = $data["convert"];
179    }
180   
181    // ʸ»úÊÑ´¹
182    foreach ($arrConvList as $key => $val) {
183        // POST¤µ¤ì¤Æ¤­¤¿ÃͤΤßÊÑ´¹¤¹¤ë¡£
184        if(strlen(($array[$key])) > 0) {
185            $array[$key] = mb_convert_kana($array[$key] ,$val);
186        }
187    }
188    return $array;
189}
190
191/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
192function lfErrorCheck() {
193    $objErr = new SC_CheckError();
194   
195    $objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
196    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê̾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK"));
197    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê¥«¥Ê/À«¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
198    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê¥«¥Ê/̾¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
199    $objErr->doFunc(array("͹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
200    $objErr->doFunc(array("͹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
201    $objErr->doFunc(array("͹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
202    $objErr->doFunc(array("ÅÔÆ»Éܸ©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
203    $objErr->doFunc(array("»Ô¶èĮ¼", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
204    $objErr->doFunc(array("ÈÖÃÏ", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
205    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","NUM_CHECK"));
206    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","NUM_CHECK"));
207    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","NUM_CHECK"));
208    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
209    return $objErr->arrErr;
210   
211}
212
213/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
214function lfErrorCheck1() {
215    $objErr = new SC_CheckError();
216   
217    $objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
218    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê̾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK"));
219    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê¥«¥Ê/À«¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
220    $objErr->doFunc(array("¤ªÌ¾Á°¡Ê¥«¥Ê/̾¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
221    $objErr->doFunc(array("͹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
222    $objErr->doFunc(array("͹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
223    $objErr->doFunc(array("͹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
224    return $objErr->arrErr;
225   
226}
227
228/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
229function lfErrorCheck2() {
230    $objErr = new SC_CheckError();
231   
232    $objErr->doFunc(array("ÅÔÆ»Éܸ©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
233    $objErr->doFunc(array("»Ô¶èĮ¼", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
234    $objErr->doFunc(array("ÈÖÃÏ", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
235    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","NUM_CHECK"));
236    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","NUM_CHECK"));
237    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","NUM_CHECK"));
238    $objErr->doFunc(array("ÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
239    return $objErr->arrErr;
240   
241}
242
243
244
245/* ÅÐÏ¿¼Â¹Ô Èó²ñ°÷¹ØÆþ¤Ç¤¢¤ë¤¿¤á¤Ë¹±µ×Ū¤ÊÅÐÏ¿¤Ï¤·¤Ê¤¤*/
246function lfRegistData($array, $arrRegistColumn,$uniqid) {
247    global $objConn;
248    global $objCustomer;
249   
250    $objQuery = new SC_Query();
251   
252    $sqlse = "SELECT customer_id FROM dtb_order_temp WHERE order_temp_id = ?";
253    $arrRegist['customer_id'] = $objConn->getOne($sqlse, array($uniqid));
254   
255    foreach ($arrRegistColumn as $data) {
256        if (strlen($array[ $data["column"] ]) > 0) {
257            $arrRegist[ $data["column"] ] = $array[ $data["column"] ];
258        }
259    }
260   
261    //$arrRegist['customer_id'] = $objCustomer->getvalue('customer_id');
262   
263    //-- ÊÔ½¸ÅÐÏ¿¼Â¹Ô
264    $objConn->query("BEGIN");
265    if ($array['other_deliv_id'] != ""){
266        $objConn->autoExecute("dtb_other_deliv", $arrRegist, "other_deliv_id='" .addslashes($array["other_deliv_id"]). "'");
267    }else{
268        $objConn->autoExecute("dtb_other_deliv", $arrRegist);
269
270        $sqlse = "SELECT max(other_deliv_id) FROM dtb_other_deliv WHERE customer_id = ?";
271        $array['other_deliv_id'] = $objConn->getOne($sqlse, array($arrRegist['customer_id']));
272    }
273
274    $objConn->query("COMMIT");
275
276    return $array['other_deliv_id'];
277}
278
279
280
281// ͹ÊØÈֹ椫¤é½»½ê¤Î¼èÆÀ
282function lfGetAddress($zipcode) {
283    global $arrPref;
284
285    $conn = new SC_DBconn(ZIP_DSN);
286
287    // ͹ÊØÈֹ渡º÷ʸºîÀ®
288    $zipcode = mb_convert_kana($zipcode ,"n");
289    $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
290
291    $data_list = $conn->getAll($sqlse, array($zipcode));
292
293    // ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÈÃͤòȿž¤µ¤»¤ë¡£
294    $arrREV_PREF = array_flip($arrPref);
295
296    /*
297        Áí̳¾Ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È
298        °Ê²¼¤Î¤è¤¦¤Êʸ»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç  Âкö¤¹¤ë¡£
299        ¡¦¡Ê£±¡¦£±£¹ÃúÌÜ¡Ë
300        ¡¦°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç
301    */
302    $town =  $data_list[0]['town'];
303    $town = ereg_replace("¡Ê.*¡Ë$","",$town);
304    $town = ereg_replace("°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç","",$town);
305    $data_list[0]['town'] = $town;
306    $data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']];
307
308    return $data_list;
309}
310
311/* Ê̤ΤªÆϤ±Àè½»½ê¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø */
312function lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id) {
313    // ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
314    $sqlval['order_temp_id'] = $uniqid;
315    $sqlval['update_date'] = 'Now()';
316    $sqlval['customer_id'] = '0';
317    //$sqlval['customer_id'] = $objCustomer->getValue('customer_id');
318    $sqlval['order_birth'] = $objCustomer->getValue('birth');
319
320    $objQuery = new SC_Query();
321    $where = "other_deliv_id = ?";
322    $arrRet = $objQuery->select("*", "dtb_other_deliv", $where, array($other_deliv_id));
323   
324    $sqlval['deliv_check'] = '1';
325    $sqlval['deliv_name01'] = $arrRet[0]['name01'];
326    $sqlval['deliv_name02'] = $arrRet[0]['name02'];
327    $sqlval['deliv_kana01'] = $arrRet[0]['kana01'];
328    $sqlval['deliv_kana02'] = $arrRet[0]['kana02'];
329    $sqlval['deliv_zip01'] = $arrRet[0]['zip01'];
330    $sqlval['deliv_zip02'] = $arrRet[0]['zip02'];
331    $sqlval['deliv_pref'] = $arrRet[0]['pref'];
332    $sqlval['deliv_addr01'] = $arrRet[0]['addr01'];
333    $sqlval['deliv_addr02'] = $arrRet[0]['addr02'];
334    $sqlval['deliv_tel01'] = $arrRet[0]['tel01'];
335    $sqlval['deliv_tel02'] = $arrRet[0]['tel02'];
336    $sqlval['deliv_tel03'] = $arrRet[0]['tel03'];
337    sfRegistTempOrder($uniqid, $sqlval);
338}
339
340?>
Note: See TracBrowser for help on using the repository browser.