Changeset 15604 for branches/feature-module-update/data
- Timestamp:
- 2007/09/05 11:01:20 (17 years ago)
- Location:
- branches/feature-module-update/data/class
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/helper/SC_Helper_DB.php
r15592 r15604 1212 1212 1213 1213 /** 1214 * 集計情報を元に最終計算を行う. 1215 * 1216 * @param array $arrData 各種情報 1217 * @param LC_Page $objPage LC_Page インスタンス 1218 * @param SC_CartSession $objCartSess SC_CartSession インスタンス 1219 * @param array $arrInfo 店舗情報の配列 1220 * @param SC_Customer $objCustomer SC_Customer インスタンス 1221 * @return array 最終計算後の配列 1222 */ 1223 function sfTotalConfirm($arrData, &$objPage, &$objCartSess, $arrInfo, &$objCustomer = "") { 1224 // 未定義変数を定義 1225 if (!isset($arrData['deliv_pref'])) $arrData['deliv_pref'] = ""; 1226 if (!isset($arrData['payment_id'])) $arrData['payment_id'] = ""; 1227 if (!isset($arrData['charge'])) $arrData['charge'] = ""; 1228 if (!isset($arrData['use_point'])) $arrData['use_point'] = ""; 1229 1230 // 商品の合計個数 1231 $total_quantity = $objCartSess->getTotalQuantity(true); 1232 1233 // 税金の取得 1234 $arrData['tax'] = $objPage->tpl_total_tax; 1235 // 小計の取得 1236 $arrData['subtotal'] = $objPage->tpl_total_pretax; 1237 1238 // 合計送料の取得 1239 $arrData['deliv_fee'] = 0; 1240 1241 // 商品ごとの送料が有効の場合 1242 if (OPTION_PRODUCT_DELIV_FEE == 1) { 1243 $arrData['deliv_fee']+= $objCartSess->getAllProductsDelivFee(); 1244 } 1245 1246 // 配送業者の送料が有効の場合 1247 if (OPTION_DELIV_FEE == 1) { 1248 // 送料の合計を計算する 1249 $arrData['deliv_fee'] 1250 += $this->sfGetDelivFee($arrData['deliv_pref'], 1251 $arrData['payment_id']); 1252 1253 } 1254 1255 // 送料無料の購入数が設定されている場合 1256 if(DELIV_FREE_AMOUNT > 0) { 1257 if($total_quantity >= DELIV_FREE_AMOUNT) { 1258 $arrData['deliv_fee'] = 0; 1259 } 1260 } 1261 1262 // 送料無料条件が設定されている場合 1263 if($arrInfo['free_rule'] > 0) { 1264 // 小計が無料条件を超えている場合 1265 if($arrData['subtotal'] >= $arrInfo['free_rule']) { 1266 $arrData['deliv_fee'] = 0; 1267 } 1268 } 1269 1270 // 合計の計算 1271 $arrData['total'] = $objPage->tpl_total_pretax; // 商品合計 1272 $arrData['total']+= $arrData['deliv_fee']; // 送料 1273 $arrData['total']+= $arrData['charge']; // 手数料 1274 // お支払い合計 1275 $arrData['payment_total'] = $arrData['total'] - ($arrData['use_point'] * POINT_VALUE); 1276 // 加算ポイントの計算 1277 $arrData['add_point'] = SC_Utils::sfGetAddPoint($objPage->tpl_total_point, $arrData['use_point'], $arrInfo); 1278 1279 if($objCustomer != "") { 1280 // 誕生日月であった場合 1281 if($objCustomer->isBirthMonth()) { 1282 $arrData['birth_point'] = BIRTH_MONTH_POINT; 1283 $arrData['add_point'] += $arrData['birth_point']; 1284 } 1285 } 1286 1287 if($arrData['add_point'] < 0) { 1288 $arrData['add_point'] = 0; 1289 } 1290 return $arrData; 1291 } 1292 1293 /** 1214 1294 * レコードの存在チェックを行う. 1215 1295 * -
branches/feature-module-update/data/class/util/SC_Utils.php
r15592 r15604 912 912 } 913 913 914 /* 集計情報を元に最終計算 */915 function sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer = "") {916 // 未定義変数を定義917 if (!isset($arrData['deliv_pref'])) $arrData['deliv_pref'] = "";918 if (!isset($arrData['payment_id'])) $arrData['payment_id'] = "";919 if (!isset($arrData['charge'])) $arrData['charge'] = "";920 if (!isset($arrData['use_point'])) $arrData['use_point'] = "";921 922 // 商品の合計個数923 $total_quantity = $objCartSess->getTotalQuantity(true);924 925 // 税金の取得926 $arrData['tax'] = $objPage->tpl_total_tax;927 // 小計の取得928 $arrData['subtotal'] = $objPage->tpl_total_pretax;929 930 // 合計送料の取得931 $arrData['deliv_fee'] = 0;932 933 // 商品ごとの送料が有効の場合934 if (OPTION_PRODUCT_DELIV_FEE == 1) {935 $arrData['deliv_fee']+= $objCartSess->getAllProductsDelivFee();936 }937 938 // 配送業者の送料が有効の場合939 if (OPTION_DELIV_FEE == 1) {940 // 送料の合計を計算する941 $arrData['deliv_fee']942 += SC_Utils::sfGetDelivFee($arrData['deliv_pref'],943 $arrData['payment_id']);944 945 }946 947 // 送料無料の購入数が設定されている場合948 if(DELIV_FREE_AMOUNT > 0) {949 if($total_quantity >= DELIV_FREE_AMOUNT) {950 $arrData['deliv_fee'] = 0;951 }952 }953 954 // 送料無料条件が設定されている場合955 if($arrInfo['free_rule'] > 0) {956 // 小計が無料条件を超えている場合957 if($arrData['subtotal'] >= $arrInfo['free_rule']) {958 $arrData['deliv_fee'] = 0;959 }960 }961 962 // 合計の計算963 $arrData['total'] = $objPage->tpl_total_pretax; // 商品合計964 $arrData['total']+= $arrData['deliv_fee']; // 送料965 $arrData['total']+= $arrData['charge']; // 手数料966 // お支払い合計967 $arrData['payment_total'] = $arrData['total'] - ($arrData['use_point'] * POINT_VALUE);968 // 加算ポイントの計算969 $arrData['add_point'] = SC_Utils::sfGetAddPoint($objPage->tpl_total_point, $arrData['use_point'], $arrInfo);970 971 if($objCustomer != "") {972 // 誕生日月であった場合973 if($objCustomer->isBirthMonth()) {974 $arrData['birth_point'] = BIRTH_MONTH_POINT;975 $arrData['add_point'] += $arrData['birth_point'];976 }977 }978 979 if($arrData['add_point'] < 0) {980 $arrData['add_point'] = 0;981 }982 983 return $arrData;984 }985 986 914 /* DBから取り出した日付の文字列を調整する。*/ 987 915 function sfDispDBDate($dbdate, $time = true) {
Note: See TracChangeset
for help on using the changeset viewer.