OutputReportController.php 5.99 KB
<?php

namespace App\Http\Controllers;


use Auth;
use Input;
use Response;
use Config;
use App\Models\OutputReport;
use App\Models\OutputProduct;
use App\Models\CRMCall;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

use App\Http\Requests;

class OutputReportController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function createOutputReport()
    {

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $action=Input::get('action');                                        
        //echo $action;
        if($action=="createOutputReport"){
            
             $products = $request->input('products');
             //print_r($products);
             //$totalIncome = 0;
             foreach ($products as $key => $value) {

                $outputReport = OutputReport::firstOrCreate(
                    array(
                        'product_id' =>  $value['productId']
                    )
                );
                $outputReport->user_id = Auth::user()->id;
		$outputReport->user_name = Auth::user()->username;
                $outputReport->date = date("Y-m-d");
                $outputReport->call_attempts = $request->input('noOfAttempts');
                $outputReport->call_contacts = $request->input('noOfContacts');
                $outputReport->call_unique_contacts = $request->input('uniqueContacts');
               // $totalIncome = $totalIncome + ($value['lc'] * $value['lcAmt']);
              
                if($value['lc'] != '' && $value['lcAmt'] != ''){
                    $outputReport->income = $value['lc'] * $value['lcAmt'];
                }
                $outputReport->product_name = $value['product'];
                $outputReport->lead_generated = $value['lg'];
                $outputReport->lead_generated_amount = $value['lgAmt'];
                $outputReport->lead_closed = $value['lc'];
                $outputReport->lead_closed_amount = $value['lcAmt'];
                $outputReport->created_at = date('Y-m-d H:i:s');
                $outputReport->updated_at =date('Y-m-d H:i:s');
                $outputReport->save();

             
             }  
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        if($id=="reportdata")
        { 
	 
	$dashboarduser=Auth::user(); 
	//if($dashboarduser->usertype == "User"){
            // output reports
            $products = DB::table('output_products')
            ->select('output_products.id as productId','output_products.name','output_products.status', 'output_report.product_id',  'output_report.id as reportId', 'output_report.lead_generated', 'output_report.lead_generated_amount', 'output_report.lead_closed' , 'output_report.lead_closed_amount' )
            ->leftJoin('output_report', 'output_products.id', '=', 'output_report.product_id')
            ->where('status', '1')
            ->orderBy('output_products.id')
            ->get();

            // total income
            $totalIncome = DB::select("select sum(income) as income from output_report where user_id=".Auth::user()->id);

            // noOfAttempts 
            $noOfAttempts = CRMCall::where('userstatus','!=','InboundDROP')->where('created_at','>',date('Y-m-d',time()));

            $noOfContacts = CRMCall::whereIn('usersubstatus',["Contacted","Feedback"])->where('created_at','>',date('Y-m-d',time()));
	   
            $uniqueContacts = DB::table('crmcalls')->select('number',DB::raw('count(*) as total'))->whereIn('usersubstatus',["Contacted","Feedback"])->where('created_at','>',date('Y-m-d',time()))->groupBy('number');
		//print_r($uniqueContacts);
			//if($dashboarduser->usertype == "User"){
			$noOfAttempts = $noOfAttempts->where('user_id','=',$dashboarduser->id)->count();
			$noOfContacts = $noOfContacts->where('user_id','=',$dashboarduser->id)->count();
			$uniqueContacts =$uniqueContacts->where('user_id','=',$dashboarduser->id)->get();
			//print_r($uniqueContacts[0]->total);
			//$uniqueContacts = $uniqueContacts[0]->total;
			$j=0;
			foreach($uniqueContacts as $unique){
				$j++;
			}	
			$uniqueContacts=$j;
			//echo $uniqueContacts;
			$supervisor = User::where('supervisor','=',Auth::user()->username)->get();
                        $usersarray= array();
                        foreach($supervisor as $users){
                                $usersarray[] = $users->id;
                        }
                //print_r($usersarray);
        $output = DB::table('output_report')->whereIn('user_id',$usersarray)->where('date','=',date("Y-m-d"))->orderBy('user_id')->get();	
            return view("layout.module.outputreport.outputreport")->with('data', ['products' => $products, 'totalIncome' => $totalIncome[0]->income, 'noOfAttempts' => $noOfAttempts , 'noOfContacts' => $noOfContacts  , 'uniqueContacts' => $uniqueContacts , 'output' => $output]);
//	}
        }

        return view("layout.module.outputreport.$id",array());

    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}