public function testCopyFromCustomer_モバイルでない場合_通常のメールアドレスをそのまま設定する() { $dest = array(); $prefix = 'prefix'; // キーを絞る $keys = array('name01', 'email'); User_Utils::setLoginState(TRUE, $this->customer_array, $this->objQuery); User_Utils::setDeviceType(DEVICE_TYPE_PC); $this->customer->setValue('email_mobile', '*****@*****.**'); $this->expected = array('prefix_name01' => '姓01', 'prefix_email' => '*****@*****.**', 'customer_id' => '1001', 'update_date' => 'CURRENT_TIMESTAMP'); $helper = new SC_Helper_Purchase(); $helper->copyFromCustomer($dest, $this->customer, $prefix, $keys); $this->actual = $dest; $this->verify(); }
/** * 複数配送情報を一時保存する. * * 会員ログインしている場合は, その他のお届け先から住所情報を取得する. * * @param integer $uniqid 一時受注テーブルのユニークID * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_CartSession $objCartSess SC_CartSession インスタンス * @return void */ function saveMultipleShippings($uniqid, &$objFormParam, &$objCustomer, &$objPurchase, &$objCartSess, &$objAddress) { $arrParams = $objFormParam->getSwapArray(); foreach ($arrParams as $arrParam) { $other_deliv_id = $arrParam['shipping']; if ($objCustomer->isLoginSuccess(true)) { if ($other_deliv_id != 0) { $otherDeliv = $objAddress->getAddress($other_deliv_id); foreach ($otherDeliv as $key => $val) { $arrValues[$other_deliv_id]['shipping_' . $key] = $val; } } else { $objPurchase->copyFromCustomer($arrValues[0], $objCustomer, 'shipping'); } } else { $arrValues = $objPurchase->getShippingTemp(); } $arrItemTemp[$other_deliv_id][$arrParam['product_class_id']] += $arrParam['quantity']; } $objPurchase->clearShipmentItemTemp(); foreach ($arrValues as $shipping_id => $arrVal) { $objPurchase->saveShippingTemp($arrVal, $shipping_id); } foreach ($arrItemTemp as $other_deliv_id => $arrProductClassIds) { foreach ($arrProductClassIds as $product_class_id => $quantity) { if ($quantity == 0) { continue; } $objPurchase->setShipmentItemTemp($other_deliv_id, $product_class_id, $quantity); } } //不必要な配送先を削除 foreach ($_SESSION['shipping'] as $id => $arrShipping) { if (!isset($arrShipping['shipment_item'])) { $objPurchase->unsetOneShippingTemp($id); } } // $arrValues[0] には, 購入者の情報が格納されている $objPurchase->saveOrderTemp($uniqid, $arrValues[0], $objCustomer); }
/** * 複数配送情報を一時保存する. * * 会員ログインしている場合は, その他のお届け先から住所情報を取得する. * * @param integer $uniqid 一時受注テーブルのユニークID * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @return void */ public function saveMultipleShippings($uniqid, &$objFormParam, &$objCustomer, &$objPurchase, &$objAddress) { $arrParams = $objFormParam->getSwapArray(); foreach ($arrParams as $arrParam) { $other_deliv_id = $arrParam['shipping']; if ($objCustomer->isLoginSuccess(true)) { if ($other_deliv_id != 0) { $otherDeliv = $objAddress->getAddress($other_deliv_id, $objCustomer->getValue('customer_id')); if (!$otherDeliv) { SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, '', false, "入力値が不正です。<br />正しい値を入力してください。"); SC_Response_Ex::actionExit(); } foreach ($otherDeliv as $key => $val) { $arrValues[$other_deliv_id]['shipping_' . $key] = $val; } } else { $objPurchase->copyFromCustomer($arrValues[0], $objCustomer, 'shipping'); } } else { $arrValues = $objPurchase->getShippingTemp(); } $arrItemTemp[$other_deliv_id][$arrParam['product_class_id']] += $arrParam['quantity']; } $objPurchase->clearShipmentItemTemp(); foreach ($arrValues as $shipping_id => $arrVal) { $objPurchase->saveShippingTemp($arrVal, $shipping_id); } foreach ($arrItemTemp as $other_deliv_id => $arrProductClassIds) { foreach ($arrProductClassIds as $product_class_id => $quantity) { if ($quantity == 0) { continue; } $objPurchase->setShipmentItemTemp($other_deliv_id, $product_class_id, $quantity); } } //不必要な配送先を削除 foreach ($_SESSION['shipping'] as $id => $arrShipping) { if (!isset($arrShipping['shipment_item'])) { $objPurchase->unsetOneShippingTemp($id); } } // $arrValues[0] には, 購入者の情報が格納されている $objPurchase->saveOrderTemp($uniqid, $arrValues[0], $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 インスタンス * @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; }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は 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; }
/** * お届け先チェックの値に応じて, お届け先情報を保存する. * * 会員住所がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先がチェックされている場合は, その他のお届け先からお届け先を取得する. * お届け先チェックの値が不正な場合は 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; } }
/** * 複数配送情報を一時保存する. * * 会員ログインしている場合は, その他のお届け先から住所情報を取得する. * * @param integer $uniqid 一時受注テーブルのユニークID * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_CartSession $objCartSess SC_CartSession インスタンス * @return void */ function saveMultipleShippings($uniqid, &$objFormParam, &$objCustomer, &$objPurchase, &$objCartSess) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrParams = $objFormParam->getSwapArray(); foreach ($arrParams as $arrParam) { $other_deliv_id = $arrParam['shipping']; if ($objCustomer->isLoginSuccess(true)) { if ($other_deliv_id != 0) { $otherDeliv = $objQuery->select('*', 'dtb_other_deliv', 'other_deliv_id = ?', array($other_deliv_id)); foreach ($otherDeliv[0] as $key => $val) { $arrValues[$other_deliv_id]['shipping_' . $key] = $val; } } else { $objPurchase->copyFromCustomer($arrValues[0], $objCustomer, 'shipping'); } } else { $arrValues = $objPurchase->getShippingTemp(); } $arrItemTemp[$other_deliv_id][$arrParam['product_class_id']] += $arrParam['quantity']; } $objPurchase->clearShipmentItemTemp(); foreach ($arrValues as $shipping_id => $arrVal) { $objPurchase->saveShippingTemp($arrVal, $shipping_id); } foreach ($arrItemTemp as $other_deliv_id => $arrProductClassIds) { foreach ($arrProductClassIds as $product_class_id => $quantity) { if ($quantity == 0) { continue; } $objPurchase->setShipmentItemTemp($other_deliv_id, $product_class_id, $quantity); } } // $arrValues[0] には, 購入者の情報が格納されている $objPurchase->saveOrderTemp($uniqid, $arrValues[0], $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, $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; }