$props){ foreach ($props as $prop_id=>$v){ $value = $v['value']; $max['property'][$prop_id] = max( $max['property'][$prop_id], $value ); } } foreach ($items as $item){ foreach ($properties as $prop){ $item_id = $item['id']; $prop_id = $prop['id']; $group_id = $prop['group']; $value = $values[$item_id][$prop_id]['value']; $totals['group'][$group_id][$item_id] += $prop['value']*$value; } } foreach ($totals['group'] as $group_id=>$item_ids){ foreach ($item_ids as $item_id=>$value){ $max['group'][$group_id] = max( $max['group'][$group_id] , $value ); } } foreach ($items as $v){ $max['item'] = max( $max['item'],$v['total'] ); } $id = intval($project[self::$ID]); $soft = Soft::getByID($id); return [ 'id' => intval($project[self::$ID]), 'title' => Soft::getName($soft), 'properties' => $properties, 'groups' => $groups, 'items' => $items, 'values' => $values, 'max' => $max, 'total' => $totals, 'color' => $project[self::$COLOR] ? : '#FF0000', ]; } static function remath($id){ $id = intval($id); $a = Item::getForProject($id); foreach ($a as $v){ Item::remath($v[Item::$ID]); } } static function getMyList(){ $res = []; $r = self::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(self::$PROFILE,'=',intval(PID)) ])) ]); while($l = \DB::fetch($r)){ $res[] = self::format($l); } return $res; } public static function getFormInputs(\ModuleBZ\Form &$form, array $data, $C, bool $isEdit) { //parent::getFormInputs($form, $data, $C, $isEdit); // TODO: Change the autogenerated stub $form->addInput((new Text()) ->setName(self::$NAME) ->setValue($C[self::$NAME]) ->setLabel('Название проекта') ); } 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::$COLOR, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 7, C::TH => V::get(Vars::$COLOR), ]), new C([ C::VAR_NAME => &self::$PROFILE, C::TYPE => eColumnType::INT, C::DEFAULT => intval(PID), c::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$PORTAL, C::TYPE => eColumnType::INT, C::LENGTH => 11, C::DEFAULT => intval(\Site::$portal_id), c::HIDDEN => true, ]), 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, ]), 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 Project(); ///