public function testCopyFromOrder_接頭辞・キーを設定した場合_指定の値でコピーされる() { $dest = array(); $src = array('input_name01' => '姓', 'input_name02' => '名', 'input_zip01' => '012'); $this->expected = array('output_name01' => '姓', 'output_name02' => '名'); $helper = new SC_Helper_Purchase(); $helper->copyFromOrder($dest, $src, 'output', 'input', array('name01', 'name02')); $this->actual = $dest; $this->verify(); }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は false を返す. * * @param integer $other_deliv_id * @param string $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_Helper_Address_Ex $objAddress * @return boolean お届け先チェックの値が妥当な場合 true */ public function registerDeliv($other_deliv_id, $uniqid, &$objPurchase, &$objCustomer, $objAddress) { $arrValues = array(); // 会員登録住所がチェックされている場合 if ($other_deliv_id == 0) { $objPurchase->copyFromCustomer($arrValues, $objCustomer, 'shipping'); // 別のお届け先がチェックされている場合 } else { $arrOtherDeliv = $objAddress->getAddress($other_deliv_id, $objCustomer->getValue('customer_id')); if (!$arrOtherDeliv) { return false; } $objPurchase->copyFromOrder($arrValues, $arrOtherDeliv, 'shipping', ''); } $objPurchase->saveShippingTemp($arrValues, $other_deliv_id); $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); return true; }
/** * データの一時登録を行う. * * 非会員向けの処理 * @param integer $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param boolean $isMultiple 複数配送の場合 true */ function lfRegistData($uniqid, &$objPurchase, &$objCustomer, &$objFormParam, $isMultiple = false) { $arrParams = $objFormParam->getHashArray(); // 注文者をお届け先とする配列を取得 $arrShippingOwn = array(); $objPurchase->copyFromOrder($arrShippingOwn, $arrParams); // 都度入力されたお届け先 $arrShipping = $objPurchase->extractShipping($arrParams); if ($isMultiple) { $objPurchase->unsetOneShippingTemp(0); $objPurchase->unsetOneShippingTemp(1); $objPurchase->saveShippingTemp($arrShippingOwn, 0); if ($arrParams['deliv_check'] == '1') { $objPurchase->saveShippingTemp($arrShipping, 1); } } else { $objPurchase->unsetAllShippingTemp(true); if ($arrParams['deliv_check'] == '1') { $objPurchase->saveShippingTemp($arrShipping, 1); } else { $objPurchase->saveShippingTemp($arrShippingOwn, 0); } } $arrValues = $objFormParam->getDbArray(); // 登録データの作成 $arrValues['order_birth'] = SC_Utils_Ex::sfGetTimestamp($arrParams['year'], $arrParams['month'], $arrParams['day']); $arrValues['update_date'] = 'CURRENT_TIMESTAMP'; $arrValues['customer_id'] = '0'; $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は false を返す. * * @param integer $other_deliv_id * @param string $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @return boolean お届け先チェックの値が妥当な場合 true */ function registerDeliv($other_deliv_id, $uniqid, &$objPurchase, &$objCustomer) { GC_Utils_Ex::gfDebugLog('register deliv. deliv_check=' . $deliv_check); $arrValues = array(); // 会員登録住所がチェックされている場合 if ($other_deliv_id == 0) { $objPurchase->copyFromCustomer($arrValues, $objCustomer, 'shipping'); } else { $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrOtherDeliv = $objQuery->getRow('*', 'dtb_other_deliv', 'customer_id = ? AND other_deliv_id = ?', array($objCustomer->getValue('customer_id'), $other_deliv_id)); if (empty($arrOtherDeliv)) { return false; } $objPurchase->copyFromOrder($arrValues, $arrOtherDeliv, 'shipping', ''); } $objPurchase->saveShippingTemp($arrValues, $other_deliv_id); $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); return true; }
/** * データの一時登録を行う. * * @param integer $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param boolean $isMultiple 複数配送の場合 true */ function lfRegistData($uniqid, &$objPurchase, &$objCustomer, &$objFormParam, $isMultiple = false) { $arrParams = $objFormParam->getHashArray(); $arrValues = $objFormParam->getDbArray(); // 登録データの作成 $arrValues['order_birth'] = SC_Utils_Ex::sfGetTimestamp($arrParams['year'], $arrParams['month'], $arrParams['day']); $arrValues['update_date'] = 'CURRENT_TIMESTAMP'; $arrValues['customer_id'] = '0'; // お届け先を指定しない場合、 if ($arrParams['deliv_check'] != '1') { // order_* を shipping_* へコピー $objPurchase->copyFromOrder($arrValues, $arrParams); } /* * order_* と shipping_* をそれぞれ $_SESSION['shipping'][$shipping_id] * に, shipping_* というキーで保存 */ foreach ($arrValues as $key => $val) { if (preg_match('/^order_/', $key)) { $arrOrder['shipping_' . str_replace('order_', '', $key)] = $val; } elseif (preg_match('/^shipping_/', $key)) { $arrShipping[$key] = $val; } } if ($isMultiple) { $objPurchase->saveShippingTemp($arrOrder, 0); if ($arrParams['deliv_check'] == '1') { $objPurchase->saveShippingTemp($arrShipping, 1); } } else { if ($arrParams['deliv_check'] == '1') { $objPurchase->saveShippingTemp($arrShipping, 0); } else { $objPurchase->saveShippingTemp($arrOrder, 0); } } $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は false を返す. * * @param integer $deliv_check お届け先チェック * @param string $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @return boolean お届け先チェックの値が妥当な場合 true */ function registerDeliv($deliv_check, $uniqid, &$objPurchase, &$objCustomer) { $this->log("register deliv. deliv_check=" . $deliv_check, "Debug"); $arrValues = array(); // 会員登録住所がチェックされている場合 if ($deliv_check == '-1') { $objPurchase->copyFromCustomer($arrValues, $objCustomer, 'shipping'); $objPurchase->saveShippingTemp($arrValues); $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); return true; } elseif ($deliv_check >= 1) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrOtherDeliv = $objQuery->getRow("*", "dtb_other_deliv", "customer_id = ? AND other_deliv_id = ?", array($objCustomer->getValue('customer_id'), $deliv_check)); if (SC_Utils_Ex::isBlank($arrOtherDeliv)) { return false; } $objPurchase->copyFromOrder($arrValues, $arrOtherDeliv, 'shipping', ''); $objPurchase->saveShippingTemp($arrValues); $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); return true; } else { return false; } }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は false を返す. * * @param integer $other_deliv_id * @param string $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @return boolean お届け先チェックの値が妥当な場合 true */ function registerDeliv($other_deliv_id, $uniqid, &$objPurchase, &$objCustomer, $objAddress) { GC_Utils_Ex::gfDebugLog('register deliv. deliv_check=' . $deliv_check); $arrValues = array(); // 会員登録住所がチェックされている場合 if ($other_deliv_id == 0) { $objPurchase->copyFromCustomer($arrValues, $objCustomer, 'shipping'); } else { $arrOtherDeliv = $objAddress->getAddress($other_deliv_id); if (!$arrOtherDeliv) { return false; } $objPurchase->copyFromOrder($arrValues, $arrOtherDeliv, 'shipping', ''); } $objPurchase->saveShippingTemp($arrValues, $other_deliv_id); $objPurchase->saveOrderTemp($uniqid, $arrValues, $objCustomer); return true; }