/**
  * 会員情報をフォームに設定する.
  *
  * @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']);
 }
 /**
  * 受注データを取得して, 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']);
     }
 }
 /**
  * アップロードしたファイルを削除する.
  *
  * TODO 一時ファイルの削除
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return void
  */
 function doFileDelete(&$objFormParam)
 {
     $objImage = new SC_Image_Ex(DOWN_TEMP_REALDIR);
     $arrRealFileName = $objFormParam->getValue('down_realfilename');
     $index = $objFormParam->getValue('upload_index');
     $objImage->deleteImage($arrRealFileName[$index], DOWN_SAVE_REALDIR);
     $arrRealFileName[$index] = '';
     $objFormParam->setValue('down_realfilename', $arrRealFileName);
 }
 /**
  * 入力チェックを行う.
  *
  * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array        エラー情報の配列
  */
 public function lfCheckError(&$objFormParam)
 {
     $objCartSess = new SC_CartSession_Ex();
     $objFormParam->convParam();
     // 数量未入力は0に置換
     $objFormParam->setValue('quantity', $objFormParam->getValue('quantity', 0));
     $arrErr = $objFormParam->checkError();
     $arrParams = $objFormParam->getSwapArray();
     if (empty($arrErr)) {
         foreach ($arrParams as $index => $arrParam) {
             // 数量0で、お届け先を選択している場合
             if ($arrParam['quantity'] == 0 && !SC_Utils_Ex::isBlank($arrParam['shipping'])) {
                 $arrErr['shipping'][$index] = '※ 数量が0の場合、お届け先を入力できません。<br />';
             }
             // 数量の入力があり、お届け先を選択していない場合
             if ($arrParam['quantity'] > 0 && SC_Utils_Ex::isBlank($arrParam['shipping'])) {
                 $arrErr['shipping'][$index] = '※ お届け先が入力されていません。<br />';
             }
         }
     }
     // 入力エラーが無い場合、カゴの中身との数量の整合を確認
     if (empty($arrErr)) {
         $arrQuantity = array();
         // 入力内容を集計
         foreach ($arrParams as $arrParam) {
             $product_class_id = $arrParam['product_class_id'];
             $arrQuantity[$product_class_id] += $arrParam['quantity'];
         }
         // カゴの中身と突き合わせ
         $cartLists =& $objCartSess->getCartList($objCartSess->getKey());
         foreach ($cartLists as $arrCartRow) {
             $product_class_id = $arrCartRow['id'];
             // 差異がある場合、エラーを記録
             if ($arrCartRow['quantity'] != $arrQuantity[$product_class_id]) {
                 foreach ($arrParams as $index => $arrParam) {
                     if ($arrParam['product_class_id'] == $product_class_id) {
                         $arrErr['quantity'][$index] = '※ 数量合計を「' . $arrCartRow['quantity'] . '」にしてください。<br />';
                     }
                 }
             }
         }
     }
     return $arrErr;
 }
