src/Service/StatusService.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Status;
  4. use App\Repository\StatusRepository;
  5. /**
  6.  * Class StatusService
  7.  * @package App\Service
  8.  */
  9. class StatusService extends BaseService
  10. {
  11.     /**
  12.      * StatusService constructor.
  13.      * @param StatusRepository $repository
  14.      */
  15.     public function __construct(
  16.         StatusRepository $repository,
  17.         BaseService $baseService
  18.     ) {
  19.         $this->reflectFromParent($baseService);
  20.         $this->repository $repository;
  21.     }
  22.     public function getStatus($statusName)
  23.     {
  24.         return @constant('App\Entity\Status::' $statusName);
  25.     }
  26.     public function processStatus($process)
  27.     {
  28.         switch ($process) {
  29.             case 'submit_your_application':
  30.                 return [
  31.                     Status::STATUS_APPLICATION_RECEIVED,
  32.                     Status::STATUS_APPLICATION_REFUSED
  33.                 ];
  34.             case 'examination_of_your_profile':
  35.                 return [
  36.                     Status::STATUS_JURY_BOOKED,
  37.                     Status::STATUS_JURY_ACCEPTED,
  38.                     Status::STATUS_JURY_REFUSED
  39.                 ];
  40.             case 'result_of_your_tests':
  41.                 return [
  42.                     Status::STATUS_TEST_VALIDATED,
  43.                     Status::STATUS_TEST_FAILED,
  44.                     Status::STATUS_TEST_NOT_TAKEN
  45.                 ];
  46.             case 'interview':
  47.                 return [
  48.                     Status::STATUS_INTERVIEW_INVITED,
  49.                     Status::STATUS_INTERVIEW_DONE,
  50.                     Status::STATUS_INTERVIEW_SKIPPED,
  51.                     Status::STATUS_STUDENT_REFUSED
  52.                 ];
  53.             case 'selection_result':
  54.                 return [
  55.                     Status::STATUS_STUDENT_ELIGIBLE,
  56.                     Status::STATUS_STUDENT_ENROLLED
  57.                 ];
  58.         }
  59.     }
  60.     public function getAllowStatus($currentStatus)
  61.     {
  62.         $result = [];
  63.         switch ($currentStatus) {
  64.             case Status::STATUS_PROSPECT:
  65.             case Status::STATUS_NEED_CONTACT:
  66.                 $result = [
  67.                     Status::STATUS_PROSPECT,
  68.                     Status::STATUS_NEED_CONTACT,
  69.                     Status::STATUS_CONTACTED_WAITING,
  70.                     Status::STATUS_APPLICATION_RECEIVED,
  71.                 ];
  72.                 break;
  73.             case Status::STATUS_CONTACTED_WAITING:
  74.             case Status::STATUS_APPLICATION_RECEIVED:
  75.             case Status::STATUS_APPLICATION_REFUSED:
  76.                 $result = [
  77.                     Status::STATUS_PROSPECT,
  78.                     Status::STATUS_NEED_CONTACT,
  79.                     Status::STATUS_CONTACTED_WAITING,
  80.                     Status::STATUS_APPLICATION_RECEIVED,
  81.                     Status::STATUS_APPLICATION_REFUSED,
  82.                     Status::STATUS_JURY_BOOKED,
  83.                 ];
  84.                 break;
  85.             case Status::STATUS_JURY_BOOKED:
  86.                 $result = [
  87.                     Status::STATUS_CONTACTED_WAITING,
  88.                     Status::STATUS_APPLICATION_RECEIVED,
  89.                     Status::STATUS_APPLICATION_REFUSED,
  90.                     Status::STATUS_JURY_BOOKED,
  91.                     Status::STATUS_JURY_ACCEPTED,
  92.                     Status::STATUS_JURY_REFUSED
  93.                 ];
  94.                 break;
  95.             case Status::STATUS_JURY_ACCEPTED:
  96.             case Status::STATUS_TEST_VALIDATED:
  97.                 $result = [
  98.                     Status::STATUS_JURY_BOOKED,
  99.                     Status::STATUS_JURY_ACCEPTED,
  100.                     Status::STATUS_JURY_REFUSED,
  101.                     Status::STATUS_TEST_VALIDATED,
  102.                     Status::STATUS_TEST_FAILED,
  103.                     Status::STATUS_TEST_NOT_TAKEN,
  104.                     Status::STATUS_INTERVIEW_INVITED,
  105.                 ];
  106.                 break;
  107.             case Status::STATUS_JURY_REFUSED:
  108.                 $result = [
  109.                     Status::STATUS_JURY_BOOKED,
  110.                     Status::STATUS_JURY_ACCEPTED,
  111.                     Status::STATUS_JURY_REFUSED
  112.                 ];
  113.                 break;
  114.             case Status::STATUS_TEST_FAILED:
  115.             case Status::STATUS_TEST_NOT_TAKEN:
  116.                 $result = [
  117.                     Status::STATUS_JURY_BOOKED,
  118.                     Status::STATUS_JURY_ACCEPTED,
  119.                     Status::STATUS_JURY_REFUSED,
  120.                     Status::STATUS_TEST_VALIDATED,
  121.                     Status::STATUS_TEST_FAILED,
  122.                     Status::STATUS_TEST_NOT_TAKEN
  123.                 ];
  124.                 break;
  125.             case Status::STATUS_INTERVIEW_INVITED:
  126.                 $result = [
  127.                     Status::STATUS_JURY_ACCEPTED,
  128.                     Status::STATUS_JURY_REFUSED,
  129.                     Status::STATUS_TEST_VALIDATED,
  130.                     Status::STATUS_TEST_FAILED,
  131.                     Status::STATUS_TEST_NOT_TAKEN,
  132.                     Status::STATUS_INTERVIEW_INVITED,
  133.                     Status::STATUS_INTERVIEW_DONE,
  134.                     Status::STATUS_INTERVIEW_SKIPPED
  135.                 ];
  136.                 break;
  137.             case Status::STATUS_INTERVIEW_DONE:
  138.                 $result = [
  139.                     Status::STATUS_INTERVIEW_INVITED,
  140.                     Status::STATUS_INTERVIEW_DONE,
  141.                     Status::STATUS_INTERVIEW_SKIPPED,
  142.                     Status::STATUS_STUDENT_ELIGIBLE,
  143.                     Status::STATUS_STUDENT_REFUSED
  144.                 ];
  145.                 break;
  146.             case Status::STATUS_INTERVIEW_SKIPPED:
  147.                 $result = [
  148.                     Status::STATUS_INTERVIEW_INVITED,
  149.                     Status::STATUS_INTERVIEW_DONE,
  150.                     Status::STATUS_INTERVIEW_SKIPPED
  151.                 ];
  152.                 break;
  153.             case Status::STATUS_STUDENT_ELIGIBLE:
  154.                 $result = [
  155.                     Status::STATUS_INTERVIEW_INVITED,
  156.                     Status::STATUS_INTERVIEW_DONE,
  157.                     Status::STATUS_INTERVIEW_SKIPPED,
  158.                     Status::STATUS_STUDENT_ELIGIBLE,
  159.                     Status::STATUS_STUDENT_REFUSED,
  160.                     Status::STATUS_STUDENT_ENROLLED
  161.                 ];
  162.                 break;
  163.             case Status::STATUS_STUDENT_REFUSED:
  164.                 $result = [
  165.                     Status::STATUS_INTERVIEW_INVITED,
  166.                     Status::STATUS_INTERVIEW_DONE,
  167.                     Status::STATUS_INTERVIEW_SKIPPED,
  168.                     Status::STATUS_STUDENT_ELIGIBLE,
  169.                     Status::STATUS_STUDENT_REFUSED,
  170.                 ];
  171.                 break;
  172.             case Status::STATUS_STUDENT_ENROLLED:
  173.                 $result = [
  174.                     Status::STATUS_STUDENT_ELIGIBLE,
  175.                     Status::STATUS_STUDENT_REFUSED,
  176.                     Status::STATUS_STUDENT_ENROLLED,
  177.                 ];
  178.                 break;
  179.             case Status::STATUS_DISCLAIMER:
  180.                 $result = [];
  181.                 break;
  182.             case Status::STATUS_CONTACT_NO_RESPONSE:
  183.                 $result = [
  184.                     Status::STATUS_STUDENT_ENROLLED
  185.                 ];
  186.                 break;
  187.             default:
  188.                 $result = [
  189.                     Status::STATUS_NEED_CONTACT,
  190.                     Status::STATUS_CONTACTED_WAITING,
  191.                     Status::STATUS_APPLICATION_RECEIVED,
  192.                     Status::STATUS_APPLICATION_REFUSED,
  193.                     Status::STATUS_JURY_BOOKED,
  194.                     Status::STATUS_JURY_ACCEPTED,
  195.                     Status::STATUS_JURY_REFUSED,
  196.                     Status::STATUS_TEST_VALIDATED,
  197.                     Status::STATUS_TEST_FAILED,
  198.                     Status::STATUS_TEST_NOT_TAKEN,
  199.                     Status::STATUS_INTERVIEW_INVITED,
  200.                     Status::STATUS_INTERVIEW_DONE,
  201.                     Status::STATUS_INTERVIEW_SKIPPED,
  202.                     Status::STATUS_STUDENT_ELIGIBLE,
  203.                     Status::STATUS_STUDENT_REFUSED,
  204.                     Status::STATUS_STUDENT_ENROLLED,
  205.                 ];
  206.                 break;
  207.         };
  208.         return array_merge($result, [Status::STATUS_CONTACT_REFUSEDStatus::STATUS_DISCLAIMERStatus::STATUS_CONTACT_NO_RESPONSE]);
  209.     }
  210. }