new \Where(\Where::_and([ \Where::_operator(self::$PROJECT,'=',$id), ])), \Query::SORT => [self::$POS=>'ASC'], ],$isAssoc); } public static function afterUadd($values, $id, $result) { parent::afterUadd($values, $id, $result); // TODO: Change the autogenerated stub $upd = []; if(isset($values['type'])){ $upd[self::$TYPE] = $type = intval($values['type']); if($type==3){ $upd[self::$VALUE] = 0; } } if($upd) { self::updateById($id, $upd); } $C = self::getByID($id); Project::remath($C[self::$PROJECT]); } static function getForProjectFormatted($id){ $res = []; $a = self::getForProject($id); foreach ($a as $v){ $res[] = self::format($v); } return $res; } static function format($v){ return [ 'id' => intval($v[self::$ID]), 'title' => trim((string)$v[self::$NAME]), 'group' => intval($v[self::$GROUP]), 'pos' => intval($v[self::$POS]), 'type' => intval($v[self::$TYPE]), 'value' => floatval($v[self::$VALUE]), ]; } public static function getFormInputs(\ModuleBZ\Form &$form, array $data, $C, bool $isEdit) { $project_id = intval($C ? $C[self::$PROJECT] : $data['project']); if($project = Project::isProfileMy($project_id)) { $form ->addInput((new Select()) ->setLabel('Группа') ->setValue(intval($C[self::$GROUP])) ->setName(self::$GROUP) ->setOptions(Group::getNameListForProject($project_id)) ) ->addInput((new Text()) ->setLabel('Название') ->setValue($C[self::$NAME]) ->setName(self::$NAME) ) ->addInput((new Text()) ->setLabel('Коэффициент') ->setValue($C ? $C[self::$VALUE] : 1) //->setName(self::$VALUE) ->setName('value') ) ; if(!$C){ $form->addInput((new Hidden()) ->setValue(intval($data['project'])) ->setName(self::$PROJECT) ); $form->addInput((new Select()) ->setLabel('Тип свойства') ->setValue(eComparePropertyType::TEXT) //->setName(self::$TYPE) ->setName('type') ->setOptions(eComparePropertyType::getNameList()) ); } } else { $project_id = 0; } } static function columnInfo() : array { return [ new C([ C::VAR_NAME =>&self::$ID, C::TYPE =>eColumnType::INT, C::AUTO_INCREMENT =>true, C::PRIMARY =>true, C::DEFAULT =>0, C::HIDDEN =>true, C::TH =>V::get(Vars::$ID), ]), new C([ C::VAR_NAME => &self::$NAME, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 1023, C::TH => V::get(Vars::$NAME), ]), new C([ C::VAR_NAME => &self::$GROUP, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$TYPE, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$POS, C::TYPE => eColumnType::INT, C::DEFAULT => time(), ]), new C([ C::VAR_NAME => &self::$PROJECT, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$PROFILE, C::TYPE => eColumnType::INT, C::DEFAULT => intval(PID) ]), new C([ C::VAR_NAME => &self::$PORTAL, C::TYPE => eColumnType::INT, C::DEFAULT => intval(\Site::$portal_id) ]), new C([ C::VAR_NAME => &self::$VALUE, C::TYPE => eColumnType::DOUBLE, C::LENGTH => '10,2', C::DEFAULT => 0, ]), new C([ C::VAR_NAME => &self::$ACCOUNT, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$ACCOUNT), C::DEFAULT => intval(\Site::$owner_id), c::HIDDEN=>true, c::FUNC_VALUE => function($v){ if($id = $v[self::$ACCOUNT]) { return \Account::getName( \Account::getByID($id) ); } else return '-'; }, ]), new C([ C::VAR_NAME => &self::$CREATED, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::TH => V::get(Vars::$CREATED), C::DEFAULT => time(), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$CREATED]);}, c::HIDDEN=>true, ]), new C([ C::VAR_NAME => &self::$UPDATED, C::TYPE => eColumnType::INT, C::DEFAULT => time(), C::TH => V::get(Vars::$UPDATED), c::FUNC_VALUE => function($v){return self::formatDate($v[self::$UPDATED]);}, c::HIDDEN=>true, ]), ]; } } new Property(); ///