add region on filter generate report

This commit is contained in:
Jagad R R
2025-01-10 13:38:11 +07:00
parent 0dec9277f7
commit 7f38095a1a
7 changed files with 281 additions and 105 deletions
+186 -90
View File
@@ -13,6 +13,7 @@ use App\Models\FormVehicleRunningCost;
use App\Models\FormOthers;
use App\Models\UserHasCabang;
use App\Models\Cabang;
use App\Models\Region;
class ReportController extends Controller
{
@@ -20,6 +21,7 @@ class ReportController extends Controller
{
$role = auth()->user()->getRoleNames()[0];
$cabangs = [];
$regions = [];
$forms = null;
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
@@ -33,6 +35,7 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('region_id', $region_id)->get();
$regions = Region::where('id', $region_id)->get();
$forms = FormUpCountry::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Area Manager Cabang') {
@@ -43,53 +46,70 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('id', $cabang_id)->get();
$regions = Region::where('id', $cabangs[0]->region_id)->get();
$forms = FormUpCountry::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Medical Representatif') {
$userId = auth()->user()->id;
$cabangs = null;
$regions = null;
$forms = FormUpCountry::where('user_id', $userId)->get();
} else {
$cabangs = Cabang::all();
$regions = Region::all();
$forms = FormUpCountry::all();
}
// get all params in url
$params = request()->all();
if ($params) {
// Filter by region
if (isset($params['region'])) {
$region = Region::where('code', $params['region'])->first();
if ($region) {
$userIds = UserHasCabang::whereIn('cabang_id', Cabang::where('region_id', $region->id)->pluck('id'))->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params) {
if ($params['cabang']) {
// Filter by cabang
if (isset($params['cabang'])) {
$cabang = Cabang::where('code', $params['cabang'])->first();
$users = UserHasCabang::where('cabang_id', $cabang->id)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
if ($cabang) {
$userIds = UserHasCabang::where('cabang_id', $cabang->id)->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params['start_date'] && $params['end_date']) {
$forms = $forms->whereBetween('tanggal', [$params['start_date'], $params['end_date']]);
// Filter by date range
if (isset($params['start_date']) || isset($params['end_date'])) {
$startDate = $params['start_date'] ?? null;
$endDate = $params['end_date'] ?? null;
if ($startDate && $endDate) {
$forms = $forms->whereBetween('tanggal', [$startDate, $endDate]);
} elseif ($startDate) {
$forms = $forms->where('tanggal', '>=', $startDate);
} elseif ($endDate) {
$forms = $forms->where('tanggal', '<=', $endDate);
}
}
if($params['start_date'] && !$params['end_date']) {
$forms = $forms->where('tanggal', $params['start_date']);
}
if(!$params['start_date'] && $params['end_date']) {
$forms = $forms->where('tanggal', $params['end_date']);
}
if($params['status']) {
// Filter by status
if (isset($params['status'])) {
$forms = $forms->where('status', $params['status']);
}
}
return view('backend.pages.report.upcountry', [
'pageInfo' => [
'title' => 'Generate Reports For Form Up Country',
],
'forms' => $forms,
'cabang' => $cabangs
'cabang' => $cabangs,
'regions' => $regions
]);
}
@@ -97,6 +117,7 @@ class ReportController extends Controller
{
$role = auth()->user()->getRoleNames()[0];
$cabangs = [];
$regions = [];
$forms = null;
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
@@ -110,6 +131,7 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('region_id', $region_id)->get();
$regions = Region::where('id', $region_id)->get();
$forms = FormVehicleRunningCost::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Area Manager Cabang') {
@@ -120,43 +142,59 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('id', $cabang_id)->get();
$regions = Region::where('id', $cabangs[0]->region_id)->get();
$forms = FormVehicleRunningCost::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Medical Representatif') {
$userId = auth()->user()->id;
$cabangs = null;
$regions = null;
$forms = FormVehicleRunningCost::where('user_id', $userId)->get();
} else {
$cabangs = Cabang::all();
$regions = Region::all();
$forms = FormVehicleRunningCost::all();
}
// get all params in url
$params = request()->all();
if($params) {
if ($params['cabang']) {
if ($params) {
// Filter by region
if (isset($params['region'])) {
$region = Region::where('code', $params['region'])->first();
if ($region) {
$userIds = UserHasCabang::whereIn('cabang_id', Cabang::where('region_id', $region->id)->pluck('id'))->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
// Filter by cabang
if (isset($params['cabang'])) {
$cabang = Cabang::where('code', $params['cabang'])->first();
$users = UserHasCabang::where('cabang_id', $cabang->id)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
if ($cabang) {
$userIds = UserHasCabang::where('cabang_id', $cabang->id)->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params['start_date'] && $params['end_date']) {
$forms = $forms->whereBetween('tanggal', [$params['start_date'], $params['end_date']]);
// Filter by date range
if (isset($params['start_date']) || isset($params['end_date'])) {
$startDate = $params['start_date'] ?? null;
$endDate = $params['end_date'] ?? null;
if ($startDate && $endDate) {
$forms = $forms->whereBetween('tanggal', [$startDate, $endDate]);
} elseif ($startDate) {
$forms = $forms->where('tanggal', '>=', $startDate);
} elseif ($endDate) {
$forms = $forms->where('tanggal', '<=', $endDate);
}
}
if($params['start_date'] && !$params['end_date']) {
$forms = $forms->where('tanggal', $params['start_date']);
}
if(!$params['start_date'] && $params['end_date']) {
$forms = $forms->where('tanggal', $params['end_date']);
}
if($params['status']) {
// Filter by status
if (isset($params['status'])) {
$forms = $forms->where('status', $params['status']);
}
}
@@ -166,7 +204,8 @@ class ReportController extends Controller
'title' => 'Generate Reports For Form Vehicle Running Cost',
],
'forms' => $forms,
'cabang' => $cabangs
'cabang' => $cabangs,
'regions' => $regions
]);
}
@@ -174,6 +213,7 @@ class ReportController extends Controller
{
$role = auth()->user()->getRoleNames()[0];
$cabangs = [];
$regions = [];
$forms = null;
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
@@ -187,6 +227,7 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('region_id', $region_id)->get();
$regions = Region::where('id', $region_id)->get();
$forms = FormEntertaimentPresentation::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Area Manager Cabang') {
@@ -197,43 +238,59 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('id', $cabang_id)->get();
$regions = Region::where('id', $cabangs[0]->region_id)->get();
$forms = FormEntertaimentPresentation::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Medical Representatif') {
$userId = auth()->user()->id;
$cabangs = null;
$regions = null;
$forms = FormEntertaimentPresentation::where('user_id', $userId)->get();
} else {
$cabangs = Cabang::all();
$regions = Region::all();
$forms = FormEntertaimentPresentation::all();
}
// get all params in url
$params = request()->all();
if($params) {
if ($params['cabang']) {
if ($params) {
// Filter by region
if (isset($params['region'])) {
$region = Region::where('code', $params['region'])->first();
if ($region) {
$userIds = UserHasCabang::whereIn('cabang_id', Cabang::where('region_id', $region->id)->pluck('id'))->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
// Filter by cabang
if (isset($params['cabang'])) {
$cabang = Cabang::where('code', $params['cabang'])->first();
$users = UserHasCabang::where('cabang_id', $cabang->id)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
if ($cabang) {
$userIds = UserHasCabang::where('cabang_id', $cabang->id)->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params['start_date'] && $params['end_date']) {
$forms = $forms->whereBetween('tanggal', [$params['start_date'], $params['end_date']]);
// Filter by date range
if (isset($params['start_date']) || isset($params['end_date'])) {
$startDate = $params['start_date'] ?? null;
$endDate = $params['end_date'] ?? null;
if ($startDate && $endDate) {
$forms = $forms->whereBetween('tanggal', [$startDate, $endDate]);
} elseif ($startDate) {
$forms = $forms->where('tanggal', '>=', $startDate);
} elseif ($endDate) {
$forms = $forms->where('tanggal', '<=', $endDate);
}
}
if($params['start_date'] && !$params['end_date']) {
$forms = $forms->where('tanggal', $params['start_date']);
}
if(!$params['start_date'] && $params['end_date']) {
$forms = $forms->where('tanggal', $params['end_date']);
}
if($params['status']) {
// Filter by status
if (isset($params['status'])) {
$forms = $forms->where('status', $params['status']);
}
}
@@ -243,7 +300,8 @@ class ReportController extends Controller
'title' => 'Generate Reports For Form Entertainment & Presentation',
],
'forms' => $forms,
'cabang' => $cabangs
'cabang' => $cabangs,
'regions' => $regions
]);
}
@@ -251,6 +309,7 @@ class ReportController extends Controller
{
$role = auth()->user()->getRoleNames()[0];
$cabangs = [];
$regions = [];
$forms = null;
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
@@ -264,6 +323,7 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('region_id', $region_id)->get();
$regions = Region::where('id', $region_id)->get();
$forms = FormMeetingSeminar::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Area Manager Cabang') {
@@ -274,43 +334,59 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('id', $cabang_id)->get();
$regions = Region::where('id', $cabangs[0]->region_id)->get();
$forms = FormMeetingSeminar::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Medical Representatif') {
$userId = auth()->user()->id;
$cabangs = null;
$regions = null;
$forms = FormMeetingSeminar::where('user_id', $userId)->get();
} else {
$cabangs = Cabang::all();
$regions = Region::all();
$forms = FormMeetingSeminar::all();
}
// get all params in url
$params = request()->all();
if($params) {
if ($params['cabang']) {
if ($params) {
// Filter by region
if (isset($params['region'])) {
$region = Region::where('code', $params['region'])->first();
if ($region) {
$userIds = UserHasCabang::whereIn('cabang_id', Cabang::where('region_id', $region->id)->pluck('id'))->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
// Filter by cabang
if (isset($params['cabang'])) {
$cabang = Cabang::where('code', $params['cabang'])->first();
$users = UserHasCabang::where('cabang_id', $cabang->id)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
if ($cabang) {
$userIds = UserHasCabang::where('cabang_id', $cabang->id)->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params['start_date'] && $params['end_date']) {
$forms = $forms->whereBetween('tanggal', [$params['start_date'], $params['end_date']]);
// Filter by date range
if (isset($params['start_date']) || isset($params['end_date'])) {
$startDate = $params['start_date'] ?? null;
$endDate = $params['end_date'] ?? null;
if ($startDate && $endDate) {
$forms = $forms->whereBetween('tanggal', [$startDate, $endDate]);
} elseif ($startDate) {
$forms = $forms->where('tanggal', '>=', $startDate);
} elseif ($endDate) {
$forms = $forms->where('tanggal', '<=', $endDate);
}
}
if($params['start_date'] && !$params['end_date']) {
$forms = $forms->where('tanggal', $params['start_date']);
}
if(!$params['start_date'] && $params['end_date']) {
$forms = $forms->where('tanggal', $params['end_date']);
}
if($params['status']) {
// Filter by status
if (isset($params['status'])) {
$forms = $forms->where('status', $params['status']);
}
}
@@ -320,7 +396,8 @@ class ReportController extends Controller
'title' => 'Generate Reports For Form Meeting & Seminar',
],
'forms' => $forms,
'cabang' => $cabangs
'cabang' => $cabangs,
'regions' => $regions
]);
}
@@ -328,6 +405,7 @@ class ReportController extends Controller
{
$role = auth()->user()->getRoleNames()[0];
$cabangs = [];
$regions = [];
$forms = null;
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
@@ -341,6 +419,7 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('region_id', $region_id)->get();
$regions = Region::where('id', $region_id)->get();
$forms = FormOthers::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Area Manager Cabang') {
@@ -351,43 +430,59 @@ class ReportController extends Controller
$userIds = $users->pluck('user_id')->toArray();
$cabangs = Cabang::where('id', $cabang_id)->get();
$regions = Region::where('id', $cabangs[0]->region_id)->get();
$forms = FormOthers::whereIn('user_id', $userIds)->get();
}
} else if ($role == 'Medical Representatif') {
$userId = auth()->user()->id;
$cabangs = null;
$regions = null;
$forms = FormOthers::where('user_id', $userId)->get();
} else {
$cabangs = Cabang::all();
$regions = Region::all();
$forms = FormOthers::all();
}
// get all params in url
$params = request()->all();
if($params) {
if ($params['cabang']) {
if ($params) {
// Filter by region
if (isset($params['region'])) {
$region = Region::where('code', $params['region'])->first();
if ($region) {
$userIds = UserHasCabang::whereIn('cabang_id', Cabang::where('region_id', $region->id)->pluck('id'))->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
// Filter by cabang
if (isset($params['cabang'])) {
$cabang = Cabang::where('code', $params['cabang'])->first();
$users = UserHasCabang::where('cabang_id', $cabang->id)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
if ($cabang) {
$userIds = UserHasCabang::where('cabang_id', $cabang->id)->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
}
if($params['start_date'] && $params['end_date']) {
$forms = $forms->whereBetween('tanggal', [$params['start_date'], $params['end_date']]);
// Filter by date range
if (isset($params['start_date']) || isset($params['end_date'])) {
$startDate = $params['start_date'] ?? null;
$endDate = $params['end_date'] ?? null;
if ($startDate && $endDate) {
$forms = $forms->whereBetween('tanggal', [$startDate, $endDate]);
} elseif ($startDate) {
$forms = $forms->where('tanggal', '>=', $startDate);
} elseif ($endDate) {
$forms = $forms->where('tanggal', '<=', $endDate);
}
}
if($params['start_date'] && !$params['end_date']) {
$forms = $forms->where('tanggal', $params['start_date']);
}
if(!$params['start_date'] && $params['end_date']) {
$forms = $forms->where('tanggal', $params['end_date']);
}
if($params['status']) {
// Filter by status
if (isset($params['status'])) {
$forms = $forms->where('status', $params['status']);
}
}
@@ -397,7 +492,8 @@ class ReportController extends Controller
'title' => 'Generate Reports For Form Others',
],
'forms' => $forms,
'cabang' => $cabangs
'cabang' => $cabangs,
'regions' => $regions
]);
}
}