new \Where(\Where::_and([ \Where::_operator(self::$SOFT, '=', $soft_id), \Where::_operator(self::$PROFILE, '=', $profile_id), \Where::_operator(self::$DATE, '=', $date), ])), \Query::COUNT => 1, ]); if(!\DB::numRows($r)){ self::insert($values); } } else { self::insert($values); } } public static function installUniques() { \DB::addIndex(self::$table_name,self::$PROFILE); \DB::addIndexManyColumns(self::$table_name,[self::$SOFT,self::$PROFILE,self::$DATE]); } 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, C::TH => V::get(Vars::$PROFILE), //C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$SOFT, C::TYPE => eColumnType::INT, C::TH => V::get(Vars::$SOFT), C::FUNC_VALUE_DATA => function($v){ if($v[self::$VALUE]>0){ return "Пополнение баланса"; } else { if ($id = intval($v[self::$SOFT])) { return Soft::getName(Soft::getByID($id)); } else { $s = Subscribe::getByID(intval($v[self::$SUBSCRIBE])); $group = SubscribeGroup::getByID(intval($s[Subscribe::$GROUP])); return SubscribeGroup::getName($group); } } }, C::FILTER_TYPE => eFilterType::SELECT, C::FUNC_FILTER_SELECT_OPTIONS => function(){ return Soft::getNameList([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(Soft::$PORTAL,'=',\Site::$portal_id), \Where::_operator(Soft::$VIS,'=',1), ])) ]); } ]), new C([ C::VAR_NAME => &self::$CHECK, C::TYPE => eColumnType::INT, C::TH => V::get(Vars::$CHECK), C::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$VALUE, C::TD_CLASS => 'tar', C::TYPE => eColumnType::DOUBLE, C::LENGTH => '10,2', C::TH => V::get(Vars::$VALUE), C::FILTER_TYPE => eFilterType::NUMBER, ]), new C([ C::VAR_NAME => &self::$DATE, C::TYPE => eColumnType::DATE, C::DEFAULT => date('Y-m-d'), C::TH => V::get(Vars::$DATE), C::FILTER_TYPE => eFilterType::DATE, ]), new C([ C::VAR_NAME => &self::$SUBSCRIBE, C::TYPE => eColumnType::INT, C::TH => V::get(Vars::$SUBSCRIBE), ]), new C([ C::VAR_NAME => &self::$PORTAL, C::TYPE => eColumnType::INT, 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 Payment();