Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Order;
- use App\Recipient;
- use App\Sector;
- use App\User;
- use App\Log;
- use Excel;
- use Verta;
- use Illuminate\Support\Facades\DB;
- class ReportController extends Controller
- {
- public function getReport(){
- $recipient = Recipient::userBasedRecipient(auth()->user())->get();
- $sector=Sector::userBasedSector(auth()->user())->get();
- $user=User::userBasedUser(auth()->user())->get();
- return view('reports.index')->with(['recipients'=>$recipient,'sectors'=>$sector,'users'=>$user]);
- }
- public function getOrderReports(Request $request){
- $date['single'] = $request->single_date;
- $date['from'] = $request->from_date;
- $date['to'] = $request->to_date;
- $status=$request->status;
- $sector=$request->sector;
- $recipient=$request->recipient;
- $user=$request->user;
- $type=$request->type;
- $title='';
- $type_title='';
- $status_title='';
- $date_title='';
- $sector_title='';
- $recipient_title='';
- $user_title='';
- //status
- if($status !='') {
- switch($status) {
- case 0:
- $status_title = 'اجراء نا شده ';
- break;
- case 1:
- $status_title = 'درحال اجراء ';
- break;
- case 2:
- $status_title = 'اجراء شده ';
- break;
- }
- }
- //type
- if($type !='') {
- switch($type) {
- case 0:
- $type_title = 'کتبی';
- break;
- case 1:
- $type_title = 'شفاهی';
- break;
- }
- }
- //date
- if($date['single']) {
- $date_title = ' به تاریخ '.$date['single'];
- }
- else if($date['to'] && $date['from']) {
- $date_title = ' از تاریخ '.$date['from'].' الی تاریخ '.$date['to'];
- }
- //sectors
- $sector_title = $sector ? Sector::find($sector)->name_dr : '';
- // if($sector) {
- // $sector_title = Sector::find($sector)->name_dr;
- // }
- //recipients
- $recipient_title = $recipient ? 'وزارت / اداره '.Recipient::find($recipient)->name_dr : '';
- // if($recipient) {
- // $recipient_title = 'وزارت / اداره'.Recipient::find($recipient)->name_dr;
- // }
- //users
- $user_title = $user ? 'توسط '.User::find($user)->name_dr : '';
- // if($user) {
- // $user_title = 'توسط '.User::find($user)->name_dr;
- // }
- $title = 'نمایش هدایات '.$type_title.' '.$status_title.' '.$date_title.' '.$sector_title.' '.$recipient_title.' '.$user_title;
- $orders = Order::with(['follow_ups', 'recipient', 'sector'])->date($date)->status($status)->type($type)->recipientsInSector($sector)->recipient($recipient)->user($user)->OrwhereHas('order_copies', function($q) use ($date, $status, $type, $sector, $recipient, $user) {
- return $q->date($date)->status($status)->type($type)->recipientsInSector($sector)->recipient($recipient)->user($user);
- })->get();
- $orders->put('title', $title);
- return view('reports.report_data', compact('orders', 'request'));
- }
- public function exportReport(Request $request){
- $data = json_decode($request->data,true);
- $request_data = json_decode($request->request_data, true);
- // return view('reports.pdf_report', ['orders'=>$data, 'request' => $request_data]);
- if($request->type == 'pdf') {
- $snappy = \PDF::loadView('reports.pdf_report', ['orders'=>$data,'request' => $request_data]);
- return $snappy->download('pdf_report.pdf');
- }
- else if($request->type == 'excel') {
- Excel::create('New file', function($excel) use ($data,$request_data) {
- $excel->sheet('New sheet', function($sheet) use ($data,$request_data){
- $sheet->setRightToLeft(true);
- return $sheet->loadView('reports.excel_report', ['orders'=>$data,'request' => $request_data]);
- });
- })->download('xlsx');
- }
- }
- public function viewLogs(){
- return view('reports.view_logs');
- }
- public function getLogs(Request $request){
- $single_date = $request->single_date;
- $from = $request->from_date;
- $to = $request->to_date;
- if($single_date==''){
- $logs = Log::whereBetween('date',[$from." 00:00:00",$to." 23:59:59"])->orderby('id','desc')->get();
- }
- else{
- $logs = Log::whereBetween('date',[$single_date." 00:00:00",$single_date." 23:59:59"])->orderby('id','desc')->get();
- }
- return view('reports.logs_data')->with(['logs'=>$logs]);
- }
- public function getOrderSearch(Request $request){
- // $orders = Order::status($request->status)->type($request->type)->sector($request->sector)->recipient($request->recipient)->get();
- // $orders = Order::status($request->status)->count();
- // $orders = Order::status($request->status)->recipient($request->recipient)->sector($request->sector)->type($request->type)->get();
- // $order_copies = Order::whereHas('order_copies', function($q) use ($request) {
- // $q->status($request->status)->recipient($request->recipient)->sector($request->sector)->type($request->type);
- // })->get();
- $internal_recipients = Recipient::where('type', '0')->get();
- $recipients = Recipient::userBasedRecipient(auth()->user())->get();
- $sectors = Sector::userBasedSector(auth()->user())->get();
- // $orders = DB::select(DB::raw(
- // "
- // SELECT
- // `ord`.`id`
- // FROM
- // `orders` AS `ord`
- // LEFT JOIN `order_copies` AS `cop`
- // ON
- // `ord`.`id` = `cop`.`order_id`
- // WHERE
- // ( (`ord`.`recipient_id` = '1' AND `ord`.`status` = '1') OR (`cop`.`recipient_id` = '1' AND `cop`.`status` = '1') )
- // "
- // ));
- // $orders = array_map(create_function('$o', 'return $o->id;'), $orders);
- // $orders = Order::whereIn('id', $orders)->get();
- // elquent version of the above query
- $orders=Order::select('orders.*')
- ->distinct('orders.id')
- ->leftJoin('order_copies','orders.id','=','order_copies.order_id')
- ->where(function($q) use($request) {
- if($request->recipient != '' && $request->status != '') {
- $q->where(function($sq1) use ($request) {
- $sq1->where('orders.recipient_id', $request->recipient)
- ->where('orders.status', $request->status);
- })
- ->orWhere(function($sq2) use ($request) {
- $sq2->where('order_copies.status', $request->status)
- ->where('order_copies.recipient_id', $request->recipient);
- });
- }else if($request->sector != '' && $request->status != '') {
- $q->where(function($sq1) use ($request) {
- $sq1->where('orders.sector_id', $request->sector)
- ->where('orders.status', $request->status);
- })
- ->orWhere(function($sq2) use ($request) {
- $sq2->where('order_copies.status', $request->status)
- ->where('order_copies.recipient_id', $request->recipient);
- });
- }else if($request->sector != '') {
- $q->where('orders.sector_id', $request->sector)
- ->orWhere('order_copies.sector_id', $request->sector);
- }else if($request->recipient != '') {
- $q->where('orders.recipient_id', $request->recipient)
- ->orWhere('order_copies.recipient_id', $request->recipient);
- }else if($request->status != '') {
- $q->where('orders.status', $request->status)
- ->orWhere('order_copies.status', $request->status);
- }
- })
- ->get();
- return view('orders.index')->with(['orders'=>$orders,
- 'internal_recipients'=>$internal_recipients,'recipients'=>$recipients,'sectors'=>$sectors,
- 'sector_id' => $request->sector,
- 'recipient_id' => $request->recipient,
- 'status' => $request->status,
- 'type' => $request->type,
- 'search' => 1,
- // // 'original_orders_count' => $original_orders_count
- ]
- );
- }
- public function relatedRecipient($id){
- $recipients=Recipient::where('sector_id',$id)->get();
- return view('orders.related_recipient',compact('recipients'));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement