meraproject/module/shop/order/model.php

887 lines
36 KiB
PHP
Raw Normal View History

<?
namespace shop;
use common\Image;
use common\Payment;
use common\template\Email;
use common\template\email\structure\eTemplateEmailType;
use core\core\structure\eRowClick;
use core\db\structure\Column as C;
use core\db\structure\eColumnType;
use ms\MS;
use ms\ms\structure\eTab;
use ms\ms\structure\eTabType;
use ms\ms\structure\msTo;
use shop\core\structure\shopModuleTable;
use shop\order\Blank;
use shop\order\Cashback;
use shop\order\Pay;
use shop\order\Status;
use shop\order\status\History as StatusHistory;
use ui\form\structure\eInputType;
use ui\Form;
use ui\input\Input;
use core\lang\structure\LangVariable as V;
use ms\ms\structure\msModuleTable;
use shop\order\structure\shopOrderLang as Vars;
use shop\cart\Item as CartItem;
class Order extends shopModuleTable {
static $self;
static $table_name = 'shopOrder';
static $controller = 'shop.order';
static $ID = 'id';
static $NAME = 'name';
static $TOTAL = 'total';
static $STATUS = 'status';
static $DELIVERY_ID = 'delivery_id';
static $DELIVERY_PRICE = 'delivery_price';
static $PAYMENT_ID = 'payment_id';
static $ADDRESS = 'address';
static $KM = 'km';
static $PHONE = 'phone';
static $EMAIL = 'email';
static $PROFILE = 'profile';
static $UCOMMENT = 'ucomment';
static $COMMENT = 'comment';
static $PAID = 'paid';
static $PDATE = 'pdate';
static $CART = 'cart';
static $TO = 'to';
static $OID = 'oid';
static $DELIVERY_DATE = 'delivery_date';
static $DELIVERY_TIME = 'delivery_time';
static $DATA = 'data';
static $POS = 'pos';
static $RECEIVER_NAME = 'receiver_name';
static $RECEIVER_PHONE = 'receiver_phone';
static $IS_ANONYMOUS = 'is_anonymous';
static $CASHBACK_TOTAL = 'cashback_total';
static $PAY_TOTAL = 'pay_total';
static $TOTAL_PAID = 'total_paid';
static $EMAIL_SUCCESS_PAY = 'email_success_pay';
static $ACCOUNT = 'account';
static $CREATED = 'created';
static $UPDATED = 'updated';
// Виртуальные столбцы
static $BLANK = 'blank';
static function getTitle(){return V::get(Vars::$MODULE_NAME);}
static function getSystemLangValues():array{ return Vars::getArray(); }
public function _updateById(int $id, array $values) {
if(isset($values[self::$STATUS])){
$C = self::getByID($id);
if($C[self::$STATUS]!=$values[self::$STATUS]){
StatusHistory::insert([
StatusHistory::$STATUS => $values[self::$STATUS],
StatusHistory::$ORDER => $id,
]);
}
}
return parent::_updateById($id, $values);
}
public function _update(\Where $w, array $values) {
$values[self::$UPDATED] = time();
return parent::_update($w, $values);
}
public static function afterUadd($values, $id, $result) {
$res = parent::afterUadd($values, $id, $result);
self::remath($id);
if(isset($values['paid_prev']) and isset($values[self::$PAID])){
if($values[self::$PAID] and $values['paid_prev']!=$values[self::$PAID]){
$C = Order::getByID($id);
$shop = Shop::getByID($C[self::$OID]);
if($C[self::$EMAIL_SUCCESS_PAY]) {
Email::sendSuccessPay(
$C[self::$EMAIL_SUCCESS_PAY],
$id,
$shop[Shop::$EMAIL_WRAP],
$C[Order::$EMAIL],
$C[Order::$NAME]
);
}
}
}
return $res;
}
public static function getName($v, array $options = []): string {
return (string)($v?'#'.$v[self::$ID]:'-');
}
public static function installUniques() {
\DB::addIndex(self::$table_name,self::$CART);
\DB::addIndex(self::$table_name,self::$DELIVERY_ID);
\DB::addIndex(self::$table_name,self::$PAYMENT_ID);
\DB::addIndex(self::$table_name,self::$PROFILE);
\DB::addIndex(self::$table_name,self::$ACCOUNT);
}
public static function insert(array $values = array(), array $options = array()) {
$res = parent::insert($values, $options); // TODO: Change the autogenerated stub
if(!$values[self::$CART]){
$r = Cart::insert([
Cart::$ORDER=>$res->id,
]);
self::updateById($res->id,[self::$CART=>$r->id]);
}
self::remath($res->id);
return $res;
}
static function remath($id){
$C = self::getByID($id);
$cart = Cart::getData($C[self::$CART]);
$total = $cart['total'] + $C[self::$DELIVERY_PRICE];
\Profile::remath($C[self::$PROFILE]);
// Считаем оплаченный кэшбек
$r = Cashback::select([
\Query::SELECT=>'SUM('.Cashback::$VALUE.') as cc',
\Query::WHERE => new \Where(
\WHere::_and([
\Where::_operator(Cashback::$VALUE,'<',0),
\Where::_operator(Cashback::$ORDER,'=',$id),
])
)
],false);
$l = \DB::fetch($r);
$cashback = cfloatval($l['cc']);
// Считаем проведённые платежи
$r = Pay::select([
\Query::SELECT=>'SUM('.Pay::$VALUE.') as cc',
\Query::WHERE => new \Where(\Where::_and([
\Where::_operator(Pay::$ORDER,'=',$id),
\Where::_operator(Pay::$PAID,'=',1),
]))
],false);
$l = \DB::fetch($r);
$pay_total = cfloatval($l['cc']);
$paid_total = $pay_total - $cashback;
$o = [
self::$TOTAL => $total,
self::$CASHBACK_TOTAL => $cashback,
self::$PAY_TOTAL => $pay_total,
self::$TOTAL_PAID => $paid_total,
];
if($paid_total >= $total) {
$o[self::$PAID] = 1;
}
self::updateById($id,$o);
\Profile::remath($C[Order::$PROFILE]);
}
static function renderBlank($order_id,$blank_id,$custom_data = []){
$order_id = intval($order_id);
$blank_id = intval($blank_id);
if(!($order_id && $blank_id)) return '';
$ORDER = Order::getByID($order_id);
$BLANK = Blank::getByID($blank_id);
$payment = Payment::getByID(intval($ORDER[Order::$PAYMENT_ID]));
$CART = Cart::getData($ORDER[Order::$CART]);
// Собираем данные для печати
$data = [
'order_id' => $ORDER[Order::$ID],
'order_date' => date('d.m.Y',$ORDER[Order::$CREATED]),
'client_name' => $ORDER[Order::$NAME],
'client_phone' => $ORDER[Order::$PHONE],
'receiver_name' => $ORDER[Order::$RECEIVER_NAME],
'receiver_phone' => $ORDER[Order::$RECEIVER_PHONE],
'address' => $ORDER[Order::$ADDRESS],
'delivery_date' => date('d.m.Y',strtotime($ORDER[Order::$DELIVERY_DATE])),
'delivery_time' => $ORDER[Order::$DELIVERY_TIME],
'paid' => boolval($ORDER[Order::$PAID])?'Да':'Нет',
'old' => $CART['old'],
'total' => $ORDER[Order::$TOTAL],
'sale_total' => $CART['old'] - $ORDER[Order::$TOTAL],
'comment' => $ORDER[Order::$UCOMMENT],
'cart' => [],
'payment_name' => Payment::getName($payment),
];
$data += $custom_data;
$i = 1;
foreach ($CART['citems'] as $v){
$item = $CART['items'][$v[CartItem::$ITEM]];
$data['cart'][] = [
'index'=>$i,
'img' =>Image::imageResize($item[Image::$URL],0,100),
'image' =>$item[Image::$URL],
'name' =>Item::getName($item),
'count'=>$v[CartItem::$COUNT],
'price'=>$v[CartItem::$PRICE],
'total'=>$v[CartItem::$PRICE] * $v[CartItem::$COUNT],
];
$data['count'] += $v[CartItem::$COUNT];
$i++;
}
if($ORDER[Order::$DELIVERY_PRICE]){
$data['cart'][] = [
'name'=>'Доставка',
'count'=>1,
'price'=>$ORDER[Order::$DELIVERY_PRICE],
'total'=>$ORDER[Order::$DELIVERY_PRICE],
];
}
$data['theme'] = json_decode($ORDER[Order::$DATA],true);
if($ORDER[Order::$DELIVERY_ID]){
$delivery = Delivery::getByID($ORDER[Order::$DELIVERY_ID]);
$data['delivery'] = [
'name'=> Delivery::getName($delivery),
];
}
// Генерируем печать
$loader = new \Twig\Loader\ArrayLoader([ 'index' => $BLANK[Blank::$TEXT], ]);
$twig = new \Twig\Environment($loader);
$res = $twig->render('index', $data);
return $res.'<script>print();</script>';
/**/
}
public static function getEditTabs($values=[]) {
$id = $values[self::$ID];
return
[
[
eTab::NAME=>'Редактировать',
eTab::TYPE=>eTabType::FORM,
eTab::CONTENT=>function($values=[]){
return self::_getForm($values, static::getFormOptions($values));
},
],
//*
[
eTab::NAME=>'Кэшбек',
eTab::TYPE=>eTabType::TABLE,
eTab::CONTENT=>function($values=[]){
$id = $values[self::$ID];
$o = [
\Query::WHERE=>new \Where(\Where::_operator(Cashback::$ORDER,'=',$id)),
\ModuleTable::TABLE_ID => self::$table_name.'_'.Cashback::$table_name.'_'.$id,
\ModuleTable::ROW_CLICK=>eRowClick::NONE,
\ModuleTable::NO_CHECKBOX=>true,
\ModuleTable::HIDE_TITLE=>true,
];
return boolval($values['justData']) ? Cashback::getTableData( $o ) : Cashback::drawTable( $o );
},
],
[
eTab::NAME=>'Платежи',
eTab::TYPE=>eTabType::TABLE,
eTab::CONTENT=>function($values=[]){
$id = $values[self::$ID];
$o = [
\Query::WHERE=>new \Where(\Where::_operator(Pay::$ORDER,'=',$id)),
\ModuleTable::TABLE_ID => self::$table_name.'_'.Pay::$table_name.'_'.$id,
\ModuleTable::ROW_CLICK=>eRowClick::NONE,
\ModuleTable::NO_CHECKBOX=>true,
\ModuleTable::HIDE_TITLE=>true,
];
return boolval($values['justData']) ? Pay::getTableData( $o ) : Pay::drawTable( $o );
},
],
[
eTab::NAME=>'Товары в корзине',
eTab::TYPE=>eTabType::TABLE,
eTab::CONTENT=>function($values=[]){
$id = $values[self::$ID];
$cart_id = $values[self::$CART];
$o = [
\Query::LEFT_JOINS => [
[Item::$table_name,Item::$ID,CartItem::$ITEM]
],
\Query::WHERE=>new \Where(\Where::_operator(CartItem::$CART,'=',$cart_id)),
\ModuleTable::FORM_INIT_DATA=>[
CartItem::$CART => $cart_id,
],
\ModuleTable::TABLE_ID => self::$table_name.'_'.CartItem::$table_name.'_'.$id,
\ModuleTable::ROW_CLICK=>eRowClick::CARD,
];
return boolval($values['justData']) ? CartItem::getTableData( $o ) : CartItem::drawTable( $o );
},
],
/**/
];
}
static function getForm($values = [], $options = []) :array {
$oid = null;
switch ($values[self::$TO]){
case msTo::SHOP:
$oid = [
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$OID,
Form::TYPE =>eInputType::SELECT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = msTo::getName(msTo::SHOP),
Input::LABEL => $c,
Input::OPTIONS => Shop::getNameList([
\Query::WHERE => new \Where(\Where::_operator(Shop::$ACCOUNT,'=',UID)),
]),
],
];
break;
}
return [
self::getCommonFormInputs(),
[
Form::VIEW =>Form::INPUT,
Form::KEY_VALUE =>'paid_prev',
Form::TYPE =>eInputType::HIDDEN,
Form::INPUT_OPT => [
Input::VALUE => isset($values[self::$PAID]) ? $values[self::$PAID] : 0,
],
],
[
Form::VIEW =>Form::INPUT,
Form::KEY_VALUE =>self::$TO,
Form::TYPE =>eInputType::HIDDEN,
],
$oid,
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$NAME,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$NAME),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$PHONE,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$PHONE),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$EMAIL,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$EMAIL),
Input::LABEL => $c,
],
],
]
],
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$RECEIVER_NAME,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$RECEIVER_NAME),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$RECEIVER_PHONE,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$RECEIVER_PHONE),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-3',
Form::KEY_VALUE =>self::$IS_ANONYMOUS,
Form::TYPE =>eInputType::SWITCH_IOS,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$IS_ANONYMOUS),
Input::LABEL => $c,
Input::VALUE => 1,
Input::CHECKED => boolval($values[self::$IS_ANONYMOUS]),
],
],
]
],
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c',
Form::KEY_VALUE =>self::$ADDRESS,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$ADDRESS),
Input::LABEL => $c,
],
],
]
],
[
Form::VIEW=>Form::ROW,
Form::COLS => [
//*
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-8',
Form::KEY_VALUE =>self::$DELIVERY_ID,
Form::TYPE =>eInputType::SELECT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$DELIVERY_ID),
Input::LABEL => $c,
Input::OPTIONS => Delivery::getNameList([
\Query::WHERE=>new \Where(
\Where::_operator(Delivery::$ACCOUNT,'=',UID)
)
]),
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-1-8',
Form::KEY_VALUE =>self::$KM,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$KM),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$DELIVERY_PRICE,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$DELIVERY_PRICE),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$DELIVERY_DATE,
Form::TYPE =>eInputType::DATE,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$DELIVERY_DATE),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$DELIVERY_TIME,
Form::TYPE =>eInputType::TEXT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$DELIVERY_TIME),
Input::LABEL => $c,
],
],
],
],
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$PAYMENT_ID,
Form::TYPE =>eInputType::SELECT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$PAYMENT_ID),
Input::LABEL => $c,
Input::OPTIONS => Payment::getNameList([
\Query::WHERE=>new \Where(
\Where::_operator(Payment::$ACCOUNT,'=',UID)
)
]),
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$PDATE,
Form::TYPE =>eInputType::DATE_TIME,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$PDATE),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$PAID,
Form::TYPE =>eInputType::CHECKBOX,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$PAID),
Input::LABEL => $c,
Input::VALUE => 1,
Input::CHECKED => boolval($values[self::$PAID]),
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c c-25',
Form::KEY_VALUE =>self::$EMAIL_SUCCESS_PAY,
Form::TYPE =>eInputType::SELECT,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$EMAIL_SUCCESS_PAY),
Input::LABEL => $c,
Input::OPTIONS => Email::getNameList([
'zero'=>true,
\Query::WHERE=>new \Where(\Where::_and([
\Where::_operator(Email::$ACCOUNT,'=',UID),
\Where::_operator(Email::$TYPE,'=',eTemplateEmailType::SUCCESS_PAY),
])
)
]),
],
],
]
],
[
Form::VIEW=>Form::ROW,
Form::COLS => [
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c-50',
Form::KEY_VALUE =>self::$UCOMMENT,
Form::TYPE =>eInputType::TEXTAREA,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$UCOMMENT),
Input::LABEL => $c,
],
],
[
Form::VIEW =>Form::INPUT,
Form::COL_CLASSES =>'c-50',
Form::KEY_VALUE =>self::$COMMENT,
Form::TYPE =>eInputType::TEXTAREA,
Form::INPUT_OPT => [
Input::PLACEHOLDER => $c = V::get(Vars::$COMMENT),
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::$NAME,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 127,
C::TH => V::get(Vars::$NAME),
]),
new C([
C::VAR_NAME => &self::$RECEIVER_NAME,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 127,
C::TH => V::get(Vars::$RECEIVER_NAME),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$RECEIVER_PHONE,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 127,
C::TH => V::get(Vars::$RECEIVER_PHONE),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$IS_ANONYMOUS,
C::TYPE => eColumnType::TINYINT,
C::LENGTH => 1,
C::DEFAULT => 0,
C::TH => V::get(Vars::$IS_ANONYMOUS),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$TOTAL,
C::TYPE => eColumnType::DOUBLE,
C::TH => V::get(Vars::$TOTAL),
C::DEFAULT => 0,
]),
new C([
C::VAR_NAME => &self::$STATUS,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::LENGTH => 11,
C::TH => V::get(Vars::$STATUS),
C::FUNC_VALUE => function($v){
return Status::getName( Status::getByID($v[self::$STATUS]) );
},
C::FUNC_VALUE_DATA => function($v){
return Status::getName( Status::getByID($v[self::$STATUS]) );
}
]),
new C([
C::VAR_NAME => &self::$DELIVERY_ID,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::LENGTH => 11,
C::TH => V::get(Vars::$DELIVERY_ID),
C::FUNC_VALUE => function($v){
return Delivery::getName( Delivery::getByID($v[self::$DELIVERY_ID]) );
},
C::FUNC_VALUE_DATA => function($v){
return Delivery::getName( Delivery::getByID($v[self::$DELIVERY_ID]) );
}
]),
new C([
C::VAR_NAME => &self::$DELIVERY_PRICE,
C::TYPE => eColumnType::DOUBLE,
C::DEFAULT => 0,
C::TH => V::get(Vars::$DELIVERY_PRICE),
]),
new C([
C::VAR_NAME => &self::$DELIVERY_DATE,
C::TYPE => eColumnType::DATE,
C::DEFAULT => '0000-00-00',
C::TH => V::get(Vars::$DELIVERY_DATE),
C::FUNC_VALUE_DATA => function($v){
return MS::fdate($v[self::$DELIVERY_DATE]);
}
]),
new C([
C::VAR_NAME => &self::$DELIVERY_TIME,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 127,
C::DEFAULT => '',
C::TH => V::get(Vars::$DELIVERY_TIME),
]),
new C([
C::VAR_NAME => &self::$PAYMENT_ID,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::LENGTH => 11,
C::TH => V::get(Vars::$PAYMENT_ID),
C::FUNC_VALUE => function($v){
return Payment::getName( Payment::getByID($v[self::$PAYMENT_ID]) );
},
C::FUNC_VALUE_DATA => function($v){
return Payment::getName( Payment::getByID($v[self::$PAYMENT_ID]) );
}
]),
new C([
C::VAR_NAME => &self::$ADDRESS,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 1023,
C::TH => V::get(Vars::$ADDRESS),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$KM,
C::TYPE => eColumnType::DOUBLE,
C::TH => V::get(Vars::$KM),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$PHONE,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 255,
C::TH => V::get(Vars::$PHONE),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$EMAIL,
C::TYPE => eColumnType::VARCHAR,
C::LENGTH => 255,
C::TH => V::get(Vars::$EMAIL),
C::HIDDEN => true,
]),
new C([
C::VAR_NAME => &self::$PROFILE,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
C::TH => V::get(Vars::$PROFILE),
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$TO,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
c::HIDDEN =>true,
]),
new C([
C::VAR_NAME => &self::$OID,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
c::HIDDEN =>true,
]),
new C([
C::VAR_NAME => &self::$UCOMMENT,
C::TYPE => eColumnType::TEXT,
C::TH => V::get(Vars::$UCOMMENT),
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$COMMENT,
C::TYPE => eColumnType::TEXT,
C::TH => V::get(Vars::$COMMENT),
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$PAID,
C::TYPE => eColumnType::TINYINT,
C::LENGTH => 1,
C::TH => V::get(Vars::$PAID),
C::DEFAULT => 0,
C::FUNC_VALUE => function($v){
return MS::getBoolValText($v[self::$PAID]);
},
C::FUNC_VALUE_DATA => function($v){
return MS::getBoolValText($v[self::$PAID]);
}
]),
new C([
C::VAR_NAME => &self::$PDATE,
C::TYPE => eColumnType::INT,
C::TH => V::get(Vars::$PDATE),
C::DEFAULT => 0,
c::HIDDEN =>true,
]),
new C([
C::VAR_NAME => &self::$DATA,
C::TYPE => eColumnType::TEXT,
//C::TH => V::get(Vars::$PDATE),
C::DEFAULT => '',
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$CART,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$CASHBACK_TOTAL,
C::TYPE => eColumnType::DOUBLE,
C::DEFAULT => 0,
C::TH => V::get(Vars::$CASHBACK_TOTAL),
]),
new C([
C::VAR_NAME => &self::$PAY_TOTAL,
C::TYPE => eColumnType::DOUBLE,
C::DEFAULT => 0,
C::TH => V::get(Vars::$PAY_TOTAL),
]),
new C([
C::VAR_NAME => &self::$TOTAL_PAID,
C::TYPE => eColumnType::DOUBLE,
C::DEFAULT => 0,
C::TH => V::get(Vars::$TOTAL_PAID),
]),
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::$POS,
C::TYPE => eColumnType::INT,
C::DEFAULT => time(),
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 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 C([
C::VAR_NAME => &self::$EMAIL_SUCCESS_PAY,
C::TYPE => eColumnType::INT,
C::DEFAULT => 0,
//C::DEFAULT => time(),
//C::TH => V::get(Vars::$UPDATED),
//c::FUNC_VALUE => function($v){return self::formatDate($v[self::$UPDATED]);},
c::HIDDEN=>true,
]),
new C([
C::VAR_NAME => &self::$BLANK,
C::TYPE => eColumnType::NONE,
C::TH => V::get(Vars::$BLANK),
c::FUNC_VALUE_DATA => function($v){return V::get(Vars::$BLANK);},
]),
];
}
}
new Order();
///