meraproject/module/shop/cash/model.php

168 lines
6.5 KiB
PHP
Raw Permalink Normal View History

<?
namespace shop;
use core\db\structure\Column as C;
use core\db\structure\eColumnType;
use shop\core\structure\shopModuleTable;
use ui\form\structure\eInputType;
use ui\Form;
use ui\input\Input;
use core\lang\structure\LangVariable as V;
use shop\cash\structure\shopCashLang as Vars;
class Cash extends shopModuleTable {
static $self;
static $table_name = 'shopCash';
static $controller = 'shop.cash';
static $ID = 'id';
static $VALUE = 'value';
static $ORDER = 'order'; // пополнения по какому заказу
static $CASHBOX = 'order'; // на какой счёт пришло. Если это перевод, то с какого ушло.
static $CASHBOX2 = 'order'; // с какого счёт списываем, если это перевод
static $TYPE = 'type';
static $CATEGORY = 'category';
static $CURRENCY = 'currency'; // валюта
static $PAYMENT = 'payment'; // фиксация по какой платёжной системе пришли деньги
static $CLIENT = 'client'; // если эт списание - то можно указать по какому контрагенту
static $COMMENT = 'comment';
static $ACCOUNT = 'account';
static $CREATED = 'created';
static $UPDATED = 'updated';
static function getTitle(){return V::get(Vars::$MODULE_NAME);}
static function getSystemLangValues():array{ return Vars::getArray(); }
public function _update(\Where $w, array $values) {
$values[self::$UPDATED] = time();
return parent::_update($w, $values);
}
static function getForm($values = [], $options = []) :array {
return [
self::getCommonFormInputs(),
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'col-12',
Form::KEY_VALUE =>self::$NAME,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$NAME),
Input::LABEL => $c,
],
],
]
],
self::getCommonFormSubmits($values),
];
}
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::$VALUE,
C::TYPE => eColumnType::DOUBLE,
C::TH => V::get(Vars::$VALUE),
]),
new C([
C::VAR_NAME => &self::$ORDER,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::TH => V::get(Vars::$ORDER),
]),
new C([
C::VAR_NAME => &self::$CASHBOX,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::TH => V::get(Vars::$CASHBOX),
]),
new C([
C::VAR_NAME => &self::$CASHBOX2,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::TH => V::get(Vars::$CASHBOX2),
]),
new C([
C::VAR_NAME => &self::$TYPE,
C::TYPE => eColumnType::TINYINT,
C::LENGTH => 1,
C::TH => V::get(Vars::$TYPE),
]),
new C([
C::VAR_NAME => &self::$CATEGORY,
C::TYPE => eColumnType::INT,
C::TH => V::get(Vars::$CATEGORY),
]),
new C([
C::VAR_NAME => &self::$CURRENCY,
C::TYPE => eColumnType::TINYINT,
C::LENGTH => 3,
C::TH => V::get(Vars::$CURRENCY),
]),
new C([
C::VAR_NAME => &self::$PAYMENT,
C::TYPE => eColumnType::INT,
C::TH => V::get(Vars::$PAYMENT),
]),
new C([
C::VAR_NAME => &self::$CLIENT,
C::TYPE => eColumnType::INT,
C::TH => V::get(Vars::$CLIENT),
]),
new C([
C::VAR_NAME => &self::$COMMENT,
C::TYPE => eColumnType::TEXT,
C::TH => V::get(Vars::$COMMENT),
]),
new C([
C::VAR_NAME => &self::$ACCOUNT,
C::TYPE => eColumnType::INT,
C::LENGTH => 11,
C::TH => V::get(Vars::$ACCOUNT),
C::DEFAULT => intval(UID),
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 Cash();