clinic_id; $search_by = $request->search_by; $patient_categories = DB::table('patient_categories')->pluck("name", "id"); $filters = []; if($search_by == 0){ $start_date = Carbon::now()->startOfDay()->toDateTimeString(); $end_date = Carbon::now()->endOfDay()->toDateTimeString(); } elseif ($search_by == 1) { $start_date = Carbon::now()->subDay()->startOfDay()->toDateTimeString(); $end_date = Carbon::now()->subDay()->endOfDay()->toDateTimeString(); } elseif ($search_by == 2) { $start_date = Carbon::parse($request->reg_date)->startOfDay()->toDateTimeString(); $end_date = Carbon::parse($request->reg_date)->endOfDay()->toDateTimeString(); } elseif ($search_by ==3) { // custom date range $start_date = Carbon::parse($request->start_date)->startOfDay()->toDateTimeString(); $end_date = Carbon::parse($request->end_date)->endOfDay()->toDateTimeString(); } else { $start_date = Carbon::now()->toDateTimeString(); $end_date = Carbon::now()->toDateTimeString(); } if ($clinic_id != 0) { $filters[] = ['patient_episodes.clinic_id', '=', $clinic_id]; } if (is_numeric($request->patient_number)) { $filters[] = ['patient_episodes.patient_id', '=', $request->patient_number]; $start_date = Carbon::now()->startOfCentury()->toDateTimeString(); $end_date = Carbon::now()->endOfDay()->toDateTimeString(); } $patient_episodes = DB::table('patient_episodes') ->leftJoin('patients', 'patients.id', '=', 'patient_episodes.patient_id') ->leftJoin('treatments', 'treatments.episode_id', '=', 'patient_episodes.id') ->leftJoin('ordered_procedures', 'ordered_procedures.episode_id', '=', 'patient_episodes.id') ->leftJoin('ordered_investigations', 'ordered_investigations.episode_id', '=', 'patient_episodes.id') ->leftJoin('ordered_sundries', 'ordered_sundries.episode_id', '=', 'patient_episodes.id') ->leftJoin('ordered_services', 'ordered_services.episode_id', '=', 'patient_episodes.id') ->where($filters) ->groupBy('patient_episodes.id') ->whereBetween('patient_episodes.created_at', [$start_date, $end_date]) ->select('patient_episodes.id as episode_id', 'patient_episodes.patient_id', 'patients.first_name', 'patients.last_name', 'patients.date_of_birth', 'patients.number', 'patients.phone', 'patients.category_id', 'treatments.id as treatment_id', 'treatments.payment_status as treatment_payment_status', 'treatments.inpatient_bill_generated as treatment_is_inpatient', 'ordered_procedures.id as procedure_id', 'ordered_procedures.payment_status as procedures_payment_status', 'ordered_procedures.inpatient_bill_generated as procedures_is_inpatient', 'ordered_investigations.id as investigation_id', 'ordered_investigations.payment_status as investigation_payment_status', 'ordered_investigations.inpatient_bill_generated as invs_is_inpatient', 'ordered_sundries.id as sundries_id', 'ordered_sundries.payment_status as sundries_payment_status', 'ordered_sundries.inpatient_bill_generated as sundry_is_inpatient', 'ordered_services.id as service_id', 'ordered_services.payment_status as service_payment_status', 'ordered_services.inpatient_bill_generated as service_is_inpatient') ->get(); $clinics = DB::table("clinics")->whereNull("deleted_at")->orderBy("name")->pluck("name", "id")->toArray(); $clinics = [0 => 'OPD'] + ['' => '- select -'] + $clinics; return view('finance::finance.incoming_opd_payments', compact('patient_categories', 'clinics', 'patient_episodes')); } }