Ejemplo n.º 1
0
 function lfCheek($arrInfo, $mode = "")
 {
     $objDb = new SC_Helper_DB_Ex();
     $arrVal = $this->objFormParam->getHashArray();
     $arrErr = array();
     // 商品の種類数
     $max = count($arrVal['quantity']);
     $subtotal = 0;
     $totalpoint = 0;
     $totaltax = 0;
     for ($i = 0; $i < $max; $i++) {
         // 小計の計算
         $subtotal += SC_Utils_Ex::sfPreTax($arrVal['price'][$i], $arrInfo['tax'], $arrInfo['tax_rule']) * $arrVal['quantity'][$i];
         // 小計の計算
         $totaltax += SC_Utils_Ex::sfTax($arrVal['price'][$i], $arrInfo['tax'], $arrInfo['tax_rule']) * $arrVal['quantity'][$i];
         // 加算ポイントの計算
         $totalpoint += SC_Utils_Ex::sfPrePoint($arrVal['price'][$i], $arrVal['point_rate'][$i]) * $arrVal['quantity'][$i];
     }
     // 消費税
     $arrVal['tax'] = $totaltax;
     // 小計
     $arrVal['subtotal'] = $subtotal;
     // 合計
     $arrVal['total'] = $subtotal - $arrVal['discount'] + $arrVal['deliv_fee'] + $arrVal['charge'];
     // お支払い合計
     $arrVal['payment_total'] = $arrVal['total'] - $arrVal['use_point'] * POINT_VALUE;
     // 加算ポイント
     $arrVal['add_point'] = SC_Utils_Ex::sfGetAddPoint($totalpoint, $arrVal['use_point'], $arrInfo);
     if (strlen($_POST['customer_id']) > 0) {
         list($arrVal['point'], $arrVal['total_point']) = $objDb->sfGetCustomerPointFromCid($_POST['customer_id'], $arrVal['use_point'], $arrVal['add_point']);
     } else {
         list($arrVal['point'], $arrVal['total_point']) = $objDb->sfGetCustomerPoint($_POST['order_id'], $arrVal['use_point'], $arrVal['add_point']);
     }
     if ($arrVal['total'] < 0) {
         $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     if ($arrVal['payment_total'] < 0) {
         $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />';
     }
     //新規追加受注のみ
     if ($mode == "add") {
         if ($arrVal['total_point'] < 0) {
             $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />';
         }
     }
     $this->objFormParam->setParam($arrVal);
     return $arrErr;
 }