- Timestamp:
- 2010/02/12 18:46:50 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
r18432 r18562 111 111 $objSiteInfo = new SC_SiteInfo(); 112 112 $objDb = new SC_Helper_DB_Ex(); 113 $objDate = new SC_Date(1901); 114 $this->arrYearDelivDate = $objDate->getYear('', date('Y'), ''); 115 $this->arrMonthDelivDate = $objDate->getMonth(true); 116 $this->arrDayDelivDate = $objDate->getDay(true); 113 117 $arrInfo = $objSiteInfo->data; 114 118 … … 283 287 // 支払い方法の取得 284 288 $this->arrPayment = $objDb->sfGetIDValueList("dtb_payment", "payment_id", "payment_method"); 285 // 配送時間の取得289 // お届け時間の取得 286 290 $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 287 291 $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); … … 343 347 $this->objFormParam->addParam("郵便番号2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 344 348 $this->objFormParam->addParam("都道府県", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 345 $this->objFormParam->addParam("住所1", "order_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));346 $this->objFormParam->addParam("住所2", "order_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));349 $this->objFormParam->addParam("住所1", "order_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 350 $this->objFormParam->addParam("住所2", "order_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 347 351 $this->objFormParam->addParam("電話番号1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 348 352 $this->objFormParam->addParam("電話番号2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 349 353 $this->objFormParam->addParam("電話番号3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 350 354 351 // 配送先情報355 // お届け先情報 352 356 $this->objFormParam->addParam("お名前1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 353 357 $this->objFormParam->addParam("お名前2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); … … 357 361 $this->objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 358 362 $this->objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 359 $this->objFormParam->addParam("住所1", "deliv_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));360 $this->objFormParam->addParam("住所2", "deliv_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));363 $this->objFormParam->addParam("住所1", "deliv_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 364 $this->objFormParam->addParam("住所2", "deliv_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 361 365 $this->objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 362 366 $this->objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); … … 375 379 376 380 $this->objFormParam->addParam("お支払い方法", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 377 $this->objFormParam->addParam(" 配送時間ID", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));381 $this->objFormParam->addParam("お届け時間ID", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 378 382 $this->objFormParam->addParam("対応状況", "status", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 379 $this->objFormParam->addParam(" 配達日", "deliv_date", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));383 $this->objFormParam->addParam("お届け日", "deliv_date", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 380 384 $this->objFormParam->addParam("お支払方法名称", "payment_method"); 381 $this->objFormParam->addParam(" 配送時間", "deliv_time");385 $this->objFormParam->addParam("お届け時間", "deliv_time"); 382 386 383 387 // 受注詳細情報 … … 406 410 $this->objFormParam->addParam("受注日", "create_date"); 407 411 $this->objFormParam->addParam("発送日", "commit_date"); 412 $this->objFormParam->addParam("お届け日", "deliv_date"); 408 413 } 409 414 … … 419 424 $this->objFormParam->setValue('total_point', $total_point); 420 425 $this->objFormParam->setValue('point', $point); 426 $delivDate = split(" ", $arrRet[0]["deliv_date"]); 427 $delivDate = split("-", $delivDate[0]); 428 $this->objFormParam->setValue('deliv_date_year', $delivDate[0]); 429 $this->objFormParam->setValue('deliv_date_month', isset($delivDate[1]) ? $delivDate[1] : ""); 430 $this->objFormParam->setValue('deliv_date_day', isset($delivDate[2]) ? $delivDate[2] : ""); 421 431 $this->arrForm = $arrRet[0]; 432 422 433 // 受注詳細データの取得 423 434 $arrRet = $this->lfGetOrderDetail($order_id); … … 456 467 $objErr = new SC_CheckError($arrRet); 457 468 $objErr->arrErr = $this->objFormParam->checkError(); 469 470 $objErr->doFunc(array("お届け日", "deliv_date_year", "deliv_date_month", "deliv_date_day"), array("CHECK_DATE")); 471 472 if (count($objErr->arrErr) >= 1) { 473 return $objErr->arrErr; 474 } 458 475 459 476 return $objErr->arrErr; … … 538 555 } 539 556 } 557 $sqlval['update_date'] = 'Now()'; 558 559 if (strlen($sqlval['deliv_date_year']) >= 0) { 560 $sqlval['deliv_date'] = $sqlval['deliv_date_year'] . '-' . $sqlval['deliv_date_month'] . '-' . $sqlval['deliv_date_day']; 561 } 562 unset($sqlval['deliv_date_year']); 563 unset($sqlval['deliv_date_month']); 564 unset($sqlval['deliv_date_day']); 540 565 541 566 unset($sqlval['total_point']); 542 567 unset($sqlval['point']); 568 unset($sqlval['commit_date']); 543 569 544 570 $where = "order_id = ?"; … … 574 600 $objQuery->query($sql, $arrUpdData); 575 601 602 $arrDetail = $this->objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2")); 603 604 605 // 変更しようとしている商品情報とDBに登録してある商品情報を比較することで、更新すべき数量を計算 606 $max = count($arrDetail); 607 $k = 0; 608 $arrStockData = array(); 609 for($i = 0; $i < $max; $i++) { 610 if (!empty($arrDetail[$i]['product_id'])) { 611 $arrPreDetail = $objQuery->select('*', "dtb_order_detail", "order_id = ? AND product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?", array($order_id, $arrDetail[$i]['product_id'], $arrDetail[$i]['classcategory_id1'], $arrDetail[$i]['classcategory_id2'])); 612 if (!empty($arrPreDetail) && $arrPreDetail[0]['quantity'] != $arrDetail[$i]['quantity']) { 613 // 数量が変更された商品 614 $arrStockData[$k]['product_id'] = $arrDetail[$i]['product_id']; 615 $arrStockData[$k]['classcategory_id1'] = $arrDetail[$i]['classcategory_id1']; 616 $arrStockData[$k]['classcategory_id2'] = $arrDetail[$i]['classcategory_id2']; 617 $arrStockData[$k]['quantity'] = $arrPreDetail[0]['quantity'] - $arrDetail[$i]['quantity']; 618 ++$k; 619 } elseif (empty($arrPreDetail)) { 620 // 新しく追加された商品 もしくは 違う商品に変更された商品 621 $arrStockData[$k]['product_id'] = $arrDetail[$i]['product_id']; 622 $arrStockData[$k]['classcategory_id1'] = $arrDetail[$i]['classcategory_id1']; 623 $arrStockData[$k]['classcategory_id2'] = $arrDetail[$i]['classcategory_id2']; 624 $arrStockData[$k]['quantity'] = -$arrDetail[$i]['quantity']; 625 ++$k; 626 } 627 $objQuery->delete("dtb_order_detail", "order_id = ? AND product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?", array($order_id, $arrDetail[$i]['product_id'], $arrDetail[$i]['classcategory_id1'], $arrDetail[$i]['classcategory_id2'])); 628 } 629 } 630 631 // 上記の新しい商品のループでDELETEされなかった商品は、注文より削除された商品 632 $arrPreDetail = $objQuery->select('*', "dtb_order_detail", "order_id = ?", array($order_id)); 633 foreach ($arrPreDetail AS $key=>$val) { 634 $arrStockData[$k]['product_id'] = $val['product_id']; 635 $arrStockData[$k]['classcategory_id1'] = $val['classcategory_id1']; 636 $arrStockData[$k]['classcategory_id2'] = $val['classcategory_id2']; 637 $arrStockData[$k]['quantity'] = $val['quantity']; 638 ++$k; 639 } 640 641 // 受注詳細データの初期化 642 $objQuery->delete("dtb_order_detail", $where, array($order_id)); 643 644 576 645 // 受注詳細データの更新 577 $arrDetail = $this->objFormParam->getSwapArray(array("product_id", "product_code", "product_name", "price", "quantity", "point_rate", "classcategory_id1", "classcategory_id2", "classcategory_name1", "classcategory_name2"));578 $objQuery->delete("dtb_order_detail", $where, array($order_id));579 580 581 646 $max = count($arrDetail); 582 647 for($i = 0; $i < $max; $i++) { … … 596 661 } 597 662 663 // 在庫数調整 664 $status = $sqlval['status']; 665 if (ORDER_DELIV != $status && ORDER_CANCEL != $status) { 666 $stock_sql = "UPDATE dtb_products_class SET stock = stock + ? WHERE product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?;"; 667 foreach ($arrStockData AS $key=>$val) { 668 $stock_sqlval = array(); 669 $stock_sqlval[] = $val['quantity']; 670 $stock_sqlval[] = $val['product_id']; 671 $stock_sqlval[] = $val['classcategory_id1']; 672 $stock_sqlval[] = $val['classcategory_id2']; 673 674 $objQuery->query($stock_sql, $stock_sqlval); 675 } 676 } 598 677 599 678 $objQuery->commit(); … … 683 762 $sqlval['classcategory_name1'] = $arrDetail[$i]['classcategory_name1']; 684 763 $sqlval['classcategory_name2'] = $arrDetail[$i]['classcategory_name2']; 764 685 765 $objQuery->insert("dtb_order_detail", $sqlval); 766 767 768 // 在庫数減少処理 769 // 現在の実在庫数取得 770 $pre_stock = $objQuery->getone("SELECT stock FROM dtb_products_class WHERE product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?", array($arrDetail[$i]['product_id'], $arrDetail[$i]['classcategory_id1'], $arrDetail[$i]['classcategory_id2'])); 771 772 $stock_sqlval = array(); 773 $stock_sqlval['stock'] = intval($pre_stock - $arrDetail[$i]['quantity']); 774 if ($stock_sqlval['stock'] === 0) { 775 $stock_sqlval['stock'] = '0'; 776 } 777 778 $st_params = array(); 779 $st_params[] = $arrDetail[$i]['product_id']; 780 $st_params[] = $arrDetail[$i]['classcategory_id1']; 781 $st_params[] = $arrDetail[$i]['classcategory_id2']; 782 783 $objQuery->update("dtb_products_class", $stock_sqlval, 'product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?', $st_params); 686 784 } 687 785 $objQuery->commit();
Note: See TracChangeset
for help on using the changeset viewer.