meraproject/themes/merakomis/variable/model.php

218 lines
7.0 KiB
PHP
Raw Normal View History

<?
namespace themes\merakomis;
use core\db\structure\Column as C;
use core\db\structure\eColumnType;
use core\lang\structure\LangVariable as V;
use ModuleBZ\Form\Input\Select;
use ModuleBZ\Layout\Column;
use ms\ms\structure\msModuleTable;
use common\Image;
use ModuleBZ\Form\Input\ImagePicker;
use ModuleBZ\Form\Input\Switcher;
use ModuleBZ\Form\Input\Text;
use ModuleBZ\Form\Input\Textarea;
use ModuleBZ\Layout\Row;
use themes\merakomis\input\Save as InputSave;
use themes\merakomis\structure\merakomisModuleTable;
use themes\merakomis\variable\structure\lang as Vars;
class Variable extends merakomisModuleTable {
static $self;
static $cache = [];
static $table_name = 'tMerakomisVariable';
static $controller = 'themes.merakomis.variable';
static $ID = 'id';
static $YEAR = 'year';
static $K1 = 'k1';
static $K2 = 'k2';
static $MROT = 'mrot';
static $FOND1 = 'fond1';
static $FOND2 = 'fond2';
static $FOND3 = 'fond3';
static function getTitle(){return V::get(Vars::$MODULE_NAME);}
static function getSystemLangValues():array{ return Vars::getArray(); }
static $CACHE_VARIABLES;
static function getAllVariables(){
if(isset(self::$CACHE_VARIABLES)){ return self::$CACHE_VARIABLES;}
$res = [];
$a = Variable::getAll();
foreach ($a as $v){
$res[$v[Variable::$YEAR]] = $v;
}
return self::$CACHE_VARIABLES = $res;
}
public static function getFormInfo($data)
{
$res = parent::getFormInfo($data); // TODO: Change the autogenerated stub
$res['title'] = 'Редактор переменных';
return $res;
}
static function getFormInputs(\ModuleBZ\Form &$form, array $data, $C, bool $isEdit) {
$options = [];
$r = self::select(['count'=>0]);
$exclude = [];
while($l = \DB::fetch($r)) {
if($C and $C[self::$YEAR]==$l[self::$YEAR]) continue;
$exclude[] = $l[self::$YEAR];
}
$year = date('Y');
for ($i=$year;$i>=2020;$i--) {
if(in_array($i,$exclude)) continue;
$options[] = ['id'=>$i,'title'=>$i];
}
$form
->addRow((new Row())
->addColumn((new Column())->setClassAll('c-40 ')->addRow((new Row())))
->addColumn(
(new Column())->setClassAll('c-20 ')
->addRow((new Row())
->addColumn(((new Select())
->setName(self::$YEAR)
->setValue(intval($C[self::$YEAR]))
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$YEAR))
->setPlaceholder($c)
->setOptions($options)
))
->addColumn(((new Text())
->setName(self::$K1)
->setValue($C[self::$K1])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$K1))
->setPlaceholder($c)
))
->addColumn(((new Text())
->setName(self::$K2)
->setValue($C[self::$K2])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$K2))
->setPlaceholder($c)
))
/*
->addColumn(((new Text())
->setName(self::$MROT)
->setValue($C[self::$MROT])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$MROT))
->setPlaceholder($c)
))
->addColumn(((new Text())
->setName(self::$FOND1)
->setValue($C[self::$FOND1])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$FOND1))
->setPlaceholder($c)
))
->addColumn(((new Text())
->setName(self::$FOND2)
->setValue($C[self::$FOND2])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$FOND2))
->setPlaceholder($c)
))
->addColumn(((new Text())
->setName(self::$FOND3)
->setValue($C[self::$FOND3])
->setClassAll('c-100')
->setLabel($c = V::get(Vars::$FOND3))
->setPlaceholder($c)
))
*/
)->addRow((new Row())
->addColumn(((new InputSave())->setClassAll('c-100')->setName('save')))
)
)
)
;
}
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,
C::TH => V::get(Vars::$YEAR_TH),
]),
new C([
C::VAR_NAME => &self::$K1,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$K1_TH),
]),
new C([
C::VAR_NAME => &self::$K2,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$K2_TH),
]),
new C([
C::VAR_NAME => &self::$MROT,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$MROT_TH),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$FOND1,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$FOND1_TH),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$FOND2,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$FOND2_TH),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$FOND3,
C::TYPE => eColumnType::DOUBLE,
C::LENGTH => '10,2',
C::TH => V::get(Vars::$FOND3_TH),
C::HIDDEN => true,
]),
];
}
}
new Variable();
///
///