/**
  * Page のアクション.
  *
  * @return void
  */
 function action()
 {
     parent::action();
     $objQuery = SC_Query_Ex::getSingletonInstance();
     if (is_array($this->arrHidden['search_customer_type'])) {
         $cnt = array_sum($this->arrHidden['search_customer_type']);
         // tpl表示切換用
         $this->search_customer_type = $cnt;
     } elseif (is_array($this->arrForm['search_customer_type']['value'])) {
         $cnt = array_sum($this->arrForm['search_customer_type']['value']);
         // tpl表示切換用
         $this->search_customer_type = $cnt;
     } else {
         $this->search_customer_type = 1;
     }
     if (is_array($this->arrData)) {
         foreach ($this->arrData as &$customer) {
             $customer_id = $customer["customer_id"];
             if ($this->objDb->sfColumnExists("cp_dtb_customer_docomo_mymenu", "customer_id")) {
                 $customer = array_merge(SC_Helper_Customer_Ex::sfGetCustomerData($customer_id), $customer);
                 $customer["mymenu"] = call_user_func("CarrierPay::getCustomerMymenu", array($customer_id));
             }
             if ($this->objDb->sfColumnExists("cp_dtb_point_history", "id")) {
                 $point = $objQuery->getRow(implode(",", array("sum(add_point ) AS add_point", "sum(use_point ) AS use_point", "sum(lost_point) AS lost_point")), "cp_dtb_point_history", "customer_id = ?", array($customer_id));
                 foreach ($point as $key => $value) {
                     $customer[$key] = $value;
                 }
             }
             if ($this->objDb->sfColumnExists("cp_dtb_customer_transaction", "id")) {
                 $customer["transaction"] = $objQuery->select("*", "cp_dtb_customer_transaction", "customer_id = ? AND del_flg = 0 AND continue_account_id IS NOT NULL", array($customer_id));
             }
         }
     }
 }
 /**
  * CHECK_REGIST_CUSTOMER_EMAIL
  *
  * メールアドレスが会員登録されているか調べる
  * @param array $value value[0] = 項目名 value[1] = 判定対象メールアドレス
  * @access public
  * @return void
  */
 function CHECK_REGIST_CUSTOMER_EMAIL($value)
 {
     if (isset($this->arrErr[$value[1]])) {
         return;
     }
     $this->createParam($value);
     $register_user_flg = SC_Helper_Customer_Ex::sfCheckRegisterUserFromEmail($this->arrParam[$value[1]]);
     switch ($register_user_flg) {
         case 1:
             $this->arrErr[$value[1]] .= t('c_* T_ARG1 already used in member registration. <br />_01', array('T_ARG1' => $value[0]));
             break;
         case 2:
             $this->arrErr[$value[1]] .= t('c_* For a certain period of time after membership withdrawal, it is not possible to use the same T_ARG1. <br />_01', array('T_ARG1' => $value[0]));
             break;
         default:
             break;
     }
 }
 /**
  * 受注データを取得して, SC_FormParam へ設定する.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @param integer $order_id 取得元の受注ID
  * @return void
  */
 function setOrderToFormParam(&$objFormParam, $order_id)
 {
     $objPurchase = new SC_Helper_Purchase_Ex();
     // 受注詳細を設定
     $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false);
     $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail));
     $arrShippingsTmp = $objPurchase->getShippings($order_id);
     $arrShippings = array();
     foreach ($arrShippingsTmp as $row) {
         // お届け日の処理
         if (!SC_Utils_Ex::isBlank($row['shipping_date'])) {
             $ts = strtotime($row['shipping_date']);
             $row['shipping_date_year'] = date('Y', $ts);
             $row['shipping_date_month'] = date('n', $ts);
             $row['shipping_date_day'] = date('j', $ts);
         }
         $arrShippings[$row['shipping_id']] = $row;
     }
     $objFormParam->setValue('shipping_quantity', count($arrShippings));
     $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrShippings));
     /*
      * 配送商品を設定
      *
      * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値
      * $arrProductQuantity[$shipping_id] = 配送先ごとの配送商品数量
      */
     $arrProductQuantity = array();
     $arrShipmentItem = array();
     foreach ($arrShippings as $shipping_id => $arrShipping) {
         $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']);
         foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) {
             foreach ($arrItem as $item_key => $item_val) {
                 $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val;
             }
         }
     }
     $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity);
     $objFormParam->setParam($arrShipmentItem);
     /*
      * 受注情報を設定
      * $arrOrderDetail と項目が重複しており, $arrOrderDetail は連想配列の値
      * が渡ってくるため, $arrOrder で上書きする.
      */
     $arrOrder = $objPurchase->getOrder($order_id);
     $objFormParam->setParam($arrOrder);
     // ポイントを設定
     list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint($order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status']);
     $objFormParam->setValue('total_point', $db_point);
     $objFormParam->setValue('point', $rollback_point);
     if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) {
         $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id'));
         $objFormParam->setValue('customer_point', $arrCustomer['point']);
     }
 }
 /**
  * 会員一覧を検索する処理
  *
  * @param  array  $arrParam 検索パラメーター連想配列
  * @return array( integer 全体件数, mixed 会員データ一覧配列, mixed SC_PageNaviオブジェクト)
  */
 public function lfDoSearch($arrParam)
 {
     return SC_Helper_Customer_Ex::sfGetSearchData($arrParam);
 }
