Beispiel #1
0
 public function testCustodianCRUD()
 {
     $address = Address::registerAddress('Teststrasse 142', '6360', 'Cham', 'Schweiz');
     $this->init->addressRepo->store($address);
     $custodian = Custodian::registerCustodian('f', 'Toranto', 'Testinger', '041 324 33 22', $address, 'Herro', '*****@*****.**', new \DateTime(), new \DateTime(), 5, 'alles nur ein Test', 'und auch Notizen');
     $passenger = Passenger::registerPassenger('f', 'Toranto', 'Testinger', '041 324 33 22', $address, 'Herro', true, false, '*****@*****.**', new \DateTime(), new \DateTime(), 5, 'alles nur ein Test', 'und auch Notizen');
     $passenger2 = Passenger::registerPassenger('m', 'Toranto2', 'Testinger2', '041 324 33 222', $address, 'Herr', true, false, '*****@*****.**', new \DateTime(), new \DateTime(), 5, 'alles nur ein Test', 'und auch Notizen');
     $custodian->assignPassenger($passenger);
     $custodian->assignPassenger($passenger2);
     $passenger->assignCustodian($custodian);
     $this->init->custodianRepo->store($custodian);
     $this->init->passengerRepo->store($passenger);
     $this->init->passengerRepo->store($passenger2);
     $this->init->em->flush();
     $custodianFind = $this->init->custodianRepo->find($custodian->getId());
     $this->assertEquals($custodian, $custodianFind);
     $this->custodianRemove($custodian);
 }
 /**
  * @param PassengerRegisterDTO $passengerDTO
  * @return Passenger
  */
 public function registerDTOtoNewPassenger(PassengerRegisterDTO $passengerDTO)
 {
     $address = $this->addressAssembler->addressLookaheadDTOtoAddress($passengerDTO->lookaheadaddress);
     $address->setBuilding($passengerDTO->building);
     $passenger = Passenger::registerPassenger($passengerDTO->gender, $passengerDTO->firstname, $passengerDTO->lastname, $passengerDTO->telephone, $address, $passengerDTO->title, $passengerDTO->isInWheelChair, $passengerDTO->hasMonthlyBilling, $passengerDTO->email, $passengerDTO->entryDate, $passengerDTO->birthday, $passengerDTO->extraMinutes, $passengerDTO->details, $passengerDTO->notice, $passengerDTO->isAuthorizedToRide);
     foreach ($passengerDTO->handicaps as $handicap) {
         $passenger->assignHandicap($handicap);
     }
     foreach ($passengerDTO->insurances as $insurance) {
         $passenger->assignInsurance($insurance);
     }
     foreach ($passengerDTO->contradictVehicleCategories as $category) {
         $passenger->assignContradictVehicleCategory($category);
     }
     foreach ($passengerDTO->personCategories as $category) {
         $passenger->assignPersonCategory($category);
     }
     if ($passengerDTO->custodian) {
         $passenger->assignCustodian($passengerDTO->custodian);
     }
     return $passenger;
 }