Ejemplo n.º 5
0
 /**
  * 会員情報をフォームに設定する.
  *
  * @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']);
 }
Ejemplo n.º 6
0
 /**
  *
  * テンプレートの文言をフォームに入れる。
  * @param SC_FormParam $objFormParam
  */
 public function changeData(&$objFormParam)
 {
     $template_id = $objFormParam->getValue('template_id');
     // 未選択時
     if (strlen($template_id) === 0) {
         $mailTemplates = null;
         // 有効選択時
     } elseif (SC_Utils_Ex::sfIsInt($template_id)) {
         $objMailtemplate = new SC_Helper_Mailtemplate_Ex();
         $mailTemplates = $objMailtemplate->get($template_id);
         // 不正選択時
     } else {
         trigger_error('テンプレートの指定が不正。', E_USER_ERROR);
     }
     if (empty($mailTemplates)) {
         foreach (array('subject', 'header', 'footer') as $key) {
             $objFormParam->setValue($key, '');
         }
     } else {
         $objFormParam->setParam($mailTemplates);
     }
     return $objFormParam;
 }
 /**
  *
  * テンプレートの文言をフォームに入れる。
  * @param SC_FormParam $objFormParam
  */
 function changeData(&$objFormParam)
 {
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $template_id = $objFormParam->getValue('template_id');
     // 未選択時
     if (strlen($template_id) === 0) {
         $mailTemplates = null;
     } elseif (SC_Utils_Ex::sfIsInt($template_id)) {
         $where = 'template_id = ?';
         $arrWhereVal = array($template_id);
         $mailTemplates = $objQuery->getRow('subject, header, footer', 'dtb_mailtemplate', $where, $arrWhereVal);
     } else {
         trigger_error('テンプレートの指定が不正。', E_USER_ERROR);
     }
     if (empty($mailTemplates)) {
         foreach (array('subject', 'header', 'footer') as $key) {
             $objFormParam->setValue($key, '');
         }
     } else {
         $objFormParam->setParam($mailTemplates);
     }
     return $objFormParam;
 }
 /**
  * 入力済みの購入情報をフォームに設定する.
  *
  * 受注一時テーブル, セッションの配送情報から入力済みの購入情報を取得し,
  * フォームに設定する.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス
  * @param integer $uniqid 購入一時情報のユニークID
  * @return void
  */
 function setFormParams(&$objFormParam, &$objPurchase, $uniqid)
 {
     $arrOrderTemp = $objPurchase->getOrderTemp($uniqid);
     if (SC_Utils_Ex::isBlank($arrOrderTemp)) {
         $arrOrderTemp = array('order_email' => '', 'order_birth' => '');
     }
     $arrShippingTemp = $objPurchase->getShippingTemp();
     $objFormParam->setParam($arrOrderTemp);
     /*
      * count($arrShippingTemp) > 1 は複数配送であり,
      * $arrShippingTemp[0] は注文者が格納されている
      */
     if (count($arrShippingTemp) > 1) {
         $objFormParam->setParam($arrShippingTemp[1]);
     } else {
         $objFormParam->setParam($arrShippingTemp[0]);
     }
     $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']);
     $objFormParam->setDBDate($arrOrderTemp['order_birth']);
 }
 /**
  *
  * テンプレートの文言をフォームに入れる。
  * @param SC_FormParam $objFormParam
  */
 function changeData(&$objFormParam)
 {
     if (SC_Utils_Ex::sfIsInt($objFormParam->getValue('template_id'))) {
         $objQuery =& SC_Query_Ex::getSingletonInstance();
         $where = 'template_id = ?';
         $mailTemplates = $objQuery->select('subject, header, footer', 'dtb_mailtemplate', $where, array($objFormParam->getValue('template_id')));
         if (!is_null($mailTemplates)) {
             foreach (array('subject', 'header', 'footer') as $key) {
                 $objFormParam->setValue($key, $mailTemplates[$key]);
             }
         }
         $objFormParam->setParam($mailTemplates[0]);
     } else {
         foreach (array('subject', 'header', 'footer') as $key) {
             $objFormParam->setValue($key, '');
         }
     }
     return $objFormParam;
 }
 /**
  * 入力チェックを行う.
  *
  * @param SC_FormParam $objFormParam SC_FormParam インスタンス
  * @return array エラー情報の配列
  */
 function lfCheckError(&$objFormParam)
 {
     $objCartSess = new SC_CartSession_Ex();
     $objFormParam->convParam();
     // 数量未入力は0に置換
     $objFormParam->setValue('quantity', $objFormParam->getValue('quantity', 0));
     $arrErr = $objFormParam->checkError();
     $arrParams = $objFormParam->getSwapArray();
     if (empty($arrErr)) {
         foreach ($arrParams as $index => $arrParam) {
             // 数量0で、お届け先を選択している場合
             if ($arrParam['quantity'] == 0 && !SC_Utils_Ex::isBlank($arrParam['shipping'])) {
                 $arrErr['shipping'][$index] = t('c_* When the quantity is 0, it is not possible to enter a shipping destination.<br />_01');
             }
             // 数量の入力があり、お届け先を選択していない場合
             if ($arrParam['quantity'] > 0 && SC_Utils_Ex::isBlank($arrParam['shipping'])) {
                 $arrErr['shipping'][$index] = t('c_* The shipping destination has not been entered.<br />_01');
             }
         }
     }
     // 入力エラーが無い場合、カゴの中身との数量の整合を確認
     if (empty($arrErr)) {
         $arrQuantity = array();
         // 入力内容を集計
         foreach ($arrParams as $arrParam) {
             $product_class_id = $arrParam['product_class_id'];
             $arrQuantity[$product_class_id] += $arrParam['quantity'];
         }
         // カゴの中身と突き合わせ
         $cartLists =& $objCartSess->getCartList($objCartSess->getKey());
         foreach ($cartLists as $arrCartRow) {
             $product_class_id = $arrCartRow['id'];
             // 差異がある場合、エラーを記録
             if ($arrCartRow['quantity'] != $arrQuantity[$product_class_id]) {
                 foreach ($arrParams as $index => $arrParam) {
                     if ($arrParam['product_class_id'] == $product_class_id) {
                         $arrErr['quantity'][$index] = t('c_* Use T_ARG1 for the total quantity.<br />_01', array('T_ARG1' => $arrCartRow['quantity']));
                     }
                 }
             }
         }
     }
     return $arrErr;
 }
 function doEdit(SC_Query $objQuery, SC_FormParam &$objFormParam)
 {
     if (is_array($this->arrErr)) {
         $this->arrErr = array_filter($this->arrErr);
         if (count($this->arrErr)) {
             GC_Utils_Ex::gfPrintLog(print_r($this->arrErr, TRUE), ERROR_LOG_REALFILE);
             return;
         }
     }
     $this->arrErr = $objFormParam->checkError();
     if (!SC_Utils_Ex::isBlank($this->arrErr)) {
         return;
     }
     $device_id = $objFormParam->getValue("device_id");
     $sqldata = $objFormParam->getDbArray();
     $arrDateColumn = $this->ARR_DATE_COLUMN;
     foreach ($arrDateColumn as $column) {
         $date_keys = $this->date_keys($column);
         $date = $objFormParam->getHashArray(array_values($date_keys));
         $date = array_map("intval", $date);
         if (checkdate($date[$date_keys["month"]], $date[$date_keys["day"]], $date[$date_keys["year"]])) {
             $sqldata[$column] = SC_Utils_Ex::sfGetTimestamp($date[$date_keys["year"]], $date[$date_keys["month"]], $date[$date_keys["day"]], FALSE);
         }
     }
     $has_insert = false;
     $sqldata["update_date"] = "CURRENT_TIMESTAMP";
     $device_id = intval($device_id);
     if ($device_id == 0) {
         $sqldata["device_id"] = $objQuery->nextVal("cp_dtb_device_device_id");
         $sqldata["create_date"] = "CURRENT_TIMESTAMP";
         $sqldata["del_flg"] = 0;
         $objQuery->insert("cp_dtb_device", $sqldata);
         $device_id = $sqldata["device_id"];
         // 端末情報初期設定
         $objFormParam->addParam("edit_device_id", "edit_device_id");
         $objFormParam->setValue("edit_device_id", $device_id);
         $has_insert = true;
     } else {
         $sqldata["update_date"] = "CURRENT_TIMESTAMP";
         $objQuery->update("cp_dtb_device", $sqldata, "device_id=?", (array) $device_id);
         $objQuery->delete("cp_dtb_device_categories", "device_id=?", (array) $device_id);
     }
     $form = $objFormParam->getHashArray(array("category_id"));
     if (is_array($form["category_id"]) && count($form["category_id"])) {
         foreach ($form["category_id"] as $category_id) {
             $sqldata = compact("category_id", "device_id");
             $objQuery->insert("cp_dtb_device_categories", $sqldata);
         }
         if ($has_insert) {
             // 初回登録時のみ
             $this->doProductSupportinitial($objQuery, $objFormParam);
         }
     }
     $this->tpl_onload = "eccube.setValueAndSubmit('search_form', 'mode', 'return');";
     return $device_id;
 }