public function createIfNotExists($name) { $item = OrderStatus::firstOrNew(['name' => $name]); if (!$item->id) { $item->save(); } }
public function canPrintState() { return $this->order_status_id == OrderStatus::Approved()->id; }
/** * @param $filter * @param $user * * @return array */ public function getOrderList(&$filter, $subfilter, $user) { $orderModel = config('order.order_model'); $q = $orderModel::with('proofOfTransfer', 'user', 'customer', 'proofOfTransfer.billplzResponses', 'orderStatus', 'orderItems', 'orderItems.product'); if ($filter == 'draft' || $filter == 'unpaid') { $q = $q->where('order_status_id', '=', OrderStatus::Draft()->id); } else { $q = $q->where('order_status_id', '<>', OrderStatus::Draft()->id); } if ($subfilter == 'hq') { $q = $q->where('is_hq', '=', true)->where('organization_id', Organization::HQ()->id); } elseif ($subfilter == 'org') { $q = $q->where('is_hq', '=', false)->where('organization_id', $user->organization_id); } elseif ($subfilter == 'pl') { $q = $q->where('is_hq', '=', false)->where('organization_id', '<>', Organization::HQ()->id); } elseif ($subfilter == 'hq+org') { $q = $q->where('organization_id', '=', Organization::HQ()->id); } elseif ($subfilter == 'me') { $q = $q->where('user_id', '=', $user->id); } if ($filter == 'unapproved' || $filter == 'late-approvals') { $q = Order::whereNotApproved($q); } elseif ($filter == 'unfulfilled') { $q = Order::whereNotFulfilled($q); } elseif ($filter == 'fulfilled') { $q = Order::whereFulfilled($q); } elseif ($filter == 'approved') { $q = Order::whereNotFulfilled($q); } elseif ($filter == 'shipped') { $q = Order::whereShipped($q); } if ($user->access()->manager || $user->access()->staff) { } if ($filter == 'me' || $filter == 'down-line') { $userIds = User::userIdsForFilter($filter); $q = $q->whereIn('user_id', $userIds); return $q; } elseif ($user->access()->manager || $user->access()->staff) { if ($user->access()->staff) { $q = $q->where('created_at', '<=', 'DATE_SUB(CURDATE(), INTERVAL' . \Config::get('staff.canView') . ' ' . \Config::get('staff.system') . ')'); } if ($filter == 'unapproved' || $filter == 'late-approvals') { $q = $q->where('created_at', '<=', 'DATE_SUB(CURDATE(), INTERVAL 1 WEEK)'); } return $q; } else { return $q; } }