source: branches/beta/html/admin/order/mail.php @ 16350

Revision 16350, 5.2 KB checked in by adachi, 15 years ago (diff)

受注メール送信の不具合を修正 (#172)
*dtb_mailtemplateのsend_typeカラムの初期値をPC:1, 携帯:2へ変更
*sfSendOrderMail()関数で、template_idからsend_typeを取得するように修正
*html/admin/order/mail.phpリファクタリング

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
9// ǧ¾Ú²ÄÈݤÎȽÄê
10sfIsSuccess(new SC_Session());
11
12// order_id¤Î¸¡¾Ú
13if (lfIsValidOrderID() !== true) {
14    sfDispError('');
15}
16
17class LC_Page {
18    var $arrMAILTEMPLATE;
19
20    function LC_Page() {
21        $this->tpl_mainpage = 'order/mail.tpl';
22        $this->tpl_subnavi = 'order/subnavi.tpl';
23        $this->tpl_mainno = 'order';
24        $this->tpl_subno = 'index';
25        $this->tpl_subtitle = '¼õÃí´ÉÍý';
26    }
27}
28
29$objPage = new LC_Page();
30$objView = new SC_AdminView();
31$objFormParam = new SC_FormParam();
32
33// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
34lfInitParam();
35
36// ¸¡º÷¥Ñ¥é¥á¡¼¥¿¤Î°ú¤­·Ñ¤®
37foreach ($_POST as $key => $val) {
38    if (ereg("^search_", $key)) {
39        $objPage->arrSearchHidden[$key] = $val;
40    }
41}
42
43$objPage->tpl_order_id = $_POST['order_id'];
44
45// DB¤«¤é¼õÃí¾ðÊó¤òÆɤ߹þ¤à
46lfGetOrderData($_POST['order_id']);
47
48//¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Ø¥Ç¡¼¥¿¤òÂåÆþ
49$objPage->arrMAILTEMPLATE = lfCreateTemplateList();
50
51$mode = isset($_POST['mode']) ? $_POST['mode'] : '';
52switch($mode) {
53// ¼õÃí¸¡º÷¤«¤é¤ÎÁ«°Ü
54case 'pre_edit':
55    break;
56// ³Îǧ²èÌ̤«¤éÌá¤ë.
57case 'return':
58    // POSTÃͤμèÆÀ
59    $objFormParam->setParam($_POST);
60    break;
61case 'send':
62    // POSTÃͤμèÆÀ
63    $objFormParam->setParam($_POST);
64    // ÆþÎÏÃͤÎÊÑ´¹
65    $objFormParam->convParam();
66    $objPage->arrErr = $objFormParam->checkerror();
67    // ¥á¡¼¥ë¤ÎÁ÷¿®
68    if (count($objPage->arrErr) == 0) {
69        // Ãíʸ¼õÉե᡼¥ë
70        sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['body']);
71    }
72    header("Location: " . URL_SEARCH_ORDER);
73    exit;
74    break;
75case 'confirm':
76    // POSTÃͤμèÆÀ
77    $objFormParam->setParam($_POST);
78    // ÆþÎÏÃͤÎÊÑ´¹
79    $objFormParam->convParam();
80    // ÆþÎÏÃͤΰú¤­·Ñ¤®
81    $objPage->arrHidden = $objFormParam->getHashArray();
82    $objPage->arrErr = $objFormParam->checkerror();
83    // ¥á¡¼¥ë¤ÎÁ÷¿®
84    if (count($objPage->arrErr) == 0) {
85        // Ãíʸ¼õÉե᡼¥ë(Á÷¿®¤Ê¤·)
86        $objSendMail = sfSendOrderMail($_POST['order_id'], $_POST['template_id'], $_POST['subject'], $_POST['body'], false);
87        // ³Îǧ¥Ú¡¼¥¸¤Îɽ¼¨
88        $objPage->tpl_subject = $objSendMail->subject;
89        $objPage->tpl_body = mb_convert_encoding( $objSendMail->body, "EUC-JP", "auto" );
90        $objPage->tpl_to = $objSendMail->tpl_to;
91        $objPage->tpl_mainpage = 'order/mail_confirm.tpl';
92
93        $objView->assignobj($objPage);
94        $objView->display(MAIN_FRAME);
95
96        exit;
97    }
98    break;
99case 'change':
100    $objFormParam->setValue('template_id', $_POST['template_id']);
101
102    if(sfIsInt($_POST['template_id'])) {
103        $objQuery = new SC_Query();
104        $where = "template_id = ?";
105        $arrRet = $objQuery->select("subject, body", "dtb_mailtemplate", $where, array($_POST['template_id']));
106        $objFormParam->setParam($arrRet[0]);
107    }
108    break;
109}
110
111if(sfIsInt($_POST['order_id'])) {
112    $objPage->arrMailHistory = lfGetMailHistory($_POST['order_id']);
113}
114
115$objPage->arrForm = $objFormParam->getFormParamList();
116$objView->assignObj($objPage);
117$objView->display(MAIN_FRAME);
118//-----------------------------------------------------------------------------------------------------------------------------------
119/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
120function lfInitParam() {
121    global $objFormParam;
122    $objFormParam->addParam("¥Æ¥ó¥×¥ì¡¼¥È", "template_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
123    $objFormParam->addParam("¥á¡¼¥ë¥¿¥¤¥È¥ë", "subject", STEXT_LEN, "KVa",  array("EXIST_CHECK", "MAX_LENGTH_CHECK", "SPTAB_CHECK"));
124    $objFormParam->addParam("ËÜʸ", "body", LTEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "SPTAB_CHECK"));
125}
126
127function lfGetOrderData($order_id) {
128    global $objFormParam;
129    global $objPage;
130    if(sfIsInt($order_id)) {
131        // DB¤«¤é¼õÃí¾ðÊó¤òÆɤ߹þ¤à
132        $objQuery = new SC_Query();
133        $where = "order_id = ?";
134        $arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
135        $objFormParam->setParam($arrRet[0]);
136        list($point, $total_point) = sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
137        $objFormParam->setValue('total_point', $total_point);
138        $objFormParam->setValue('point', $point);
139        $objPage->arrDisp = $arrRet[0];
140    }
141}
142
143/**
144 * POST¤µ¤ì¤ëorder_id¤ò¸¡¾Ú¤¹¤ë.
145 *
146 * @param void
147 * @return boolean
148 */
149function lfIsValidOrderID() {
150    if (isset($_POST['order_id']) && sfIsint($_POST['order_id'])) {
151        return true;
152    }
153    return false;
154}
155
156/**
157 * ¥Æ¥ó¥×¥ì¡¼¥È¥×¥ë¥À¥¦¥ó¥á¥Ë¥å¡¼¤ÎÇÛÎó¤òºîÀ®¤¹¤ë.
158 * array(
159 *   array(template_id => template_name),
160 *   array(template_id => template_name),
161 *   ...
162 * )
163 *
164 * @param void
165 * @return array
166 */
167function lfCreateTemplateList() {
168    $objQuery = new SC_Query;
169    $objQuery->setOrder('template_id ASC');
170    $arrTemp = $objQuery->select('template_id, template_name', 'dtb_mailtemplate', 'del_flg = 0');
171
172    $arrRet = array();
173    foreach($arrTemp as $val) {
174        $arrRet[$val['template_id']] = $val['template_name'];
175    }
176
177    return $arrRet;
178}
179
180/**
181 * ¥á¡¼¥ëÇÛ¿®ÍúÎò¤ò¼èÆÀ¤¹¤ë.
182 *
183 * @param integer $order_id
184 * @return array
185 */
186function lfGetMailHistory($order_id) {
187    $cols  = "send_date, subject, template_id, send_id";
188    $where = "order_id = ?";
189    $objQuery = new SC_Query();
190    $objQuery->setorder("send_date DESC");
191
192    $arrRet = $objQuery->select($cols, "dtb_mail_history", $where, array($order_id));
193    return $arrRet;
194}
Note: See TracBrowser for help on using the repository browser.