Example #5
0
 /**
  * 登録メールを送信する。
  *
  * @param string $secret_key 会員固有キー
  * @param integer $customer_id 顧客ID
  * @param boolean $is_mobile false(default):PCアドレスにメールを送る true:携帯アドレスにメールを送る
  * @return boolean true:成功 false:失敗
  */
 function sfSendRegistMail($secret_key, $customer_id = '', $is_mobile = false)
 {
     // 会員データの取得
     if (SC_Utils_Ex::sfIsInt($customer_id)) {
         $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
     } else {
         $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId('', "secret_key = ?", array($secret_key));
     }
     if (SC_Utils_Ex::isBlank($arrCustomerData)) {
         return false;
     }
     $CONF = SC_Helper_DB_Ex::sfGetBasisData();
     $objMailText = new SC_SiteView_Ex();
     $objMailText->assign('CONF', $CONF);
     $objMailText->assign("name01", $arrCustomerData['name01']);
     $objMailText->assign("name02", $arrCustomerData['name02']);
     $objMailText->assign('uniqid', $arrCustomerData['secret_key']);
     $objMailText->assignobj($arrCustomerData);
     $objMailText->assignobj($this);
     $objHelperMail = new SC_Helper_Mail_Ex();
     // 仮会員が有効の場合
     if (CUSTOMER_CONFIRM_MAIL == true and $arrCustomerData['status'] == 1) {
         $subject = $objHelperMail->sfMakeSubject('会員登録のご確認', $objMailText);
         $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl");
     } else {
         $subject = $objHelperMail->sfMakeSubject('会員登録のご完了', $objMailText);
         $toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl");
     }
     $objMail = new SC_SendMail();
     $objMail->setItem('', $subject, $toCustomerMail, $CONF["email03"], $CONF["shop_name"], $CONF["email03"], $CONF["email04"], $CONF["email04"], $CONF["email01"]);
     // 宛先の設定
     if ($is_mobile) {
         $to_addr = $arrCustomerData["email_mobile"];
     } else {
         $to_addr = $arrCustomerData['email'];
     }
     $objMail->setTo($to_addr, $arrCustomerData["name01"] . $arrCustomerData["name02"] . " 様");
     $objMail->sendMail();
     return true;
 }
 /**
  *  会員情報を登録する
  *
  * @param mixed $objFormParam
  * @param mixed $customer_id
  * @access private
  * @return void
  */
 function lfRegistCustomerData(&$objFormParam, $customer_id)
 {
     $arrRet = $objFormParam->getHashArray();
     $sqlval = $objFormParam->getDbArray();
     $sqlval['birth'] = SC_Utils_Ex::sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']);
     SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $customer_id);
 }
 /**
  * 会員情報をフォームに設定する.
  *
  * @param integer $customer_id 会員ID
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function setCustomerTo($customer_id, &$objFormParam)
 {
     $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
     foreach ($arrCustomer as $key => $val) {
         $objFormParam->setValue('order_' . $key, $val);
     }
     $objFormParam->setValue('customer_id', $customer_id);
     $objFormParam->setValue('customer_point', $arrCustomer['point']);
 }
 /**
  * 秘密の質問確認
  *
  * @param array $arrForm フォーム入力値
  * @param array $arrReminder リマインダー質問リスト
  * @return string エラー文字列 問題が無ければNULL
  */
 function lfCheckForgotSecret(&$arrForm, &$arrReminder)
 {
     $errmsg = '';
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $cols = 'customer_id, reminder, reminder_answer, salt';
     $table = 'dtb_customer';
     $where = '(email Like ? OR email_mobile Like ?)' . ' AND name01 Like ? AND name02 Like ?' . ' AND status = 2 AND del_flg = 0';
     $arrVal = array($arrForm['email'], $arrForm['email'], $arrForm['name01'], $arrForm['name02']);
     $result = $objQuery->select($cols, $table, $where, $arrVal);
     if (isset($result[0]['reminder']) and isset($arrReminder[$result[0]['reminder']]) and $result[0]['reminder'] == $arrForm['reminder']) {
         $is_authorized = false;
         if (empty($result[0]['salt'])) {
             // 旧バージョン(2.11未満)からの移行を考慮
             if ($result[0]['reminder_answer'] == $arrForm['reminder_answer']) {
                 $is_authorized = true;
             }
         } elseif (SC_Utils_Ex::sfIsMatchHashPassword($arrForm['reminder_answer'], $result[0]['reminder_answer'], $result[0]['salt'])) {
             $is_authorized = true;
         }
         if ($is_authorized) {
             // 秘密の答えが一致
             // 新しいパスワードを設定する
             $new_password = GC_Utils_Ex::gfMakePassword(8);
             if (FORGOT_MAIL == 1) {
                 // メールで変更通知をする
                 $objDb = new SC_Helper_DB_Ex();
                 $CONF = $objDb->sfGetBasisData();
                 $this->lfSendMail($CONF, $arrForm['email'], $arrForm['name01'], $new_password);
             }
             $sqlval = array();
             $sqlval['password'] = $new_password;
             SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $result[0]['customer_id']);
             $arrForm['new_password'] = $new_password;
         } else {
             // 秘密の答えが一致しなかった
             $errmsg = '秘密の質問が一致しませんでした。';
         }
     } else {
         //不正なアクセス リマインダー値が前画面と異なる。
         // 新リファクタリング基準ではここで遷移は不許可なのでエラー表示
         //SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
         $errmsg = '秘密の質問が一致しませんでした。';
     }
     return $errmsg;
 }
