/** * 商品規格情報を更新 */ protected function updateProductClass($row, Product $Product, ProductClass $ProductClass, $app, $data) { $ProductClass->setProduct($Product); if ($row['商品種別(ID)'] == '') { $this->addErrors($data->key() + 1 . '行目の商品種別(ID)が設定されていません。'); } else { if (preg_match('/^\\d+$/', $row['商品種別(ID)'])) { $ProductType = $app['eccube.repository.master.product_type']->find($row['商品種別(ID)']); if (!$ProductType) { $this->addErrors($data->key() + 1 . '行目の商品種別(ID)が存在しません。'); } else { $ProductClass->setProductType($ProductType); } } else { $this->addErrors($data->key() + 1 . '行目の商品種別(ID)が存在しません。'); } } // 規格分類1、2をそれぞれセットし作成 if ($row['規格分類1(ID)'] != '') { if (preg_match('/^\\d+$/', $row['規格分類1(ID)'])) { $ClassCategory = $app['eccube.repository.class_category']->find($row['規格分類1(ID)']); if (!$ClassCategory) { $this->addErrors($data->key() + 1 . '行目の規格分類1(ID)が存在しません。'); } else { $ProductClass->setClassCategory1($ClassCategory); } } else { $this->addErrors($data->key() + 1 . '行目の規格分類1(ID)が存在しません。'); } } if ($row['規格分類2(ID)'] != '') { if (preg_match('/^\\d+$/', $row['規格分類2(ID)'])) { $ClassCategory = $app['eccube.repository.class_category']->find($row['規格分類2(ID)']); if (!$ClassCategory) { $this->addErrors($data->key() + 1 . '行目の規格分類2(ID)が存在しません。'); } else { $ProductClass->setClassCategory2($ClassCategory); } } else { $this->addErrors($data->key() + 1 . '行目の規格分類2(ID)が存在しません。'); } } if ($row['発送日目安(ID)'] != '') { if (preg_match('/^\\d+$/', $row['発送日目安(ID)'])) { $DeliveryDate = $app['eccube.repository.delivery_date']->find($row['発送日目安(ID)']); if (!$DeliveryDate) { $this->addErrors($data->key() + 1 . '行目の発送日目安(ID)が存在しません。'); } else { $ProductClass->setDeliveryDate($DeliveryDate); } } else { $this->addErrors($data->key() + 1 . '行目の発送日目安(ID)が存在しません。'); } } if (Str::isNotBlank($row['商品コード'])) { $ProductClass->setCode(Str::trimAll($row['商品コード'])); } else { $ProductClass->setCode(null); } if ($row['在庫数無制限フラグ'] == '') { $this->addErrors($data->key() + 1 . '行目の在庫数無制限フラグが設定されていません。'); } else { if ($row['在庫数無制限フラグ'] == (string) Constant::DISABLED) { $ProductClass->setStockUnlimited(Constant::DISABLED); // 在庫数が設定されていなければエラー if ($row['在庫数'] == '') { $this->addErrors($data->key() + 1 . '行目の在庫数が設定されていません。'); } else { $stock = str_replace(',', '', $row['在庫数']); if (preg_match('/^\\d+$/', $stock) && $stock >= 0) { $ProductClass->setStock($row['在庫数']); } else { $this->addErrors($data->key() + 1 . '行目の在庫数は0以上の数値を設定してください。'); } } } else { if ($row['在庫数無制限フラグ'] == (string) Constant::ENABLED) { $ProductClass->setStockUnlimited(Constant::ENABLED); $ProductClass->setStock(null); } else { $this->addErrors($data->key() + 1 . '行目の在庫数無制限フラグが設定されていません。'); } } } if ($row['販売制限数'] != '') { $saleLimit = str_replace(',', '', $row['販売制限数']); if (preg_match('/^\\d+$/', $saleLimit) && $saleLimit >= 0) { $ProductClass->setSaleLimit($saleLimit); } else { $this->addErrors($data->key() + 1 . '行目の販売制限数は0以上の数値を設定してください。'); } } if ($row['通常価格'] != '') { $price01 = str_replace(',', '', $row['通常価格']); if (preg_match('/^\\d+$/', $price01) && $price01 >= 0) { $ProductClass->setPrice01($price01); } else { $this->addErrors($data->key() + 1 . '行目の通常価格は0以上の数値を設定してください。'); } } if ($row['販売価格'] == '') { $this->addErrors($data->key() + 1 . '行目の販売価格が設定されていません。'); } else { $price02 = str_replace(',', '', $row['販売価格']); if (preg_match('/^\\d+$/', $price02) && $price02 >= 0) { $ProductClass->setPrice02($price02); } else { $this->addErrors($data->key() + 1 . '行目の販売価格は0以上の数値を設定してください。'); } } if ($row['商品規格削除フラグ'] == '') { $ProductClass->setDelFlg(Constant::DISABLED); } else { if ($row['商品規格削除フラグ'] == (string) Constant::DISABLED || $row['商品規格削除フラグ'] == (string) Constant::ENABLED) { $ProductClass->setDelFlg($row['商品規格削除フラグ']); } else { $this->addErrors($data->key() + 1 . '行目の商品規格削除フラグが設定されていません。'); } } $ProductStock = $ProductClass->getProductStock(); if (!$ProductClass->getStockUnlimited()) { $ProductStock->setStock($ProductClass->getStock()); } else { // 在庫無制限時はnullを設定 $ProductStock->setStock(null); } return $ProductClass; }
public function testTrimAll() { $text = ' a '; $this->expected = 'a'; $this->actual = Str::trimAll($text); $this->assertEquals($this->expected, $this->actual); $text = ' a a '; $this->expected = 'a a'; $this->actual = Str::trimAll($text); $this->assertEquals($this->expected, $this->actual); $text = ''; $this->actual = Str::trimAll($text); $this->assertNotNull($this->actual); $this->assertEmpty($this->actual); $text = null; $this->actual = Str::trimAll($text); $this->assertNull($this->actual); $text = 0; $this->expected = 0; $this->actual = Str::trimAll($text); $this->assertTrue($this->expected === $this->actual); $text = '0'; $this->expected = '0'; $this->actual = Str::trimAll($text); $this->assertTrue($this->expected === $this->actual); $text = " 0\n0\r\n\t"; $this->expected = "0\n0"; $this->actual = Str::trimAll($text); $this->assertTrue($this->expected === $this->actual); }