Beispiel #1
0
 /**
  * for a given request, will toggle fees on/off depeneding on the request status
  * will take care not to duplicate fees that are already applied
  *
  * @param \PhalconRest\Models\Request $request            
  */
 private function toggleFees(\PhalconRest\Models\Requests $request)
 {
     // are we on or off?
     if ($request->submit_status == self::CONFIRMED) {
         $fees = $this->getFees($request);
         foreach ($fees as $fee) {
             $charge = new \PhalconRest\Models\Charges();
             $charge->registration_id = $request->registration_id;
             $charge->request_id = $request->id;
             $charge->name = $fee['name'];
             $charge->amount = $fee['amount'];
             $attendee = $request->Registrations->Attendees;
             $charge->account_id = $attendee->account_id;
             if (!$charge->create()) {
                 throw new ValidationException("Internal error saving a request", array('code' => '45623457456987986', 'dev' => 'Error while processing RequestEntity->toggleFee().  Could not create Charge record.'), $charge->getMessages());
             }
         }
     } else {
         // remove fees
         foreach (\PhalconRest\Models\Charges::find("request_id={$request->id}") as $charge) {
             if (!$charge->delete()) {
                 throw new ValidationException("Internal error clearing out charges", array('code' => '234546678345', 'dev' => 'Error while attempting to delete a charge for a request that is no longer CONFIRMED.'), $charge->getMessages());
             }
         }
     }
 }