new \Where(\Where::_and([ \Where::_operator(Fot::$YEAR,'=',$year), \Where::_operator(Fot::$MONTH,'=',$month), ])) ]); //echo new \Query($q); $total = 0; $total2 = 0; $emps = []; while($l = \DB::fetch($r)){ Fot::decrypt($l); $money = cfloatval($l[Fot::$FZP]); $emps[$l[Fot::$ID]]['money'] = $money; $total += $money; } self::updateById($id,[self::$FOT=>$total]); foreach($emps as $id=>$emp){ $k = $total ? $emp['money'] / $total : 0; $empFot = $k * $budgetMoney; $total2 += $empFot; $r = Fot::updateById($id,$x = [ Fot::$K=>$k, Fot::$FOT=>$empFot, ]); Fot::math($id); } } static function get($year,$month){ $key = self::getKey([self::$YEAR=>$year,self::$MONTH=>$month]); $x = self::getOneEqualByColumn(self::$KEY,$key); if(!$x) { $date = date($year . '-' . $month . '-01', '-1 month'); $time = strtotime($date); $key2 = self::getKey([self::$YEAR => date('Y',$time),self::$MONTH => date('m',$time)]); $y = self::getOneEqualByColumn(self::$KEY,$key2); $data = [ self::$YEAR => $year, self::$MONTH => $month, self::$KEY => $key, self::$MONEY => 0, ]; if($y) { $data[self::$MONEY] = $y[self::$MONEY]; } self::insert($data); $x = self::getOneEqualByColumn(self::$KEY,$key); if($y) { self::math($x[self::$ID]); $x = self::getOneEqualByColumn(self::$KEY,$key); } } return $x; } static function getFormInputs(\ModuleBZ\Form &$form, array $data, $C, bool $isEdit) { $img = null; if($c = $C[self::$IMAGE]) $img = Image::imageResize( Image::getByID($c)[Image::$URL], 128); $form ->addRow((new Row()) ->addColumn((new ImagePicker()) ->setClassAll('c-1-4') ->setName(self::$IMAGE) ->setLabel(V::get(Vars::$IMAGE)) ->setUploadUrl(\Site::sectionUrl(substr(Image::UPLOAD_URL_ACCOUNT,1),true)) //->setAjaxData(['token'=>Theme::getUploadToken()]) ->setSrc($img?:'') ->setValue($C[self::$IMAGE]) ) )->addRow((new Row()) ->addColumn(((new Text()) ->setName(self::$NAME) ->setValue($C[self::$NAME]) ->setClassAll('c-50') ->setLabel($c = V::get(Vars::$NAME)) ->setPlaceholder($c) )) ->addColumn(((new Text()) ->setName(self::$TEXT_ID) ->setValue($C[self::$TEXT_ID]) ->setClassAll('c-50') ->setLabel($c = V::get(Vars::$TEXT_ID)) ->setPlaceholder($c) )) )->addRow((new Row()) ->addColumn(((new Switcher()) ->setName(self::$VIS) ->setValue($C[self::$VIS]) ->setClassAll('c-1-3') ->setPlaceholder($c = V::get(Vars::$VIS)) ->setChecked(boolval($C[self::$VIS])) )) )->addRow((new Row()) ->addColumn(((new Textarea()) ->setName(self::$TEXT) ->setValue($C[self::$TEXT]) ->setClassAll('c-100') ->setLabel($c = V::get(Vars::$TEXT)) ->setPlaceholder($c ) ->setAutoHeight(false) //->setIsHtmlEditor(true) //->setTinyMCEApiKey(Theme::$TINY_MCE_KEY) //->setTinyMCEImageUploadUrl(Theme::$TINY_MCE_IMAGE_UPLOAD_URL) )) ) ; } 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::$YEAR, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$MONTH, C::TYPE => eColumnType::INT, ]), new C([ C::VAR_NAME => &self::$KEY, C::TYPE => eColumnType::VARCHAR, C::LENGTH => 7, ]), new C([ C::VAR_NAME => &self::$MONEY, C::TYPE => eColumnType::DOUBLE, C::LENGTH => '10,2', ]), new C([ C::VAR_NAME => &self::$FOT, C::TYPE => eColumnType::DOUBLE, C::LENGTH => '10,2', ]), new C([ C::VAR_NAME => &self::$CHANGED, C::TYPE => eColumnType::TINYINT, C::LENGTH => 1, C::DEFAULT => 0, ]), new C([ C::VAR_NAME => &self::$POS, C::TYPE => eColumnType::INT, C::DEFAULT => time(), c::HIDDEN => true, ]), 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::$PROFILE, C::TYPE => eColumnType::INT, C::DEFAULT => intval(PID), //C::TH => V::get(Vars::$PROFILE), c::HIDDEN => true, ]), new C([ C::VAR_NAME => &self::$ACCOUNT, C::TYPE => eColumnType::INT, C::DEFAULT => intval(\Site::$owner_id), //C::TH => V::get(Vars::$ACCOUNT), c::HIDDEN => true, ]), ]; } } new Budget();