Пример #1
0
 public function updateOrderDetail($domain, $orderId, $orderDetailId, Request $request)
 {
     $orderService = new orderService();
     $order = $orderService->getOrderById($orderId);
     $orderDetails = $order->orderDetail;
     $orderDetailProperty = $request->input('product-properties', '');
     $orderDetailQuantity = $request->input('product-quantity', 0);
     $total = 0;
     $discount = 0;
     $originTotal = 0;
     $quantity = 0;
     try {
         foreach ($orderDetails as $orderDetail) {
             if ($orderDetail->id == $orderDetailId) {
                 $orderDetailDiscount = $orderDetail->discount * $orderDetailQuantity;
                 $orderDetailProperty = explode('-', $orderDetailProperty);
                 $dataOrderDetail = ['color_id' => $orderDetailProperty[0], 'size_id' => isset($orderDetailProperty[1]) ? $orderDetailProperty[1] : '', 'quantity' => $orderDetailQuantity, 'subtotal' => $orderDetail->price * $orderDetailQuantity - $orderDetailDiscount];
                 $orderService->updateOrderDetail($orderDetailId, $dataOrderDetail);
                 $originTotal += $orderDetail->price * $orderDetailQuantity;
                 $total += $orderDetail->price * $orderDetailQuantity - $orderDetailDiscount;
                 $discount += $orderDetailDiscount;
                 $quantity += $orderDetailQuantity;
             } else {
                 $originTotal += $orderDetail->price * $orderDetail->quantity;
                 $total += $orderDetail->subtotal;
                 $discount += $orderDetail->discount;
                 $quantity += $orderDetail->quantity;
             }
         }
         $dataOrder = ['total' => $total, 'origin_total' => $originTotal, 'quantity' => $quantity, 'discount' => $discount];
         $orderService->updateOrder($orderId, $dataOrder);
         return redirect('/order/edit/' . $order->order_code);
     } catch (\Exception $e) {
         if ($request->ajax()) {
             $result['error'] = $e->getMessage();
             return $result;
         } else {
             return view('errors.404', ['error_message' => $e]);
         }
     }
 }
Пример #2
0
 /**
  * @param $shipping
  * @param $orderDetailIds
  * @param $order
  * @param $subtotal
  * @param $shipFee
  * @param $extraDiscount
  * @param $extraDiscountDesc
  * @return bool
  */
 public function createShippingRow($shipping, $orderDetailIds, $order, $subtotal, $shipFee, $extraDiscount, $extraDiscountDesc, $paid)
 {
     $orderService = new orderService();
     $address = $order->addressReceive->name . ' - ' . $order->address;
     $this->_shippingModel->createShippingRow($shipping, $address, $subtotal, $order->addressReceive->id, $shipFee, $extraDiscount, $extraDiscountDesc, $paid);
     $orderDetails = $orderService->getOrderDetailByIds($orderDetailIds);
     foreach ($orderDetails as $orderDetail) {
         $orderService->updateOrderDetail($orderDetail->id, ['shipping_service_code' => $shipping->OrderCode, 'order_service_status' => KACANA_ORDER_SERVICE_STATUS_SHIPPING, 'order_id' => $orderDetail->order_id]);
     }
     return true;
 }