EC-CUBE / EC-CUBE/ec-cube2

「受注管理>受注登録」画面にて、商品変更すると受注商品情報がおかしくなる

Open
#830 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
PHP
Stars
92
Forks
97
Avg merge
4d 2h
Merged PRs (30d)
9

Description

PHP 8.0、7.4

【不具合内容】
「受注管理>受注登録」画面で既存の受注情報に以下の様に商品を追加、変更を行うと不具合発生
1.注文対し、新たに別の「商品B」を一つ追加
 → 結果、二行目にその商品Bが追加される(問題なし)
2.更に新たに別の「商品C」を一つ追加
 → 結果、三行目にその商品Cが追加される(問題なし)
3.三行目の「商品C」を変更ボタンを押し、「商品B」へ変更
 → 結果、三行目の商品Cは、三行目に数量0で残ったままとなり、以降、削除、数量変更等が行えなくなる。(不具合発生)

少し調べてみますと、
LC_Page_Admin_Order_Edit.php の shipmentEditProduct() の一部のコードが過去に削除されてしまった為に起きている不具合と思われます。

過去に削除されたコード
```
//更新のみの場合、全配列を持っていないので、新しい配列を取得
$arrNewShipmentProducts = $this->getShipmentProducts($objFormParam);
$is_product_delete = true;

foreach ($arrNewShipmentProducts['shipment_product_class_id'] as $shipping_id => $arrShipmentProductClassIds) {
if (in_array($pre_shipment_product_class_id, $arrShipmentProductClassIds)) {
$is_product_delete = false;
break;
}
}
//商品情報から削除
if ($is_product_delete) {
$this->checkDeleteProducts($objFormParam, $arrPreProductClassIds, $pre_shipment_product_class_id, $this->arrProductKeys);
}
```
public function shipmentEditProduct()の末尾に戻しましたところ、上記不具合は解消されました。
おそらく過去のコード整理におけるデグレードでは無いかと思われます。

2015-12-10 GitCommit:a3f523ec149b
public function shipmentEditProduct() 内から以下のコードが削除
```
//更新のみの場合、全配列を持っていないので、新しい配列を取得
$arrNewShipmentProducts = $this->getShipmentProducts($objFormParam);
$is_product_delete = true;

```

2016-05-06 GitCommit:02308a530ef9
public function shipmentEditProduct() 内から以下のコードが削除
```
foreach ($arrNewShipmentProducts['shipment_product_class_id'] as $shipping_id => $arrShipmentProductClassIds) {
if (in_array($pre_shipment_product_class_id, $arrShipmentProductClassIds)) {
$is_product_delete = false;
break;
}
}
//商品情報から削除
if ($is_product_delete) {
$this->checkDeleteProducts($objFormParam, $arrPreProductClassIds, $pre_shipment_product_class_id, $this->arrProductKeys);
}

```
詳しい方ご確認頂けますようお願い致します。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.