new \Where(\Where::_operator(CartItem::$CART,'=',$C[Order::$CART])) ]); $CART_ID = Cart::getMyCartID(); while($l = \DB::fetch($r)){ unset($l[CartItem::$ID]); unset($l[CartItem::$CREATED]); unset($l[CartItem::$UPDATED]); $l[CartItem::$CART] = $CART_ID; CartItem::insert($l); } } } } static function blank(){ if(IF_AUTH){ if(($ORDER = Order::isMy(intval($_GET['id']))) && ($BLANK = Blank::isMy(intval($_GET['blank']))) ) { echo order::renderBlank($ORDER[Order::$ID],$BLANK[Blank::$ID]); } } } static function getPrintForm(){ $res = []; if(IF_AUTH) { $link_id = '/api/shop.order/blank/?id='.$_POST['id'].'&blank='; $tabs = [ [ eTab::NAME=>'Бланки', eTab::TYPE=>eTabType::TABLE, eTab::CONTENT=>Blank::getTableData( [ \ModuleTable::HIDE_TITLE=>true, \ModuleTable::HIDE_THEAD=>true, \ModuleTable::NO_CHECKBOX=>true, \ModuleTable::COLUMN_RENDER => [ Blank::$NAME => [ \ModuleTable::COLUMN_RENDER_LINK_ID => $link_id, \ModuleTable::COLUMN_RENDER_LINK_CSS_CLASS => 'link', \ModuleTable::COLUMN_RENDER_LINK_BLANK => true, //ModuleTable::COLUMN_RENDER_LINK_MODAL => true, ], ], \Query::WHERE=>new \Where(\Where::_operator(Blank::$ACCOUNT,'=',UID)) ] ), ], ]; $res['tabs'] = $tabs; } echo je($res); } static function confirm(){ $res = []; $id = 0; if($cart_id = Cart::getMyCartID()) { $shop_id = intval($_POST['shop_id']); $SHOP = Shop::getByID($shop_id); $status_new_id = Shop::getIDOfStatusNew($shop_id); $CART = Cart::getMyCartData(); $cart_total = $CART['total']; $delivery_id = 0; $delivery_price = 0; $km = 0; $cashback_minus = cfloatval($_POST['cashback']); if($_POST['delivery_id']) { $delivery = Delivery::getByID($_POST['delivery_id']); $delivery_id = $delivery[Delivery::$ID]; $delivery_price = $delivery[Delivery::$PRICE]; if($delivery[Delivery::$TYPE]==eShopDeliveryType::SUBURB) { $km = cfloatval($_POST['km']); $delivery_price += $delivery[Delivery::$KM] * $km; } // Если расчёт происходит на фронтенде if(isset($_POST['dprice']) ) { $delivery_price = cfloatval($_POST['dprice']); } } $ddate = ($c = $_POST['ddate']) ? $c :'0000-00-00'; $ddate = date('Y-m-d',strtotime($ddate)); if($ddate<'0000-00-00') $ddate = '0000-00-00'; $order_data = $_POST['data']; $order_data['roistat_visit'] = intval($_COOKIE['roistat_visit']); $r = Order::insert($o = [ Order::$NAME => $_POST['name'], Order::$EMAIL => $_POST['email'], Order::$PHONE => $_POST['phone'], Order::$ADDRESS => $_POST['address'], Order::$KM => $km, Order::$IS_ANONYMOUS => intval($_POST['anonymous']), Order::$UCOMMENT => $_POST['comment'], Order::$DELIVERY_TIME => $_POST['dtime'], Order::$RECEIVER_PHONE => $_POST['receiver_phone'], Order::$RECEIVER_NAME => $_POST['receiver_name'], Order::$DELIVERY_DATE => $ddate, Order::$DELIVERY_ID => $delivery_id, Order::$DELIVERY_PRICE => $delivery_price, Order::$PAYMENT_ID => $_POST['payment_id'], Order::$PROFILE => PID, Order::$CART => $cart_id, Order::$ACCOUNT => \Site::$owner_id, Order::$TO => msTo::SHOP, Order::$OID => $shop_id, Order::$STATUS => $status_new_id, Order::$DATA => je($order_data), ]); $ORDER_ID = $id = $r->id; Cart::updateById($cart_id,[Cart::$ORDER=>$id]); if(IF_PROFILE){ \Profile::updateById(PID,[\Profile::$CART=>0]); //if($cashback_percent = floatval($SHOP[Shop::$CASHBACK_VALUE])/100){ if($cashback_percent = \Site::$theme::getCashbackPercent($ORDER_ID)){ // Максимальная сумма, которую можно списать $shop_cashback_max = floatval($SHOP[Shop::$CASHBACK_MAX])/100 * $cart_total; // Сколько списывают // если читерят, то не допускаем этого if($cashback_minus<0) $cashback_minus = 0; // Если больше максимального, то уменьшаем if($cashback_minus>$shop_cashback_max) $cashback_minus = $shop_cashback_max; if($cashback_minus > \Profile::$data[\Profile::$CASHBACK]) $cashback_minus = \Profile::$data[\Profile::$CASHBACK]; // Теперь считаем сколько остаётся после вычета, и то этого считаем кэшбек $cashback_cart_total = $cart_total - $cashback_minus; $cashback_value = $cashback_cart_total * $cashback_percent; // Если есть начисления и списания, то заносим их в бд if($cashback_minus) { Cashback::insert([ Cashback::$VALUE => -$cashback_minus, Cashback::$ORDER => $ORDER_ID, Cashback::$PROFILE => PID, ]); } if($cashback_value){ Cashback::insert([ Cashback::$VALUE => $cashback_value, Cashback::$ORDER => $ORDER_ID, Cashback::$PROFILE => PID, ]); } } } else { \Core::setCookie('cart_'.\Site::$portal_id,null); } $res['id'] = $r->id; //$res['r'] = $r; } echo je($res); } }