$values[self::$CASHBACK] ]; return parent::_insert($values, $options); // TODO: Change the autogenerated stub } public function _update(\Where $w, array $values) { $values[self::$UPDATED] = time(); return parent::_update($w, $values); } static function get($profile_id,$group_id){ $res = null; $profile_id = intval($profile_id); $group_id = intval($group_id); $r = self::select($q = [ \Query::LEFT_JOINS => [ [Cashback::$table_name,Cashback::$ID,self::$CASHBACK] ], \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(self::$PROFILE,'=',$profile_id), \Where::_operator(self::$GROUP,'=',$group_id), ])), \Query::COUNT => 1, ]); if(\DB::numRows($r)){ $res = \DB::fetch($r); } return $res; } static function setProfileGroupValue($profile_id,$group_id,$value){ $profile_id = intval($profile_id); $group_id = intval($group_id); $value = cfloatval($value); $a = Cashback::select($q = [ \Query::TABLES=>Cashback::$table_name, \Query::SORT => [Cashback::$VALUE=>'DESC'], \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(Cashback::$GROUP,'=',$group_id), \Where::_operator(Cashback::$VALUE,'<=',$value), ])), \Query::COUNT => 1, ],true); $cashback_id = 0; if($a){ $cashback = array_pop($a); $cashback_id = intval($cashback[Cashback::$ID]); } $r = self::insert([ self::$PROFILE =>$profile_id, self::$GROUP =>$group_id, self::$CASHBACK =>$cashback_id ]); } public static function installUniques() { \DB::addUnique(self::$table_name,self::$table_name.'_unique',[self::$PROFILE,self::$GROUP]); } 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::$PROFILE, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$GROUP, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$CASHBACK, C::TYPE => eColumnType::INT, ]), 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 Profile();