Example #1
0
 public function executeUpdateAjaxCompanion(sfWebRequest $request)
 {
     #security
     if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Coordinator'), false)) {
         $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer());
         $this->redirect('dashboard/index');
     }
     # id parameter is companion id which then edits
     if ($request->hasParameter('id')) {
         $cmp = CompanionPeer::retrieveByPK($request->getParameter('id'));
         $this->forward404Unless($cmp);
     } else {
         #new companion adding to existing passenger
         $cmpnnPid = $request->getParameter('campnn[passenger_id]');
         $cmp = new Companion();
         if (isset($cmpnnPid)) {
             $cmp->setPassengerId($cmpnnPid);
         } else {
             $cmp->setPassengerId($request->getParameter('passenger_id'));
         }
     }
     $this->itId = $request->getParameter('itId');
     #referer
     if ($request->hasParameter('referer')) {
         $this->referer = $request->getParameter('referer');
     } else {
         $this->referer = $request->getReferer() ? $request->getReferer() : $this->generateUrl('companion', array(), true);
     }
     $form = new CompanionForm($cmp);
     if ($request->getParameter('back')) {
         $this->back = $request->getParameter('back');
     }
     # validate and save
     if ($request->isMethod('post')) {
         $form->bind($request->getParameter($form->getName()));
         if ($form->isValid()) {
             $is_new = $form->isNew();
             if ($is_new) {
                 $person = new Person();
                 $names = explode(" ", $form->getValue('name'));
                 $person->setFirstName($names[0]);
                 if (isset($names[1])) {
                     $person->setLastName($names[1]);
                 } else {
                     $person->setLastName(NULL);
                 }
                 $person->setDayPhone($form->getValue('companion_phone'));
                 $person->setDayComment($form->getValue('companion_phone_comment'));
                 $person->save();
                 $comp = $form->getObject();
                 $comp->setName($form->getValue('name'));
                 $comp->setRelationship($form->getValue('relationship'));
                 $comp->setDateOfBirth($form->getValue('date_of_birth'));
                 $comp->setWeight($form->getValue('weight'));
                 $comp->setCompanionPhone($form->getValue('companion_phone'));
                 $comp->setCompanionPhoneComment($form->getValue('companion_phone_comment'));
                 $comp->setPersonId($person->getId());
                 $comp->save();
             } else {
                 $form->save();
             }
             $this->getUser()->setFlash('success', 'Companion has successfully ' . ($is_new ? 'created' : 'saved') . '!');
             $this->companion_saved = $form->getValue('name');
             $this->companion_id = $comp->getId();
             $this->relationship = $form->getValue('relationship');
         }
     }
     $passenger = $cmp->getPassenger();
     $this->forward404Unless($passenger);
     $this->passenger = $passenger;
     $this->form_a = $form;
     $this->cmp = $cmp;
 }