private function insertProductClass($app, $Product, $ProductClasses)
{
$BaseInfo = $app['eccube.repository.base_info']->get();
// 選択された商品を登録
foreach ($ProductClasses as $ProductClass) {
$ProductClass->setDelFlg(Constant::DISABLED);
$ProductClass->setProduct($Product);
$app['orm.em']->persist($ProductClass);
// 在庫情報を作成
$ProductStock = new \Eccube\Entity\ProductStock();
$ProductClass->setProductStock($ProductStock);
$ProductStock->setProductClass($ProductClass);
if (!$ProductClass->getStockUnlimited()) {
$ProductStock->setStock($ProductClass->getStock());
} else {
// 在庫無制限時はnullを設定
$ProductStock->setStock(null);
}
$app['orm.em']->persist($ProductStock);
}
// 商品税率が設定されている場合、商品税率をセット
if ($BaseInfo->getOptionProductTaxRule() == Constant::ENABLED) {
// 初期設定の税設定.
$TaxRule = $app['eccube.repository.tax_rule']->find(\Eccube\Entity\TaxRule::DEFAULT_TAX_RULE_ID);
// 初期税率設定の計算方法を設定する
$CalcRule = $TaxRule->getCalcRule();
foreach ($ProductClasses as $ProductClass) {
if ($ProductClass->getTaxRate() !== false && $ProductClass !== null) {
$TaxRule = new \Eccube\Entity\TaxRule();
$TaxRule->setProduct($Product);
$TaxRule->setProductClass($ProductClass);
$TaxRule->setCalcRule($CalcRule);
$TaxRule->setTaxRate($ProductClass->getTaxRate());
$TaxRule->setTaxAdjust(0);
$TaxRule->setApplyDate(new \DateTime());
$TaxRule->setDelFlg(Constant::DISABLED);
$app['orm.em']->persist($TaxRule);
}
}
}
}