. */ namespace SP\Forms; use SP\Core\Acl\ActionsInterface; use SP\Core\Exceptions\ValidationException; use SP\DataModel\ClientData; use SP\Http\Request; /** * Class ClientForm * * @package SP\Forms */ class ClientForm extends FormBase implements FormInterface { /** * @var ClientData */ protected $clientData; /** * Validar el formulario * * @param $action * @return bool * @throws \SP\Core\Exceptions\ValidationException */ public function validate($action) { switch ($action) { case ActionsInterface::CLIENT_CREATE: case ActionsInterface::CLIENT_EDIT: $this->analyzeRequestData(); $this->checkCommon(); break; } return true; } /** * Analizar los datos de la petición HTTP * * @return void */ protected function analyzeRequestData() { $this->clientData = new ClientData(); $this->clientData->setId($this->itemId); $this->clientData->setName(Request::analyze('name')); $this->clientData->setDescription(Request::analyze('description')); $this->clientData->setIsGlobal(Request::analyze('isglobal', 0, false, 1)); } /** * @throws ValidationException */ protected function checkCommon() { if (!$this->clientData->getName()) { throw new ValidationException(__u('Es necesario un nombre de cliente')); } } /** * @return ClientData */ public function getItemData() { return $this->clientData; } }