/** * * @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()); }
/** * * @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; }