Fix issues found during testing of update of trade in prices. #789

This commit is contained in:
Korina Cordero 2024-02-07 22:27:57 -05:00
parent 59c65235b7
commit 8804818828
2 changed files with 71 additions and 3 deletions

View file

@ -55,12 +55,74 @@ class TradeInPricingController extends Controller
public function formSubmit(Request $req, EntityManagerInterface $em) public function formSubmit(Request $req, EntityManagerInterface $em)
{ {
$pt_id = $req->request->get('price_tier_id'); $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") * @IsGranted("trade_in_pricing.update")
*/ */
public function tradeInPrices(EntityManagerInterface $em, $pt_id, $ti_type) public function tradeInPrices(EntityManagerInterface $em, $pt_id)
{ {
$pt_prices = []; $pt_prices = [];
@ -119,7 +181,7 @@ class TradeInPricingController extends Controller
$data_items[] = [ $data_items[] = [
'id' => $bsize_id, 'id' => $bsize_id,
'name' => $name, 'name' => $name,
'motolite_tip' => $actul_motolite_tip, 'motolite_tip' => $actual_motolite_tip,
'premium_tip' => $actual_premium_tip, 'premium_tip' => $actual_premium_tip,
'other_tip' => $actual_other_tip, 'other_tip' => $actual_other_tip,
]; ];

View file

@ -127,7 +127,13 @@ function update_table(data) {
item_html += '<td>' + item.id + '</td>'; item_html += '<td>' + item.id + '</td>';
item_html += '<td>' + item.name + '</td>'; item_html += '<td>' + item.name + '</td>';
item_html += '<td class="py-1">'; item_html += '<td class="py-1">';
item_html += '<input name="price[' + item.id + ']" class="form-control ca-filter" type="number" value="' + item.price + '" step="0.01">'; item_html += '<input name="motolite_tip[' + item.id + ']" class="form-control ca-filter" type="number" value="' + item.motolite_tip + '" step="0.01">';
item_html += '</td>';
item_html += '<td class="py-1">';
item_html += '<input name="premium_tip[' + item.id + ']" class="form-control ca-filter" type="number" value="' + item.premium_tip + '" step="0.01">';
item_html += '</td>';
item_html += '<td class="py-1">';
item_html += '<input name="other_tip[' + item.id + ']" class="form-control ca-filter" type="number" value="' + item.other_tip + '" step="0.01">';
item_html += '</td>'; item_html += '</td>';
item_html += '</tr>'; item_html += '</tr>';
} }