public function generateUserWaitingTransferTable($request) { $userModel = new User(); $datatables = new DataTables(); $orderDetailModel = new orderDetailModel(); $commissionService = new commissionService(); $columns = array(array('db' => 'users.id', 'dt' => 0), array('db' => 'users.name', 'dt' => 1), array('db' => 'users.phone', 'dt' => 2), array('db' => 'orders.order_code AS product_quantity', 'dt' => 3), array('db' => 'orders.discount AS commission_total', 'dt' => 4), array('db' => 'users.created', 'dt' => 5), array('db' => 'users.updated_at', 'dt' => 6)); $return = $userModel->generateUserWaitingTransferTable($request, $columns); if (count($return['data'])) { foreach ($return['data'] as &$res) { $validCommission = $orderDetailModel->validCommission($res->id); $trimCommission = $commissionService->trimCommission($validCommission); $res->product_quantity = count($validCommission); $res->commission_total = formatMoney($trimCommission['total']); } } $return['data'] = $datatables::data_output($columns, $return['data']); return $return; }
/** * @param $id * @param $data * @return \Illuminate\Support\Collection|null|static */ public function updateOrderDetail($id, $data) { $this->where('id', $id)->update($data); return orderDetailModel::find($id); }
public function transferPayment($orderDetailIds, $userId, $ref, $note) { $orderDetailModel = new orderDetailModel(); $partnerPaymentModel = new partnerPaymentModel(); $partnerPaymentDetailModel = new partnerPaymentDetailModel(); $total = 0; $dataPartnerPayment = ['user_id' => $userId, 'ref' => $ref, 'note' => $note, 'total' => $total]; $payment = $partnerPaymentModel->createItem($dataPartnerPayment); $validCommission = $orderDetailModel->validCommission($userId); foreach ($validCommission as $commission) { if (in_array($commission->id, $orderDetailIds)) { $price = $commission->subtotal * PARTNER_DISCOUNT_PERCENT_LEVEL_1 / 100; $dataPartnerPaymentDetail = ['payment_id' => $payment->id, 'order_detail_id' => $commission->id, 'total' => $price]; $total += $price; $partnerPaymentDetailModel->createItem($dataPartnerPaymentDetail); } } return $partnerPaymentModel->updateItem($payment->id, ['total' => $total]); }
/** * @param $request * @param $userId * @param $addressReceiveId * @return array */ public function generateAllOrderDetailByUserTable($request, $userId) { $orderDetailModel = new orderDetailModel(); $datatables = new DataTables(); $commissionService = new commissionService(); $columns = array(array('db' => 'orders.order_code', 'dt' => 0), array('db' => 'order_detail.name AS order_detail_name', 'dt' => 1), array('db' => 'order_detail.image AS order_detail_image', 'dt' => 2), array('db' => 'order_detail.order_service_status AS order_detail_status', 'dt' => 3), array('db' => 'order_detail.subtotal', 'dt' => 4), array('db' => 'order_detail.updated', 'dt' => 5), array('db' => 'shipping.status AS shipping_status', 'dt' => 6), array('db' => 'partner_payment_detail.payment_id', 'dt' => 7), array('db' => 'order_detail.shipping_service_code', 'dt' => 8), array('db' => 'partner_payments.ref AS payment_code', 'dt' => 9), array('db' => 'orders.id AS order_id', 'dt' => 10)); $return = $orderDetailModel->generateAllOrderDetailByUserTable($request, $columns, $userId); if (count($return['data'])) { foreach ($return['data'] as &$orderDetail) { $orderDetail->order_detail_status = $commissionService::getStatusOrderDetail($orderDetail); $orderDetail->subtotal = formatMoney($orderDetail->subtotal); } } $return['data'] = $datatables::data_output($columns, $return['data']); return $return; }