/** * 会員情報をフォームに設定する. * * @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; }
/** * 会員情報をフォームに設定する. * * @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']); }
/** * * テンプレートの文言をフォームに入れる。 * @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; }