diff --git a/src/Controller/TradeInPricingController.php b/src/Controller/TradeInPricingController.php index 3b81ed22..db9d08e6 100644 --- a/src/Controller/TradeInPricingController.php +++ b/src/Controller/TradeInPricingController.php @@ -55,12 +55,74 @@ class TradeInPricingController extends Controller public function formSubmit(Request $req, EntityManagerInterface $em) { $pt_id = $req->request->get('price_tier_id'); + + // get the trade in prices + $motolite_tips = $req->request->get('motolite_tip'); + $premium_tips = $req->request->get('premium_tip'); + $other_tips = $req->request->get('other_tip'); + + // get the battery sizes + $bsizes = $em->getRepository(BatterySize::class)->findBy([], ['id' => 'asc']); + + // on default price tier + if ($pt_id == 0) + { + // default price tier, update battery size trade in prices + // NOTE: battery size trade in prices are stored as decimal + foreach ($bsizes as $bsize) + { + $bsize_id = $bsize->getID(); + if (isset($motolite_tips[$bsize_id])) + $bsize->setTIPriceMotolite($motolite_tips[$bsize_id]); + + if (isset($premium_tips[$bsize_id])) + $bsize->setTIPricePremium($premium_tips[$bsize_id]); + + if (isset($other_tips[$bsize_id])) + $bsize->setTIPriceOther($other_tips[$bsize_id]); + } + } + else + { + // get the price tier + $price_tier = $em->getRepository(PriceTier::class)->find($pt_id); + + $pt_tips = $price_tier->getTradeInPrices(); + + // clear the tier's trade in prices + foreach ($pt_tips as $pt_tip) + { + $em->remove($pt_tip); + } + + // update the tier's trade in prices + foreach ($bsizes as $bsize) + { + $bsize_id = $bsize->getID(); + + $new_tip = new TradeInPrice(); + + $new_tip->setPriceTier($price_tier) + ->setItemID($bsize_id); + + $new_tip->addMetaInfo(TradeInType::MOTOLITE, $motolite_tips[$bsize_id] * 100); + $new_tip->addMetaInfo(TradeInType::PREMIUM, $premium_tips[$bsize_id] * 100); + $new_tip->addMetaInfo(TradeInType::OTHER, $other_tips[$bsize_id] * 100); + + // save + $em->persist($new_tip); + } + } + + $em->flush(); + + return $this->redirectToRoute('trade_in_pricing'); } /** * @IsGranted("trade_in_pricing.update") */ - public function tradeInPrices(EntityManagerInterface $em, $pt_id, $ti_type) + public function tradeInPrices(EntityManagerInterface $em, $pt_id) { $pt_prices = []; @@ -119,7 +181,7 @@ class TradeInPricingController extends Controller $data_items[] = [ 'id' => $bsize_id, 'name' => $name, - 'motolite_tip' => $actul_motolite_tip, + 'motolite_tip' => $actual_motolite_tip, 'premium_tip' => $actual_premium_tip, 'other_tip' => $actual_other_tip, ]; diff --git a/templates/trade-in-pricing/form.html.twig b/templates/trade-in-pricing/form.html.twig index fc878824..e45f6cd0 100644 --- a/templates/trade-in-pricing/form.html.twig +++ b/templates/trade-in-pricing/form.html.twig @@ -127,7 +127,13 @@ function update_table(data) { item_html += '