/**
  * 入力エラーチェック.
  *
  * @return array $objErr->arrErr エラー内容
  */
 public function lfCheckError(&$objFormParam, SC_Helper_TaxRule_Ex &$objTaxRule)
 {
     $arrErr = $objFormParam->checkError();
     $arrForm = $objFormParam->getHashArray();
     $objErr = new SC_CheckError_Ex($arrForm);
     // tax_rule_id の正当性チェック
     if (!empty($arrForm['tax_rule_id'])) {
         if (!SC_Utils_Ex::sfIsInt($arrForm['tax_rule_id']) || !$objTaxRule->getTaxRuleData($arrForm['tax_rule_id'])) {
             // tax_rule_idが指定されていて、且つその値が不正と思われる場合はエラー
             $arrErr['tax_rule_id'] = '※ 税規約IDが不正です<br />';
         }
     }
     // 適用日時チェック
     $objErr->doFunc(array('適用日時', 'apply_date_year', 'apply_date_month', 'apply_date_day'), array('CHECK_DATE'));
     if (SC_Utils_Ex::isBlank($objErr->arrErr['apply_date_year']) && $arrForm['tax_rule_id'] != '0') {
         $apply_date = SC_Utils_Ex::sfGetTimestampistime($arrForm['apply_date_year'], sprintf("%02d", $arrForm['apply_date_month']), sprintf("%02d", $arrForm['apply_date_day']), sprintf("%02d", $arrForm['apply_date_hour']), sprintf("%02d", $arrForm['apply_date_minutes']));
         // 税規約情報読み込み
         $arrTaxRuleByTime = $objTaxRule->getTaxRuleByTime($apply_date);
         // 編集中のレコード以外に同じ消費税率、課税規則が存在する場合
         if (!SC_Utils_Ex::isBlank($arrTaxRuleByTime) && $arrTaxRuleByTime['tax_rule_id'] != $arrForm['tax_rule_id'] && $arrTaxRuleByTime['apply_date'] == $apply_date) {
             $arrErr['apply_date'] = '※ 既に同じ適用日時で登録が存在します。<br />';
         }
     }
     if (!SC_Utils_Ex::isBlank($objErr->arrErr)) {
         $arrErr = array_merge($arrErr, $objErr->arrErr);
     }
     return $arrErr;
 }
Пример #2
0
 /**
  * 設定情報IDに基づいて税金の金額を返す
  * (受注データのようにルールが決まっている場合用)
  *
  * @param int $price 計算対象の金額
  * @param int $tax_rule_id 税規約ID
  * @return double 税金付与した金額
  */
 public static function calcTaxFromRuleId($price, $tax_rule_id = 0)
 {
     $arrTaxRule = SC_Helper_TaxRule_Ex::getTaxRuleData($tax_rule_id);
     return SC_Helper_TaxRule_Ex::calcTax($price, $arrTaxRule['tax_rate'], $arrTaxRule['tax_rule'], $arrTaxRule['tax_adjust']);
 }