Example #9
0
 /**
  * 会員情報変更エラーチェック
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @param boolean $isAdmin 管理画面チェック時:true
  * @access public
  * @return array エラーの配列
  */
 function sfCustomerMypageErrorCheck(&$objFormParam, $isAdmin = false)
 {
     $objFormParam->toLower('email_mobile');
     $objFormParam->toLower('email_mobile02');
     $objErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam);
     $objErr = SC_Helper_Customer_Ex::sfCustomerRegisterErrorCheck($objErr, $isAdmin);
     if (isset($objErr->arrErr['password']) && $objFormParam->getValue('password') == DEFAULT_PASSWORD) {
         unset($objErr->arrErr['password']);
         unset($objErr->arrErr['password02']);
     }
     if (isset($objErr->arrErr['reminder_answer']) && $objFormParam->getValue('reminder_answer') == DEFAULT_PASSWORD) {
         unset($objErr->arrErr['reminder_answer']);
     }
     return $objErr->arrErr;
 }
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function action()
 {
     $objSiteSess = new SC_SiteSession_Ex();
     $objCartSess = new SC_CartSession_Ex();
     $objCustomer = new SC_Customer_Ex();
     $objCookie = new SC_Cookie_Ex();
     $objPurchase = new SC_Helper_Purchase_Ex();
     $objFormParam = new SC_FormParam_Ex();
     $nonmember_mainpage = 'shopping/nonmember_input.tpl';
     $nonmember_title = 'お客様情報入力';
     $this->tpl_uniqid = $objSiteSess->getUniqId();
     $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess);
     $this->cartKey = $objCartSess->getKey();
     // ログイン済みの場合は次画面に遷移
     if ($objCustomer->isLoginSuccess(true)) {
         SC_Response_Ex::sendRedirect($this->getNextlocation($this->cartKey, $this->tpl_uniqid, $objCustomer, $objPurchase, $objSiteSess));
         SC_Response_Ex::actionExit();
     } else {
         if ($this->cartKey == PRODUCT_TYPE_DOWNLOAD) {
             $msg = 'ダウンロード商品を含むお買い物は、会員登録が必要です。<br/>' . 'お手数ですが、会員登録をお願いします。';
             SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, $msg);
             SC_Response_Ex::actionExit();
         }
     }
     switch ($this->getMode()) {
         // ログイン実行
         case 'login':
             $this->lfInitLoginFormParam($objFormParam);
             $objFormParam->setParam($_POST);
             $objFormParam->trimParam();
             $objFormParam->convParam();
             $objFormParam->toLower('login_email');
             $this->arrErr = $objFormParam->checkError();
             // ログイン判定
             if (SC_Utils_Ex::isBlank($this->arrErr) && $objCustomer->doLogin($objFormParam->getValue('login_email'), $objFormParam->getValue('login_pass'))) {
                 // モバイルサイトで携帯アドレスの登録が無い場合、携帯アドレス登録ページへ遷移
                 if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
                     if (!$objCustomer->hasValue('email_mobile')) {
                         SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');
                         SC_Response_Ex::actionExit();
                     }
                 } elseif (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
                     echo SC_Utils_Ex::jsonEncode(array('success' => $this->getNextLocation($this->cartKey, $this->tpl_uniqid, $objCustomer, $objPurchase, $objSiteSess)));
                     SC_Response_Ex::actionExit();
                 }
                 SC_Response_Ex::sendRedirect($this->getNextLocation($this->cartKey, $this->tpl_uniqid, $objCustomer, $objPurchase, $objSiteSess));
                 SC_Response_Ex::actionExit();
             } else {
                 // 仮登録の場合
                 if (SC_Helper_Customer_Ex::checkTempCustomer($objFormParam->getValue('login_email'))) {
                     if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
                         echo $this->lfGetErrorMessage(TEMP_LOGIN_ERROR);
                         SC_Response_Ex::actionExit();
                     } else {
                         SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
                         SC_Response_Ex::actionExit();
                     }
                 } else {
                     if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
                         echo $this->lfGetErrorMessage(SITE_LOGIN_ERROR);
                         SC_Response_Ex::actionExit();
                     } else {
                         SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
                         SC_Response_Ex::actionExit();
                     }
                 }
             }
             break;
             // お客様情報登録
         // お客様情報登録
         case 'nonmember_confirm':
             $this->tpl_mainpage = $nonmember_mainpage;
             $this->tpl_title = $nonmember_title;
             $this->lfInitParam($objFormParam);
             $objFormParam->setParam($_POST);
             $this->arrErr = $this->lfCheckError($objFormParam);
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 $this->lfRegistData($this->tpl_uniqid, $objPurchase, $objCustomer, $objFormParam);
                 $arrParams = $objFormParam->getHashArray();
                 $shipping_id = $arrParams['deliv_check'] == '1' ? 1 : 0;
                 $objPurchase->setShipmentItemTempForSole($objCartSess, $shipping_id);
                 $objSiteSess->setRegistFlag();
                 SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH);
                 SC_Response_Ex::actionExit();
             }
             break;
             // 前のページに戻る
         // 前のページに戻る
         case 'return':
             SC_Response_Ex::sendRedirect(CART_URLPATH);
             SC_Response_Ex::actionExit();
             break;
             // 複数配送ページへ遷移
         // 複数配送ページへ遷移
         case 'multiple':
             // 複数配送先指定が無効な場合はエラー
             if (USE_MULTIPLE_SHIPPING === false) {
                 SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, '', true);
                 SC_Response_Ex::actionExit();
             }
             $this->lfInitParam($objFormParam);
             $objFormParam->setParam($_POST);
             $this->arrErr = $this->lfCheckError($objFormParam);
             if (SC_Utils_Ex::isBlank($this->arrErr)) {
                 $this->lfRegistData($this->tpl_uniqid, $objPurchase, $objCustomer, $objFormParam, true);
                 $objSiteSess->setRegistFlag();
                 SC_Response_Ex::sendRedirect(MULTIPLE_URLPATH);
                 SC_Response_Ex::actionExit();
             }
             $this->tpl_mainpage = $nonmember_mainpage;
             $this->tpl_title = $nonmember_title;
             break;
             // お客様情報入力ページの表示
         // お客様情報入力ページの表示
         case 'nonmember':
             $this->tpl_mainpage = $nonmember_mainpage;
             $this->tpl_title = $nonmember_title;
             $this->lfInitParam($objFormParam);
             // ※breakなし
         // ※breakなし
         default:
             // 前のページから戻ってきた場合は, お客様情報入力ページ
             if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
                 $this->tpl_mainpage = $nonmember_mainpage;
                 $this->tpl_title = $nonmember_title;
                 $this->lfInitParam($objFormParam);
             } else {
                 $this->lfInitLoginFormParam($objFormParam);
             }
             $this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid);
             break;
     }
     // 記憶したメールアドレスを取得
     $this->tpl_login_email = $objCookie->getCookie('login_email');
     if (!SC_Utils_Ex::isBlank($this->tpl_login_email)) {
         $this->tpl_login_memory = '1';
     }
     // 入力値の取得
     $this->arrForm = $objFormParam->getFormParamList();
     // 携帯端末IDが一致する会員が存在するかどうかをチェックする。
     if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
         $this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();
     }
 }
 /**
  * Page のAction.
  *
  * @return void
  */
 function action()
 {
     $objCustomer = new SC_Customer_Ex();
     $ParentPage = MYPAGE_DELIVADDR_URLPATH;
     // GETでページを指定されている場合には指定ページに戻す
     if (isset($_GET['page'])) {
         $ParentPage = htmlspecialchars($_GET['page'], ENT_QUOTES);
     } else {
         if (isset($_POST['ParentPage'])) {
             $ParentPage = htmlspecialchars($_POST['ParentPage'], ENT_QUOTES);
         }
     }
     $this->ParentPage = $ParentPage;
     /*
      * ログイン判定 及び 退会判定
      * 未ログインでも, 複数配送設定ページからのアクセスの場合は表示する
      *
      * TODO 購入遷移とMyPageで別クラスにすべき
      */
     if (!$objCustomer->isLoginSuccess(true) && $ParentPage != MULTIPLE_URLPATH) {
         $this->tpl_onload = "fnUpdateParent('" . $this->getLocation($_POST['ParentPage']) . "'); window.close();";
     }
     // other_deliv_id のあるなしで追加か編集か判定しているらしい
     $_SESSION['other_deliv_id'] = $_REQUEST['other_deliv_id'];
     // パラメーター管理クラス,パラメーター情報の初期化
     $objFormParam = new SC_FormParam_Ex();
     SC_Helper_Customer_Ex::sfCustomerOtherDelivParam($objFormParam);
     $objFormParam->setParam($_POST);
     $this->arrForm = $objFormParam->getHashArray();
     switch ($this->getMode()) {
         // 入力は必ずedit
         case 'edit':
             $this->arrErr = SC_Helper_Customer_Ex::sfCustomerOtherDelivErrorCheck($objFormParam);
             // 入力エラーなし
             if (empty($this->arrErr)) {
                 // TODO ここでやるべきではない
                 if (in_array($_POST['ParentPage'], $this->validUrl)) {
                     $this->tpl_onload = "fnUpdateParent('" . $this->getLocation($_POST['ParentPage']) . "'); window.close();";
                 } else {
                     SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
                 }
                 if ($objCustomer->isLoginSuccess(true)) {
                     $this->lfRegistData($objFormParam, $objCustomer->getValue("customer_id"));
                 } else {
                     $this->lfRegistDataNonMember($objFormParam);
                 }
                 if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
                     // モバイルの場合、元のページに遷移
                     SC_Response_Ex::sendRedirect($this->getLocation($_POST['ParentPage']));
                     exit;
                 }
             }
             break;
         case 'multiple':
             // 複数配送先用
             break;
         default:
             if ($_GET['other_deliv_id'] != "") {
                 $arrOtherDeliv = $this->lfGetOtherDeliv($objCustomer->getValue("customer_id"), $_SESSION['other_deliv_id']);
                 //不正アクセス判定
                 if (!$objCustomer->isLoginSuccess(true) || count($arrOtherDeliv) == 0) {
                     SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
                 }
                 //別のお届け先情報取得
                 $this->arrForm = $arrOtherDeliv[0];
             }
             break;
     }
     if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
         $this->tpl_mainpage = 'mypage/delivery_addr.tpl';
     } else {
         $this->setTemplate('mypage/delivery_addr.tpl');
     }
 }
 /**
  * 退会手続き完了メール送信する
  *
  * @access private
  * @param integer $customer_id 会員ID
  * @return void
  */
 public function lfSendRefusalMail($customer_id)
 {
     // 会員データの取得
     if (SC_Utils_Ex::sfIsInt($customer_id)) {
         $arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
     }
     if (SC_Utils_Ex::isBlank($arrCustomerData)) {
         return false;
     }
     $CONF = SC_Helper_DB_Ex::sfGetBasisData();
     $objMailText = new SC_SiteView_Ex();
     $objMailText->setPage($this);
     $objMailText->assign('CONF', $CONF);
     $objMailText->assign('name01', $arrCustomerData['name01']);
     $objMailText->assign('name02', $arrCustomerData['name02']);
     $objMailText->assignobj($this);
     $objHelperMail = new SC_Helper_Mail_Ex();
     $objHelperMail->setPage($this);
     $subject = $objHelperMail->sfMakeSubject('退会手続きのご完了', $objMailText);
     $toCustomerMail = $objMailText->fetch('mail_templates/customer_refusal_mail.tpl');
     $objMail = new SC_SendMail_Ex();
     $objMail->setItem('', $subject, $toCustomerMail, $CONF['email03'], $CONF['shop_name'], $CONF['email03'], $CONF['email04'], $CONF['email04'], $CONF['email01']);
     $objMail->setTo($arrCustomerData['email'], $arrCustomerData['name01'] . $arrCustomerData['name02'] . ' 様');
     $objMail->sendMail();
 }
