Changeset 22490 for branches/version-2_12-dev/data/class
- Timestamp:
- 2013/01/31 22:55:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_12-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
r22283 r22490 228 228 $objFormParam->setParam($_POST); 229 229 $objFormParam->convParam(); 230 $ this->setCustomerTo($objFormParam->getValue('edit_customer_id'),230 $customer_birth = $this->setCustomerTo($objFormParam->getValue('edit_customer_id'), 231 231 $objFormParam); 232 // 加算ポイントの計算 233 if (USE_POINT === true && $this->tpl_mode == 'add'){ 234 $birth_point = 0; 235 if ($customer_birth){ 236 $arrRet = preg_split('|[- :/]|', $customer_birth); 237 $birth_date = intval($arrRet[1]); 238 $now_date = intval(date('m')); 239 // 誕生日月であった場合 240 if ($birth_date == $now_date) { 241 $birth_point = BIRTH_MONTH_POINT; 242 } 243 } 244 $objFormParam->setValue("birth_point",$birth_point); 245 } 232 246 $this->arrErr = $this->lfCheckError($objFormParam); 233 247 break; 234 248 235 // 複数配送設定表示249 // 複数配送設定表示 236 250 case 'multiple': 237 251 $objFormParam->setParam($_POST); … … 240 254 break; 241 255 242 // 複数配送設定を反映256 // 複数配送設定を反映 243 257 case 'multiple_set_to': 244 258 $this->lfInitMultipleParam($objFormParam); … … 248 262 break; 249 263 250 // お届け先の追加264 // お届け先の追加 251 265 case 'append_shipping': 252 266 $objFormParam->setParam($_POST); … … 268 282 } 269 283 270 /** 271 * デストラクタ. 272 * 273 * @return void 274 */ 275 function destroy() { 276 parent::destroy(); 277 } 278 279 /** 280 * パラメーター情報の初期化を行う. 281 * 282 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 283 * @return void 284 */ 285 function lfInitParam(&$objFormParam) { 286 // 検索条件のパラメーターを初期化 287 parent::lfInitParam($objFormParam); 288 289 // お客様情報 290 $objFormParam->addParam('注文者 お名前(姓)', 'order_name01', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 291 $objFormParam->addParam('注文者 お名前(名)', 'order_name02', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 292 $objFormParam->addParam('注文者 お名前(フリガナ・姓)', 'order_kana01', STEXT_LEN, 'KVCa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 293 $objFormParam->addParam('注文者 お名前(フリガナ・名)', 'order_kana02', STEXT_LEN, 'KVCa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 294 $objFormParam->addParam('メールアドレス', 'order_email', null, 'KVCa', array('NO_SPTAB', 'EMAIL_CHECK', 'EMAIL_CHAR_CHECK')); 295 $objFormParam->addParam('郵便番号1', 'order_zip01', ZIP01_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 296 $objFormParam->addParam('郵便番号2', 'order_zip02', ZIP02_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 297 $objFormParam->addParam('都道府県', 'order_pref', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 298 $objFormParam->addParam('住所1', 'order_addr01', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 299 $objFormParam->addParam('住所2', 'order_addr02', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 300 $objFormParam->addParam('電話番号1', 'order_tel01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 301 $objFormParam->addParam('電話番号2', 'order_tel02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 302 $objFormParam->addParam('電話番号3', 'order_tel03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 303 $objFormParam->addParam('FAX番号1', 'order_fax01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 304 $objFormParam->addParam('FAX番号2', 'order_fax02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 305 $objFormParam->addParam('FAX番号3', 'order_fax03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 306 307 // 受注商品情報 308 $objFormParam->addParam('値引き', 'discount', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 309 $objFormParam->addParam('送料', 'deliv_fee', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 310 $objFormParam->addParam('手数料', 'charge', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 311 312 // ポイント機能ON時のみ 313 if (USE_POINT !== false) { 314 $objFormParam->addParam('利用ポイント', 'use_point', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 315 } 316 317 $objFormParam->addParam('配送業者', 'deliv_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 318 $objFormParam->addParam('お支払い方法', 'payment_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 319 $objFormParam->addParam('対応状況', 'status', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 320 $objFormParam->addParam('お支払方法名称', 'payment_method'); 321 322 // 受注詳細情報 323 $objFormParam->addParam('商品種別ID', 'product_type_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 324 $objFormParam->addParam('単価', 'price', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 325 $objFormParam->addParam('数量', 'quantity', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 326 $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 327 $objFormParam->addParam('商品規格ID', 'product_class_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 328 $objFormParam->addParam('ポイント付与率', 'point_rate'); 329 $objFormParam->addParam('商品コード', 'product_code'); 330 $objFormParam->addParam('商品名', 'product_name'); 331 $objFormParam->addParam('規格名1', 'classcategory_name1'); 332 $objFormParam->addParam('規格名2', 'classcategory_name2'); 333 $objFormParam->addParam('税率', 'tax_rate'); 334 $objFormParam->addParam('課税規則', 'tax_rule'); 335 $objFormParam->addParam('メモ', 'note', MTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); 336 $objFormParam->addParam('削除用項番', 'delete_no', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 337 338 // DB読込用 339 $objFormParam->addParam('小計', 'subtotal'); 340 $objFormParam->addParam('合計', 'total'); 341 $objFormParam->addParam('支払い合計', 'payment_total'); 342 $objFormParam->addParam('加算ポイント', 'add_point'); 343 $objFormParam->addParam('お誕生日ポイント', 'birth_point', null, 'n', array(), 0); 344 $objFormParam->addParam('消費税合計', 'tax'); 345 $objFormParam->addParam('最終保持ポイント', 'total_point'); 346 $objFormParam->addParam('会員ID', 'customer_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 347 $objFormParam->addParam('会員ID', 'edit_customer_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 348 $objFormParam->addParam('現在のポイント', 'customer_point'); 349 $objFormParam->addParam('受注前ポイント', 'point'); 350 $objFormParam->addParam('注文番号', 'order_id'); 351 $objFormParam->addParam('受注日', 'create_date'); 352 $objFormParam->addParam('発送日', 'commit_date'); 353 $objFormParam->addParam('備考', 'message'); 354 $objFormParam->addParam('入金日', 'payment_date'); 355 $objFormParam->addParam('端末種別', 'device_type_id'); 356 $objFormParam->addParam('税率', 'order_tax_rate'); 357 $objFormParam->addParam('課税規則', 'order_tax_rule'); 358 359 // 複数情報 360 $objFormParam->addParam('配送数', 'shipping_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 361 $objFormParam->addParam('配送ID', 'shipping_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), 0); 362 $objFormParam->addParam('お名前(姓)', 'shipping_name01', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 363 $objFormParam->addParam('お名前(名)', 'shipping_name02', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 364 $objFormParam->addParam('お名前(フリガナ・姓)', 'shipping_kana01', STEXT_LEN, 'KVCa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 365 $objFormParam->addParam('お名前(フリガナ・名)', 'shipping_kana02', STEXT_LEN, 'KVCa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 366 $objFormParam->addParam('郵便番号1', 'shipping_zip01', ZIP01_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 367 $objFormParam->addParam('郵便番号2', 'shipping_zip02', ZIP02_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 368 $objFormParam->addParam('都道府県', 'shipping_pref', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 369 $objFormParam->addParam('住所1', 'shipping_addr01', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 370 $objFormParam->addParam('住所2', 'shipping_addr02', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 371 $objFormParam->addParam('電話番号1', 'shipping_tel01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 372 $objFormParam->addParam('電話番号2', 'shipping_tel02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 373 $objFormParam->addParam('電話番号3', 'shipping_tel03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 374 $objFormParam->addParam('FAX番号1', 'shipping_fax01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 375 $objFormParam->addParam('FAX番号2', 'shipping_fax02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 376 $objFormParam->addParam('FAX番号3', 'shipping_fax03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 377 $objFormParam->addParam('お届け時間ID', 'time_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 378 $objFormParam->addParam('お届け日(年)', 'shipping_date_year', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 379 $objFormParam->addParam('お届け日(月)', 'shipping_date_month', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 380 $objFormParam->addParam('お届け日(日)', 'shipping_date_day', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 381 $objFormParam->addParam('お届け日', 'shipping_date', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 382 $objFormParam->addParam('配送商品数量', 'shipping_product_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 383 384 $objFormParam->addParam('商品規格ID', 'shipment_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 385 $objFormParam->addParam('商品コード', 'shipment_product_code'); 386 $objFormParam->addParam('商品名', 'shipment_product_name'); 387 $objFormParam->addParam('規格名1', 'shipment_classcategory_name1'); 388 $objFormParam->addParam('規格名2', 'shipment_classcategory_name2'); 389 $objFormParam->addParam('単価', 'shipment_price', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 390 $objFormParam->addParam('数量', 'shipment_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 391 392 $objFormParam->addParam('商品項番', 'no', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 393 $objFormParam->addParam('追加商品規格ID', 'add_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 394 $objFormParam->addParam('修正商品規格ID', 'edit_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 395 $objFormParam->addParam('アンカーキー', 'anchor_key', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 396 } 397 398 /** 399 * 複数配送用フォームの初期化を行う. 400 * 401 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 402 * @return void 403 */ 404 function lfInitMultipleParam(&$objFormParam) { 405 $objFormParam->addParam('商品規格ID', 'multiple_product_class_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 406 $objFormParam->addParam('商品コード', 'multiple_product_code', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 407 $objFormParam->addParam('商品名', 'multiple_product_name', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 408 $objFormParam->addParam('規格1', 'multiple_classcategory_name1', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 409 $objFormParam->addParam('規格2', 'multiple_classcategory_name2', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 410 $objFormParam->addParam('単価', 'multiple_price', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 411 $objFormParam->addParam('数量', 'multiple_quantity', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 412 $objFormParam->addParam('お届け先', 'multiple_shipping_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 413 } 414 415 /** 416 * 複数配送入力フォームで入力された値を SC_FormParam へ設定する. 417 * 418 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 419 * @return void 420 */ 421 function setMultipleItemTo(&$objFormParam) { 422 $arrMultipleKey = array('multiple_shipping_id', 423 'multiple_product_class_id', 424 'multiple_product_name', 425 'multiple_product_code', 426 'multiple_classcategory_name1', 427 'multiple_classcategory_name2', 428 'multiple_price', 429 'multiple_quantity'); 430 $arrMultipleParams = $objFormParam->getSwapArray($arrMultipleKey); 431 432 /* 433 * 複数配送フォームの入力値を shipping_id ごとにマージ 434 * 435 * $arrShipmentItem[お届け先ID][商品規格ID]['shipment_(key)'] = 値 436 */ 437 $arrShipmentItem = array(); 438 foreach ($arrMultipleParams as $arrMultiple) { 439 $shipping_id = $arrMultiple['multiple_shipping_id']; 440 $product_class_id = $arrMultiple['multiple_product_class_id']; 441 foreach ($arrMultiple as $key => $val) { 442 if ($key == 'multiple_quantity') { 443 $arrShipmentItem[$shipping_id][$product_class_id][str_replace('multiple', 'shipment', $key)] += $val; 444 } else { 445 $arrShipmentItem[$shipping_id][$product_class_id][str_replace('multiple', 'shipment', $key)] = $val; 446 } 447 } 448 } 449 450 /* 451 * フォームのお届け先ごとの配列を生成 452 * 453 * $arrShipmentForm['(key)'][$shipping_id][$item_index] = 値 454 * $arrProductQuantity[$shipping_id] = お届け先ごとの配送商品数量 455 */ 456 $arrShipmentForm = array(); 457 $arrProductQuantity = array(); 458 $arrShippingIds = $objFormParam->getValue('shipping_id'); 459 foreach ($arrShippingIds as $shipping_id) { 460 $item_index = 0; 461 foreach ($arrShipmentItem[$shipping_id] as $product_class_id => $shipment_item) { 462 foreach ($shipment_item as $key => $val) { 463 $arrShipmentForm[$key][$shipping_id][$item_index] = $val; 464 } 465 // 受注商品の数量を設定 466 $arrQuantity[$product_class_id] += $shipment_item['shipment_quantity']; 467 $item_index++; 468 } 469 // お届け先ごとの配送商品数量を設定 470 $arrProductQuantity[$shipping_id] = count($arrShipmentItem[$shipping_id]); 471 } 472 473 $objFormParam->setParam($arrShipmentForm); 474 $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); 475 476 // 受注商品の数量を変更 477 $arrDest = array(); 284 /** 285 * デストラクタ. 286 * 287 * @return void 288 */ 289 function destroy() { 290 parent::destroy(); 291 } 292 293 /** 294 * パラメーター情報の初期化を行う. 295 * 296 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 297 * @return void 298 */ 299 function lfInitParam(&$objFormParam) { 300 // 検索条件のパラメーターを初期化 301 parent::lfInitParam($objFormParam); 302 303 // お客様情報 304 $objFormParam->addParam('注文者 お名前(姓)', 'order_name01', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 305 $objFormParam->addParam('注文者 お名前(名)', 'order_name02', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 306 $objFormParam->addParam('注文者 お名前(フリガナ・姓)', 'order_kana01', STEXT_LEN, 'KVCa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 307 $objFormParam->addParam('注文者 お名前(フリガナ・名)', 'order_kana02', STEXT_LEN, 'KVCa', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 308 $objFormParam->addParam('メールアドレス', 'order_email', null, 'KVCa', array('NO_SPTAB', 'EMAIL_CHECK', 'EMAIL_CHAR_CHECK')); 309 $objFormParam->addParam('郵便番号1', 'order_zip01', ZIP01_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 310 $objFormParam->addParam('郵便番号2', 'order_zip02', ZIP02_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 311 $objFormParam->addParam('都道府県', 'order_pref', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 312 $objFormParam->addParam('住所1', 'order_addr01', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 313 $objFormParam->addParam('住所2', 'order_addr02', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 314 $objFormParam->addParam('電話番号1', 'order_tel01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 315 $objFormParam->addParam('電話番号2', 'order_tel02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 316 $objFormParam->addParam('電話番号3', 'order_tel03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 317 $objFormParam->addParam('FAX番号1', 'order_fax01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 318 $objFormParam->addParam('FAX番号2', 'order_fax02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 319 $objFormParam->addParam('FAX番号3', 'order_fax03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 320 321 // 受注商品情報 322 $objFormParam->addParam('値引き', 'discount', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 323 $objFormParam->addParam('送料', 'deliv_fee', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 324 $objFormParam->addParam('手数料', 'charge', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 325 326 // ポイント機能ON時のみ 327 if (USE_POINT !== false) { 328 $objFormParam->addParam('利用ポイント', 'use_point', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 329 } 330 331 $objFormParam->addParam('配送業者', 'deliv_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 332 $objFormParam->addParam('お支払い方法', 'payment_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 333 $objFormParam->addParam('対応状況', 'status', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 334 $objFormParam->addParam('お支払方法名称', 'payment_method'); 335 336 // 受注詳細情報 337 $objFormParam->addParam('商品種別ID', 'product_type_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 338 $objFormParam->addParam('単価', 'price', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 339 $objFormParam->addParam('数量', 'quantity', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 340 $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 341 $objFormParam->addParam('商品規格ID', 'product_class_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 342 $objFormParam->addParam('ポイント付与率', 'point_rate'); 343 $objFormParam->addParam('商品コード', 'product_code'); 344 $objFormParam->addParam('商品名', 'product_name'); 345 $objFormParam->addParam('規格名1', 'classcategory_name1'); 346 $objFormParam->addParam('規格名2', 'classcategory_name2'); 347 $objFormParam->addParam('税率', 'tax_rate'); 348 $objFormParam->addParam('課税規則', 'tax_rule'); 349 $objFormParam->addParam('メモ', 'note', MTEXT_LEN, 'KVa', array('MAX_LENGTH_CHECK')); 350 $objFormParam->addParam('削除用項番', 'delete_no', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 351 352 // DB読込用 353 $objFormParam->addParam('小計', 'subtotal'); 354 $objFormParam->addParam('合計', 'total'); 355 $objFormParam->addParam('支払い合計', 'payment_total'); 356 $objFormParam->addParam('加算ポイント', 'add_point'); 357 $objFormParam->addParam('お誕生日ポイント', 'birth_point', null, 'n', array(), 0); 358 $objFormParam->addParam('消費税合計', 'tax'); 359 $objFormParam->addParam('最終保持ポイント', 'total_point'); 360 $objFormParam->addParam('会員ID', 'customer_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 361 $objFormParam->addParam('会員ID', 'edit_customer_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 362 $objFormParam->addParam('現在のポイント', 'customer_point'); 363 $objFormParam->addParam('受注前ポイント', 'point'); 364 $objFormParam->addParam('注文番号', 'order_id'); 365 $objFormParam->addParam('受注日', 'create_date'); 366 $objFormParam->addParam('発送日', 'commit_date'); 367 $objFormParam->addParam('備考', 'message'); 368 $objFormParam->addParam('入金日', 'payment_date'); 369 $objFormParam->addParam('端末種別', 'device_type_id'); 370 $objFormParam->addParam('税率', 'order_tax_rate'); 371 $objFormParam->addParam('課税規則', 'order_tax_rule'); 372 373 // 複数情報 374 $objFormParam->addParam('配送数', 'shipping_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 375 $objFormParam->addParam('配送ID', 'shipping_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), 0); 376 $objFormParam->addParam('お名前(姓)', 'shipping_name01', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 377 $objFormParam->addParam('お名前(名)', 'shipping_name02', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 378 $objFormParam->addParam('お名前(フリガナ・姓)', 'shipping_kana01', STEXT_LEN, 'KVCa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 379 $objFormParam->addParam('お名前(フリガナ・名)', 'shipping_kana02', STEXT_LEN, 'KVCa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 380 $objFormParam->addParam('郵便番号1', 'shipping_zip01', ZIP01_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 381 $objFormParam->addParam('郵便番号2', 'shipping_zip02', ZIP02_LEN, 'n', array('NUM_CHECK', 'NUM_COUNT_CHECK')); 382 $objFormParam->addParam('都道府県', 'shipping_pref', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 383 $objFormParam->addParam('住所1', 'shipping_addr01', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 384 $objFormParam->addParam('住所2', 'shipping_addr02', MTEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 385 $objFormParam->addParam('電話番号1', 'shipping_tel01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 386 $objFormParam->addParam('電話番号2', 'shipping_tel02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 387 $objFormParam->addParam('電話番号3', 'shipping_tel03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 388 $objFormParam->addParam('FAX番号1', 'shipping_fax01', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 389 $objFormParam->addParam('FAX番号2', 'shipping_fax02', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 390 $objFormParam->addParam('FAX番号3', 'shipping_fax03', TEL_ITEM_LEN, 'n', array('MAX_LENGTH_CHECK' ,'NUM_CHECK')); 391 $objFormParam->addParam('お届け時間ID', 'time_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 392 $objFormParam->addParam('お届け日(年)', 'shipping_date_year', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 393 $objFormParam->addParam('お届け日(月)', 'shipping_date_month', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 394 $objFormParam->addParam('お届け日(日)', 'shipping_date_day', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 395 $objFormParam->addParam('お届け日', 'shipping_date', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 396 $objFormParam->addParam('配送商品数量', 'shipping_product_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 397 398 $objFormParam->addParam('商品規格ID', 'shipment_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 399 $objFormParam->addParam('商品コード', 'shipment_product_code'); 400 $objFormParam->addParam('商品名', 'shipment_product_name'); 401 $objFormParam->addParam('規格名1', 'shipment_classcategory_name1'); 402 $objFormParam->addParam('規格名2', 'shipment_classcategory_name2'); 403 $objFormParam->addParam('単価', 'shipment_price', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 404 $objFormParam->addParam('数量', 'shipment_quantity', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), '0'); 405 406 $objFormParam->addParam('商品項番', 'no', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 407 $objFormParam->addParam('追加商品規格ID', 'add_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 408 $objFormParam->addParam('修正商品規格ID', 'edit_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); 409 $objFormParam->addParam('アンカーキー', 'anchor_key', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 410 } 411 412 /** 413 * 複数配送用フォームの初期化を行う. 414 * 415 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 416 * @return void 417 */ 418 function lfInitMultipleParam(&$objFormParam) { 419 $objFormParam->addParam('商品規格ID', 'multiple_product_class_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 420 $objFormParam->addParam('商品コード', 'multiple_product_code', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 421 $objFormParam->addParam('商品名', 'multiple_product_name', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 422 $objFormParam->addParam('規格1', 'multiple_classcategory_name1', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 423 $objFormParam->addParam('規格2', 'multiple_classcategory_name2', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 424 $objFormParam->addParam('単価', 'multiple_price', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 425 $objFormParam->addParam('数量', 'multiple_quantity', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK'), 1); 426 $objFormParam->addParam('お届け先', 'multiple_shipping_id', INT_LEN, 'n', array('EXIST_CHECK', 'MAX_LENGTH_CHECK', 'NUM_CHECK')); 427 } 428 429 /** 430 * 複数配送入力フォームで入力された値を SC_FormParam へ設定する. 431 * 432 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 433 * @return void 434 */ 435 function setMultipleItemTo(&$objFormParam) { 436 $arrMultipleKey = array('multiple_shipping_id', 437 'multiple_product_class_id', 438 'multiple_product_name', 439 'multiple_product_code', 440 'multiple_classcategory_name1', 441 'multiple_classcategory_name2', 442 'multiple_price', 443 'multiple_quantity'); 444 $arrMultipleParams = $objFormParam->getSwapArray($arrMultipleKey); 445 446 /* 447 * 複数配送フォームの入力値を shipping_id ごとにマージ 448 * 449 * $arrShipmentItem[お届け先ID][商品規格ID]['shipment_(key)'] = 値 450 */ 451 $arrShipmentItem = array(); 452 foreach ($arrMultipleParams as $arrMultiple) { 453 $shipping_id = $arrMultiple['multiple_shipping_id']; 454 $product_class_id = $arrMultiple['multiple_product_class_id']; 455 foreach ($arrMultiple as $key => $val) { 456 if ($key == 'multiple_quantity') { 457 $arrShipmentItem[$shipping_id][$product_class_id][str_replace('multiple', 'shipment', $key)] += $val; 458 } else { 459 $arrShipmentItem[$shipping_id][$product_class_id][str_replace('multiple', 'shipment', $key)] = $val; 460 } 461 } 462 } 463 464 /* 465 * フォームのお届け先ごとの配列を生成 466 * 467 * $arrShipmentForm['(key)'][$shipping_id][$item_index] = 値 468 * $arrProductQuantity[$shipping_id] = お届け先ごとの配送商品数量 469 */ 470 $arrShipmentForm = array(); 471 $arrProductQuantity = array(); 472 $arrShippingIds = $objFormParam->getValue('shipping_id'); 473 foreach ($arrShippingIds as $shipping_id) { 474 $item_index = 0; 475 foreach ($arrShipmentItem[$shipping_id] as $product_class_id => $shipment_item) { 476 foreach ($shipment_item as $key => $val) { 477 $arrShipmentForm[$key][$shipping_id][$item_index] = $val; 478 } 479 // 受注商品の数量を設定 480 $arrQuantity[$product_class_id] += $shipment_item['shipment_quantity']; 481 $item_index++; 482 } 483 // お届け先ごとの配送商品数量を設定 484 $arrProductQuantity[$shipping_id] = count($arrShipmentItem[$shipping_id]); 485 } 486 487 $objFormParam->setParam($arrShipmentForm); 488 $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); 489 490 // 受注商品の数量を変更 491 $arrDest = array(); 492 foreach ($objFormParam->getValue('product_class_id') as $n => $order_product_class_id) { 493 $arrDest['quantity'][$n] = 0; 494 } 495 foreach ($arrQuantity as $product_class_id => $quantity) { 478 496 foreach ($objFormParam->getValue('product_class_id') as $n => $order_product_class_id) { 479 $arrDest['quantity'][$n] = 0; 480 } 481 foreach ($arrQuantity as $product_class_id => $quantity) { 482 foreach ($objFormParam->getValue('product_class_id') as $n => $order_product_class_id) { 483 if ($product_class_id == $order_product_class_id) { 484 $arrDest['quantity'][$n] = $quantity; 485 } 486 } 487 } 488 $objFormParam->setParam($arrDest); 489 } 490 491 /** 492 * 受注データを取得して, SC_FormParam へ設定する. 493 * 494 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 495 * @param integer $order_id 取得元の受注ID 496 * @return void 497 */ 498 function setOrderToFormParam(&$objFormParam, $order_id) { 497 if ($product_class_id == $order_product_class_id) { 498 $arrDest['quantity'][$n] = $quantity; 499 } 500 } 501 } 502 $objFormParam->setParam($arrDest); 503 } 504 505 /** 506 * 受注データを取得して, SC_FormParam へ設定する. 507 * 508 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 509 * @param integer $order_id 取得元の受注ID 510 * @return void 511 */ 512 function setOrderToFormParam(&$objFormParam, $order_id) { 513 $objPurchase = new SC_Helper_Purchase_Ex(); 514 515 // 受注詳細を設定 516 $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false); 517 $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail)); 518 519 $arrShippingsTmp = $objPurchase->getShippings($order_id); 520 $arrShippings = array(); 521 foreach ($arrShippingsTmp as $row) { 522 // お届け日の処理 523 if (!SC_Utils_Ex::isBlank($row['shipping_date'])) { 524 $ts = strtotime($row['shipping_date']); 525 $row['shipping_date_year'] = date('Y', $ts); 526 $row['shipping_date_month'] = date('n', $ts); 527 $row['shipping_date_day'] = date('j', $ts); 528 } 529 $arrShippings[$row['shipping_id']] = $row; 530 } 531 $objFormParam->setValue('shipping_quantity', count($arrShippings)); 532 $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrShippings)); 533 534 /* 535 * 配送商品を設定 536 * 537 * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値 538 * $arrProductQuantity[$shipping_id] = お届け先ごとの配送商品数量 539 */ 540 $arrProductQuantity = array(); 541 $arrShipmentItem = array(); 542 foreach ($arrShippings as $shipping_id => $arrShipping) { 543 $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']); 544 foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) { 545 foreach ($arrItem as $item_key => $item_val) { 546 $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val; 547 } 548 } 549 } 550 $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); 551 $objFormParam->setParam($arrShipmentItem); 552 553 /* 554 * 受注情報を設定 555 * $arrOrderDetail と項目が重複しており, $arrOrderDetail は連想配列の値 556 * が渡ってくるため, $arrOrder で上書きする. 557 */ 558 $arrOrder = $objPurchase->getOrder($order_id); 559 $objFormParam->setParam($arrOrder); 560 561 // ポイントを設定 562 list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint( 563 $order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status'] 564 ); 565 $objFormParam->setValue('total_point', $db_point); 566 $objFormParam->setValue('point', $rollback_point); 567 568 if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) { 569 $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); 570 $objFormParam->setValue('customer_point', $arrCustomer['point']); 571 } 572 } 573 574 /** 575 * 入力内容のチェックを行う. 576 * 577 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 578 * @return array エラーメッセージの配列 579 */ 580 function lfCheckError(&$objFormParam) { 581 $objProduct = new SC_Product_Ex(); 582 583 $arrErr = $objFormParam->checkError(); 584 585 if (!SC_Utils_Ex::isBlank($objErr->arrErr)) { 586 return $arrErr; 587 } 588 589 $arrValues = $objFormParam->getHashArray(); 590 591 // 商品の種類数 592 $max = count($arrValues['quantity']); 593 $subtotal = 0; 594 $totalpoint = 0; 595 $totaltax = 0; 596 for ($i = 0; $i < $max; $i++) { 597 // 小計の計算 598 $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; 599 // 小計の計算 600 $totaltax += SC_Utils_Ex::sfTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; 601 // 加算ポイントの計算 602 $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i]; 603 604 // 在庫数のチェック 605 $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]); 606 607 // 編集前の値と比較するため受注詳細を取得 499 608 $objPurchase = new SC_Helper_Purchase_Ex(); 500 501 // 受注詳細を設定 502 $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false); 503 $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail)); 504 505 $arrShippingsTmp = $objPurchase->getShippings($order_id); 506 $arrShippings = array(); 507 foreach ($arrShippingsTmp as $row) { 508 // お届け日の処理 509 if (!SC_Utils_Ex::isBlank($row['shipping_date'])) { 510 $ts = strtotime($row['shipping_date']); 511 $row['shipping_date_year'] = date('Y', $ts); 512 $row['shipping_date_month'] = date('n', $ts); 513 $row['shipping_date_day'] = date('j', $ts); 514 } 515 $arrShippings[$row['shipping_id']] = $row; 516 } 517 $objFormParam->setValue('shipping_quantity', count($arrShippings)); 518 $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrShippings)); 519 520 /* 521 * 配送商品を設定 522 * 523 * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値 524 * $arrProductQuantity[$shipping_id] = お届け先ごとの配送商品数量 525 */ 526 $arrProductQuantity = array(); 527 $arrShipmentItem = array(); 528 foreach ($arrShippings as $shipping_id => $arrShipping) { 529 $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']); 530 foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) { 531 foreach ($arrItem as $item_key => $item_val) { 532 $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val; 533 } 534 } 535 } 536 $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); 537 $objFormParam->setParam($arrShipmentItem); 538 539 /* 540 * 受注情報を設定 541 * $arrOrderDetail と項目が重複しており, $arrOrderDetail は連想配列の値 542 * が渡ってくるため, $arrOrder で上書きする. 543 */ 544 $arrOrder = $objPurchase->getOrder($order_id); 545 $objFormParam->setParam($arrOrder); 546 547 // ポイントを設定 548 list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint( 549 $order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status'] 550 ); 551 $objFormParam->setValue('total_point', $db_point); 552 $objFormParam->setValue('point', $rollback_point); 553 554 if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) { 555 $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); 556 $objFormParam->setValue('customer_point', $arrCustomer['point']); 557 } 558 } 559 560 /** 561 * 入力内容のチェックを行う. 562 * 563 * @param SC_FormParam $objFormParam SC_FormParam インスタンス 564 * @return array エラーメッセージの配列 565 */ 566 function lfCheckError(&$objFormParam) { 567 $objProduct = new SC_Product_Ex(); 568 569 $arrErr = $objFormParam->checkError(); 570 571 if (!SC_Utils_Ex::isBlank($objErr->arrErr)) { 572 return $arrErr; 573 } 574 575 $arrValues = $objFormParam->getHashArray(); 576 577 // 商品の種類数 578 $max = count($arrValues['quantity']); 579 $subtotal = 0; 580 $totalpoint = 0; 581 $totaltax = 0; 582 for ($i = 0; $i < $max; $i++) { 583 // 小計の計算 584 $subtotal += SC_Helper_DB_Ex::sfCalcIncTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; 585 // 小計の計算 586 $totaltax += SC_Utils_Ex::sfTax($arrValues['price'][$i], $arrValues['tax_rate'][$i], $arrValues['tax_rule'][$i]) * $arrValues['quantity'][$i]; 587 // 加算ポイントの計算 588 $totalpoint += SC_Utils_Ex::sfPrePoint($arrValues['price'][$i], $arrValues['point_rate'][$i]) * $arrValues['quantity'][$i]; 589 590 // 在庫数のチェック 591 $arrProduct = $objProduct->getDetailAndProductsClass($arrValues['product_class_id'][$i]); 592 593 // 編集前の値と比較するため受注詳細を取得 594 $objPurchase = new SC_Helper_Purchase_Ex(); 595 $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false)); 596 597 if ($arrProduct['stock_unlimited'] != '1' 609 $arrOrderDetail = SC_Utils_Ex::sfSwapArray($objPurchase->getOrderDetail($objFormParam->getValue('order_id'), false)); 610 611 if ($arrProduct['stock_unlimited'] != '1' 598 612 && $arrProduct['stock'] < $arrValues['quantity'][$i] - $arrOrderDetail['quantity'][$i]) { 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']);620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 613 $class_name1 = $arrValues['classcategory_name1'][$i]; 614 $class_name1 = SC_Utils_Ex::isBlank($class_name1) ? 'なし' : $class_name1; 615 $class_name2 = $arrValues['classcategory_name2'][$i]; 616 $class_name2 = SC_Utils_Ex::isBlank($class_name2) ? 'なし' : $class_name2; 617 $arrErr['quantity'][$i] .= $arrValues['product_name'][$i] 618 . '/(' . $class_name1 . ')/(' . $class_name2 . ') の在庫が不足しています。 設定できる数量は「' 619 . ($arrOrderDetail['quantity'][$i] + $arrProduct['stock']) . '」までです。<br />'; 620 } 621 } 622 623 // 消費税 624 $arrValues['tax'] = $totaltax; 625 // 小計 626 $arrValues['subtotal'] = $subtotal; 627 // 合計 628 $arrValues['total'] = $subtotal - $arrValues['discount'] + $arrValues['deliv_fee'] + $arrValues['charge']; 629 // お支払い合計 630 $arrValues['payment_total'] = $arrValues['total'] - ($arrValues['use_point'] * POINT_VALUE); 631 632 // 加算ポイント 633 $arrValues['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($totalpoint, $arrValues['use_point']) + $arrValues['birth_point']; 634 635 // 最終保持ポイント 636 $arrValues['total_point'] = $objFormParam->getValue('point') - $arrValues['use_point']; 637 638 if ($arrValues['total'] < 0) { 639 $arrErr['total'] = '合計額がマイナス表示にならないように調整して下さい。<br />'; 640 } 641 642 if ($arrValues['payment_total'] < 0) { 643 $arrErr['payment_total'] = 'お支払い合計額がマイナス表示にならないように調整して下さい。<br />'; 644 } 645 646 if ($arrValues['total_point'] < 0) { 647 $arrErr['use_point'] = '最終保持ポイントがマイナス表示にならないように調整して下さい。<br />'; 648 } 649 650 $objFormParam->setParam($arrValues); 651 return $arrErr; 652 } 639 653 640 654 /** … … 918 932 $objFormParam->setValue('customer_id', $customer_id); 919 933 $objFormParam->setValue('customer_point', $arrCustomer['point']); 934 935 return $arrCustomer['birth']; 920 936 } 921 937
Note: See TracChangeset
for help on using the changeset viewer.