source: temp/branches/mobile/html/mobile/shopping/deliv_addr.php @ 11454

Revision 11454, 10.0 KB checked in by rebelt, 17 years ago (diff)

お届け先登録ページと修正です。

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