Example #13
0
 function lfGetOrderData($order_id)
 {
     if (SC_Utils_Ex::sfIsInt($order_id)) {
         // DBから受注情報を読み込む
         $objQuery = new SC_Query_Ex();
         $where = "order_id = ?";
         $arrRet = $objQuery->select("*", "dtb_order", $where, array($order_id));
         $this->arrDisp = $arrRet[0];
         list($point) = SC_Helper_Customer_Ex::sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
         $this->arrDisp['point'] = $point;
         // 受注詳細データの取得
         $arrRet = $this->lfGetOrderDetail($order_id);
         $arrRet = SC_Utils_Ex::sfSwapArray($arrRet);
         $this->arrDisp = array_merge($this->arrDisp, $arrRet);
         // その他支払い情報を表示
         if ($this->arrDisp["memo02"] != "") {
             $this->arrDisp["payment_info"] = unserialize($this->arrDisp["memo02"]);
         }
         $this->arrDisp["payment_type"] = "お支払い";
     }
 }
Example #14
0
 /**
  * 入力内容のチェックを行う.
  *
  * 追加の必須チェック, 相関チェックを行うため, SC_CheckError を使用する.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラー情報の配
  */
 public function lfCheckError(&$objFormParam)
 {
     $arrParams = $objFormParam->getHashArray();
     $objErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam, 'order_');
     // 別のお届け先チェック
     if (isset($arrParams['deliv_check']) && $arrParams['deliv_check'] == '1') {
         $objErr2 = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam, 'shipping_');
         $objErr->arrErr = array_merge((array) $objErr->arrErr, (array) $objErr2->arrErr);
     } else {
         // shipping系のエラーは無視
         foreach ($objErr->arrErr as $key => $val) {
             if (substr($key, 0, strlen('shipping_')) == 'shipping_') {
                 unset($objErr->arrErr[$key]);
             }
         }
     }
     // 複数項目チェック
     $objErr->doFunc(array('生年月日', 'order_year', 'order_month', 'order_day'), array('CHECK_BIRTHDAY'));
     $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'order_email', 'order_email02'), array('EQUAL_CHECK'));
     return $objErr->arrErr;
 }
 /**
  *
  * @deprecated 重複決済される
  * @param unknown $accountDay
  */
 function doContBillResult($accountDay)
 {
     if ($accountDay == null) {
         $accountDay = $this->getAccountDay();
     }
     $objQuery = SC_Query_Ex::getSingletonInstance();
     $curl = $this->curl_init();
     do {
         $zip_file = CSV_TEMP_REALDIR . "auone/" . date("Y/m/d/His") . ".zip";
         if (file_exists($zip_file)) {
             sleep(5);
         }
     } while (file_exists($zip_file));
     SC_Utils_Ex::recursiveMkdir(dirname($zip_file));
     $fp = fopen($zip_file, "w");
     // FIXME 決済認可
     $curl = $this->curl_init(false, true);
     // $post_history = array ();
     $post = $this->getPost("ContBillResult", $this->config, compact("accountDay"));
     curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
     curl_setopt($curl, CURLOPT_HEADER, FALSE);
     curl_setopt($curl, CURLOPT_FILE, $fp);
     curl_exec($curl);
     $zip = new ZipArchive();
     if (!$zip->open($zip_file)) {
         SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
     }
     $extr = dirname($zip_file) . "/" . basename($zip_file, ".zip") . "/";
     SC_Utils_Ex::recursiveMkdir($extr);
     if (!$zip->extractTo($extr)) {
         SC_Utils_Ex::sfDispSiteError(PAGE_ERROR);
     }
     $files = glob($extr . "*.csv");
     foreach ($files as $file) {
         $enc_filepath = SC_Utils_Ex::sfEncodeFile($file, CHAR_CODE, dirname($file) . DIRECTORY_SEPARATOR);
         $fp2 = fopen($enc_filepath, "r");
         fgetcsv($fp2);
         while ($arrCsv = fgetcsv($fp2)) {
             if (count($arrCsv) == 0) {
                 // 空の列
                 continue;
             }
             if ($arrCsv[4] != $this->config["serviceId"]) {
                 // 別サービス・チェック
                 continue;
             }
             if ($arrCsv[8] != 'MPL01000') {
                 // 取消レコード
                 continue;
             }
             $pay_info_no = $arrCsv[1];
             $amount_in_tax = $arrCsv[2];
             $service_id = $arrCsv[4];
             $au_open_id = $arrCsv[5];
             $member_manage_no = $arrCsv[6];
             $process_day = $arrCsv[11];
             $cont_bill_regst_day = $arrCsv[13];
             $continue_account_id = $arrCsv[19];
             $amount = $amount_in_tax - $amount_in_tax % 100;
             $add_point = $amount;
             $where = "au_open_id =? AND status = 2 AND del_flg = 0";
             $arrWhereVal = (array) $au_open_id;
             $customer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId(null, $where, $arrWhereVal);
             if (SC_Utils_Ex::isBlank($customer)) {
                 // ユーザー復旧は手動の方がいいかもしれない。
                 continue;
             }
             $name = "継続(" . $amount_in_tax . "円)";
             $customer_id = $customer["customer_id"];
             if ($add_point) {
                 $lost_point = 0;
                 // 更新後ポイント
                 $updatePoint = array("point" => min($customer["point"] + $add_point, AU_MAXPOINT));
                 // 最大ポイントへ変更している場合は失効ポイントを計算
                 if ($updatePoint["point"] == AU_MAXPOINT) {
                     $lost_point = max($customer["point"] + $add_point, AU_MAXPOINT) - AU_MAXPOINT;
                 }
                 SC_Helper_Customer_Ex::sfEditCustomerData($updatePoint, $customer_id);
                 $objQuery->insert("cp_dtb_point_history", array("id" => $objQuery->nextVal("cp_dtb_point_history_id"), "customer_id" => $customer_id, "add_point" => $add_point, "use_point" => 0, "lost_point" => $lost_point, "order_id" => 0, "name" => $name, "create_date" => "NOW()", "update_date" => "NOW()"));
                 $arrWhereVal[] = $continue_account_id;
                 if ($objQuery->exists("cp_dtb_customer_transaction", "au_open_id=? AND del_flg=0 AND continue_account_id =?", $arrWhereVal)) {
                     // 何かしらの影響で削除された場合後続処理を行う
                     continue;
                 }
                 $objQuery->insert("cp_dtb_customer_transaction", array("id" => $objQuery->nextVal("cp_dtb_customer_transaction_id"), "customer_id" => $customer_id, "au_open_id" => $au_open_id, "transaction_id" => "", "transaction_status" => "40", "pay_info_no" => $pay_info_no, "pay_status" => 20, "continue_account_id" => $continue_account_id, "member_manage_no" => $member_manage_no, "process_day" => $process_day, "process_time" => "000000", "cont_bill_regst_day" => $cont_bill_regst_day, "cont_bill_regst_time" => "000000", "ammount" => $amount, "ammount_in_tax" => $amount_in_tax, "del_flg" => 0, "contents_id" => sprintf("%05d%09d", $service_id, $add_point), "status" => 0));
             }
         }
     }
 }
