@@ -90,8 +90,8 @@ public function showAction(Membership $member)
90
90
$ freezeForm = $ this ->createFreezeForm ($ member );
91
91
$ unfreezeForm = $ this ->createUnfreezeForm ($ member );
92
92
$ freezeChangeForm = $ this ->createFreezeChangeForm ($ member );
93
- $ closeForm = $ this ->createCloseForm ($ member );
94
- $ openForm = $ this ->createOpenForm ($ member );
93
+ $ flyingForm = $ this ->createFlyingForm ($ member );
94
+ $ withdrawnForm = $ this ->createWithdrawnForm ($ member );
95
95
$ deleteForm = $ this ->createDeleteForm ($ member );
96
96
97
97
$ note = new Note ();
@@ -197,8 +197,8 @@ public function showAction(Membership $member)
197
197
'freeze_form ' => $ freezeForm ->createView (),
198
198
'unfreeze_form ' => $ unfreezeForm ->createView (),
199
199
'freeze_change_form ' => $ freezeChangeForm ->createView (),
200
- 'close_form ' => $ closeForm ->createView (),
201
- 'open_form ' => $ openForm ->createView (),
200
+ 'flying_form ' => $ flyingForm ->createView (),
201
+ 'withdrawn_form ' => $ withdrawnForm ->createView (),
202
202
'delete_form ' => $ deleteForm ->createView (),
203
203
'time_log_new_form ' => $ timeLogNewForm ->createView (),
204
204
'time_log_delete_forms ' => $ timeLogDeleteForms ,
@@ -501,61 +501,94 @@ public function activeUserAccountAction(Request $request)
501
501
502
502
503
503
/**
504
- * Close member
504
+ * Close/Reopen member
505
505
*
506
- * @Route("/{id}/close ", name="member_close ", methods={"POST"})
506
+ * @Route("/{id}/withdrawn ", name="member_withdrawn ", methods={"POST"})
507
507
* @param Request $request
508
508
* @param Membership $member
509
509
* @return \Symfony\Component\HttpFoundation\RedirectResponse
510
510
*/
511
- public function closeAction (Request $ request , Membership $ member )
511
+ public function withdrawnAction (Request $ request , Membership $ member )
512
512
{
513
- $ this ->denyAccessUnlessGranted ('close ' , $ member );
514
513
515
514
$ current_user = $ this ->get ('security.token_storage ' )->getToken ()->getUser ();
516
515
$ session = new Session ();
517
516
518
- $ form = $ this ->createCloseForm ($ member );
517
+ $ form = $ this ->createWithdrawnForm ($ member );
519
518
$ form ->handleRequest ($ request );
520
519
521
520
if ($ form ->isSubmitted () && $ form ->isValid ()) {
521
+ $ withdrawn = $ form ->get ("withdrawn " )->getData ();
522
+ if ($ withdrawn ) {
523
+ $ this ->denyAccessUnlessGranted ('close ' , $ member );
524
+ if ($ member ->isWithdrawn ()) {
525
+ $ session ->getFlashBag ()->add ('error ' , 'Ce compte est déjà fermé ' );
526
+ return $ this ->redirectToShow ($ member );
527
+ }
528
+ $ member ->setWithdrawnDate (new \DateTime ('now ' ));
529
+ $ member ->setWithdrawnBy ($ current_user );
530
+ } else {
531
+ $ this ->denyAccessUnlessGranted ('open ' , $ member );
532
+ if (!$ member ->isWithdrawn ()) {
533
+ $ session ->getFlashBag ()->add ('error ' , 'Ce compte est déjà ouvert ' );
534
+ return $ this ->redirectToShow ($ member );
535
+ }
536
+ }
537
+ $ member ->setWithdrawn ($ withdrawn );
522
538
$ em = $ this ->getDoctrine ()->getManager ();
523
- $ member ->setWithdrawn (true );
524
- $ member ->setWithdrawnDate (new \DateTime ('now ' ));
525
- $ member ->setWithdrawnBy ($ current_user );
526
539
$ em ->persist ($ member );
527
540
$ em ->flush ();
528
541
529
- $ session ->getFlashBag ()->add ('success ' , 'Compte fermé ! ' );
542
+ if ($ withdrawn ) {
543
+ $ session ->getFlashBag ()->add ('success ' , 'Compte fermé ! ' );
544
+ } else {
545
+ $ session ->getFlashBag ()->add ('success ' , 'Compte ré-ouvert ! ' );
546
+ }
530
547
}
531
548
532
549
return $ this ->redirectToShow ($ member );
533
550
}
534
551
535
552
/**
536
- * Open member
553
+ * Change flying status member
537
554
*
538
- * @Route("/{id}/open ", name="member_open ", methods={"POST"})
555
+ * @Route("/{id}/flying ", name="member_flying ", methods={"POST"})
539
556
* @param Request $request
540
557
* @param Membership $member
541
558
* @return \Symfony\Component\HttpFoundation\RedirectResponse
542
559
*/
543
- public function openAction (Request $ request , Membership $ member )
560
+ public function flyingAction (Request $ request , Membership $ member )
544
561
{
545
- $ this ->denyAccessUnlessGranted ('open ' , $ member );
562
+ $ this ->denyAccessUnlessGranted ('flying ' , $ member );
563
+ $ current_user = $ this ->get ('security.token_storage ' )->getToken ()->getUser ();
564
+ $ session = new Session ();
546
565
547
- $ form = $ this ->createOpenForm ($ member );
566
+ $ form = $ this ->createFlyingForm ($ member );
548
567
$ form ->handleRequest ($ request );
549
568
550
569
if ($ form ->isSubmitted () && $ form ->isValid ()) {
551
- $ session = new Session ();
570
+ $ flying = $ form ->get ("flying " )->getData ();
571
+ if ($ flying ) {
572
+ if ($ member ->isFlying ()) {
573
+ $ session ->getFlashBag ()->add ('error ' , 'Ce compte est déjà volant ' );
574
+ return $ this ->redirectToShow ($ member );
575
+ }
576
+ } else {
577
+ if (!$ member ->isFlying ()) {
578
+ $ session ->getFlashBag ()->add ('error ' , 'Ce compte est déjà fixe ' );
579
+ return $ this ->redirectToShow ($ member );
580
+ }
581
+ }
582
+ $ member ->setFlying ($ flying );
552
583
$ em = $ this ->getDoctrine ()->getManager ();
553
-
554
- $ member ->setWithdrawn (false );
555
584
$ em ->persist ($ member );
556
585
$ em ->flush ();
557
586
558
- $ session ->getFlashBag ()->add ('success ' , 'Compte ré-ouvert ! ' );
587
+ if ($ flying ) {
588
+ $ session ->getFlashBag ()->add ('success ' , 'Le compte est volant ! ' );
589
+ } else {
590
+ $ session ->getFlashBag ()->add ('success ' , 'Le compte est fixe ! ' );
591
+ }
559
592
}
560
593
561
594
return $ this ->redirectToShow ($ member );
@@ -732,7 +765,6 @@ public function newAction(Request $request)
732
765
$ user ->setEmail ($ a_beneficiary ->getEmail ());
733
766
$ beneficiary = new Beneficiary ();
734
767
$ beneficiary ->setUser ($ user );
735
- $ beneficiary ->setFlying (false );
736
768
$ member ->setMainBeneficiary ($ beneficiary );
737
769
}
738
770
@@ -880,7 +912,6 @@ public function addBeneficiaryAction(Request $request)
880
912
881
913
$ beneficiary = new Beneficiary ();
882
914
$ beneficiary ->setUser (new User ());
883
- $ beneficiary ->setFlying (false );
884
915
$ beneficiary ->setEmail ($ a_beneficiary ->getEmail ());
885
916
886
917
$ form ->get ('beneficiary ' )->setData ($ beneficiary );
@@ -1118,29 +1149,31 @@ private function createFreezeChangeForm(Membership $member)
1118
1149
}
1119
1150
1120
1151
/**
1121
- * Creates a form to close a member entity.
1152
+ * Creates a form to close or open a member entity.
1122
1153
*
1123
1154
* @param Membership $member
1124
1155
* @return \Symfony\Component\Form\FormInterface
1125
1156
*/
1126
- private function createCloseForm (Membership $ member )
1157
+ private function createWithdrawnForm (Membership $ member )
1127
1158
{
1128
1159
return $ this ->createFormBuilder ()
1129
- ->setAction ($ this ->generateUrl ('member_close ' , array ('id ' => $ member ->getId ())))
1160
+ ->setAction ($ this ->generateUrl ('member_withdrawn ' , array ('id ' => $ member ->getId ())))
1161
+ ->add ('withdrawn ' , HiddenType::class, ['data ' => $ member ->isWithdrawn () ? 0 : 1 ])
1130
1162
->setMethod ('POST ' )
1131
1163
->getForm ();
1132
1164
}
1133
1165
1134
1166
/**
1135
- * Creates a form to open a member entity.
1167
+ * Creates a form to set flying for a member entity.
1136
1168
*
1137
1169
* @param Membership $member
1138
1170
* @return \Symfony\Component\Form\FormInterface
1139
1171
*/
1140
- private function createOpenForm (Membership $ member )
1172
+ private function createFlyingForm (Membership $ member )
1141
1173
{
1142
1174
return $ this ->createFormBuilder ()
1143
- ->setAction ($ this ->generateUrl ('member_open ' , array ('id ' => $ member ->getId ())))
1175
+ ->setAction ($ this ->generateUrl ('member_flying ' , array ('id ' => $ member ->getId ())))
1176
+ ->add ('flying ' , HiddenType::class, ['data ' => $ member ->isFlying () ? 0 : 1 ])
1144
1177
->setMethod ('POST ' )
1145
1178
->getForm ();
1146
1179
}
0 commit comments