<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Barang;
use App\Models\JenisBarang;
use App\Models\SatuanBarang;
use App\Models\Pengguna;
use App\Models\Transaksi;
use Illuminate\Support\Facades\DB;
class TransaksiController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\View\View
     */
    public function index()
    {
      
        $data['menu'] = 'Pengelolaan Barang';
        $data['current_page'] = 'Riwayat Barang';
        $data['sub_1'] = 'Data Barang Keluar';
        $data['pengguna'] = Pengguna::all();
        $data['barang_keluar'] = Transaksi::join('tbl_barang','tbl_barang.id','=','tbl_barang_keluar.barang_id')
                                        ->join('tbl_pengguna','tbl_pengguna.id','=','tbl_barang_keluar.pengguna_id')
                                    ->join('tbl_satuan','tbl_satuan.id','=','tbl_barang.satuan_id')
                                  ->join('tbl_jenis_barang','tbl_jenis_barang.id','=','tbl_barang.jenis_barang_id')
                                  ->get(['tbl_barang_keluar.*','tbl_satuan.nama_satuan','tbl_jenis_barang.nama_jenis','tbl_pengguna.nama','tbl_barang.*']);
        
                              
        $data['satuan_barang'] = SatuanBarang::all();
        $data['jenis_barang'] = jenisBarang::all();
        return view('admin.transaksi.index',$data);
    }

    public function store(Request $request)
    {

        $data = array(
            'nama_barang'=>$request->nama_barang,
            'serial_number'=>$request->serial_number,
            'keterangan'=>$request->keterangan,
            'tanggal_masuk'=>$request->tanggal_masuk,
            'jenis_barang_id'=>$request->jenis_barang,
            'satuan_id'=>$request->satuan_barang,
            'jumlah_barang'=>$request->jumlah,
            'lokasi'=>$request->lokasi
        );
        
        $insert = DB::table('tbl_barang')->insert($data);

        if($insert){

            return redirect('barang')->with('sukses', 'Data Barang Berhasil di tambahkan ..');
    
          }else{
    
            return redirect('barang')->with('error', 'Data Barang Gagal di tambahkan ..');
          }
    }

    public function jenis_barang()
    {

        $data['menu'] = 'Manajemen Barang';
        $data['current_page'] = 'Jenis-barang';
        return view('admin.barang.jenis_barang',$data);
    }

    public function barang_keluar(Request $request)
    {
     
        $char = 'TRX';
        $transaksi_id = $char . sprintf("%03s", time());
        //  dd($transaksi_id);
        $request->validate([
            'file_barang' => 'required|mimes:pdf,xlx,csv|max:2048',
        ]);
        
        $file = $request->file('file_barang');
        $fileName =  $request->pengguna.'-'.time().'.'.$file->extension();  
   
        if($file->move(public_path('upload_pdf'), $fileName)){

                $data = array(
                    
                    'barang_id'=>$request->id_barang,
                    'pengguna_id'=>$request->pengguna,
                    'jumlah_keluar'=>$request->jumlah_keluar,
                    'lokasi_keluar'=>$request->lokasi_keluar,
                    'tanggal_keluar'=>$request->tanggal_keluar,
                    'keterangan_keluar'=>$request->keterangan_keluar,
                    'transaksi_id'=>$transaksi_id,
                    'file_barang'=>$fileName

                );

                $insert = DB::table('tbl_barang_keluar')->insert($data);
                if($insert){

                    return redirect('barang')->with('sukses', 'Data Barang Berhasil di Keluarkan ..');
            
                  }else{
            
                    return redirect('barang')->with('error', 'Data Barang Gagal di keluarkan ..');
                  }


        }else{

            echo "gagal upload";
        }


    }
}