Beispiel #3
0
 public function testPassengerCRUD()
 {
     $handicap = $this->createHandicap('hörbehindert');
     $insurance = $this->createInsurance('AHV');
     $category = $this->createPersonCategory('Sponsor');
     $address = Address::registerAddress('Teststrasse 142', '6360', 'Cham', 'Schweiz');
     $this->init->addressRepo->store($address);
     $passenger = Passenger::registerPassenger('f', 'Toranto', 'Testinger', '041 324 33 22', $address, 'Herro', true, false, '*****@*****.**', new \DateTime(), new \DateTime(), 5, 'alles nur ein Test', 'und auch Notizen');
     $passenger->assignHandicap($handicap);
     $passenger->assignInsurance($insurance);
     $passenger->assignPersonCategory($category);
     $this->init->passengerRepo->store($passenger);
     $this->init->em->flush();
     $passengerFind = $this->init->passengerRepo->find($passenger->getId());
     $this->assertEquals($passenger, $passengerFind);
     $passenger->updatePassengerData('f', 'Mila', 'Tolina', '0293292323', $address, 'Lady', true, false, '*****@*****.**', new \DateTime(), new \DateTime(), 2, 'goodies', 'notices');
     $this->init->passengerRepo->store($passenger);
     $this->init->em->flush();
     $passengerFind = $this->init->passengerRepo->find($passenger->getId());
     $this->assertEquals($passenger, $passengerFind);
     $this->passengerCreateAbsent($passenger);
     $this->passengerRemove($passenger);
 }
 public function testDrivingOrderCRUD()
 {
     $addressFrom = $this->init->createTestAddressBaar();
     $addressTo = $this->init->createTestAddressGoldau();
     $passenger = Passenger::registerPassenger('m', 'Arthuro', 'Benatone', '+418182930', $addressFrom);
     $this->init->passengerRepo->store($passenger);
     $date = $this->init->dateTimeService->convertDateTimeStringToUTCDateTime('20.05.2014 00:00');
     $time = $this->init->dateTimeService->convertDateTimeStringToUTCDateTime('20.05.2014 15:05');
     $route = Route::registerRoute($addressFrom, $addressTo, 0, 0);
     $route->setDuration(15);
     $route->setDistance(6);
     $this->init->routeRepo->store($route);
     $drivingOrder = DrivingOrder::registerDrivingOrder($passenger, $date, $time, 2, 'möchte nicht hinten sitzen');
     $drivingOrder->assignRoute($route);
     $passenger->assignDrivingOrder($drivingOrder);
     $drivingOrder->assignPassenger($passenger);
     $this->init->drivingOrderRepo->store($drivingOrder);
     $this->init->em->flush();
     $this->assertNotNull($this->init->drivingOrderRepo->find($drivingOrder->getId()));
     //TimePeriod from start day of month to next start day of month
     $monthsAgo = 3;
     $monthDate = new \DateTime('today');
     $monthDate->modify('+' . $monthsAgo . ' month');
     $monthDate->format('first day of this month');
     $workingMonth = WorkingMonth::registerWorkingMonth($monthDate);
     $workingMonth->createWorkingDaysForThisMonth();
     foreach ($workingMonth->getWorkingDays() as $wd) {
         $this->init->workingDayRepo->store($wd);
     }
     $this->init->workingMonthRepo->store($workingMonth);
     $workingDays = $workingMonth->getWorkingDays();
     /**@var $shiftTypes ShiftType[] */
     $shiftTypes = $this->init->shiftTypeRepo->findAllActive();
     //create workingDays shifts, assign them drivingpools, get amount of needed drivers
     /** @var $workingDay WorkingDay */
     foreach ($workingDays as $workingDay) {
         /** @var $shiftType ShiftType */
         foreach ($shiftTypes as $shiftType) {
             $shift = Shift::registerShift($workingDay, $shiftType);
             $shift->setAmountOfDrivers(16);
             $workingDay->assignShift($shift);
             for ($i = 1; $i <= $shift->getAmountOfDrivers(); $i++) {
                 $drivingPool = DrivingPool::registerDrivingPool($shift);
                 $shift->assignDrivingPool($drivingPool);
                 $this->init->drivingPoolRepo->store($drivingPool);
             }
             $this->init->shiftRepo->store($shift);
         }
         $this->init->workingDayRepo->store($workingDay);
     }
     $this->init->em->flush();
     $this->assertNotNull($this->init->workingMonthRepo->find($workingMonth->getId()));
     $drivingAssertionPlans = $this->init->repeatedDrivingAssertionPlanRepo->findPlanForDate(new \DateTime());
     $this->assertNotNull($drivingAssertionPlans);
     $drivingPools = array();
     foreach ($workingMonth->getWorkingDays() as $wd) {
         foreach ($wd->getShifts() as $s) {
             foreach ($s->getDrivingPools() as $dp) {
                 array_push($drivingPools, $dp);
             }
         }
     }
     foreach ($drivingAssertionPlans as $drivingAssertionPlan) {
         $assertions = $drivingAssertionPlan->getRepeatedDrivingAssertions();
         foreach ($assertions as $assertion) {
             if ($assertion->matching($shift)) {
                 echo "\nmatches\n";
                 $drivingPool = DrivingPool::registerDrivingPool($shift);
                 $this->init->drivingPoolRepo->store($drivingPool);
             }
         }
     }
     $vehicles = $this->init->vehicleRepo->findAll();
     /**@var $vehicle Vehicle */
     foreach ($vehicles as $vehicle) {
         foreach ($vehicle->getServicePlans() as $sp) {
         }
     }
 }