<?php
namespace App\Controller\Placement;
use App\Custom\PlacementPdfPaymentPlan\PaymentPlanConverter;
use App\Entity\Placement\Pdf\PaymentPlan\Config\Config;
use App\Entity\Placement\Pdf\PaymentPlan\Config\Group\Group;
use App\Entity\Placement\Pdf\PaymentPlan\Config\Group\Payment\AdvancedSumPayment;
use App\Entity\Placement\Pdf\PaymentPlan\Config\Group\Payment\OneLinePayment;
use App\Entity\Placement\Pdf\PaymentPlan\PaymentPlan;
use App\Entity\Placement\Pdf\PaymentPlan\UnitInfo\ConstantValueInfo;
use App\Entity\Placement\Pdf\PaymentPlan\UnitInfo\FormulaValueInfo;
use App\Entity\Placement\Pdf\PaymentPlan\UnitInfo\SystemValueInfo;
use App\Entity\Placement\Pdf\PaymentPlan\UnitInfo\UnitInfo;
use App\Repository\PlacementRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Routing\Annotation\Route;
class PlacementPdfPaymentPlanController extends AbstractController
{
/**
* @param RequestStack $requestStack
* @param PlacementRepository $placementRepository
* @param PaymentPlanConverter $paymentPlanConverter
* @return JsonResponse
* @Route("/api/mapped_placement_pdf_payment_plans")
*/
public function getMappedPlacementPdfPaymentPlans(
RequestStack $requestStack,
PlacementRepository $placementRepository,
PaymentPlanConverter $paymentPlanConverter
):JsonResponse {
$placementId = $requestStack->getCurrentRequest()->query->get('placementId');
$language = $requestStack->getCurrentRequest()->query->get('language');
if (!($placement = $placementRepository->find($placementId))) {
throw new NotFoundHttpException("Not found");
}
$parsedPaymentPlan = $paymentPlanConverter->convertAndMapActivePaymentPlansToArray($placement, $language);
return new JsonResponse($parsedPaymentPlan, 200);
}
}