/
home
/
sjslayjy
/
public_html
/
mosaram
/
app
/
Http
/
Controllers
/
Upload File
HOME
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Session; use DB; class DashboardController extends Controller { public function index(){ $data = array(); $data['tokens'] = \App\Token::where('quantity', '!=', 0)->orderBy('id','desc')->take(10)->get(); $data['product_loadings'] = \App\ProductLoading::orderBy('id','desc')->take(10)->get(); $data['product_unloadings'] = \App\ProductUnloading::orderBy('id','desc')->take(10)->get(); $data['loading_slip_invoices'] = \App\LoadingSlipInvoice::with('product_loading')->orderBy('id','desc')->take(10)->get(); $data['freight_payments'] = \App\ProductLoading::where('is_freight_paid',1)->orderBy('id','desc')->take(10)->get(); $data['labour_loading_payments'] = \App\LabourPayments::where('is_paid',1)->orderBy('id','desc')->take(10)->get(); $data['labour_unloading_payments'] = \App\UnloadingLabourPayment::where('is_paid',1)->orderBy('id','desc')->take(10)->get(); $data['master_rakes'] = \App\MasterRake::where('is_active',1)->orderBy('id','desc')->get(); $data['master_rake'] = \App\MasterRake::where('is_active',1)->with('master_rake_products','tokens')->orderBy('id','desc')->first(); $cement_product_ids = \App\Product::where('product_category_id',2)->pluck('id'); $data['cement_stock'] = \App\Inventory::where('dealer_id',1)->whereIn('product_id',$cement_product_ids)->sum('quantity'); $data['dap_stock'] = \App\Inventory::where('dealer_id',1)->where('product_id',4)->sum('quantity'); $data['npk_stock'] = \App\Inventory::where('dealer_id',1)->whereIn('product_id',array(9,10))->sum('quantity'); $data['urea_stock'] = \App\Inventory::where('dealer_id',1)->where('product_id',19)->sum('quantity'); $data['mop_stock'] = \App\Inventory::where('dealer_id',1)->where('product_id',7)->sum('quantity'); $data['cement_sale'] = \App\LoadingSlipInvoice::where('dealer_id',1)->whereIn('product_id',$cement_product_ids)->whereMonth('created_at','=',date('m'))->whereYear('created_at','=',date('Y'))->sum('total'); $data['dap_sale'] = \App\LoadingSlipInvoice::where('dealer_id',1)->where('product_id',4)->whereMonth('created_at','=',date('m'))->whereYear('created_at','=',date('Y'))->sum('total'); $data['npk_sale'] = \App\LoadingSlipInvoice::where('dealer_id',1)->whereIn('product_id',array(9,10))->whereMonth('created_at','=',date('m'))->whereYear('created_at','=',date('Y'))->sum('total'); $data['urea_sale'] = \App\LoadingSlipInvoice::where('dealer_id',1)->where('product_id',19)->whereMonth('created_at','=',date('m'))->whereYear('created_at','=',date('Y'))->sum('total'); $data['mop_sale'] = \App\LoadingSlipInvoice::where('dealer_id',1)->where('product_id',7)->whereMonth('created_at','=',date('m'))->whereYear('created_at','=',date('Y'))->sum('total'); $activities = ""; $cement_sale_activity = \App\LoadingSlipInvoice::whereIn('product_id',$cement_product_ids)->orderBy('id','desc')->first(); if(!is_null($cement_sale_activity)){ $activities .= "Sale of <b>".$cement_sale_activity->product."</b> with Invoice <b>".$cement_sale_activity->invoice_number."(Rs $cement_sale_activity->total)</b> to <b>$cement_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$cement_sale_activity->dealer_id)->name."(".getModelById('Dealer',$cement_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($cement_sale_activity->created_at).". "; } $dap_sale_activity = \App\LoadingSlipInvoice::where('product_id',4)->orderBy('id','desc')->first(); if(!is_null($dap_sale_activity)){ $activities .= "Sale of <b>".$dap_sale_activity->product."</b> with Invoice <b>".$dap_sale_activity->invoice_number."(Rs $dap_sale_activity->total)</b> to <b>$dap_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$dap_sale_activity->dealer_id)->name."(".getModelById('Dealer',$dap_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($dap_sale_activity->created_at).". "; } $npk_sale_activity = \App\LoadingSlipInvoice::whereIn('product_id',array(9,10))->orderBy('id','desc')->first(); if(!is_null($npk_sale_activity)){ $activities .= "Sale of <b>".$npk_sale_activity->product."</b> with Invoice <b>".$npk_sale_activity->invoice_number."(Rs $npk_sale_activity->total)</b> to <b>$npk_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$npk_sale_activity->dealer_id)->name."(".getModelById('Dealer',$npk_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($npk_sale_activity->created_at).". "; } $urea_sale_activity = \App\LoadingSlipInvoice::where('product_id',19)->orderBy('id','desc')->first(); if(!is_null($urea_sale_activity)){ $activities .= "Sale of <b>".$urea_sale_activity->product."</b> with Invoice <b>".$urea_sale_activity->invoice_number."(Rs $urea_sale_activity->total)</b> to <b>$urea_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$urea_sale_activity->dealer_id)->name."(".getModelById('Dealer',$urea_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($urea_sale_activity->created_at).". "; } $mop_sale_activity = \App\LoadingSlipInvoice::where('product_id',7)->orderBy('id','desc')->first(); if(!is_null($mop_sale_activity)){ $activities .= "Sale of <b>".$mop_sale_activity->product."</b> with Invoice <b>".$mop_sale_activity->invoice_number."(Rs $mop_sale_activity->total)</b> to <b>$mop_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$mop_sale_activity->dealer_id)->name."(".getModelById('Dealer',$mop_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($mop_sale_activity->created_at).". "; } $data['activities'] = $activities; $data['today_sales'] = \App\LoadingSlipInvoice::whereDate('created_at','=',date('Y-m-d'))->orderBy('id','desc')->get(); $data['today_company_invoices'] = \App\CompanyDi::whereDate('invoice_date','=',date('Y-m-d'))->where('total','>',0)->orderBy('id','desc')->get(); $data['today_warehouse_invoices'] = \App\WarehouseDi::whereDate('invoice_date','=',date('Y-m-d'))->where('total','>',0)->orderBy('id','desc')->get(); $data['date'] = $date = date('m/d/Y'); $sales = array(); $unique_sale_parties = \App\LoadingSlipInvoice::select('dealer_id')->whereDate('created_at','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); if(!is_null($unique_sale_parties)){ foreach ($unique_sale_parties as $unique_sale_party) { $unique_products = \App\LoadingSlipInvoice::select('product_id')->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); foreach ($unique_products as $unique_product) { $tempArr = array(); $tempArr['party'] = getModelById('Dealer',$unique_sale_party->dealer_id)->name; $tempArr['product'] = getModelById('Product',$unique_product->product_id)->name; $tempArr['total_sale_quantity'] = \App\LoadingSlipInvoice::where('product_id',$unique_product->product_id)->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d'))->orderBy('id','desc')->sum('quantity'); $tempArr['total_sale_amount'] = \App\LoadingSlipInvoice::where('product_id',$unique_product->product_id)->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d'))->orderBy('id','desc')->sum('total'); array_push($sales, $tempArr); } } } $purchase = array(); $unique_purchase_c_companies = \App\CompanyDi::select('product_company_id')->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); $unique_purchase_w_companies = \App\WarehouseDi::select('product_company_id')->where('transfer_type',1)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); $unique_purchase_w_parties = \App\WarehouseDi::select('from_dealer_id')->where('transfer_type',2)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); if(!is_null($unique_purchase_c_companies)){ foreach ($unique_purchase_c_companies as $unique_purchase_c_company) { $unique_products = \App\CompanyDi::select('product_id')->where('product_company_id',$unique_purchase_c_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); foreach ($unique_products as $unique_product) { $tempArr = array(); $tempArr['party'] = getModelById('ProductCompany',$unique_purchase_c_company->product_company_id)->name; $tempArr['product'] = getModelById('Product',$unique_product->product_id)->name; $tempArr['total_purchase_quantity'] = \App\CompanyDi::where('product_id',$unique_product->product_id)->where('product_company_id',$unique_purchase_c_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('quantity'); $tempArr['total_purchase_amount'] = \App\CompanyDi::where('product_id',$unique_product->product_id)->where('product_company_id',$unique_purchase_c_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('total'); array_push($purchase, $tempArr); } } } if(!is_null($unique_purchase_w_companies)){ foreach ($unique_purchase_w_companies as $unique_company) { $unique_products = \App\WarehouseDi::select('product_id')->where('product_company_id',$unique_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); foreach ($unique_products as $unique_product) { $tempArr = array(); $tempArr['party'] = getModelById('ProductCompany',$unique_company->product_company_id)->name; $tempArr['product'] = getModelById('Product',$unique_product->product_id)->name; $tempArr['total_purchase_quantity'] = \App\WarehouseDi::where('product_id',$unique_product->product_id)->where('product_company_id',$unique_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('quantity'); $tempArr['total_purchase_amount'] = \App\WarehouseDi::where('product_id',$unique_product->product_id)->where('product_company_id',$unique_company->product_company_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('total'); array_push($purchase, $tempArr); } } } if(!is_null($unique_purchase_w_parties)){ foreach ($unique_purchase_w_parties as $unique_purchase_party) { $unique_products = \App\WarehouseDi::select('product_id')->where('from_dealer_id',$unique_purchase_party->from_dealer_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->distinct()->get(); foreach ($unique_products as $unique_product) { $tempArr = array(); $tempArr['party'] = getModelById('Dealer',$unique_purchase_party->from_dealer_id)->name; $tempArr['product'] = getModelById('Product',$unique_product->product_id)->name; $tempArr['total_purchase_quantity'] = \App\WarehouseDi::where('product_id',$unique_product->product_id)->where('from_dealer_id',$unique_purchase_party->from_dealer_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('quantity'); $tempArr['total_purchase_amount'] = \App\WarehouseDi::where('product_id',$unique_product->product_id)->where('from_dealer_id',$unique_purchase_party->from_dealer_id)->whereDate('invoice_date','=',date('Y-m-d'))->orderBy('id','desc')->sum('total'); array_push($purchase, $tempArr); } } } $data['employees'] = DB::table('location')->join('users', 'users.id', 'location.user_id')->select('users.name', 'location.in_time', 'location.out_time')->where(DB::raw('date(location.created_at)'), date('Y-m-d'))->groupBy('user_id')->get(); $data['emp_presents'] = DB::table('location')->where(DB::raw('date(location.created_at)'), date('Y-m-d'))->groupBy('user_id')->get(); $data['emp_present'] = count($data['emp_presents']); $total_user = DB::table('users')->count('id'); $data['emp_absent'] = $total_user - $data['emp_present']; $data['today_sales'] = $sales; $data['today_purchase'] = $purchase; return view('dashboard.index',$data); } public function getPartyStock($party){ $data = array(); $party_array = explode('-',$party); if($party_array[1] == "1"){ $type = "dealer_id"; }else{ $type = "product_company_id"; } $cement_product_ids = \App\Product::where('product_category_id',2)->pluck('id'); $data['cement_stock'] = \App\Inventory::where($type,$party_array[0])->whereIn('product_id',$cement_product_ids)->sum('quantity'); $data['dap_stock'] = \App\Inventory::where($type,$party_array[0])->where('product_id',4)->sum('quantity'); $data['npk_stock'] = \App\Inventory::where($type,$party_array[0])->whereIn('product_id',array(9,10))->sum('quantity'); $data['urea_stock'] = \App\Inventory::where($type,$party_array[0])->where('product_id',19)->sum('quantity'); $data['mop_stock'] = \App\Inventory::where($type,$party_array[0])->where('product_id',7)->sum('quantity'); return view('dashboard.get-party-stock',$data); } function latestSaleActivities(){ $data = array(); $activities = ""; $cement_product_ids = \App\Product::where('product_category_id',2)->pluck('id'); $cement_sale_activity = \App\LoadingSlipInvoice::whereIn('product_id',$cement_product_ids)->orderBy('id','desc')->first(); if(!is_null($cement_sale_activity)){ $activities .= "Sale of <b>".$cement_sale_activity->product."</b> with Invoice <b>".$cement_sale_activity->invoice_number."(Rs $cement_sale_activity->total)</b> to <b>$cement_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$cement_sale_activity->dealer_id)->name."(".getModelById('Dealer',$cement_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($cement_sale_activity->created_at).". "; } $dap_sale_activity = \App\LoadingSlipInvoice::where('product_id',4)->orderBy('id','desc')->first(); if(!is_null($dap_sale_activity)){ $activities .= "Sale of <b>".$dap_sale_activity->product."</b> with Invoice <b>".$dap_sale_activity->invoice_number."(Rs $dap_sale_activity->total)</b> to <b>$dap_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$dap_sale_activity->dealer_id)->name."(".getModelById('Dealer',$dap_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($dap_sale_activity->created_at).". "; } $npk_sale_activity = \App\LoadingSlipInvoice::whereIn('product_id',array(9,10))->orderBy('id','desc')->first(); if(!is_null($npk_sale_activity)){ $activities .= "Sale of <b>".$npk_sale_activity->product."</b> with Invoice <b>".$npk_sale_activity->invoice_number."(Rs $npk_sale_activity->total)</b> to <b>$npk_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$npk_sale_activity->dealer_id)->name."(".getModelById('Dealer',$npk_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($npk_sale_activity->created_at).". "; } $urea_sale_activity = \App\LoadingSlipInvoice::where('product_id',19)->orderBy('id','desc')->first(); if(!is_null($urea_sale_activity)){ $activities .= "Sale of <b>".$urea_sale_activity->product."</b> with Invoice <b>".$urea_sale_activity->invoice_number."(Rs $urea_sale_activity->total)</b> to <b>$urea_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$urea_sale_activity->dealer_id)->name."(".getModelById('Dealer',$urea_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($urea_sale_activity->created_at).". "; } $mop_sale_activity = \App\LoadingSlipInvoice::where('product_id',7)->orderBy('id','desc')->first(); if(!is_null($mop_sale_activity)){ $activities .= "Sale of <b>".$mop_sale_activity->product."</b> with Invoice <b>".$mop_sale_activity->invoice_number."(Rs $mop_sale_activity->total)</b> to <b>$mop_sale_activity->retailer_name</b> from Account of <b>".getModelById('Dealer',$mop_sale_activity->dealer_id)->name."(".getModelById('Dealer',$mop_sale_activity->dealer_id)->address1.") </b>".calculateTimeSpan($mop_sale_activity->created_at).". "; } $data['activities'] = $activities; return view('dashboard.latest-sale-activities',$data); } public function getPartyStockSaleGraph($party,$month,$year){ $data = array(); $cement_product_ids = \App\Product::where('product_category_id',2)->pluck('id'); $data['cement_sale'] = \App\LoadingSlipInvoice::where('dealer_id',$party)->whereIn('product_id',$cement_product_ids)->whereMonth('created_at','=',$month)->whereYear('created_at','=',$year)->sum('total'); $data['dap_sale'] = \App\LoadingSlipInvoice::where('dealer_id',$party)->where('product_id',4)->whereMonth('created_at','=',$month)->whereYear('created_at','=',$year)->sum('total'); $data['npk_sale'] = \App\LoadingSlipInvoice::where('dealer_id',$party)->whereIn('product_id',array(9,10))->whereMonth('created_at','=',$month)->whereYear('created_at','=',$year)->sum('total'); $data['urea_sale'] = \App\LoadingSlipInvoice::where('dealer_id',$party)->where('product_id',19)->whereMonth('created_at','=',$month)->whereYear('created_at','=',$year)->sum('total'); $data['mop_sale'] = \App\LoadingSlipInvoice::where('dealer_id',$party)->where('product_id',7)->whereMonth('created_at','=',$month)->whereYear('created_at','=',$year)->sum('total'); return view('dashboard.get-party-stock-sale-graph',$data); } public function getSalesAndPurchase($date){ $data = array(); $sales = array(); $unique_sale_parties = \App\LoadingSlipInvoice::select('dealer_id')->whereDate('created_at','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->distinct()->get(); if(!is_null($unique_sale_parties)){ foreach ($unique_sale_parties as $unique_sale_party) { $unique_products = \App\LoadingSlipInvoice::select('product_id')->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->distinct()->get(); foreach ($unique_products as $unique_product) { $tempArr = array(); $tempArr['party'] = getModelById('Dealer',$unique_sale_party->dealer_id)->name; $tempArr['product'] = getModelById('Product',$unique_product->product_id)->name; $tempArr['total_sale_quantity'] = \App\LoadingSlipInvoice::where('product_id',$unique_product->product_id)->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->sum('quantity'); $tempArr['total_sale_amount'] = \App\LoadingSlipInvoice::where('product_id',$unique_product->product_id)->where('dealer_id',$unique_sale_party->dealer_id)->whereDate('created_at','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->sum('total'); array_push($sales, $tempArr); } } } $purchase = array(); $sql = "select warehouse_dis.product_id, warehouse_dis.product_brand_id, warehouse_dis.product_company_id,sum(quantity) as total_purchase_quantity, sum(total) as total_purchase_amount from `warehouse_dis` where `dealer_id` in (1, 3, 30, 31) and `transfer_type` = 1 and date(`invoice_date`) = '".date('Y-m-d',strtotime($date))."' GROUP BY product_brand_id, product_id"; $results = \DB::select($sql); foreach ($results as $key => $value) { $purchase[$key]['party'] = getModelById('ProductCompany',$value->product_company_id)->name; $purchase[$key]['product'] = getModelById('Product',$value->product_id)->name; $purchase[$key]['total_purchase_quantity'] = $value->total_purchase_quantity; $purchase[$key]['total_purchase_amount'] = $value->total_purchase_amount; } /*$unique_purchase_c_companies = \App\CompanyDi::select('*')->whereIn('dealer_id',array(1,3,30,31))->whereDate('invoice_date','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->get(); $unique_purchase_w_companies = \App\WarehouseDi::select('*')->whereIn('dealer_id',array(1,3,30,31))->where('transfer_type',1)->whereDate('invoice_date','=',date('Y-m-d',strtotime($date)))->groupBy('product_id','product_brand_id')->get(); $unique_purchase_w_parties = \App\WarehouseDi::select('*')->where('transfer_type',2)->whereIn('dealer_id',array(1,3,30,31))->whereDate('invoice_date','=',date('Y-m-d',strtotime($date)))->orderBy('id','desc')->get(); if(!is_null($unique_purchase_c_companies)){ foreach ($unique_purchase_c_companies as $unique_purchase_c_company) { $tempArr = array(); $tempArr['party'] = getModelById('ProductCompany',$unique_purchase_c_company->product_company_id)->name; $tempArr['product'] = getModelById('Product',$unique_purchase_c_company->product_id)->name; $tempArr['total_purchase_quantity'] = $unique_purchase_c_company['quantity']; $tempArr['total_purchase_amount'] = $unique_purchase_c_company['total']; array_push($purchase, $tempArr); } } if(!is_null($unique_purchase_w_companies)){ foreach ($unique_purchase_w_companies as $unique_company) { $tempArr = array(); $tempArr['party'] = getModelById('ProductCompany',$unique_company->product_brand_id)->name; $tempArr['product'] = getModelById('Product',$unique_company->product_id)->name; $tempArr['total_purchase_quantity'] = $unique_company->quantity; $tempArr['total_purchase_amount'] = $unique_company->total; array_push($purchase, $tempArr); } } if(!is_null($unique_purchase_w_parties)){ foreach ($unique_purchase_w_parties as $unique_purchase_party){ $tempArr = array(); $tempArr['party'] = getModelById('Dealer',$unique_purchase_party->from_dealer_id)->name; $tempArr['product'] = getModelById('Product',$unique_purchase_party->product_id)->name; $tempArr['total_purchase_quantity'] = $unique_purchase_party->quantity;; $tempArr['total_purchase_amount'] = $unique_purchase_party->total; array_push($purchase, $tempArr); } }*/ $data['today_sales'] = $sales; $data['today_purchase'] = $purchase; // dd($data); $data['date'] = date('m/d/Y',strtotime($date)); return view('dashboard.get-sales-and-purchase',$data); } public function getRakeGraph($id){ $data = array(); $data['master_rakes'] = \App\MasterRake::where('is_active',1)->orderBy('id','desc')->get(); $data['master_rake'] = \App\MasterRake::where('id',$id)->first(); return view('dashboard.get-rake-graph',$data); } public function getMonthlyAverage($month,$year){ $data = array(); $data['month'] = $month; $data['year'] = $year; return view('dashboard.get-monthly-average',$data); } public function setCompany(Request $request){ $response = array(); $validator = \Validator::make($request->all(), array( 'act_as_company' =>'required', ) ); if($validator->fails()) { $response['flag'] = false; $response['errors'] = $validator->getMessageBag(); }else{ Session::put('acting_company',$request->act_as_company); $response['flag'] = true; $response['message'] = "Now Your are acting as ".getModelById('Company', $request->act_as_company)->name; } return response()->json($response); } public function changeLanguage(Request $request){ $response = array(); $validator = \Validator::make($request->all(), array( 'language' =>'required', ) ); if($validator->fails()) { $response['flag'] = false; $response['errors'] = $validator->getMessageBag(); }else{ Session::put('language',$request->language); \App::setLocale($request->language); $response['flag'] = true; $response['message'] = "Language Changed Successfully"; } return response()->json($response); } public function blank() { return view('dashboard.blank'); } }