559 lines
24 KiB
PHP
Executable File
559 lines
24 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Dealer;
|
|
use App\Models\Menu;
|
|
use App\Models\Role;
|
|
use App\Models\Transaction;
|
|
use App\Models\User;
|
|
use App\Models\Work;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Gate;
|
|
|
|
class AdminController extends Controller
|
|
{
|
|
public function cmp($a, $b){
|
|
$key = 'work_id';
|
|
if($a[$key] > $b[$key]){
|
|
return 1;
|
|
}else if($a[$key] < $b[$key]){
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public function dashboard(Request $request) {
|
|
abort_if(Gate::denies('view', Menu::where('link', 'dashboard')->first()), 403, 'Unauthorized User');
|
|
|
|
if(!isset($request->month)) {
|
|
$request['month'] = date('m');
|
|
}
|
|
|
|
if(!isset($request->year)) {
|
|
$request['year'] = date('Y');
|
|
}
|
|
|
|
$month = $request->month;
|
|
$dealer = $request->dealer;
|
|
$year = $request->year;
|
|
|
|
// Get dealers based on user role
|
|
$user = Auth::user();
|
|
$role = Role::with(['dealers' => function($query) {
|
|
$query->whereNull('dealers.deleted_at'); // Only active dealers
|
|
}])->find($user->role_id);
|
|
|
|
if($role && $this->isAdminRole($role) && $role->dealers->count() == 0) {
|
|
$dealer_datas = Dealer::all();
|
|
} else if($role) {
|
|
$dealer_datas = $role->dealers()->whereNull('dealers.deleted_at')->orderBy('name')->get();
|
|
} else {
|
|
$dealer_datas = collect();
|
|
}
|
|
|
|
$ajax_url = route('dashboard_data').'?month='.$month.'&year='.$year.'&dealer='.$dealer;
|
|
return view('dashboard', compact('month','year', 'ajax_url', 'dealer', 'dealer_datas'));
|
|
}
|
|
|
|
public function dashboard_data(Request $request) {
|
|
abort_if(Gate::denies('view', Menu::where('link', 'dashboard')->first()), 403, 'Unauthorized User');
|
|
if(!isset($request->month)) {
|
|
$request['month'] = date('m');
|
|
}
|
|
|
|
if(!isset($request->year)) {
|
|
$request['year'] = date('Y');
|
|
}
|
|
|
|
if(isset($request->{'amp;dealer'})) {
|
|
$request['dealer'] = $request->{'amp;dealer'};
|
|
}
|
|
|
|
if(isset($request->{'amp;year'})) {
|
|
$request['year'] = $request->{'amp;year'};
|
|
}
|
|
|
|
if(!isset($request->dealer)) {
|
|
$request['dealer'] = 'all';
|
|
}
|
|
|
|
$month = $request->month;
|
|
$dealer = $request->dealer;
|
|
$year = $request->year;
|
|
|
|
$dealer_work_trx = DB::statement("SET @sql = NULL");
|
|
$sql = "SELECT IF(work_id IS NOT NULL, GROUP_CONCAT(DISTINCT CONCAT('SUM(IF(work_id = \"', work_id,'\", qty,\"\")) AS \"',CONCAT(w.name, '|',w.id),'\"')), 's.work_id') INTO @sql FROM transactions t JOIN works w ON w.id = t.work_id WHERE month(t.date) = '". $month ."' and year(t.date) = '". $year ."' and t.deleted_at is null";
|
|
|
|
$dealer_work_trx = DB::statement($sql);
|
|
|
|
// Get dealers based on user role - only change this part
|
|
$user = Auth::user();
|
|
$role = Role::with(['dealers' => function($query) {
|
|
$query->whereNull('dealers.deleted_at'); // Only active dealers
|
|
}])->find($user->role_id);
|
|
|
|
if($role && $this->isAdminRole($role) && $role->dealers->count() == 0) {
|
|
$dealer_datas = Dealer::all();
|
|
} else if($role) {
|
|
$dealer_datas = $role->dealers()->whereNull('dealers.deleted_at')->orderBy('name')->get();
|
|
} else {
|
|
$dealer_datas = collect();
|
|
}
|
|
|
|
// Validate that the requested dealer is allowed for this user
|
|
if(isset($request->dealer) && $request->dealer != 'all') {
|
|
if($dealer_datas->count() > 0) {
|
|
$allowedDealerIds = $dealer_datas->pluck('id')->toArray();
|
|
if(!in_array($dealer, $allowedDealerIds)) {
|
|
// If dealer is not allowed, reset to 'all'
|
|
$dealer = 'all';
|
|
}
|
|
} else {
|
|
// If no dealers are allowed, reset to 'all'
|
|
$dealer = 'all';
|
|
}
|
|
}
|
|
|
|
// Build dealer filter based on user role
|
|
$dealerFilter = '';
|
|
if($dealer_datas->count() > 0) {
|
|
$dealerIds = $dealer_datas->pluck('id')->toArray();
|
|
$dealerFilter = " and s.dealer_id IN (" . implode(',', $dealerIds) . ")";
|
|
}
|
|
|
|
if(isset($request->dealer) && $request->dealer != 'all') {
|
|
$dealer_work_trx = DB::statement("SET @sql = IF(@sql != 's.work_id' ,CONCAT(\"SELECT d.name as DEALER, d.id as dealer_id, \", @sql, \"FROM transactions s JOIN dealers d ON d.id = s.dealer_id WHERE month(s.date) = '". $month ."' and year(s.date) = '". $year ."' and s.deleted_at is null and s.dealer_id = '". $dealer ."'". $dealerFilter ." GROUP BY s.dealer_id ORDER BY s.dealer_id ASC\"), CONCAT(\"SELECT d.name as DEALER \", \"FROM transactions s JOIN dealers d ON d.id = s.dealer_id WHERE month(s.date) = '". $month ."' and year(s.date) = '". $year ."' and s.deleted_at is null and s.dealer_id = '". $dealer ."'". $dealerFilter ." GROUP BY s.`dealer_id` ORDER BY s.`dealer_id` ASC\"))");
|
|
} else {
|
|
$dealer_work_trx = DB::statement("SET @sql = IF(@sql != 's.work_id' ,CONCAT(\"SELECT d.name as DEALER, d.id as dealer_id, \", @sql, \"FROM transactions s JOIN dealers d ON d.id = s.dealer_id WHERE month(s.date) = '". $month ."' and year(s.date) = '". $year ."' and s.deleted_at is null". $dealerFilter ." GROUP BY s.dealer_id ORDER BY s.dealer_id ASC\"), CONCAT(\"SELECT d.name as DEALER, d.id as dealer_id \", \"FROM transactions s JOIN dealers d ON d.id = s.dealer_id WHERE month(s.date) = '". $month ."' and year(s.date) = '". $year ."' and s.deleted_at is null". $dealerFilter ." GROUP BY s.`dealer_id` ORDER BY s.`dealer_id` ASC\"))");
|
|
}
|
|
|
|
$dealer_work_trx = DB::statement("PREPARE stmt FROM @sql");
|
|
$dealer_work_trx = DB::select(DB::raw("EXECUTE stmt"));
|
|
DB::statement('DEALLOCATE PREPARE stmt');
|
|
$theads = ['DEALER'];
|
|
$dealer_names = [];
|
|
$dealer_trx = [];
|
|
$work_trx = [];
|
|
$work_ids = [];
|
|
|
|
foreach($dealer_work_trx as $index => $dealer_work) {
|
|
$dealer_work_2 = (array) $dealer_work;
|
|
unset($dealer_work_2['dealer_id']);
|
|
$work_trx[$dealer_work->dealer_id] = array_values($dealer_work_2);
|
|
unset($dealer_work_2['DEALER']);
|
|
$work_names = array_keys($dealer_work_2);
|
|
if($index == 0) {
|
|
foreach($work_names as $work) {
|
|
$arr_work = explode('|', $work);
|
|
$theads[] = $arr_work[0];
|
|
$work_ids[] = $arr_work[1];
|
|
$dealer_trx[$work] = [
|
|
'work_name' => $arr_work[0],
|
|
'qty' => [$dealer_work->{$work}]
|
|
];
|
|
}
|
|
}else{
|
|
foreach($work_names as $work) {
|
|
$dealer_trx[$work]['qty'][] = $dealer_work->{$work};
|
|
}
|
|
}
|
|
|
|
$dealer_names[] = $dealer_work->DEALER;
|
|
}
|
|
$dealer_trx = array_values($dealer_trx);
|
|
$dealer = $request->dealer;
|
|
$month = $request->month;
|
|
|
|
$dealer_names = json_encode($dealer_names);
|
|
$dealer_trx = json_encode($dealer_trx);
|
|
|
|
$prev_mth_start = date('Y-m-d', strtotime(date($year.'-'. $request->month .'-1')." -1 month"));
|
|
$prev_mth = explode('-', $prev_mth_start);
|
|
if($request->month == date('m') && $year == date('Y')) {
|
|
// Jika bulan sekarang, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}else{
|
|
// Jika bulan lain, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}
|
|
|
|
$prev_month_trx = [];
|
|
$now_month_trx = [];
|
|
foreach($work_ids as $work_id) {
|
|
$now_month = Transaction::select(DB::raw("SUM(qty) as qty"))->where('work_id', $work_id)->whereMonth('date', '=', $request->month)->whereYear('date', $year);
|
|
$prev_month = Transaction::select(DB::raw("SUM(qty) as qty"))->where('work_id', $work_id)->whereDate('date', '>=', $prev_mth_start)->whereDate('date', '<=', $prev_mth_end);
|
|
|
|
if(isset($request->dealer) && $request->dealer != 'all') {
|
|
$prev_month = $prev_month->where('dealer_id', $request->dealer);
|
|
$now_month = $now_month->where('dealer_id', $request->dealer);
|
|
} else if($dealer_datas->count() > 0) {
|
|
// Filter by allowed dealers based on user role
|
|
$dealerIds = $dealer_datas->pluck('id')->toArray();
|
|
$prev_month = $prev_month->whereIn('dealer_id', $dealerIds);
|
|
$now_month = $now_month->whereIn('dealer_id', $dealerIds);
|
|
}
|
|
|
|
$prev_month_trx[] = $prev_month->sum('qty');
|
|
$now_month_trx[] = $now_month->sum('qty');
|
|
}
|
|
|
|
$totals = [];
|
|
for($i = 0; $i < count($now_month_trx); $i++) {
|
|
$totals[] = [
|
|
"prev" => $prev_month_trx[$i],
|
|
"now" => $now_month_trx[$i],
|
|
];
|
|
}
|
|
|
|
return view('dashboard_data', compact('theads', 'work_trx', 'month', 'year', 'dealer_names', 'dealer_trx', 'dealer', 'totals'));
|
|
}
|
|
|
|
/**
|
|
* Check if role is admin type
|
|
*/
|
|
private function isAdminRole($role)
|
|
{
|
|
if (!$role) {
|
|
return false;
|
|
}
|
|
|
|
// Define admin role names that should have access to all dealers
|
|
$adminRoleNames = [
|
|
'admin'
|
|
];
|
|
|
|
// Check if role name contains admin keywords (but not "area")
|
|
$roleName = strtolower(trim($role->name));
|
|
foreach ($adminRoleNames as $adminName) {
|
|
if (strpos($roleName, $adminName) !== false && strpos($roleName, 'area') === false) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Role with "area" in name should use pivot dealers, not all dealers
|
|
if (strpos($roleName, 'area') !== false) {
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function dealer_work_trx(Request $request) {
|
|
$dealer_work_trx = Work::select(DB::raw('works.name AS work_name'), DB::raw("IFNULL(SUM(t.qty), 0) AS qty"), 'works.id AS work_id')->whereHas('transactions', function($q) use($request) {
|
|
if(isset($request->month)) {
|
|
$q = $q->whereMonth('date', '=', $request->month)->whereYear('date', date('Y'));
|
|
}
|
|
|
|
if(isset($request->dealer_filter) && $request->dealer_filter != 'all') {
|
|
$q = $q->where('dealer_id', $request->dealer_filter);
|
|
}
|
|
|
|
return $q;
|
|
})->leftJoin('transactions AS t', function($q) use($request) {
|
|
$q->on('t.work_id', '=', 'works.id');
|
|
$q->on(DB::raw('MONTH(t.date)'), '=', DB::raw($request->month));
|
|
$q->on(DB::raw('YEAR(t.date)'), '=', DB::raw(date('Y')));
|
|
$q->on('t.dealer_id', '=', DB::raw($request->dealer));
|
|
})->groupBy('works.id')->orderBy('works.id', 'ASC')->get();
|
|
return response()->json($dealer_work_trx);
|
|
}
|
|
|
|
public function get_dealer_has_transactions(Request $request) {
|
|
if(!isset($request->month)) {
|
|
$request['month'] = date('m');
|
|
}
|
|
|
|
$dealers = Dealer::whereHas('transactions', function($q) use($request) {
|
|
if(isset($request->month)) {
|
|
$q = $q->whereMonth('date', '=', $request->month)->whereYear('date', date('Y'));
|
|
}
|
|
});
|
|
|
|
if(isset($request->dealer) && $request->dealer != 'all') {
|
|
$dealers = $dealers->where('id', $request->dealer);
|
|
}
|
|
|
|
$dealers = $dealers->orderBy('id', 'ASC')->get();
|
|
|
|
return response()->json($dealers);
|
|
}
|
|
|
|
public function dashboard_data_old(Request $request) {
|
|
$trxs = [];
|
|
|
|
if(!isset($request->month)) {
|
|
$request['month'] = date('m');
|
|
}
|
|
|
|
$dealers = Dealer::whereHas('transactions', function($q) use($request) {
|
|
if(isset($request->month)) {
|
|
return $q->whereMonth('date', '=', $request->month)->whereYear('date', date('Y'));
|
|
}
|
|
})->orderBy('id', 'ASC')->get();
|
|
|
|
$works = Work::select('id', 'name')->whereHas('transactions', function($q) use($request) {
|
|
if(isset($request->month)) {
|
|
return $q->whereMonth('date', '=', $request->month)->whereYear('date', date('Y'));
|
|
}
|
|
})->orderBy('id', 'ASC')->get();
|
|
|
|
|
|
$works_count = $works->count();
|
|
$month_trxs_total = [];
|
|
$prev_month_trxs_total = [];
|
|
foreach ($dealers as $key => $dealer) {
|
|
foreach($works as $work1) {
|
|
$prev_mth_start = date('Y-m-d', strtotime(date('Y-'. $request->month .'-1')." -1 month"));
|
|
$prev_mth = explode('-', $prev_mth_start);
|
|
if($request->month == date('m') && date('Y') == date('Y')) {
|
|
// Jika bulan sekarang, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}else{
|
|
// Jika bulan lain, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}
|
|
|
|
$yesterday_month_trx = Transaction::where('work_id', $work1->id)->where('dealer_id', $dealer->id)->whereDate('date', '>=', $prev_mth_start)->whereDate('date', '<=', $prev_mth_end)->sum('qty');
|
|
|
|
if(array_key_exists($work1->id, $prev_month_trxs_total)) {
|
|
$prev_month_trxs_total[$work1->id] += $yesterday_month_trx;
|
|
}else{
|
|
$prev_month_trxs_total[$work1->id] = $yesterday_month_trx;
|
|
}
|
|
}
|
|
|
|
$dealer_works = [];
|
|
foreach ($works as $key2 => $work) {
|
|
$d = Transaction::where('dealer_id', $dealer->id)->where('work_id', $work->id);
|
|
|
|
if(isset($request->month)) {
|
|
$d = $d->whereMonth('date', '=', $request->month)->whereYear('date', date('Y'));
|
|
$month = $request->month;
|
|
}
|
|
|
|
$d = $d->sum('qty');
|
|
if($d) {
|
|
if(array_key_exists($work->id, $month_trxs_total)) {
|
|
$month_trxs_total[$work->id] += $d;
|
|
}else{
|
|
$month_trxs_total[$work->id] = $d;
|
|
}
|
|
$dealer_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'dealer_id' => $dealer->id,
|
|
'qty' => $d,
|
|
];
|
|
}else{
|
|
$dealer_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'dealer_id' => $dealer->id,
|
|
'qty' => 0,
|
|
];
|
|
}
|
|
}
|
|
|
|
$trxs[] = [
|
|
'dealer_id' => $dealer->id,
|
|
'dealer_name' => $dealer->name,
|
|
'works' => $dealer_works
|
|
];
|
|
}
|
|
|
|
$dealer_names = [];
|
|
$trx_data = [];
|
|
foreach($trxs as $trx) {
|
|
$dealer_names[] = $trx['dealer_name'];
|
|
$work_data2 = [];
|
|
foreach($trx['works'] as $work_data) {
|
|
if(array_key_exists($work_data['work_name'], $trx_data)) {
|
|
$trx_data[$work_data['work_name']]['qty'][] = $work_data['qty'];
|
|
}else{
|
|
$trx_data[$work_data['work_name']] = [
|
|
'work_name' => $work_data['work_name'],
|
|
'qty' => [$work_data['qty']]
|
|
];
|
|
}
|
|
}
|
|
}
|
|
|
|
$month_trxs_total = array_values($month_trxs_total);
|
|
$prev_month_trxs_total = array_values($prev_month_trxs_total);
|
|
|
|
$totals = [];
|
|
for($i = 0; $i < count($month_trxs_total); $i++) {
|
|
$totals[] = [
|
|
"prev" => $prev_month_trxs_total[$i],
|
|
"now" => $month_trxs_total[$i],
|
|
];
|
|
}
|
|
$dealer_names = json_encode($dealer_names);
|
|
|
|
$trx_data = json_encode(array_values($trx_data));
|
|
$month = $request->month;
|
|
|
|
return view('dashboard_data', compact('works', 'works_count', 'trxs', 'month', 'dealer_names', 'trx_data', 'totals'));
|
|
}
|
|
|
|
public function dealer_recap(Request $request, $id)
|
|
{
|
|
abort_if(Gate::denies('view', Menu::where('link', 'dashboard')->first()), 403, 'Unauthorized User');
|
|
|
|
if(!isset($request->month)) {
|
|
$request['month'] = date('m');
|
|
}
|
|
|
|
if(!isset($request->year)) {
|
|
$request['year'] = date('Y');
|
|
}
|
|
|
|
$works = Work::select('id', 'name', 'shortname')->whereHas('transactions', function($q) use($request, $id) {
|
|
return $q->where('qty', '>', '0')->where('dealer_id', $id)->whereMonth('date', '=', $request->month)->whereYear('date', $request->year);
|
|
})->get();
|
|
|
|
$sas = User::select('id', 'name')->whereHas('sa_transactions', function($q) use($request, $id) {
|
|
return $q->where('dealer_id', $id)->whereMonth('date', '=', $request->month)->whereYear('date', $request->year);
|
|
})->get();
|
|
|
|
$dealer = Dealer::find($id);
|
|
|
|
$dates = Transaction::select(DB::raw('DATE(`date`) as date'))->where('dealer_id', $id)->whereMonth('date', $request->month)->whereYear('date', $request->year)->groupBy(DB::raw('DATE(`date`)'))->get()->toArray();
|
|
$dates = $this->array_value_recursive('date', $dates);
|
|
|
|
$trxs = [];
|
|
$month_trxs_total = [];
|
|
$yesterday_month_trxs_total = [];
|
|
foreach($works as $work1) {
|
|
$prev_mth_start = date('Y-m-d', strtotime(date($request->year.'-'. $request->month .'-1')." -1 month"));
|
|
$prev_mth = explode('-', $prev_mth_start);
|
|
if($request->month == date('m') && $request->year == date('Y')) {
|
|
// Jika bulan sekarang, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}else{
|
|
// Jika bulan lain, ambil total bulan sebelumnya yang lengkap
|
|
$prev_mth_end = $prev_mth[0].'-'.$prev_mth[1].'-'.date('t', strtotime($prev_mth_start));
|
|
}
|
|
|
|
$yesterday_month_trx = Transaction::where('work_id', $work1->id)->where('dealer_id', $id)->whereDate('date', '>=', $prev_mth_start)->whereDate('date', '<=', $prev_mth_end)->sum('qty');
|
|
|
|
if(array_key_exists($work1->id, $yesterday_month_trxs_total)) {
|
|
$yesterday_month_trxs_total[$work1->id] += $yesterday_month_trx;
|
|
}else{
|
|
$yesterday_month_trxs_total[$work1->id] = $yesterday_month_trx;
|
|
}
|
|
}
|
|
|
|
if($dates) {
|
|
foreach($dates as $key => $date) {
|
|
$date_works = [];
|
|
$share_works = [];
|
|
foreach ($works as $key2 => $work) {
|
|
$d = Transaction::where('work_id', $work->id)->where('dealer_id', $id)->whereDate('date', $date)->whereMonth('date', '=', $request->month)->whereYear('date', $request->year);
|
|
|
|
if($d) {
|
|
$d = $d->sum('qty');
|
|
if(array_key_exists($work->id, $month_trxs_total)) {
|
|
$month_trxs_total[$work->id] += $d;
|
|
}else{
|
|
$month_trxs_total[$work->id] = $d;
|
|
}
|
|
|
|
$date_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'shortname' => $work->shortname,
|
|
'date' => $date,
|
|
'qty' => $d,
|
|
];
|
|
}else{
|
|
$date_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'shortname' => $work->shortname,
|
|
'date' => $date,
|
|
'qty' => 0,
|
|
];
|
|
}
|
|
|
|
}
|
|
|
|
$trxs[] = [
|
|
'date' => date('d/m/Y', strtotime($date)),
|
|
'works' => $date_works
|
|
];
|
|
}
|
|
}
|
|
|
|
$dealer_trxs = [];
|
|
foreach($sas as $key => $sa) {
|
|
$sa_works = [];
|
|
foreach ($works as $key2 => $work) {
|
|
$d = Transaction::where('user_sa_id', $sa->id)->where('work_id', $work->id)->where('dealer_id', $id);
|
|
|
|
$d = $d->whereMonth('date', '=', $request->month)->whereYear('date', $request->year);
|
|
$month = $request->month;
|
|
|
|
if($d) {
|
|
$d = $d->sum('qty');
|
|
$sa_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'user_sa_id' => $sa->id,
|
|
'qty' => $d,
|
|
];
|
|
}else{
|
|
$sa_works[] = [
|
|
'work_id' => $work->id,
|
|
'work_name' => $work->name,
|
|
'user_sa_id' => $sa->id,
|
|
'qty' => 0,
|
|
];
|
|
}
|
|
}
|
|
|
|
$dealer_trxs[] = [
|
|
'user_sa_id' => $sa->id,
|
|
'sa_name' => $sa->name,
|
|
'works' => $sa_works
|
|
];
|
|
}
|
|
|
|
// $month_trxs_total = array_values($month_trxs_total);
|
|
// $yesterday_month_trxs_total = array_values($yesterday_month_trxs_total);
|
|
$final_month_trxs_total = [];
|
|
$final_yesterday_month_trxs_total = [];
|
|
foreach($works as $work1) {
|
|
$final_month_trxs_total[$work1->id] = array_key_exists($work1->id, $month_trxs_total) ? $month_trxs_total[$work1->id] : 0;
|
|
$final_yesterday_month_trxs_total[$work1->id] = $yesterday_month_trxs_total[$work1->id];
|
|
}
|
|
$month_trxs_total = array_values($final_month_trxs_total);
|
|
$yesterday_month_trxs_total = array_values($final_yesterday_month_trxs_total);
|
|
$totals = [];
|
|
for($i = 0; $i < count($month_trxs_total); $i++) {
|
|
$totals[] = [
|
|
"prev" => $yesterday_month_trxs_total[$i],
|
|
"now" => $month_trxs_total[$i],
|
|
];
|
|
}
|
|
|
|
$works_count = count($works);
|
|
$month = $request->month;
|
|
$year = $request->year;
|
|
return view('dealer_recap', compact('totals', 'month', 'year', 'works', 'works_count', 'trxs', 'dealer', 'dealer_trxs'));
|
|
}
|
|
|
|
private function array_value_recursive($key, array $arr){
|
|
$val = array();
|
|
array_walk_recursive($arr, function($v, $k) use($key, &$val){
|
|
if($k == $key) array_push($val, $v);
|
|
});
|
|
|
|
return $val;
|
|
}
|
|
|
|
}
|