887 lines
36 KiB
PHP
887 lines
36 KiB
PHP
|
|
<?
|
||
|
|
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();
|
||
|
|
|
||
|
|
|
||
|
|
///
|