Example #16
0
 /**
  * CHECK_REGIST_CUSTOMER_EMAIL
  *
  * メールアドレスが会員登録されているか調べる
  * @param array $value value[0] = 項目名 value[1] = 判定対象メールアドレス
  * @access public
  * @return void
  */
 public function CHECK_REGIST_CUSTOMER_EMAIL($value)
 {
     $disp_name = $value[0];
     $keyname = $value[1];
     if (isset($this->arrErr[$keyname])) {
         return;
     }
     $this->createParam($value);
     $register_user_flg = SC_Helper_Customer_Ex::sfCheckRegisterUserFromEmail($this->arrParam[$keyname]);
     switch ($register_user_flg) {
         case 1:
             $this->arrErr[$keyname] .= "※ すでに会員登録で使用されている{$disp_name}です。<br />";
             break;
         case 2:
             $this->arrErr[$keyname] .= "※ 退会から一定期間の間は、同じ{$disp_name}を使用することはできません。<br />";
             break;
         default:
             break;
     }
 }
 /**
  * 会員情報をフォームに設定する.
  *
  * @param  integer      $customer_id  会員ID
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 public function setCustomerTo($customer_id, &$objFormParam)
 {
     $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
     foreach ($arrCustomer as $key => $val) {
         $objFormParam->setValue('order_' . $key, $val);
     }
     // 誕生日の処理
     if (!SC_Utils_Ex::isBlank($objFormParam->getValue('order_birth'))) {
         $order_birth = substr($objFormParam->getValue('order_birth'), 0, 10);
         $arrOrderBirth = explode("-", $order_birth);
         $objFormParam->setValue('order_birth_year', intval($arrOrderBirth[0]));
         $objFormParam->setValue('order_birth_month', intval($arrOrderBirth[1]));
         $objFormParam->setValue('order_birth_day', intval($arrOrderBirth[2]));
     }
     $objFormParam->setValue('customer_id', $customer_id);
     $objFormParam->setValue('customer_point', $arrCustomer['point']);
 }
Example #18
0
 /**
  * お届け先フォームエラーチェック
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 public function errorCheck(&$objFormParam)
 {
     $objErr = SC_Helper_Customer_Ex::sfCustomerCommonErrorCheck($objFormParam);
     return $objErr->arrErr;
 }
 /**
  * 登録処理
  *
  * @param  array $objFormParam フォームパラメータークラス
  * @return array エラー配列
  */
 public function lfRegistData(&$objFormParam)
 {
     // 登録用データ取得
     $arrData = $objFormParam->getDbArray();
     // 足りないものを作る
     if (!SC_Utils_Ex::isBlank($objFormParam->getValue('year'))) {
         $arrData['birth'] = $objFormParam->getValue('year') . '/' . $objFormParam->getValue('month') . '/' . $objFormParam->getValue('day') . ' 00:00:00';
     }
     if (!is_numeric($arrData['customer_id'])) {
         $arrData['secret_key'] = SC_Utils_Ex::sfGetUniqRandomId('r');
     } else {
         $arrOldCustomerData = SC_Helper_Customer_Ex::sfGetCustomerData($arrData['customer_id']);
         if ($arrOldCustomerData['status'] != $arrData['status']) {
             $arrData['secret_key'] = SC_Utils_Ex::sfGetUniqRandomId('r');
         }
     }
     return SC_Helper_Customer_Ex::sfEditCustomerData($arrData, $arrData['customer_id']);
 }
 function lfGetOrderData($order_id)
 {
     if (SC_Utils_Ex::sfIsInt($order_id)) {
         // DBから受注情報を読み込む
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $where = 'order_id = ?';
         $arrRet = $objQuery->select('*', 'dtb_order', $where, array($order_id));
         $this->arrDisp = $arrRet[0];
         list($point) = SC_Helper_Customer_Ex::sfGetCustomerPoint($order_id, $arrRet[0]['use_point'], $arrRet[0]['add_point']);
         $this->arrDisp['point'] = $point;
         // 受注詳細データの取得
         $arrRet = $this->lfGetOrderDetail($order_id);
         $arrRet = SC_Utils_Ex::sfSwapArray($arrRet);
         $this->arrDisp = array_merge($this->arrDisp, $arrRet);
         // その他支払い情報を表示
         if ($this->arrDisp['memo02'] != '') {
             $this->arrDisp['payment_info'] = unserialize($this->arrDisp['memo02']);
         }
         $this->arrDisp['payment_type'] = 'お支払い';
     }
 }
