OutputReportController.php 6.95 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'],
                        'user_id' => Auth::user()->id
                    )
                );
                //$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")
        { 
	 
     $data = array();
     $disabled = "";
	 $dashboarduser=Auth::user(); 

     if($dashboarduser->usertype == "Supervisor"){
        $disabled = "disabled";
     }
	//if($dashboarduser->usertype == "User"){
            // output reports
            $products = DB::table('output_products')
	    ->select('id as productId','name','status')
            ->where('status', '1')
            ->orderBy('output_products.id')
            ->get();
	    $report = DB::table('output_report')
		->where('user_id',Auth::user()->id)
		->get();
       

            $outputReport = array();
            foreach ($products as $pkey => $pvalue) {
                
                $outputReport[$pvalue->productId] = array('name' => $pvalue->name, 'productId' => $pvalue->productId);

                foreach ($report as $key => $value) {

                    if($value->product_id == $pvalue->productId){
                    $outputReport[$value->product_id]['lead_generated'] = $value->lead_generated;
                     $outputReport[$value->product_id]['lead_generated_amount'] = $value->lead_generated_amount;
                      $outputReport[$value->product_id]['lead_closed'] = $value->lead_closed;
                       $outputReport[$value->product_id]['lead_closed_amount'] = $value->lead_closed_amount;

                   }
                }

            }

            // 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();	

            $data['disabled']       = $disabled;
            $data['products']       = $outputReport;
            $data['totalIncome']    = $totalIncome[0]->income;
            $data['noOfAttempts']   = $noOfAttempts;
            $data['noOfContacts']   = $noOfContacts;
            $data['uniqueContacts'] = $uniqueContacts;
            $data['output']         = $output;
            $data['report']         = $report;

            return view("layout.module.outputreport.outputreport", $data);
//	}
        }

        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)
    {
        //
    }
}