Untitled
unknown
plain_text
2 years ago
19 kB
18
Indexable
public function providerDetails($id, Request $request,AccountingServices $AccountingServices){
if ($request->ajax()) {
$request['provider'] =array($id);
$data = $AccountingServices->getAccounting($request, self::ELEMENTS_PER_PAGE);
foreach ($data['accounting'] as $key => $value) {
if(is_array(json_decode($value->vehicles, true))){
$getVehicles = Vehicles::whereIn('id', json_decode($value->vehicles, true))->get();
$data['accounting'][$key]['vehicle'] = $getVehicles;
}else{
$data['accounting'][$key]['vehicle'] = array();
}
$getNote = AccountingNote::select(DB::raw('accounting_note.*,users.first_name,users.last_name,users.profile_picture'))->leftJoin('users', 'accounting_note.user_id', '=', 'users.id')->where('accounting_note.accounting_id', '=', $value->id)->orderBy('accounting_note.id', 'desc')->get();
$data['accounting'][$key]['notes'] = $getNote;
$payment_details=PaymentDetails::select(DB::raw("GROUP_CONCAT(payment_id) as payment_ids"))->where('accounting_id',$value->id)->first();
$payments=Payment::whereIn('id',explode(",",$payment_details->payment_ids))->get();
$data['accounting'][$key]['payments'] = $payments;
}
$view = \View::make('admin.accounting.viewAccountingPartial', $data);
$html = $view->render();
return response()->json(['error' => false, 'message' => 'success', 'html' => $html]);
}else{
$atwho = $sale_note = $purchase_note =array();
$allNote=array();
$provider = ProviderExpanse::select(DB::raw('provider_for_expanse.*,provider_type.type_name as category_name'))
->leftJoin('provider_type','provider_for_expanse.category','=','provider_type.id')->where('provider_for_expanse.id','=',$id)->first();
if(empty($provider)){
return redirect('viewProvider')->with('error', 'Provider not found');
}
$accounting = Accounting::select(DB::raw('accounting.*,provider_for_expanse.provider_name,provider_type.type_name as category_name'))
->leftJoin('provider_for_expanse','accounting.provider_id','=','provider_for_expanse.id')
->leftJoin('provider_type','accounting.category_id','=','provider_type.id')->where('accounting.provider_id','=',$id)->orderBy('invoice_date','asc')->with('paymentDetails')
->get();
$accounting_count = $accounting->count();
$unionQuery1 = null;
$unionQuery2 = null;
foreach($accounting as $key => $value){
if(is_array(json_decode($value->vehicles, true))){
$getVehicles = Vehicles::whereIn('id', json_decode($value->vehicles, true))->get();
$accounting[$key]['vehicle']= $getVehicles;
}else{
$accounting[$key]['vehicle']= array();
}
$getNoteP=AccountingNote::
leftJoin('users','accounting_note.user_id','=','users.id')
->where('accounting_note.accounting_id','=',$value->id)
->orderBy('accounting_note.id','desc')
->select(
DB::raw('users.profile_picture'),
DB::raw("CONCAT(users.first_name, ' ', users.last_name) AS full_name"),
DB::raw("'' AS title"),
DB::raw("'purchase' AS type"),
DB::raw("accounting_note.note AS note"),
DB::raw("accounting_note.created_at AS created_at")
);
if ($unionQuery1 === null) {
$unionQuery1 = $getNoteP;
} else {
$unionQuery1->union($getNoteP);
}
$getNoteS=AccountingNote::
leftJoin('users','accounting_note.user_id','=','users.id')
->where('accounting_note.accounting_id','=',$value->id)
->orderBy('accounting_note.id','desc')
->select(
DB::raw('users.profile_picture'),
DB::raw("CONCAT(users.first_name, ' ', users.last_name) AS full_name"),
DB::raw("'' AS title"),
DB::raw("'sale' AS type"),
DB::raw("accounting_note.note AS note"),
DB::raw("accounting_note.created_at AS created_at")
);
$accounting[$key]['notes']=$getNoteP->get();
if ($unionQuery2 === null) {
$unionQuery2 = $getNoteS;
} else {
$unionQuery2->union($getNoteS);
}
/*$payment_details=PaymentDetails::select(DB::raw("payment_details.*,payment.status,payment.payment_date,payment.merged_pdf,payment.payment_proof,payment.cancel_proof"))->leftJoin('payment','payment_details.payment_id','=','payment.id')->where('accounting_id',$value->id)->get();*/
//$payments=Payment::whereIn('id',explode(",",$payment_details->payment_ids))->get();
//$accounting[$key]['payments'] = $payment_details;
/*if($value->type == 'sale' || $value->type == 'bank_deposit'){
array_push($sale_note, $getNoteS);
}
if($value->type == 'expense'){
array_push($purchase_note, $getNoteP);
}*/
}
if(isset($unionQuery2)){
$new_purchase_note = $unionQuery2->get();
}
if(isset($unionQuery2)){
$new_sale_note = $unionQuery2->get();
} /*
foreach ($purchase_note as $pkey => $pvalue) {
foreach ($pvalue as $ppkey => $ppvalue) {
array_push($new_purchase_note, $ppvalue);
array_push($allNote,array('first_name'=>$ppvalue->first_name,'last_name'=>$ppvalue->last_name,'note'=>$ppvalue->note,'created_at'=>$ppvalue->created_at,"title"=>"","type" => 'purchase'));
}
}
foreach ($sale_note as $skey => $svalue) {
foreach ($svalue as $sskey => $ssvalue) {
array_push($new_sale_note, $ssvalue);
array_push($allNote,array('first_name'=>$ssvalue->first_name,'last_name'=>$ssvalue->last_name,'note'=>$ssvalue->note,'created_at'=>$ssvalue->created_at,"title"=>"","type" => 'sale'));
}
}*/
$totals = Accounting::select(
DB::raw('SUM(CASE WHEN accounting.type = "sale" THEN accounting.subtotal ELSE 0 END) - SUM(CASE WHEN accounting.type = "expense" THEN accounting.subtotal ELSE 0 END) AS subtotal'),
DB::raw('SUM(CASE WHEN accounting.type = "sale" THEN accounting.gst ELSE 0 END) - SUM(CASE WHEN accounting.type = "expense" THEN accounting.gst ELSE 0 END) AS gst'),
DB::raw('SUM(CASE WHEN accounting.type = "sale" THEN accounting.pst ELSE 0 END) - SUM(CASE WHEN accounting.type = "expense" THEN accounting.pst ELSE 0 END) AS pst'),
DB::raw('SUM(CASE WHEN accounting.type = "sale" THEN accounting.total ELSE 0 END) - SUM(CASE WHEN accounting.type = "expense" THEN accounting.total ELSE 0 END) AS total')
)
->where('accounting.provider_id', '=', $id)
->first();
$vehicle=Vehicles::select('id','make','stock','model','year')->get();
$client=Client::select('id','first_name','last_name')->get();
$category=TaskCategory::select('id','category_name')->where('status','active')->get();
$saleCategory = SaleCategory::select('id','category_name')->where('status', 'active')->get();
//$staff=User::where('user_type','=','staff')->where('status','=','active')->get();
$providers=ProviderExpanse::select('id','provider_name')->where('status','active')->get();
$staff = User::select('id','first_name','last_name',DB::raw("CONCAT(first_name, ' ', last_name) AS full_name"))->where('user_type','staff')->where('status', '=', 'active')->get();
$atwho = $staff->pluck('full_name')->toArray();
//$vehicleLocation=VehicleLocation::all();
//$vehicleType=Vehicles::select(DB::raw('vehicle_type'))->distinct('vehicle_type')->get();
//$vehicleStatus=VehicleStatus::where('status','active')->orderBy('priority', 'asc')->get();
//$make = Vehicles::select(DB::raw('make'))->distinct('make')->get();
//$model = Vehicles::select(DB::raw('model'))->distinct('model')->get();
//$clientType=ClientCategory::where('status', '=', 'active')->get();
//$clientStatus=ClientStatus::where('status', '=', 'active')->get();
//$allvehicle=Vehicles::all();
//-------------------------------------Task-----------------------------------------//
$task = Task::
select('task.id')
//select(DB::raw('task.*,task_status.status_name,task_status.badge_color as status_badge,task_category.category_name,task_category.badge_color as category_badge,vehicles.make,vehicles.model,vehicles.year,vehicles.stock'))
//->leftJoin('task_status','task.status','=','task_status.id')
//->leftJoin('task_category','task.category','=','task_category.id')
//->leftJoin('users','task.assign_to','=','users.id')
//->leftJoin('clients','task.client','=','clients.id')
//->leftJoin('provider_for_expanse','task.provider_id','=','provider_for_expanse.id')
//->leftJoin('vehicles','task.vehicle','=','vehicles.id')
->where('task.provider_id','=',$id);
if(\Auth::user()->user_type == 'staff'){
$v=\Auth::user()->id;
$task->where(function ($query) use ($v){
$query->where('task.assign_to','like', '%"'.$v.'"%');
$query->orWhere('task.inform','=', $v);
$query->orWhere('task.created_by_staff','=', $v);
$query->orWhere('task.staff_id','like', '%"'.$v.'"%');
$query->orWhere('task.user_id','=', $v);
});
}
$task = $task->count();
//dd($task);
/*foreach($task as $key => $value){
$getAssignStaff=User::whereIn('id',json_decode($value->assign_to,true))->get();
$task[$key]['assign_staff']=$getAssignStaff;
$getTaskNote=TaskNote::select(DB::raw('task_note.*,users.first_name,users.last_name,users.profile_picture'))->leftJoin('users','task_note.user_id','=','users.id')->where('task_note.task_id','=',$value->id)->orderBy('task_note.id','desc')->get();
$task[$key]['notes']=$getTaskNote;
}*/
//-------------------------------------Communication-----------------------------------------//
$email_logs=EmailSmsLogs::select(DB::raw('email_sms_logs.*,staff.first_name as staff_first_name,staff.last_name as staff_last_name,staff.profile_picture as staff_profile_picture, admin.first_name as admin_first_name,admin.last_name as admin_last_name,admin.profile_picture as admin_profile_picture, provider_for_expanse.provider_name'))
->leftJoin('users as admin', 'admin.id', '=', 'email_sms_logs.user_id')
->leftJoin('users as staff', 'staff.id', '=', 'email_sms_logs.staff_id')
->leftJoin('provider_for_expanse', 'provider_for_expanse.id', '=', 'email_sms_logs.provider_id')
->where('email_sms_logs.type','=','email')
->where('email_sms_logs.provider_id','=',$id)->orderBy('email_sms_logs.id', 'desc')->get();
$sms_logs=EmailSmsLogs::select(DB::raw('email_sms_logs.*,staff.first_name as staff_first_name,staff.last_name as staff_last_name,staff.profile_picture as staff_profile_picture, admin.first_name as admin_first_name,admin.last_name as admin_last_name,admin.profile_picture as admin_profile_picture, provider_for_expanse.provider_name'))
->leftJoin('users as admin', 'admin.id', '=', 'email_sms_logs.user_id')
->leftJoin('users as staff', 'staff.id', '=', 'email_sms_logs.staff_id')
->leftJoin('provider_for_expanse', 'provider_for_expanse.id', '=', 'email_sms_logs.provider_id')
->where('email_sms_logs.type','=','sms')
->where('email_sms_logs.provider_id','=',$id)->orderBy('email_sms_logs.id', 'asc')->get();
$email_logs_counts=EmailSmsLogs::where('provider_id','=',$id)->where('type','=','email')->where('is_read','=','0')->count();
$sms_logs_counts=EmailSmsLogs::where('provider_id','=',$id)->where('type','=','sms')->where('is_read','=','0')->count();
//-------------------------------------others Details-----------------------------------------//
$document=ProviderDocuments::select(DB::raw('provider_documents.*,users.first_name,users.last_name'))
->where('provider_documents.provider_id','=',$id)
->leftJoin('users','provider_documents.user_id','=','users.id')
->orderBy('provider_documents.id','DESC')->get();
//-----------------------------Call Log---------------------------//
$callLog=CallLog::select(DB::raw('call_logs.*,users.first_name,users.last_name'))->leftJoin('users','call_logs.user_id','=','users.id')->where('call_logs.provider_id','=',$id)->orderBy('call_logs.id','desc')->get();
//-------------------------------------Notes-----------------------------------------//
$note=ProviderNote::leftJoin('users','provider_note.user_id','=','users.id')
->where('provider_note.provider_id','=',$id)
->orderBy('provider_note.id','desc')
->select(
DB::raw('users.profile_picture'),
DB::raw("CONCAT(users.first_name, ' ', users.last_name) AS full_name"),
DB::raw("'' AS title"),
DB::raw("'provider' AS type"),
DB::raw("provider_note.note AS note"),
DB::raw("provider_note.created_at AS created_at")
);
/*foreach($note as $key => $value){
array_push($allNote,array('first_name'=>$value->first_name,'last_name'=>$value->last_name,'note'=>$value->note,'created_at'=>$value->created_at,"title"=>"","type" => 'provider'));
}*/
$taskNote=TaskNote::leftJoin('users','task_note.user_id','=','users.id')
->leftJoin('task','task_note.task_id','=','task.id')
->where('task.provider_id','=',$id)
->orderBy('task_note.id','desc')
->select(
DB::raw('users.profile_picture'),
DB::raw("CONCAT(users.first_name, ' ', users.last_name) AS full_name"),
DB::raw("task.title AS title"),
DB::raw("'task' AS type"),
DB::raw("task_note.note AS note"),
DB::raw("task_note.created_at AS created_at")
);
/*foreach($taskNote as $key => $value){
if(auth()->user()->can('view_provider_task')){
array_push($allNote,array('first_name'=>$value->first_name,'last_name'=>$value->last_name,'note'=>$value->note,'created_at'=>$value->created_at,"title"=>$value->title,"type" => 'task'));
}
}*/
$appoinmentNote=AppoinmentNote::
leftJoin('users','appoinment_note.user_id','=','users.id')
->leftJoin('appoinment','appoinment_note.appoinment_id','=','appoinment.id')->where('appoinment.client','=',$id)
->orderBy('appoinment_note.id','desc')
->select(
DB::raw('users.profile_picture'),
DB::raw("CONCAT(users.first_name, ' ', users.last_name) AS full_name"),
DB::raw("'' AS title"),
DB::raw("'appoinment' AS type"),
DB::raw("appoinment_note.note AS note"),
DB::raw("appoinment_note.created_at AS created_at")
);
if($unionQuery2 !== null && $unionQuery1 !==null){
$allNote = $note->union($unionQuery2)->union($unionQuery1)->union($taskNote)->union($appoinmentNote)->orderBy('created_at', 'desc')->get()->toArray();
} elseif($unionQuery2 !== null && $unionQuery1 ==null) {
$allNote = $note->union($unionQuery2)->union($taskNote)->union($appoinmentNote)->orderBy('created_at', 'desc')->get()->toArray();
} elseif($unionQuery2 == null && $unionQuery1 !==null) {
$allNote = $note->union($unionQuery1)->union($taskNote)->union($appoinmentNote)->orderBy('created_at', 'desc')->get()->toArray();
} else {
$allNote = $note->union($taskNote)->union($appoinmentNote)->orderBy('created_at', 'desc')->get()->toArray();
}Editor is loading...
Leave a Comment