/** * @param FormParam $objFormParam */ public function lfCheckError($post, $objFormParam, PaymentHelper $objPayment) { // DBのデータを取得 $arrPaymentData = $objPayment->get($post['payment_id']); // 手数料を設定できない場合には、手数料を0にする if ($arrPaymentData['charge_flg'] == 2) { $objFormParam->setValue('charge', '0'); } // 入力データを渡す。 $arrRet = $objFormParam->getHashArray(); /* @var $objErr CheckError */ $objErr = Application::alias('eccube.check_error', $arrRet); $objErr->arrErr = $objFormParam->checkError(); // 利用条件(下限)チェック if ($arrRet['rule_max'] < $arrPaymentData['rule_min'] and $arrPaymentData['rule_min'] != '') { $objErr->arrErr['rule'] = '利用条件(下限)は' . $arrPaymentData['rule_min'] . '円以上にしてください。<br>'; } // 利用条件(上限)チェック if ($arrRet['upper_rule'] > $arrPaymentData['upper_rule_max'] and $arrPaymentData['upper_rule_max'] != '') { $objErr->arrErr['upper_rule'] = '利用条件(上限)は' . $arrPaymentData['upper_rule_max'] . '円以下にしてください。<br>'; } // 利用条件チェック $objErr->doFunc(array('利用条件(~円以上)', '利用条件(~円以下)', 'rule_max', 'upper_rule'), array('GREATER_CHECK')); return $objErr->arrErr; }
/** * 配送業者IDから, 支払い方法, お届け時間の配列を取得する. * * 結果の連想配列の添字の値は以下の通り * - 'arrDelivTime' - お届け時間の配列 * - 'arrPayment' - 支払い方法の配列 * - 'img_show' - 支払い方法の画像の有無 * * @param SC_CartSession $objCartSess SC_CartSession インスタンス * @param integer $deliv_id 配送業者ID * @return array 支払い方法, お届け時間を格納した配列 */ public function getSelectablePayment(&$objCartSess, $deliv_id, $is_list = false) { $arrPayment = array(); if (strval($deliv_id) === strval(intval($deliv_id))) { $total = $objCartSess->getAllProductsTotal($objCartSess->getKey()); $payments_deliv = DeliveryHelper::getPayments($deliv_id); $objPayment = new PaymentHelper(); $payments_total = $objPayment->getByPrice($total); foreach ($payments_total as $payment) { if (in_array($payment['payment_id'], $payments_deliv)) { if ($is_list) { $arrPayment[$payment['payment_id']] = $payment['payment_method']; } else { $arrPayment[] = $payment; } } } } return $arrPayment; }