<?php


namespace App\Http\Controllers;

use App\User;
use App\Barang;
use App\Pembelian;
use App\RequestBarang;
use App\DataRequest;
use App\Http\Requests;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;

class CustomerController extends Controller
{
  
    public function BeliBarang()
    {
        $barangs = Barang::all();
        return view('adminlte::customer.BeliBarang.index', compact('barangs'));
    }

    public function createPembelian($id)
    {
        $barangs = Barang::where('id', $id)->first();
        return view('adminlte::customer.BeliBarang.createPembelian')->with('barangs', $barangs);
    }

     public function list(){
        // $barangs = Barang::all();
        $key = Input::get('search');
        if(isset($key)){
            $this->data['barang'] = Barang::where('nama_barang','like','%'.$key.'%')->orderBy('id','desc')->paginate(10);
        }else{
            $this->data['barang'] = Barang::orderBy('id','desc')->paginate(10);                   
        }
        $this->data['total'] = DB::table('barangs')->get();               
        return view('adminlte::customer.BeliBarang.index',$this->data);
    }


     public function savePembelian(Request $request)
    {
        $pembelians = new Pembelian();
        $pembelians->user_id = $request->user_id;
        $pembelians->barang_id = $request->barang_id;
        $pembelians->username = $request->username;
        $pembelians->nama_barang = $request->nama_barang;
        $pembelians->kategori = $request->kategori;
        $pembelians->harga =$request->harga;
        $pembelians->jumlah = $request->jumlah;
        $harga = $request->harga;
        $jumlah = $request->jumlah;
        $total_harga = $harga * $jumlah;
        $pembelians->total_harga = $total_harga;
        $pembelians->status_pengantaran = $request->status_pengantaran;


        $user = User::find($request->user_id);
        if($user->saldo >= $total_harga ){
        $user->saldo=$user->saldo-$total_harga;
        }else{
            $user->saldo=$user->saldo;
            return redirect('BeliBarang')->with('message','Saldo Anda Tidak Mencukupi');
        }
        
        $barang= Barang::find($request->barang_id);
        if($barang->stock >= $jumlah){
        $barang->stock= $barang->stock-$pembelians->jumlah;
        }else{
            $barang->stock= $barang->stock;
            return redirect('BeliBarang')->with('message','Stock Barang Tidak Mencukupi');
        }

        $user->update();
        $barang->update();
        $pembelians->save();
        return redirect('BeliBarang')->with('message','Pembelian Berhasil Dilakukan');
    }


    public function create()
    {
        return view('adminlte::inventori.BeliBarang.create');
    }
   
    public function store(Request $request)
    {
        $this->validate($request, [
            'nama' => 'required',
            'jumlah' => 'required',
            'harga' => 'required',
            'deskripsi' => 'required',
            'kategori' => 'required',
            'gambar' => 'required',
        ]);

        $barangs = new Barang();
        $barangs->nama = $request['nama'];
        $barangs->jumlah = $request['jumlah'];
        $barangs->harga = $request['harga'];
        $barangs->deskripsi = $request['deskripsi'];
        $barangs->kategori = $request['kategori'];
        $barangs->gambar = $request['gambar'];
        $barangs->save();
        return redirect('BeliBarang');
    }

    public function RequestBarang()
    {
        $data_requests = DataRequest::all();
        return view('adminlte::customer.RequestBarang.index', compact('data_requests'));
    }


    public function createRequest($id)
    {
        $data_requests = DataRequest::where('id', $id)->first();
        return view('adminlte::customer.RequestBarang.createRequest')->with('data_requests', $data_requests);
    }

 


    public function saveRequest(Request $request)
    {
        $request_barangs = new RequestBarang();
        $request_barangs->user_id = $request->user_id;
        $request_barangs->id_data_request = $request->id_data_request;
        $request_barangs->username = $request->username;
        $request_barangs->nama_barang = $request->nama_barang;
        $request_barangs->kategori = $request->kategori;
        $request_barangs->harga =$request->harga;
        $request_barangs->jumlah = $request->jumlah;
        $harga = $request->harga;
        $jumlah = $request->jumlah;
        $total_harga = $harga * $jumlah;
        $request_barangs->total_harga = $total_harga;
        $request_barangs->status_request = $request->status_request;
        $request_barangs->status_pengantaran = $request->status_pengantaran;
        $request_barangs->save();
        return redirect('RequestBarang');
    }

    public function CheckSaldo()
    {
        $users = User::all();
        return view('adminlte::customer.CheckSaldo.index');
    }
    
        public function HistoryRequest()
    {
        $request_barangs = RequestBarang::all();
        return view('adminlte::customer.HistoryRequest.index', compact('request_barangs'));
    }

    public function HistoryPembelian()
    {
        $pembelians = Pembelian::all();
        return view('adminlte::customer.HistoryPembelian.index', compact('pembelians'));
    }

    public function cariBarang(){
        // $barangs = Barang::all();
        // $barang = DB::table('barangs');
        $key = Input::get('search');
        if(isset($key)){
            $this->data['barangs'] = Barang::where('nama_barang','like','%'.$key.'%')->orderBy('id','desc')->paginate(10);
        }else{
            $this->data['barangs'] = Barang::orderBy('id','desc')->paginate(10);                   
        }
                     
        return view('adminlte::customer.BeliBarang.index',$this->data);
    }


}