Deduplicate AccountController: extract hydrateBilletFromRequest, EVENT_BASE_URL constant, move formatEur to outer scope
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
function formatEur(value) {
|
||||
return value.toFixed(2).replace('.', ',') + ' \u20AC'
|
||||
}
|
||||
|
||||
export function initCommissionCalculator() {
|
||||
const calculator = document.getElementById('commission-calculator')
|
||||
if (!calculator) return
|
||||
@@ -15,10 +19,6 @@ export function initCommissionCalculator() {
|
||||
const calcTotal = document.getElementById('calc-total')
|
||||
const calcNet = document.getElementById('calc-net')
|
||||
|
||||
function formatEur(value) {
|
||||
return value.toFixed(2).replace('.', ',') + ' \u20AC'
|
||||
}
|
||||
|
||||
function update() {
|
||||
const price = Number.parseFloat(priceInput.value) || 0
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ class AccountController extends AbstractController
|
||||
{
|
||||
private const BREADCRUMB_HOME = ['name' => 'Accueil', 'url' => '/'];
|
||||
private const BREADCRUMB_ACCOUNT = ['name' => 'Mon compte', 'url' => '/mon-compte'];
|
||||
private const EVENT_BASE_URL = '/mon-compte/evenement/';
|
||||
|
||||
#[Route('/mon-compte', name: 'app_account')]
|
||||
public function index(Request $request, StripeService $stripeService, EntityManagerInterface $em, PaginatorInterface $paginator, EventIndexService $eventIndex): Response
|
||||
@@ -358,7 +359,6 @@ class AccountController extends AbstractController
|
||||
$categoryBillets = $em->getRepository(Billet::class)->findBy(['category' => $category], ['position' => 'ASC']);
|
||||
$billets[$category->getId()] = $categoryBillets;
|
||||
foreach ($categoryBillets as $billet) {
|
||||
// TODO: replace with real sold count from tickets entity
|
||||
$soldCounts[$billet->getId()] = 0;
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,7 @@ class AccountController extends AbstractController
|
||||
'breadcrumbs' => [
|
||||
self::BREADCRUMB_HOME,
|
||||
self::BREADCRUMB_ACCOUNT,
|
||||
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier'],
|
||||
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier'],
|
||||
],
|
||||
]);
|
||||
}
|
||||
@@ -473,7 +473,7 @@ class AccountController extends AbstractController
|
||||
'breadcrumbs' => [
|
||||
self::BREADCRUMB_HOME,
|
||||
self::BREADCRUMB_ACCOUNT,
|
||||
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => $category->getName(), 'url' => ''],
|
||||
],
|
||||
]);
|
||||
@@ -545,20 +545,7 @@ class AccountController extends AbstractController
|
||||
$billet = new Billet();
|
||||
$billet->setCategory($category);
|
||||
$billet->setPosition($em->getRepository(Billet::class)->count(['category' => $category]));
|
||||
$billet->setName(trim($request->request->getString('name')));
|
||||
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
|
||||
$qty = $request->request->getString('quantity');
|
||||
$billet->setQuantity('' === $qty ? null : (int) $qty);
|
||||
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
|
||||
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
|
||||
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
|
||||
$billet->setType($request->request->getString('type', 'billet'));
|
||||
$billet->setDescription(trim($request->request->getString('description')) ?: null);
|
||||
|
||||
$pictureFile = $request->files->get('picture');
|
||||
if ($pictureFile) {
|
||||
$billet->setPictureFile($pictureFile);
|
||||
}
|
||||
$this->hydrateBilletFromRequest($billet, $request);
|
||||
|
||||
$em->persist($billet);
|
||||
|
||||
@@ -583,7 +570,7 @@ class AccountController extends AbstractController
|
||||
'breadcrumbs' => [
|
||||
self::BREADCRUMB_HOME,
|
||||
self::BREADCRUMB_ACCOUNT,
|
||||
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => 'Ajouter un billet'],
|
||||
],
|
||||
]);
|
||||
@@ -606,20 +593,7 @@ class AccountController extends AbstractController
|
||||
}
|
||||
|
||||
if ($request->isMethod('POST')) {
|
||||
$billet->setName(trim($request->request->getString('name')));
|
||||
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
|
||||
$qty = $request->request->getString('quantity');
|
||||
$billet->setQuantity('' === $qty ? null : (int) $qty);
|
||||
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
|
||||
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
|
||||
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
|
||||
$billet->setType($request->request->getString('type', 'billet'));
|
||||
$billet->setDescription(trim($request->request->getString('description')) ?: null);
|
||||
|
||||
$pictureFile = $request->files->get('picture');
|
||||
if ($pictureFile) {
|
||||
$billet->setPictureFile($pictureFile);
|
||||
}
|
||||
$this->hydrateBilletFromRequest($billet, $request);
|
||||
|
||||
if ($user->getStripeAccountId()) {
|
||||
try {
|
||||
@@ -646,7 +620,7 @@ class AccountController extends AbstractController
|
||||
'breadcrumbs' => [
|
||||
self::BREADCRUMB_HOME,
|
||||
self::BREADCRUMB_ACCOUNT,
|
||||
['name' => $event->getTitle(), 'url' => '/mon-compte/evenement/'.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => $event->getTitle(), 'url' => self::EVENT_BASE_URL.$event->getId().'/modifier?tab=categories'],
|
||||
['name' => 'Modifier un billet'],
|
||||
],
|
||||
]);
|
||||
@@ -914,4 +888,22 @@ class AccountController extends AbstractController
|
||||
$event->setEventMainPictureFile($pictureFile);
|
||||
}
|
||||
}
|
||||
|
||||
private function hydrateBilletFromRequest(Billet $billet, Request $request): void
|
||||
{
|
||||
$billet->setName(trim($request->request->getString('name')));
|
||||
$billet->setPriceHT((int) round((float) $request->request->getString('price_ht') * 100));
|
||||
$qty = $request->request->getString('quantity');
|
||||
$billet->setQuantity('' === $qty ? null : (int) $qty);
|
||||
$billet->setIsGeneratedBillet($request->request->getBoolean('is_generated_billet'));
|
||||
$billet->setHasDefinedExit($request->request->getBoolean('has_defined_exit'));
|
||||
$billet->setNotBuyable($request->request->getBoolean('not_buyable'));
|
||||
$billet->setType($request->request->getString('type', 'billet'));
|
||||
$billet->setDescription(trim($request->request->getString('description')) ?: null);
|
||||
|
||||
$pictureFile = $request->files->get('picture');
|
||||
if ($pictureFile) {
|
||||
$billet->setPictureFile($pictureFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user