/**
  * 
  * @param sfForm $form
  */
 private function fillImputation(sfForm $form)
 {
     // First, we get the objects we're gonna often need
     $object = $form->getObject();
     $imputation = $object->getImputation();
     //Fill the informations
     $this->setImputationDate($imputation->getDate());
     $this->setImputationType(Imputation::retrieveTypeAsString($imputation->getImputationType()));
     $this->setDuration(self::calculateDuration($form));
     $this->setDesignation($imputation->getAct()->getDesignation());
     $this->setPrice($imputation->getTotal());
     $this->setMethodOfPayment(self::retrieveDesignationFromId('ImputationMethodOfPayment', $imputation->getMethodOfPaymentId()));
     $this->setBuildingDesignation(self::retrieveDesignationFromId('Building', $imputation->getBuildingId()));
     $this->setRoomDesignation(self::retrieveDesignationFromId('Room', $imputation->getRoomId()));
     $this->setComputerName(self::retrieveComputerName($form));
     $this->setComputerTypeOfConnexion(self::retrieveComputerTypeOfConnexion($form));
     $this->setUserArchiveId(self::retrieveUserArchiveId($form));
     $this->setImputationId($imputation->getId());
 }
Example #2
0
 /**
  *
  * @param $type_of_imputation
  * @param $request
  * @param $imputation_parameters
  * @param $mop_ids
  * @param $account_ids
  * @param $computer_ids
  */
 private function processEachForm($type_of_imputation, sfWebRequest $request, $imputation_parameters, $mop_ids, $account_ids, $computer_ids = null)
 {
     $ret = true;
     $first = true;
     /*For each user represented by its method_of_payment_id (mop_id):*/
     foreach ($mop_ids as $user_id => $mop_id) {
         //we set the parameters:
         $imputation_parameters['imputation']['user_id'] = $user_id;
         $imputation_parameters['imputation']['method_of_payment_id'] = $mop_id;
         $imputation_parameters['imputation']['account_id'] = $account_ids[$user_id];
         if ($imputation_parameters['imputation']['imputation_type'] == ImputationDefaultValues::UNITARY_SERVICE_TYPE) {
             $imputation_parameters['computer_id'] = $computer_ids[$user_id];
         }
         //we set theses parameters in the request object:
         $request->setParameter('imputation_' . $type_of_imputation, $imputation_parameters);
         //create the object which will be used for creating the form:
         $object = Imputation::instanciate($type_of_imputation);
         $object->getImputation()->setUserId($user_id);
         $object->getImputation()->setActId($imputation_parameters['imputation']['act_id']);
         //we build the form based on the object:
         $this->form = Imputation::instanciateForm($type_of_imputation, $object, array('culture' => ParametersConfiguration::getDefault('default_language')));
         //we try to validate this form with request which contains the correct parameters:
         if ($imputation_parameters['imputation']['imputation_type'] == ImputationDefaultValues::COUNTABLE_SERVICE_TYPE) {
             if ($imputation_parameters['account_is_shared'] == 'on' && isset($this->current_account_id)) {
                 $ret = $ret && $this->processForm($request, $this->form, $this->current_account_id);
             } else {
                 $ret = $ret && $this->processForm($request, $this->form);
             }
         } else {
             $ret = $ret && $this->processForm($request, $this->form);
         }
         $first = false;
     }
     return $ret;
 }