Loading module/Oscar/config/module.config.php +1 −0 Original line number Diff line number Diff line Loading @@ -562,6 +562,7 @@ return array( 'factories' => array( \Oscar\Service\ActivityLogService::class => \Oscar\Service\ActivityLogServiceFactory::class, \Oscar\Service\ActivityPaymentService::class => \Oscar\Service\ActivityPaymentServiceFactory::class, \Oscar\Service\ActivityRequestService::class => \Oscar\Service\ActivityRequestServiceFactory::class, \Oscar\Service\ActivityTypeService::class => \Oscar\Service\ActivityTypeServiceFactory::class, \Oscar\Service\AdministrativeDocumentService::class => \Oscar\Service\AdministrativeDocumentServiceFactory::class, Loading module/Oscar/src/Oscar/Controller/AbstractOscarController.php +5 −0 Original line number Diff line number Diff line Loading @@ -299,4 +299,9 @@ class AbstractOscarController extends AbstractActionController implements UseOsc $input = json_decode($inputJSON, TRUE); return $input; } protected function getJsonREST() { return $this->getJsonPosted(); } } module/Oscar/src/Oscar/Controller/ActivityNotesController.php +9 −48 Original line number Diff line number Diff line Loading @@ -10,13 +10,15 @@ use Oscar\Entity\Activity; use Oscar\Entity\ActivityNote; use Oscar\Provider\Privileges; use Oscar\Service\ProjectGrantApiService; use Oscar\Traits\UseLoggerService; use Oscar\Traits\UseLoggerServiceTrait; use Oscar\Traits\UseProjectGrantApiService; use Oscar\Traits\UseProjectGrantApiServiceTrait; use Throwable; class ActivityNotesController extends AbstractOscarController implements UseProjectGrantApiService class ActivityNotesController extends AbstractOscarController implements UseProjectGrantApiService, UseLoggerService { use UseProjectGrantApiServiceTrait; use UseProjectGrantApiServiceTrait, UseLoggerServiceTrait; public function apiAction() { Loading Loading @@ -72,52 +74,8 @@ class ActivityNotesController extends AbstractOscarController implements UseProj private function getNotes() { $activity_id = $this->getRequest()->getQuery('activityid'); // if (!$activity_id) { // throw new \Exception("activityid query param mandatory"); // } // // // /** @var Activity $activity */ // $activity = $this->getEntityManager()->getRepository(Activity::class)->find($activity_id); // if (!$activity) { // throw new \Exception("activityid not found in DB"); // } // // $this->getOscarUserContextService()->check(Privileges::ACTIVITY_NOTES_SHOW, $activity); // // $allNotes = $this->getEntityManager() // ->getRepository(ActivityNote::class) // ->createQueryBuilder('activitynotes') // ->select('activitynotes') // ->where('activitynotes.activity = :activity_id') // ->addOrderBy('COALESCE(activitynotes.dateUpdated, activitynotes.dateCreated)', 'DESC') // ->setParameter('activity_id', $activity_id) // ->getQuery() // ->getResult(); // // $json = [ // 'notes' => [] // ]; // // /** @var ActivityNote $note */ // foreach ($allNotes as $note) { // $date_updated = $note->getDateCreated()->format(DateTime::ATOM); // if ($note->getDateUpdated() != NULL) { // $date_updated = $note->getDateUpdated()->format(DateTime::ATOM); // } // // $json['notes'][] = [ // 'id' => $note->getId(), // 'content' => $note->getContent(), // 'date_updated' => $date_updated, // 'created_by' => [ // 'id' => $note->getCreatedBy() ? $note->getCreatedBy()->getId() : -1, // 'first_name' => $note->getCreatedBy() ? $note->getCreatedBy()->getFirstName() : "", // 'last_name' => $note->getCreatedBy() ? $note->getCreatedBy()->getLastName() : "", // ], // ]; // } $json = $this->getProjectGrantApiService()->getNotesActivity($activity_id, $this->url(), $this->getOscarUserContextService()); $activity = $this->getEntityManager()->getRepository(Activity::class)->find($activity_id); $json = $this->getProjectGrantApiService()->getNotesActivity($activity, $this->url(), $this->getOscarUserContextService()); $response = new JsonModel(); $response->setVariables($json); Loading @@ -125,6 +83,9 @@ class ActivityNotesController extends AbstractOscarController implements UseProj } private function createNote($action_note_json, $activity) { $this->getLoggerService()->info("createNote"); $this->getLoggerService()->info("by: " . $this->getCurrentPerson()); $note = new ActivityNote(); $note->setContent($action_note_json->content); $note->setCreatedBy($this->getCurrentPerson()); Loading module/Oscar/src/Oscar/Controller/ActivityNotesControllerFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ class ActivityNotesControllerFactory implements FactoryInterface $c = new ActivityNotesController(); $c->setEntityManager($container->get(EntityManager::class)); $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setLoggerService($container->get('Logger')); $c->setProjectGrantApiService($container->get(ProjectGrantApiService::class)); return $c; } Loading module/Oscar/src/Oscar/Controller/ActivityPaymentController.php +82 −72 Original line number Diff line number Diff line Loading @@ -10,17 +10,23 @@ namespace Oscar\Controller; use Oscar\Entity\Activity; use Oscar\Entity\ActivityPayment; use Oscar\Exception\OscarException; use Oscar\Form\ActivityPaymentForm; use Oscar\Provider\Privileges; use Oscar\Service\ActivityPaymentService; use Oscar\Service\NotificationService; use Oscar\Service\PersonService; use Oscar\Service\ProjectGrantApiService; use Oscar\Service\ProjectGrantService; use Laminas\Http\Request; use Laminas\View\Model\JsonModel; use Laminas\View\Model\ViewModel; use Oscar\Traits\UseServiceContainer; use Oscar\Traits\UseServiceContainerTrait; class ActivityPaymentController extends AbstractOscarController class ActivityPaymentController extends AbstractOscarController implements UseServiceContainer { use UseServiceContainerTrait; /////////////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES /** @var ProjectGrantService */ Loading Loading @@ -83,9 +89,6 @@ class ActivityPaymentController extends AbstractOscarController /////////////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES /** * Retourne les versements à venir dans les 15 jours à venir. */ Loading Loading @@ -123,7 +126,6 @@ class ActivityPaymentController extends AbstractOscarController } /** * @return JsonModel */ Loading @@ -140,7 +142,10 @@ class ActivityPaymentController extends AbstractOscarController $method = $this->getHttpXMethod(); if( $method != "GET" && !$this->getOscarUserContextService()->hasPrivileges(Privileges::ACTIVITY_PAYMENT_MANAGE, $activity) ){ if ($method != "GET" && !$this->getOscarUserContextService()->hasPrivileges( Privileges::ACTIVITY_PAYMENT_MANAGE, $activity )) { $this->getResponseBadRequest("Vous ne disposez pas des droits suffisants pour gérer les versements"); } Loading @@ -148,12 +153,16 @@ class ActivityPaymentController extends AbstractOscarController case 'DELETE': try { /** @var ActivityPayment $payment */ $payment = $this->getProjectGrantService()->getActivityPaymentById($this->params()->fromQuery('id')); $payment = $this->getProjectGrantService()->getActivityPaymentById( $this->params()->fromQuery('id') ); $this->getProjectGrantService()->deleteActivityPayment($payment); return $this->getResponseOk("Le versement a bien été supprimé"); } catch (\Exception $e) { $this->getLoggerService()->error($e->getTraceAsString()); return $this->getResponseInternalError(sprintf(_("Impossible de supprimer le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible de supprimer le payment : %s"), $e->getMessage()) ); } Loading Loading @@ -183,7 +192,9 @@ class ActivityPaymentController extends AbstractOscarController return $this->getResponseOk("Le versement a bien été ajouté"); } catch (\Exception $e) { $this->getLoggerService()->error($e->getTraceAsString()); return $this->getResponseInternalError(sprintf(_("Impossible d'ajouter le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible d'ajouter le payment : %s"), $e->getMessage()) ); } } Loading @@ -193,7 +204,9 @@ class ActivityPaymentController extends AbstractOscarController $this->getProjectGrantService()->updateActivityPayment($postedDatas); return $this->getResponseOk("Le versement a bien été modifié"); } catch (\Exception $e) { return $this->getResponseInternalError(sprintf(_("Impossible de modifier le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible de modifier le payment : %s"), $e->getMessage()) ); } } Loading @@ -212,67 +225,73 @@ class ActivityPaymentController extends AbstractOscarController $search = $this->params()->fromQuery('q', ''); return $this->getProjectGrantService()->getListActivityPayment($search, $page); } } public function restAction() { // Deprecated } /** * @return ActivityPaymentService * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ private function getActivityPaymentService(): ActivityPaymentService { return $this->getServiceContainer()->get(ActivityPaymentService::class); } public function restAction(){ //var_dump($this->getRequest()); public function indexRestAction() { /** @var Request $request */ $request = $this->getRequest(); $response = new JsonModel(); /** @var Activity $entity */ $entity = $this->getEntityManager()->getRepository(Activity::class)->find($this->params()->fromRoute('idactivity')); $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity); if( !$entity ){ return $this->getResponseNotFound("Activité non trouvée"); } $activity = $this->getProjectGrantService()->getActivityById($this->params()->fromRoute('idactivity', null)); $versement = $this->getEntityManager()->getRepository(ActivityPayment::class)->find($this->params()->fromRoute('id')); if( !$entity ){ return $this->getResponseNotFound("Versement non trouvée"); } $method = $request->getMethod(); try { switch ($method) { case 'GET': /** @var ProjectGrantApiService $projectGrantApiService */ $projectGrantApiService = $this->getServiceContainer()->get(ProjectGrantApiService::class); $data = $projectGrantApiService->getActivityJson( $activity->getId(), $this->url(), $this->getOscarUserContextService(), 'payments' ); return $this->jsonOutput($data); switch( $this->getHttpXMethod() ){ case 'DELETE': return $this->getResponseOk('Le versement %s a bien été supprimé'); break; $this->getActivityPaymentService()->deletePayment($this->getActivityPaymentFromQuery()); return $this->getResponseOk("Versement supprimé"); case 'PUT': var_dump($request->getPost()); // return $this->getResponseOk('Le versement %s a bien été supprimé'); break; } $this->getActivityPaymentService()->createPayment($this->getJsonREST(), $activity); return $this->getResponseOk("Versement ajouté"); return $this->getResponseBadRequest("test"); case 'POST': $this->getActivityPaymentService()->updatePayment($this->getJsonREST(), $activity); return $this->getResponseOk("Versement modifié"); return $response; default: throw new \Exception("Action inconnue"); } public function indexRestAction(){ /** @var Request $request */ $request = $this->getRequest(); $response = new JsonModel(); /** @var Activity $entity */ $entity = $this->getEntityManager()->getRepository(Activity::class)->find($this->params()->fromRoute('idactivity')); $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity); if( !$entity ){ return $this->getResponseNotFound("Activité non trouvée"); } catch (\Exception $exception) { return $this->jsonError($exception->getMessage()); } // Récupération des payements $payments = []; /** @var ActivityPayment $payment */ foreach( $entity->getPayments() as $payment ){ $payments[] = $payment->json(); } $response->setVariable('method', $request->getMethod()) ->setVariable('payments_status', ActivityPayment::getStatusPayments()) ->setVariable('currencies', $this->getProjectGrantService()->getCurrencies(true)) ->setVariable('payments', $payments); protected function getActivityPaymentFromQuery( string $field = 'id') :ActivityPayment { $id = $this->params()->fromQuery($field, null); if( $id == null ){ throw new \Exception("ID obligatoire"); } return $response; return $this->getActivityPaymentService()->getPaymentById($id); } public function changeAction() Loading @@ -287,27 +306,18 @@ class ActivityPaymentController extends AbstractOscarController $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity->getActivity()); if ($request->getMethod() === "DELETE") { try { $entity->getActivity()->touch(); $this->getProjectGrantService()->deleteActivityPayment($entity); $this->getEntityManager()->flush(); $this->getActivityLogService()->addUserInfo( sprintf(" a supprimé un %s dans l'activité %s", $entity, $entity->getActivity()->log()), 'Activity', $entity->getActivity()->getId() ); } catch( \Exception $e ){ $this->getResponse()->setStatusCode(500); $response->setVariable('error', 'Impossible de supprimer cette échéance'); } return $response; throw new \Exception("DEPRECATED"); } else { /** @var ActivityPaymentForm $form */ $form = new ActivityPaymentForm(); $form->setAttribute('action', $this->url()->fromRoute(null, ['idactivity' => $entity->getActivity()->getId(), 'id' => $entity->getId()])); $form->setAttribute( 'action', $this->url()->fromRoute( null, ['idactivity' => $entity->getActivity()->getId(), 'id' => $entity->getId()] ) ); $form->setProjectGrantService($this->getProjectGrantService()); $form->init(); $form->bind($entity); Loading Loading
module/Oscar/config/module.config.php +1 −0 Original line number Diff line number Diff line Loading @@ -562,6 +562,7 @@ return array( 'factories' => array( \Oscar\Service\ActivityLogService::class => \Oscar\Service\ActivityLogServiceFactory::class, \Oscar\Service\ActivityPaymentService::class => \Oscar\Service\ActivityPaymentServiceFactory::class, \Oscar\Service\ActivityRequestService::class => \Oscar\Service\ActivityRequestServiceFactory::class, \Oscar\Service\ActivityTypeService::class => \Oscar\Service\ActivityTypeServiceFactory::class, \Oscar\Service\AdministrativeDocumentService::class => \Oscar\Service\AdministrativeDocumentServiceFactory::class, Loading
module/Oscar/src/Oscar/Controller/AbstractOscarController.php +5 −0 Original line number Diff line number Diff line Loading @@ -299,4 +299,9 @@ class AbstractOscarController extends AbstractActionController implements UseOsc $input = json_decode($inputJSON, TRUE); return $input; } protected function getJsonREST() { return $this->getJsonPosted(); } }
module/Oscar/src/Oscar/Controller/ActivityNotesController.php +9 −48 Original line number Diff line number Diff line Loading @@ -10,13 +10,15 @@ use Oscar\Entity\Activity; use Oscar\Entity\ActivityNote; use Oscar\Provider\Privileges; use Oscar\Service\ProjectGrantApiService; use Oscar\Traits\UseLoggerService; use Oscar\Traits\UseLoggerServiceTrait; use Oscar\Traits\UseProjectGrantApiService; use Oscar\Traits\UseProjectGrantApiServiceTrait; use Throwable; class ActivityNotesController extends AbstractOscarController implements UseProjectGrantApiService class ActivityNotesController extends AbstractOscarController implements UseProjectGrantApiService, UseLoggerService { use UseProjectGrantApiServiceTrait; use UseProjectGrantApiServiceTrait, UseLoggerServiceTrait; public function apiAction() { Loading Loading @@ -72,52 +74,8 @@ class ActivityNotesController extends AbstractOscarController implements UseProj private function getNotes() { $activity_id = $this->getRequest()->getQuery('activityid'); // if (!$activity_id) { // throw new \Exception("activityid query param mandatory"); // } // // // /** @var Activity $activity */ // $activity = $this->getEntityManager()->getRepository(Activity::class)->find($activity_id); // if (!$activity) { // throw new \Exception("activityid not found in DB"); // } // // $this->getOscarUserContextService()->check(Privileges::ACTIVITY_NOTES_SHOW, $activity); // // $allNotes = $this->getEntityManager() // ->getRepository(ActivityNote::class) // ->createQueryBuilder('activitynotes') // ->select('activitynotes') // ->where('activitynotes.activity = :activity_id') // ->addOrderBy('COALESCE(activitynotes.dateUpdated, activitynotes.dateCreated)', 'DESC') // ->setParameter('activity_id', $activity_id) // ->getQuery() // ->getResult(); // // $json = [ // 'notes' => [] // ]; // // /** @var ActivityNote $note */ // foreach ($allNotes as $note) { // $date_updated = $note->getDateCreated()->format(DateTime::ATOM); // if ($note->getDateUpdated() != NULL) { // $date_updated = $note->getDateUpdated()->format(DateTime::ATOM); // } // // $json['notes'][] = [ // 'id' => $note->getId(), // 'content' => $note->getContent(), // 'date_updated' => $date_updated, // 'created_by' => [ // 'id' => $note->getCreatedBy() ? $note->getCreatedBy()->getId() : -1, // 'first_name' => $note->getCreatedBy() ? $note->getCreatedBy()->getFirstName() : "", // 'last_name' => $note->getCreatedBy() ? $note->getCreatedBy()->getLastName() : "", // ], // ]; // } $json = $this->getProjectGrantApiService()->getNotesActivity($activity_id, $this->url(), $this->getOscarUserContextService()); $activity = $this->getEntityManager()->getRepository(Activity::class)->find($activity_id); $json = $this->getProjectGrantApiService()->getNotesActivity($activity, $this->url(), $this->getOscarUserContextService()); $response = new JsonModel(); $response->setVariables($json); Loading @@ -125,6 +83,9 @@ class ActivityNotesController extends AbstractOscarController implements UseProj } private function createNote($action_note_json, $activity) { $this->getLoggerService()->info("createNote"); $this->getLoggerService()->info("by: " . $this->getCurrentPerson()); $note = new ActivityNote(); $note->setContent($action_note_json->content); $note->setCreatedBy($this->getCurrentPerson()); Loading
module/Oscar/src/Oscar/Controller/ActivityNotesControllerFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ class ActivityNotesControllerFactory implements FactoryInterface $c = new ActivityNotesController(); $c->setEntityManager($container->get(EntityManager::class)); $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setLoggerService($container->get('Logger')); $c->setProjectGrantApiService($container->get(ProjectGrantApiService::class)); return $c; } Loading
module/Oscar/src/Oscar/Controller/ActivityPaymentController.php +82 −72 Original line number Diff line number Diff line Loading @@ -10,17 +10,23 @@ namespace Oscar\Controller; use Oscar\Entity\Activity; use Oscar\Entity\ActivityPayment; use Oscar\Exception\OscarException; use Oscar\Form\ActivityPaymentForm; use Oscar\Provider\Privileges; use Oscar\Service\ActivityPaymentService; use Oscar\Service\NotificationService; use Oscar\Service\PersonService; use Oscar\Service\ProjectGrantApiService; use Oscar\Service\ProjectGrantService; use Laminas\Http\Request; use Laminas\View\Model\JsonModel; use Laminas\View\Model\ViewModel; use Oscar\Traits\UseServiceContainer; use Oscar\Traits\UseServiceContainerTrait; class ActivityPaymentController extends AbstractOscarController class ActivityPaymentController extends AbstractOscarController implements UseServiceContainer { use UseServiceContainerTrait; /////////////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES /** @var ProjectGrantService */ Loading Loading @@ -83,9 +89,6 @@ class ActivityPaymentController extends AbstractOscarController /////////////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES /** * Retourne les versements à venir dans les 15 jours à venir. */ Loading Loading @@ -123,7 +126,6 @@ class ActivityPaymentController extends AbstractOscarController } /** * @return JsonModel */ Loading @@ -140,7 +142,10 @@ class ActivityPaymentController extends AbstractOscarController $method = $this->getHttpXMethod(); if( $method != "GET" && !$this->getOscarUserContextService()->hasPrivileges(Privileges::ACTIVITY_PAYMENT_MANAGE, $activity) ){ if ($method != "GET" && !$this->getOscarUserContextService()->hasPrivileges( Privileges::ACTIVITY_PAYMENT_MANAGE, $activity )) { $this->getResponseBadRequest("Vous ne disposez pas des droits suffisants pour gérer les versements"); } Loading @@ -148,12 +153,16 @@ class ActivityPaymentController extends AbstractOscarController case 'DELETE': try { /** @var ActivityPayment $payment */ $payment = $this->getProjectGrantService()->getActivityPaymentById($this->params()->fromQuery('id')); $payment = $this->getProjectGrantService()->getActivityPaymentById( $this->params()->fromQuery('id') ); $this->getProjectGrantService()->deleteActivityPayment($payment); return $this->getResponseOk("Le versement a bien été supprimé"); } catch (\Exception $e) { $this->getLoggerService()->error($e->getTraceAsString()); return $this->getResponseInternalError(sprintf(_("Impossible de supprimer le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible de supprimer le payment : %s"), $e->getMessage()) ); } Loading Loading @@ -183,7 +192,9 @@ class ActivityPaymentController extends AbstractOscarController return $this->getResponseOk("Le versement a bien été ajouté"); } catch (\Exception $e) { $this->getLoggerService()->error($e->getTraceAsString()); return $this->getResponseInternalError(sprintf(_("Impossible d'ajouter le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible d'ajouter le payment : %s"), $e->getMessage()) ); } } Loading @@ -193,7 +204,9 @@ class ActivityPaymentController extends AbstractOscarController $this->getProjectGrantService()->updateActivityPayment($postedDatas); return $this->getResponseOk("Le versement a bien été modifié"); } catch (\Exception $e) { return $this->getResponseInternalError(sprintf(_("Impossible de modifier le payment : %s"), $e->getMessage())); return $this->getResponseInternalError( sprintf(_("Impossible de modifier le payment : %s"), $e->getMessage()) ); } } Loading @@ -212,67 +225,73 @@ class ActivityPaymentController extends AbstractOscarController $search = $this->params()->fromQuery('q', ''); return $this->getProjectGrantService()->getListActivityPayment($search, $page); } } public function restAction() { // Deprecated } /** * @return ActivityPaymentService * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ private function getActivityPaymentService(): ActivityPaymentService { return $this->getServiceContainer()->get(ActivityPaymentService::class); } public function restAction(){ //var_dump($this->getRequest()); public function indexRestAction() { /** @var Request $request */ $request = $this->getRequest(); $response = new JsonModel(); /** @var Activity $entity */ $entity = $this->getEntityManager()->getRepository(Activity::class)->find($this->params()->fromRoute('idactivity')); $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity); if( !$entity ){ return $this->getResponseNotFound("Activité non trouvée"); } $activity = $this->getProjectGrantService()->getActivityById($this->params()->fromRoute('idactivity', null)); $versement = $this->getEntityManager()->getRepository(ActivityPayment::class)->find($this->params()->fromRoute('id')); if( !$entity ){ return $this->getResponseNotFound("Versement non trouvée"); } $method = $request->getMethod(); try { switch ($method) { case 'GET': /** @var ProjectGrantApiService $projectGrantApiService */ $projectGrantApiService = $this->getServiceContainer()->get(ProjectGrantApiService::class); $data = $projectGrantApiService->getActivityJson( $activity->getId(), $this->url(), $this->getOscarUserContextService(), 'payments' ); return $this->jsonOutput($data); switch( $this->getHttpXMethod() ){ case 'DELETE': return $this->getResponseOk('Le versement %s a bien été supprimé'); break; $this->getActivityPaymentService()->deletePayment($this->getActivityPaymentFromQuery()); return $this->getResponseOk("Versement supprimé"); case 'PUT': var_dump($request->getPost()); // return $this->getResponseOk('Le versement %s a bien été supprimé'); break; } $this->getActivityPaymentService()->createPayment($this->getJsonREST(), $activity); return $this->getResponseOk("Versement ajouté"); return $this->getResponseBadRequest("test"); case 'POST': $this->getActivityPaymentService()->updatePayment($this->getJsonREST(), $activity); return $this->getResponseOk("Versement modifié"); return $response; default: throw new \Exception("Action inconnue"); } public function indexRestAction(){ /** @var Request $request */ $request = $this->getRequest(); $response = new JsonModel(); /** @var Activity $entity */ $entity = $this->getEntityManager()->getRepository(Activity::class)->find($this->params()->fromRoute('idactivity')); $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity); if( !$entity ){ return $this->getResponseNotFound("Activité non trouvée"); } catch (\Exception $exception) { return $this->jsonError($exception->getMessage()); } // Récupération des payements $payments = []; /** @var ActivityPayment $payment */ foreach( $entity->getPayments() as $payment ){ $payments[] = $payment->json(); } $response->setVariable('method', $request->getMethod()) ->setVariable('payments_status', ActivityPayment::getStatusPayments()) ->setVariable('currencies', $this->getProjectGrantService()->getCurrencies(true)) ->setVariable('payments', $payments); protected function getActivityPaymentFromQuery( string $field = 'id') :ActivityPayment { $id = $this->params()->fromQuery($field, null); if( $id == null ){ throw new \Exception("ID obligatoire"); } return $response; return $this->getActivityPaymentService()->getPaymentById($id); } public function changeAction() Loading @@ -287,27 +306,18 @@ class ActivityPaymentController extends AbstractOscarController $this->getOscarUserContextService()->check(Privileges::ACTIVITY_PAYMENT_MANAGE, $entity->getActivity()); if ($request->getMethod() === "DELETE") { try { $entity->getActivity()->touch(); $this->getProjectGrantService()->deleteActivityPayment($entity); $this->getEntityManager()->flush(); $this->getActivityLogService()->addUserInfo( sprintf(" a supprimé un %s dans l'activité %s", $entity, $entity->getActivity()->log()), 'Activity', $entity->getActivity()->getId() ); } catch( \Exception $e ){ $this->getResponse()->setStatusCode(500); $response->setVariable('error', 'Impossible de supprimer cette échéance'); } return $response; throw new \Exception("DEPRECATED"); } else { /** @var ActivityPaymentForm $form */ $form = new ActivityPaymentForm(); $form->setAttribute('action', $this->url()->fromRoute(null, ['idactivity' => $entity->getActivity()->getId(), 'id' => $entity->getId()])); $form->setAttribute( 'action', $this->url()->fromRoute( null, ['idactivity' => $entity->getActivity()->getId(), 'id' => $entity->getId()] ) ); $form->setProjectGrantService($this->getProjectGrantService()); $form->init(); $form->bind($entity); Loading