src/Nolimit/Contract/Controller/ContractController.php line 171

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Nolimit\Contract\Controller;
  4. use App\Entity\Company;
  5. use App\Entity\CompanyType;
  6. use App\Entity\ContractStatus;
  7. use App\Entity\Currency;
  8. use App\Entity\Project;
  9. use App\Entity\ProjectType;
  10. use App\Entity\Unit;
  11. use App\Nolimit\Contract\Manager\ContractManager;
  12. use App\Nolimit\Contract\Manager\ContractTrancheManager;
  13. use App\Nolimit\Contract\Persister\ContractPersister;
  14. use App\Nolimit\Contract\Persister\ContractTranchePersister;
  15. use App\Nolimit\Contract\Provider\ContractDatatableProvider;
  16. use App\Nolimit\Contract\Provider\ContractProvider;
  17. use App\Nolimit\Pdf\PdfGenerator;
  18. use App\Nolimit\Task\Manager\TaskManager;
  19. use App\Repository\CompanyRepository;
  20. use App\Repository\ContractRepository;
  21. use App\Repository\ContractStatusRepository;
  22. use App\Repository\LanguageRepository;
  23. use App\Repository\ProjectRepository;
  24. use App\Nolimit\Contract\Provider\ContractTrancheDatatableProvider;
  25. use App\Repository\ProjectTypeRepository;
  26. use App\Repository\TaskRepository;
  27. use App\Repository\TrancheRepository;
  28. use App\Repository\UnitRepository;
  29. use Doctrine\ORM\EntityManagerInterface;
  30. use Sonata\AdminBundle\Controller\CRUDController;
  31. use Symfony\Component\HttpFoundation\JsonResponse;
  32. use Symfony\Component\HttpFoundation\Request;
  33. use Symfony\Component\HttpFoundation\Response;
  34. use Symfony\Component\Routing\Annotation\Route;
  35. use Symfony\Contracts\Translation\TranslatorInterface;
  36. class ContractController extends CRUDController
  37. {
  38.     /**
  39.      * @var EntityManagerInterface
  40.      */
  41.     private $em;
  42.     private ContractManager $contractManager;
  43.     private ContractDatatableProvider $contractDatatableProvider;
  44.     private TaskRepository $taskRepository;
  45.     private ContractRepository $contractRepository;
  46.     private ContractTrancheDatatableProvider $contractTrancheDatatableProvider;
  47.     private ContractTrancheManager $contractTrancheManager;
  48.     private TrancheRepository $trancheRepository;
  49.     private ProjectRepository $projectRepository;
  50.     private ContractProvider $contractProvider;
  51.     private ContractPersister $contractPersister;
  52.     private ContractTranchePersister $contractTranchePersister;
  53.     private CompanyRepository $companyRepository;
  54.     private ProjectTypeRepository $projectTypeRepository;
  55.     private ContractStatusRepository $contractStatusRepository;
  56.     private PdfGenerator $pdfGenerator;
  57.     private LanguageRepository $languageRepository;
  58.     private TranslatorInterface $translator;
  59.     private UnitRepository $unitRepository;
  60.     private TaskManager $taskManager;
  61.     public function __construct(EntityManagerInterface $em,
  62.                                 ContractManager $contractManager,
  63.                                 ContractDatatableProvider $contractDatatableProvider,
  64.                                 TaskRepository $taskRepository,
  65.                                 ContractRepository $contractRepository,
  66.                                 ContractTrancheDatatableProvider $contractTrancheDatatableProvider,
  67.                                 ProjectRepository $projectRepository,
  68.                                 ContractTrancheManager $contractTrancheManager,
  69.                                 TrancheRepository $trancheRepository,
  70.                                 ContractProvider $contractProvider,
  71.                                 ContractPersister $contractPersister,
  72.                                 ContractTranchePersister $contractTranchePersister,
  73.                                 CompanyRepository $companyRepository,
  74.                                 ProjectTypeRepository $projectTypeRepository,
  75.                                 ContractStatusRepository $contractStatusRepository,
  76.                                 PdfGenerator $pdfGenerator,
  77.                                 LanguageRepository $languageRepository,
  78.                                 TranslatorInterface $translator,
  79.                                 UnitRepository $unitRepository,
  80.                                 TaskManager $taskManager)
  81.     {
  82.         $this->em $em;
  83.         $this->contractManager $contractManager;
  84.         $this->contractDatatableProvider $contractDatatableProvider;
  85.         $this->taskRepository $taskRepository;
  86.         $this->contractRepository $contractRepository;
  87.         $this->projectRepository $projectRepository;
  88.         $this->contractTrancheDatatableProvider $contractTrancheDatatableProvider;
  89.         $this->contractTrancheManager $contractTrancheManager;
  90.         $this->trancheRepository $trancheRepository;
  91.         $this->contractProvider $contractProvider;
  92.         $this->contractPersister $contractPersister;
  93.         $this->contractTranchePersister $contractTranchePersister;
  94.         $this->companyRepository $companyRepository;
  95.         $this->projectTypeRepository $projectTypeRepository;
  96.         $this->contractStatusRepository $contractStatusRepository;
  97.         $this->pdfGenerator $pdfGenerator;
  98.         $this->translator $translator;
  99.         $this->unitRepository $unitRepository;
  100.         $this->languageRepository $languageRepository;
  101.         $this->taskManager $taskManager;
  102.     }
  103.     public function listAction(Request $request): Response
  104.     {
  105.         $companies $this->companyRepository->findBy(array("deleted"=>false,"companyType"=>CompanyType::COMPANY_TYPE_K));
  106.         $projectType $this->projectTypeRepository->findAll();
  107.         $contractStatus $this->contractStatusRepository->findAll();
  108.         $selectedStatus=array(ContractStatus::CONTRACT_STATUS_LETREHOZOTT,ContractStatus::CONTRACT_STATUS_ELKULDOTTContractStatus::CONTRACT_STATUS_ALAIRT);
  109.         return $this->renderWithExtraParams('/contract/contract_view.html.twig', array(
  110.             'companies' => $companies,
  111.             'projectType' => $projectType,
  112.             'selectedStatus'=>$selectedStatus,
  113.             'contractStatus' => $contractStatus
  114.         ));
  115.     }
  116.     /**
  117.      * @Route("/admin/contract/contract/contract_filter", name="contract_filter", methods={"POST"} )
  118.      */
  119.     public function contractFilterAction(): Response
  120.     {
  121. //        $status=$this->em->getRepository(ProjectStatus::class)->findAll();
  122. //        $data['selected_status']=array();
  123. //        foreach ($status as $item)
  124. //        {
  125. //            $data['status'][$item->getId()]=$item->getName();
  126. //            if($item->getId()!=ProjectStatus::APV_STATUS_INCHIS)
  127. //            {
  128. //                array_push($data['selected_status'],$item->getId());
  129. //            }
  130. //        }
  131. //        $treatment=$this->em->getRepository(ApvTreatment::class)->findAll();
  132. //        foreach ($treatment as $item2)
  133. //        {
  134. //            $data['treatment'][$item2->getId()]=$item2->getName();
  135. //        }
  136. //        $up=$this->em->getRepository(UnitateProductie::class)->findAll();
  137. //        foreach ($up as $item3)
  138. //        {
  139. //            $data['up'][$item3->getId()]=$item3->getCod().' - '.$item3->getName();
  140. //        }
  141. //        $contract=$this->em->getRepository(ProjectType::class)->findAll();
  142. //        foreach ($contract as $item4)
  143. //        {
  144. //            $data['contract'][$item4->getId()]=$item4->getName();
  145. //        }
  146. //
  147.         $data "";
  148.         return new JsonResponse($data200);
  149.     }
  150.     /**
  151.      * @Route("/admin/app/contract/contract_filtered", name="contract_filtered", methods={"POST"} )
  152.      */
  153.     public function contractFilteredAction(Request $request): Response
  154.     {
  155.         $adata['adata'] = $this->contractManager->getFilteredData($request);
  156.         return $this->json($adata);
  157.     }
  158.     /**
  159.      * @Route("/admin/app/contract/contract_list", name="contract_list", methods={"POST"} )
  160.      */
  161.     public function contractListAction(TranslatorInterface $translator)
  162.     {
  163.         $adata['data'] = $this->contractDatatableProvider->datatableRows();
  164.         return $this->json($adata);
  165.     }
  166.     /**
  167.      * @Route("/admin/contract/contract_new_act_aditional", name="contract_new_act_aditional", methods={"POST"} )
  168.      */
  169.     public function contractNewActAditionalAction(Request $request): Response
  170.     {
  171.         $contractId = (int)$request->request->get("id");
  172.         $contractParent $this->contractRepository->find($contractId);
  173.         $getNextNumber $this->contractRepository->findOneBy(['contractParent' => $contractParent], ['nr' => 'DESC']);
  174.         $nrActAditional = ($getNextNumber) ? (int)$getNextNumber->getNr() + 1;
  175.         return $this->renderWithExtraParams('/contract/act_aditional.html.twig', array(
  176.             'contractParent' => $contractParent,
  177.             'nrActAditional' => $nrActAditional,
  178.         ));
  179.     }
  180.     /**
  181.      * @Route("/admin/contract/contract_new", name="contract_new", methods={"POST"} )
  182.      */
  183.     public function contractNewAction(): Response
  184.     {
  185.         $companies $this->companyRepository->findBy(array("deleted"=>false,"companyType"=>CompanyType::COMPANY_TYPE_K));
  186.         $projectTypes $this->projectTypeRepository->findBy(array('deleted' => 0));
  187.         $currencies $this->em->getRepository(Currency::class)->findAll();
  188.         $languages $this->languageRepository->findAll();
  189.         $contractStatuses $this->contractStatusRepository->findAll();
  190.         $nextContractNumberAndSeria $this->contractProvider->findNextNrDoc();
  191.         return $this->renderWithExtraParams('/contract/contract_add_edit.html.twig', array(
  192.             'companies' => $companies,
  193.             'projectTypes' => $projectTypes,
  194.             'currencies' => $currencies,
  195.             'contractNrAndSeria' => $nextContractNumberAndSeria,
  196.             'languages' => $languages,
  197.             'contractStatuses'=> $contractStatuses,
  198.         ));
  199.     }
  200.     /**
  201.      * @Route("/admin/contract/contract_save_act_aditional", name="contract_save_act_aditional", methods={"POST"} )
  202.      */
  203.     public function contractSaveActAditionalAction(Request $request): Response
  204.     {
  205.         $actAditional $this->contractPersister->saveActAditional($request);
  206.         $data[] = $this->contractDatatableProvider->datatableRow($actAditional);
  207.         return new JsonResponse(array('msg' => true'datatableRow' => $data[0]), 200);
  208.     }
  209.     /**
  210.      * @Route("/admin/contract/contract_save", name="contract_save", methods={"POST"} )
  211.      */
  212.     public function contractSaveAction(Request $request): Response
  213.     {
  214.         $contract $this->contractPersister->saveContract($request);
  215.         //viewnak szukseges adatok. A datatable megjeleniteshez szukseges adatokat adja
  216.         $data[] = $this->contractDatatableProvider->datatableRow($contract);
  217.         return new JsonResponse(array('msg' => true'datatableRow' => $data[0]), 200);
  218.     }
  219.     /**
  220.      * @Route("/admin/contract/contract_edit", name="contract_edit", methods={"GET","POST"} )
  221.      */
  222.     public function contractEditAction(Request $request): Response
  223.     {
  224.         $contractId = (int)$request->request->get("id");
  225.         $contract $this->contractRepository->find($contractId);
  226.         $companies $this->companyRepository->findBy(array("deleted"=>false,"companyType"=>CompanyType::COMPANY_TYPE_K));
  227.         $projectTypes $this->projectTypeRepository->findBy(array('deleted' => 0));
  228.         $currencies $this->em->getRepository(Currency::class)->findAll();
  229.         $languages $this->languageRepository->findAll();
  230.         $contractStatuses $this->contractStatusRepository->findAll();
  231.         $projects $this->contractManager->getCompanyNotContractedProject($contract->getCompany()->getId(), $contract->getProjectType()->getId(), $contract->getProject()->getId());
  232.         if($contract->getProjectType()->getId() == ProjectType::PROJECT_TYPE_ACT_ADITIONAL){
  233.             return $this->renderWithExtraParams('/contract/act_aditional.html.twig', array(
  234.                 'contractParent' => $contract->getContractParent(),
  235.                 'contract' => $contract,
  236.             ));
  237.         }else{
  238.             return $this->renderWithExtraParams('/contract/contract_add_edit.html.twig', array(
  239.                 'contract' => $contract,
  240.                 'companies' => $companies,
  241.                 'projectTypes' => $projectTypes,
  242.                 'currencies' => $currencies,
  243.                 'projects' => $projects,
  244.                 'languages' => $languages,
  245.                 'contractStatuses'=> $contractStatuses,
  246.             ));
  247.         }
  248.     }
  249.     /**
  250.      * @Route("/admin/contract/contract_delete", name="contract_delete", methods={"GET","POST"} )
  251.      */
  252.     public function contractDeleteAction(Request $request): Response
  253.     {
  254.         $id $request->request->get('id');
  255.         $this->contractManager->deleteContract((int)$id);
  256.         return new JsonResponse(array('msg' => true), 200);
  257.     }
  258.     /**
  259.      * @Route("/admin/contract/get_client_project", name="get_client_project", methods={"GET","POST"} )
  260.      */
  261.     public function getClientProjectAction(Request $request): Response
  262.     {
  263.         $companyId = (int)$request->request->get("company_id");
  264.         $projectTypeId = (int)$request->request->get("project_type_id");
  265.         $contractId = (int)$request->request->get("contract_id");
  266.         $projectId = (int)$request->request->get("project_id");
  267.         $projectWithoutContract $this->contractManager->getCompanyNotContractedProject($companyId$projectTypeId$projectId);
  268.         $contract null;
  269.         if ($contractId 0) {
  270.             $contract $this->contractRepository->find($contractId);
  271.         }
  272.         return $this->renderWithExtraParams('/contract/contract_company_projects.html.twig', array(
  273.             'projects' => $projectWithoutContract,
  274.             'contract' => $contract
  275.         ));
  276.     }
  277.     /**
  278.      * @Route("/admin/contract/add_contract_tranche/{id}", name="add_contract_tranche", methods={"POST"} )
  279.      */
  280.     public function addContractTrancheAction(Request $request): Response
  281.     {
  282.         $contractId $request->attributes->get('id');
  283.         $contract $this->contractRepository->find($contractId);
  284.         $units=$this->unitRepository->findAll();
  285.         $isActAditionalWithMaintenanceParent $contract->getContractParent() !== null && $contract->getContractParent()->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS;
  286.         $isMaintenanceOrActAditional $contract->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS || $isActAditionalWithMaintenanceParent;
  287.         $unUsedMaintenanceHours $isMaintenanceOrActAditional $this->taskRepository->getUnusedMaintenanceHours($contract->getProject()->getId())[0]['scheduledHours'] : 0;
  288.         $unusedMaintenanceHoursByTask $isMaintenanceOrActAditional $this->taskRepository->getUnusedMaintenanceHoursByTask($contract->getProject()->getId()) : [];
  289.         //dump($unusedMaintenanceHoursByTask);
  290.         //exit;
  291.         return $this->renderWithExtraParams('/contract/contract_tranche_add_edit.html.twig', array(
  292.             'contract' => $contract,
  293.             'units' => $units,
  294.             'unUsedMaintenanceHours' => $unUsedMaintenanceHours,
  295.             'unusedMaintenanceHoursByTask' => $unusedMaintenanceHoursByTask
  296.         ));
  297.     }
  298.     /**
  299.      * @Route("/admin/contract/edit_contract_tranche/{contract_id}/{tranche_id}", name="edit_contract_tranche", methods={"POST"} )
  300.      */
  301.     public function editContractTrancheAction(Request $request): Response
  302.     {
  303.         $contractId $request->attributes->get('contract_id');
  304.         $contract $this->contractRepository->find($contractId);
  305.         $units=$this->unitRepository->findAll();
  306.         $trancheId $request->attributes->get('tranche_id');
  307.         $contract_tranche $this->trancheRepository->find($trancheId);
  308.         $selected_tasks $this->taskRepository->findBy(array('tranche' => $contract_tranche));
  309.         $selected_tasks_ids $this->contractTrancheManager->taskIdsImplode($selected_tasks);
  310.         $selected_tasks_values $this->contractTrancheManager->taskValuesImplode($selected_tasks);
  311.         $isActAditionalWithMaintenanceParent $contract->getContractParent() !== null && $contract->getContractParent()->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS;
  312.         $isMaintenanceOrActAditional $contract->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS || $isActAditionalWithMaintenanceParent;
  313.         $unUsedMaintenanceHours $isMaintenanceOrActAditional $this->taskRepository->getUnusedMaintenanceHours($contract->getProject()->getId())[0]['scheduledHours'] : 0;
  314.         $unusedMaintenanceHoursByTask $isMaintenanceOrActAditional $this->taskRepository->getUnusedMaintenanceHoursByTask($contract->getProject()->getId()) : [];
  315.         //tranche_hour
  316.         $trancheMin 0;
  317.         foreach ($selected_tasks as $item){
  318.             $trancheMin +=($item->isNotUsed())?$item->getNotUsedMinutes():$item->getWorkedMinutes();
  319.         }
  320.         $tranche_hour $this->taskManager->convertMinInHourMin($trancheMin);
  321.         //selected not used
  322.         $selectedNotUsedTaskId 0;
  323.         $selectedNotUsedTask $this->taskRepository->findOneBy(['tranche'=>$contract_tranche,'notUsed'=>1]);
  324.         if($selectedNotUsedTask && $contract_tranche->getUnit()->getId() == Unit::UNIT_ORA){
  325.             $unusedMaintenanceHoursByTask[]=array('id'=>$selectedNotUsedTask->getId(),'name'=>$selectedNotUsedTask->getName().' - '.$selectedNotUsedTask->getNotUsedMinutes().' perc','notUsedMinutes'=>$selectedNotUsedTask->getNotUsedMinutes());
  326.             $selectedNotUsedTaskId $selectedNotUsedTask->getId();
  327.         }
  328.         $billableValueCrandTotal $this->taskRepository->getTaskGrandTotalByTranche((int)$trancheId)[0]['grandTotal'];
  329.         //dump($billableValueCrandTotal);
  330.         //exit;
  331.         return $this->renderWithExtraParams('/contract/contract_tranche_add_edit.html.twig', array(
  332.             'contract' => $contract,
  333.             'contract_tranche' => $contract_tranche,
  334.             'selected_tasks_ids' => $selected_tasks_ids,
  335.             'selected_tasks_values' => $selected_tasks_values,
  336.             'units' => $units,
  337.             'unUsedMaintenanceHours' => $unUsedMaintenanceHours,
  338.             'unusedMaintenanceHoursByTask' => $unusedMaintenanceHoursByTask,
  339.             'tranche_hour' => $tranche_hour,
  340.             'selectedNotUsedTaskId' => $selectedNotUsedTaskId,
  341.             'billableValueGrandTotal' => ($billableValueCrandTotal)?$billableValueCrandTotal:''
  342.         ));
  343.     }
  344.     /**
  345.      * @Route("/admin/contract/contract_tranche_task_items", name="contract_tranche_task_items", methods={"POST"} )
  346.      */
  347.     public function contractTrancheTaskItemsAction(Request $request): Response
  348.     {
  349.         $project_id = (int)$request->get("project_id");
  350.         $project=$this->projectRepository->find($project_id);
  351.         $tranche_id = (int)$request->get("tranche_id");
  352.         if ($tranche_id == 0) {
  353.             if($project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_WEB_FEJLESZTES || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_ERP_FEJLESZTES || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_ACT_ADITIONAL)
  354.             {
  355.                 $free_tasks $this->taskRepository->getFreeCreatedTasks($project_id);
  356.             }
  357.             elseif ($project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_KARBANTARTAS || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_HOSTING)
  358.             {
  359.                 $free_tasks $this->taskRepository->getFreeCompletedTasks($project_id);
  360.             }
  361.             $adata['data'] = $this->contractTrancheDatatableProvider->datatableRows($free_tasks);
  362.         } else {
  363.             $tranche $this->trancheRepository->find($tranche_id);
  364.             if($project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_WEB_FEJLESZTES || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_ERP_FEJLESZTES || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_ACT_ADITIONAL)
  365.             {
  366.                 $free_tasks $this->taskRepository->getFreeTasksAndTrancheCreatedTasks($project_id$tranche_id);
  367.                 //dump($project_id,$tranche_id,count($free_tasks));
  368.                 //exit;
  369.             }
  370.             elseif ($project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_KARBANTARTAS || $project->getProjectType()->getId() == ProjectType::PROJECT_TYPE_HOSTING)
  371.             {
  372.                 $free_tasks $this->taskRepository->getFreeTasksAndTrancheCompletedTasks($project_id$tranche_id);
  373.             }
  374.             $trancheContract $tranche->getContract();
  375.             $isActAditionalWithMaintenanceParent $trancheContract->getContractParent() !== null && $trancheContract->getContractParent()->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS;
  376.             $isMaintenanceOrActAditional $trancheContract->getProjectType()->getId() === ProjectType::PROJECT_TYPE_KARBANTARTAS || $isActAditionalWithMaintenanceParent;
  377.             $filterNotUsedForOra $isMaintenanceOrActAditional && $tranche->getUnit()->getId() == Unit::UNIT_ORA;
  378.             $selected_tasks $filterNotUsedForOra $this->taskRepository->findBy(['tranche' => $tranche_id'notUsed' => null]) : $this->taskRepository->findBy(['tranche' => $tranche_id]);
  379.             $selected_tasks_ids $this->contractTrancheManager->taskIdsImplode($selected_tasks);
  380.             $adata['data'] = $this->contractTrancheDatatableProvider->editDatatableRows($free_tasks$selected_tasks_ids);
  381.         }
  382.         return $this->json($adata);
  383.     }
  384.     /**
  385.      * @Route("/admin/contract/contract_tranche_save", name="contract_tranche_save", methods={"POST"} )
  386.      */
  387.     public function contractTrancheSaveAction(Request $request): Response
  388.     {
  389.         $data $this->contractTrancheManager->saveContractTranche($request);
  390.         return new JsonResponse(array('msg' => $data['msg'], 'success' => $data['success']), 200);
  391.     }
  392.     /**
  393.      * @Route("/admin/app/task/delete_tranche", name="delete_tranche", methods={"POST"} )
  394.      */
  395.     public function deleteTrancheAction(Request $request): Response
  396.     {
  397.         $result $this->contractTranchePersister->deleteContractTranche($request);
  398.         $contract_id = (int)$request->get('contract_id');
  399.         $contract $this->contractRepository->find($contract_id);
  400.         $data[] = $this->contractDatatableProvider->datatableRow($contract);
  401.         return new JsonResponse(array('msg' => true'datatableRow' => $data[0]), 200);
  402.     }
  403.     /**
  404.      * @Route("/admin/app/contract/contract_print_pdf", name="contract_print_pdf", methods={"POST"} )
  405.      */
  406.     public function contractPrintPdfAction(Request $request): Response
  407.     {
  408.         $id = (int)$request->request->get("id");
  409.         $contract $this->contractRepository->find($id);
  410.         $filename 'CONTRACT NR '.$contract->getNr().' '.$contract->getCompany()->getName().' '.$contract->getDataDin()->format('d-m-Y').'.pdf';
  411.         if($contract->getContractStatus()->getId()!=ContractStatus::CONTRACT_STATUS_ALAIRT && $contract->getContractStatus()->getId()!=ContractStatus::CONTRACT_STATUS_KIVITELEZETT)
  412.         {
  413.             $this->contractManager->pdfContract($contract);
  414.         }
  415.         $protocol stripos($_SERVER['SERVER_PROTOCOL'], 'https') === 'https://' 'http://';
  416.         $domainName $_SERVER['HTTP_HOST'] . '/';
  417.         $dirname '/contract/' $filename;
  418.         return new JsonResponse(array('filePath' => $protocol $domainName $dirname'filename' => $filename), 200);
  419.     }
  420.     /**
  421.      * @Route("/admin/contract/contract_projecttype", name="contract_projecttype", methods={"GET","POST"} )
  422.      */
  423.     public function contractProjectTypeAction(Request $request): Response
  424.     {
  425.         $id = (int)$request->get('itemId');
  426.         switch ($id) {
  427.             case ProjectType::PROJECT_TYPE_HOSTING:
  428.                 return $this->renderWithExtraParams('/contractType/contract_hosting.html.twig', array('contract' => false));
  429.                 break;
  430.             case (ProjectType::PROJECT_TYPE_KARBANTARTAS):
  431.                 return $this->renderWithExtraParams('/contractType/contract_karbantartas.html.twig', array('contract' => false));
  432.                 break;
  433.             case ProjectType::PROJECT_TYPE_ERP_FEJLESZTES:
  434.                 return $this->renderWithExtraParams('/contractType/contract_ERP_fejlesztes.html.twig', array('contract' => false));
  435.                 break;
  436.             case ProjectType::PROJECT_TYPE_WEB_FEJLESZTES:
  437.                 return $this->renderWithExtraParams('/contractType/contract_web_fejlesztes.html.twig', array('contract' => false));
  438.                 break;
  439.         }
  440.     }
  441.     /**
  442.      * @Route("/admin/app/task/contract_tranche_task_divide", name="contract_tranche_task_divide", methods={"POST"} )
  443.      */
  444.     public function contractTrancheTaskDivideAction(Request $request): Response
  445.     {
  446.         $id $request->get('id');
  447.         $task $this->taskRepository->find($id);
  448.         return $this->renderWithExtraParams('/contract/task_divide.html.twig', array(
  449.             'task'=>$task,
  450.             'title'=>$this->translator->trans('Edit log')
  451.         ));
  452.     }
  453.     /**
  454.      * @Route("/admin/contract/contract_tranche_task_divide_save", name="contract_tranche_task_divide_save", methods={"POST"} )
  455.      */
  456.     public function contractTrancheTaskDivideSaveAction(Request $request): Response
  457.     {
  458.         $data $this->contractTrancheManager->divideContractTrancheTask($request);
  459.         return new JsonResponse(array ('editedDatatableRow' => $data['editedDatatableRow'],'datatableRow' => $data['datatableRow'], 'success' => $data['success']), 200);
  460.     }
  461. //    /**
  462. //     * @Route("/admin/contract/contract_type", name="contract_type", methods={"GET","POST"} )
  463. //     */
  464. //    public function contractAddAction(Request $request, TranslatorInterface $translator): Response
  465. //    {
  466. //        $id = $request->get('id');
  467. //        return $this->renderWithExtraParams('/contract/contract.html.twig', array(
  468. //            'contract' => '',
  469. //        ));
  470. //
  471. //    }
  472. //
  473. //    /**
  474. //     * @Route("/admin/contract/contract_type", name="contract_type", methods={"GET","POST"} )
  475. //     */
  476. //    public function contractTypeAction(Request $request): Response
  477. //    {
  478. //        $id =(int)$request->get('itemId');
  479. //        if(ProjectType::PROJECT_TYPE_VANZARECUMPARARE == $id){
  480. //            //vanzare cumparare
  481. //            return $this->renderWithExtraParams('/contractType/contractVanzareCumparare.html.twig');
  482. //
  483. //        }else{
  484. //            //edit
  485. //            return $this->renderWithExtraParams('/contractType/contractPrestariServicii.html.twig');
  486. //        }
  487. //    }
  488. }