Example #21
0
 /**
  * CHECK_REGIST_CUSTOMER_EMAIL
  *
  * メールアドレスが会員登録されているか調べる
  * @param array $value value[0] = 項目名 value[1] = 判定対象メールアドレス
  * @access public
  * @return void
  */
 function CHECK_REGIST_CUSTOMER_EMAIL($value)
 {
     if (isset($this->arrErr[$value[1]])) {
         return;
     }
     $this->createParam($value);
     $register_user_flg = SC_Helper_Customer_Ex::sfCheckRegisterUserFromEmail($this->arrParam[$value[1]]);
     switch ($register_user_flg) {
         case 1:
             $this->arrErr[$value[1]] .= '※ すでに会員登録で使用されている' . $value[0] . 'です。<br />';
             break;
         case 2:
             $this->arrErr[$value[1]] .= '※ 退会から一定期間の間は、同じ' . $value[0] . 'を使用することはできません。<br />';
             break;
         default:
             break;
     }
 }
 /**
  * 会員登録に必要なSQLパラメーターの配列を生成する.
  *
  * フォームに入力された情報を元に, SQLパラメーターの配列を生成する.
  * モバイル端末の場合は, email を email_mobile にコピーし,
  * mobile_phone_id に携帯端末IDを格納する.
  *
  * @param mixed $objFormParam
  * @access private
  * @return $arrResults
  */
 public function lfMakeSqlVal(&$objFormParam)
 {
     $arrForm = $objFormParam->getHashArray();
     $arrResults = $objFormParam->getDbArray();
     // 生年月日の作成
     $arrResults['birth'] = SC_Utils_Ex::sfGetTimestamp($arrForm['year'], $arrForm['month'], $arrForm['day']);
     // 仮会員 1 本会員 2
     $arrResults['status'] = CUSTOMER_CONFIRM_MAIL == true ? '1' : '2';
     /*
      * secret_keyは、テーブルで重複許可されていない場合があるので、
      * 本会員登録では利用されないがセットしておく。
      */
     $arrResults['secret_key'] = SC_Helper_Customer_Ex::sfGetUniqSecretKey();
     // 入会時ポイント
     $CONF = SC_Helper_DB_Ex::sfGetBasisData();
     $arrResults['point'] = $CONF['welcome_point'];
     if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
         // 携帯メールアドレス
         $arrResults['email_mobile'] = $arrResults['email'];
         // PHONE_IDを取り出す
         $arrResults['mobile_phone_id'] = SC_MobileUserAgent_Ex::getId();
     }
     return $arrResults;
 }
 /**
  * テスト用 会員データ を生成する.
  *
  * @return void
  */
 function createCustomers()
 {
     lfPrintLog("createCustomers START.(" . CUSTOMERS_VOLUME . " data)");
     for ($i = 0; $i < CUSTOMERS_VOLUME; $i++) {
         lfPrintLog("----------");
         lfPrintLog("creating customer data count:[" . ($i + 1) . "] start.");
         $sqlval['name01'] = "検証";
         $sqlval['name02'] = sprintf("太郎%05d", $i + 1);
         $sqlval['kana01'] = "ケンショウ";
         $sqlval['kana02'] = "タロウ";
         $sqlval['zip01'] = '101';
         $sqlval['zip02'] = '0051';
         $sqlval['pref'] = '13';
         // 13:東京都
         $sqlval['addr01'] = "千代田区神田神保町";
         $sqlval['addr02'] = "1-3-5";
         $sqlval['tel01'] = '012';
         $sqlval['tel02'] = '3456';
         $sqlval['tel03'] = '7890';
         $sqlval['email'] = EMAIL_ADDRESS_ACCOUNT . "+" . sprintf("%05d", $i + 1) . EMAIL_ADDRESS_DOMAIN;
         $sqlval['sex'] = '1';
         // 1:男性 2:女性
         $sqlval['password'] = '******';
         $sqlval['reminder'] = '1';
         // 1:「母親の旧姓は?」
         $sqlval['reminder_answer'] = "てすと";
         $sqlval['mailmaga_flg'] = (string) '1';
         // 1:HTMLメール 2:テキストメール 3:希望しない
         // 生年月日の作成
         $sqlval['birth'] = SC_Utils_Ex::sfGetTimestamp(2006, 9, 1);
         // 仮会員 1 本会員 2
         $sqlval['status'] = '2';
         /*
          * secret_keyは、テーブルで重複許可されていない場合があるので、
          * 本会員登録では利用されないがセットしておく。
          */
         $sqlval['secret_key'] = SC_Helper_Customer_Ex::sfGetUniqSecretKey();
         // 入会時ポイント
         $CONF = SC_Helper_DB_Ex::sfGetBasisData();
         $sqlval['point'] = $CONF['welcome_point'];
         // 会員データの生成
         SC_Helper_Customer_Ex::sfEditCustomerData($sqlval);
         print "*";
         lfPrintLog("creating customer data count:[" . ($i + 1) . "] end.");
     }
     print "\n";
     lfPrintLog("createCustomers DONE.(" . CUSTOMERS_VOLUME . " data created)");
 }
 /**
  * 会員情報を削除する
  *
  * @access private
  * @return void
  */
 public function lfDeleteCustomer($customer_id)
 {
     return SC_Helper_Customer_Ex::delete($customer_id);
 }
