whereHas('orderPackingLists', function ($query) use ($inactive_start, $inactive_end) { return $query->where('packing_lists.type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('transports', function ($query) use ($inactive_start, $inactive_end) { return $query->where('drop_date', '>=', Carbon::parse($inactive_start))->where('drop_date', '<=', Carbon::parse($inactive_end)->addDay()); }); })->pluck('id'); return CompanyModule::where('type', BusinessType::IMPORTER)->whereHas('orderPackingLists', function ($query) use ($active_start, $active_end) { return $query->where('packing_lists.type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('transports', function ($query) use ($active_start, $active_end) { return $query->whereDate('drop_date', '>=', Carbon::parse($active_start))->whereDate('drop_date', '<=', Carbon::parse($active_end)->addDay()); }); })->whereNotIn('id', $activeCompanies)->get(); } } /** * * Get Packing List * TODO change all packing related query to this * @param Company $company * @return mixed */ if (!function_exists('getPackingList')) { function getPackingList(Company $company) { return $company->orderPackingLists()->where('packing_lists.type', PackingListType::SHIPPING_PACKING_LIST)->get(); } } /** * * Get Packing List * TODO change all packing related query to this * @param Company $company * @return mixed */ if (!function_exists('format_number')) { function format_number($number): string { if ($number == 0) { return $number; } elseif (is_float($number)) { return number_format($number, 2); } else { return number_format($number); } } } /** * check if a customer have confirmed orders * @param Company $company * @return bool */ if (!function_exists('checkIfHasConfirmedOrders')) { function checkIfHasConfirmedOrders(Company $company): bool { return $company->hasConfirmedOrder(); } }