Example #25
0
 /**
  * 入力エラーチェック
  *
  * @param mixed $array
  * @access private
  * @return array エラーの配列
  */
 public function lfCheckError($array)
 {
     $objErr = new SC_CheckError_Ex($array);
     if (preg_match("/^[[:alnum:]]+\$/", $array['id'])) {
         if (!is_numeric(SC_Helper_Customer_Ex::sfGetCustomerId($array['id'], true))) {
             $objErr->arrErr['id'] = '※ 既に会員登録が完了しているか、無効なURLです。<br>';
         }
     } else {
         $objErr->arrErr['id'] = '無効なURLです。メールに記載されている本会員登録用URLを再度ご確認ください。';
     }
     return $objErr->arrErr;
 }
 /**
  * Page のアクション.
  *
  * @return void
  */
 public function action()
 {
     $objQuery = SC_Query_Ex::getSingletonInstance();
     parent::action();
     switch ($this->getMode()) {
         case "operate_cancel_cont_bill":
             $objFormParam = new SC_FormParam_Ex();
             $objFormSearchParam = new SC_FormParam_Ex();
             // パラメーター処理
             $this->lfInitParam($objFormParam);
             $objFormParam->setParam($_POST);
             $objFormParam->convParam();
             // 入力パラメーターチェック
             $this->arrErr = $this->lfCheckError($objFormParam);
             $this->arrForm = $objFormParam->getHashArray();
             // 検索引き継ぎ用パラメーター処理
             $this->lfInitSearchParam($objFormSearchParam);
             $objFormSearchParam->setParam($objFormParam->getValue('search_data'));
             $this->arrSearchErr = $this->lfCheckErrorSearchParam($objFormSearchParam);
             $this->arrSearchData = $objFormSearchParam->getSearchArray();
             break;
     }
     GC_Utils_Ex::gfDebugLog($this->arrErr);
     $objDb = new SC_Helper_DB_Ex();
     $this->customer_id = $this->arrForm['customer_id'];
     $this->customer = SC_Helper_Customer_Ex::sfGetCustomerData($this->customer_id);
     // モードによる処理切り替え
     switch ($this->getMode()) {
         case 'confirm':
             // 購入履歴情報の取得 (ポイント付与でエラーチェックに通らない時用)
             list($this->tpl_linemax, $this->arrPurchaseHistory, $this->objNavi) = $this->lfPurchaseHistory($this->customer_id);
             break;
         case "operate_cancel_cont_bill":
             list($this->tpl_linemax, $this->arrPurchaseHistory, $this->objNavi) = $this->lfPurchaseHistory($this->customer_id);
             $curl = $this->curl_init(true, false);
             $transactionId = $_REQUEST["au_payment_transaction_id"];
             $config = SC_AuonePayment_Ex::getConfig();
             if (strlen($transactionId) == 32) {
                 $post = $this->getPost("OperateCancelContBill", $config, compact("transactionId"));
                 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
                 $result = $this->curl_result($curl);
                 $result["post_history"] = $post;
                 $this->arrErr["au_payment_transaction_id"] = $this->check_result($result, array());
                 $this->arrErr = array_filter($this->arrErr);
                 if (!isset($this->arrErr["au_payment_transaction_id"])) {
                     $curl = $this->curl_init(true);
                     // FIXME 状態確認
                     $post = $this->getPost("ConditionInquiryForPayTranStat", $config, compact("transactionId"));
                     curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
                     $result = $this->curl_result($curl);
                     $arrWhereVal = array("del_flg" => 1, "transaction_status" => $result["body"]["transactionStatus"], "pay_status" => $result["body"]["payStatus"]);
                     $arrWhereVal = array_filter($arrWhereVal, "strlen");
                     $objQuery->update("cp_dtb_customer_transaction", $arrWhereVal, "transaction_id = ? AND del_flg = 0", array($transactionId));
                 }
             } else {
                 $this->arrErr["au_payment_transaction_id"] = "不正な処理";
             }
             break;
     }
     if ($objDb->sfColumnExists("cp_dtb_customer_transaction", "id")) {
         $objQuery->setOrder("id DESC");
         $this->customer["transaction"] = $objQuery->select("*", "cp_dtb_customer_transaction", "\n                    customer_id = ?\n                AND continue_account_id IS NOT NULL\n                AND transaction_status = '40'\n            ", array($this->customer_id));
         $this->customer["transaction2"] = $objQuery->select("*", "cp_dtb_customer_transaction", "\n                    customer_id = ?\n                AND continue_account_id IS NULL\n                AND transaction_status = '40'\n            ", array($this->customer_id));
         $objQuery->setOrder("");
         if (count($this->customer["transaction"]) == 0 && $this->customer["status"] == "2") {
             SC_Helper_Customer_Ex::sfEditCustomerData(array("status" => 1), $this->customer_id);
             $this->arrForm["status"]["value"] = 1;
         }
     }
     foreach ($this->arrErr as $msg) {
         $this->tpl_onload .= ";console.log('{$msg}');";
     }
 }
 /**
  * 配信内容と配信リストを書き込む
  *
  * @return integer 登録した行の dtb_send_history.send_id の値
  */
 function lfRegisterData(&$objFormParam)
 {
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     list($linemax, $arrSendCustomer, $objNavi) = SC_Helper_Customer_Ex::sfGetSearchData($objFormParam->getHashArray(), 'All');
     $send_customer_cnt = count($arrSendCustomer);
     $send_id = $objQuery->nextVal('dtb_send_history_send_id');
     $dtb_send_history = array();
     $dtb_send_history['mail_method'] = $objFormParam->getValue('mail_method');
     $dtb_send_history['subject'] = $objFormParam->getValue('subject');
     $dtb_send_history['body'] = $objFormParam->getValue('body');
     $dtb_send_history['start_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['creator_id'] = $_SESSION['member_id'];
     $dtb_send_history['send_count'] = $send_customer_cnt;
     $dtb_send_history['search_data'] = serialize($objFormParam->getSearchArray());
     $dtb_send_history['update_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['create_date'] = 'CURRENT_TIMESTAMP';
     $dtb_send_history['send_id'] = $send_id;
     $objQuery->insert('dtb_send_history', $dtb_send_history);
     // 「配信メールアドレス種別」に携帯メールアドレスが指定されている場合は、携帯メールアドレスに配信
     $emailtype = 'email';
     $searchmailtype = $objFormParam->getValue('search_mail_type');
     if ($searchmailtype == 2 || $searchmailtype == 4) {
         $emailtype = 'email_mobile';
     }
     if (is_array($arrSendCustomer)) {
         foreach ($arrSendCustomer as $line) {
             $dtb_send_customer = array();
             $dtb_send_customer['customer_id'] = $line['customer_id'];
             $dtb_send_customer['send_id'] = $send_id;
             $dtb_send_customer['email'] = $line[$emailtype];
             $dtb_send_customer['name'] = $line['name01'] . ' ' . $line['name02'];
             $objQuery->insert('dtb_send_customer', $dtb_send_customer);
         }
     }
     return $send_id;
 }
 private function lfGetOrderData($order_id)
 {
     if (SC_Utils_Ex::sfIsInt($order_id)) {
         // DBから受注情報を読み込む
         $objPurchase = new SC_Helper_Purchase_Ex();
         $this->arrDisp = $objPurchase->getOrder($order_id);
         list($point) = SC_Helper_Customer_Ex::sfGetCustomerPoint($order_id, $this->arrDisp['use_point'], $this->arrDisp['add_point']);
         $this->arrDisp['point'] = $point;
         // 受注詳細データの取得
         $arrRet = $objPurchase->getOrderDetail($order_id);
         $arrRet = SC_Utils_Ex::sfSwapArray($arrRet);
         $this->arrDisp = array_merge($this->arrDisp, $arrRet);
         // その他支払い情報を表示
         if ($this->arrDisp['memo02'] != '') {
             $this->arrDisp['payment_info'] = unserialize($this->arrDisp['memo02']);
         }
         $this->arrDisp['payment_type'] = 'お支払い';
     }
 }
 /**
  * 会員を削除する処理
  *
  * @param  integer $customer_id 会員ID
  * @return boolean true:成功 false:失敗
  */
 public static function delete($customer_id)
 {
     $arrData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id, 'del_flg = 0');
     if (SC_Utils_Ex::isBlank($arrData)) {
         //対象となるデータが見つからない。
         return false;
     }
     // XXXX: 仮会員は物理削除となっていたが論理削除に変更。
     $arrVal = array('del_flg' => '1');
     SC_Helper_Customer_Ex::sfEditCustomerData($arrVal, $customer_id);
     return true;
 }
 /**
  * 入力エラーチェック
  *
  * @param mixed $array
  * @access private
  * @return array エラーの配列
  */
 function lfCheckError($array)
 {
     $objErr = new SC_CheckError_Ex($array);
     if (preg_match("/^[[:alnum:]]+\$/", $array['id'])) {
         if (!is_numeric(SC_Helper_Customer_Ex::sfGetCustomerId($array['id'], true))) {
             $objErr->arrErr['id'] = t('c_* Member registration is already complete or the URL is invalid.<br />_01');
         }
     } else {
         $objErr->arrErr['id'] = t('c_* The URL is invalid. Check the member registration URL listed in the e-mail._01');
     }
     return $objErr->arrErr;
 }