Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/ayam-canton.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/ayam-canton.aplikasipos.info/app/Http/Controllers/LaporanController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User;
use App\Jenis;
use App\Satuan;
use App\Supplier;
use App\Courier;
use App\Pelanggan;
use App\Bank;
use App\MetodeBayar;
use App\Merek;
use App\Kategori;
use App\Barang;
use App\Penjualan;
use App\PenjualanEtalase;
use App\Pembelian;
use App\ReturPembelian;
use App\ReturPenjualan;
use App\DetailPenjualan;
use App\Jasa;
use App\DetailJasa;
class LaporanController 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 create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {   

        $menu = "Laporan";
        $title = str_replace('_', ' ', $id);
        $url = "laporan/";
        $view = "laporan.".$id;
        $datas = array();
        $datas2 = array();
        $user = null;
        $seconds =array();
        $url .= $id;

        if(!isset($_GET['menu'])){
            $view .= '.index';
        } else {
            switch ($_GET['menu']) {
                case 'user':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $datas = User::where('name','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "User";
                break;
                case 'supplier':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $datas = Supplier::where('nm_supplier','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Supplier";
                break;
                case 'pelanggan':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $datas = Pelanggan::where('nm_pelanggan','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Pelanggan";
                break;
                case 'merek':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $datas = Merek::where('nm_merek','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Merek";
                break;

                case 'kategori':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $datas = Kategori::where('nm_kategori','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                break;
                case 'barang_kategori':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $g = (isset($_GET['kd_kategori']))?$_GET['kd_kategori']:'';
                $datas = Barang::where('nm_barang','like','%'.$s.'%')->whereHas('jenis',function ($j) use($g)
                {
                    $j->whereHas('kategori',function ($k) use($g)
                    {
                        $k->where('kd_kategori','like','%'.$g.'%');
                    });
                })->orderBy('created_at','DESC')->paginate(10);
                $seconds = Kategori::all();
                $datas->appends($_GET);

                $view .= '.'.$_GET['menu'];
                $title = "Barang Per Kategori";
                break;
                case 'barang_periode':
                    $stok = (isset($_GET['stok']))? $_GET['stok'] :'';
                    $s = (isset($_GET['s']))?$_GET['s']:'';
                    $kd_jenis = isset($_GET['kd_jenis'])?$_GET['kd_jenis']:'';
                    $kd_kategori = isset($_GET['kd_kategori'])?$_GET['kd_kategori']:'';
                    $kd_merek = isset($_GET['kd_merek'])?$_GET['kd_merek']:'';

                    $from = (isset($_GET['from']))?$_GET['from']:'';
                    $to =   (isset($_GET['to']))?$_GET['to']:'';
                    if(isset($_GET['from']) && isset($_GET['to'])){
                        $datas = Barang::where(function ($q)use($s, $stok)
                        {
                            $q->where('nm_barang','like','%'.$s.'%')->orWhere('barcode','like','%'.$s.'%');
                        })
                        ->where('kd_jenis','like','%'.$kd_jenis.'%')->where('kd_kategori','like','%'.$kd_kategori.'%')->where('kd_merek','like','%'.$kd_merek.'%')
                        ->whereBetween('created_at',[$from,$to])->when($stok == 'on', function($fs){
                            return $fs->where('stok', '>', 0);
                        })->orderBy('stok','DESC')->get();
                    } else {
                        $datas = Barang::where(function ($q)use($s, $stok)
                        {
                            $q->where('nm_barang','like','%'.$s.'%')->orWhere('barcode','like','%'.$s.'%');
                        })
                        ->where('kd_jenis','like','%'.$kd_jenis.'%')->where('kd_kategori','like','%'.$kd_kategori.'%')->where('kd_merek','like','%'.$kd_merek.'%')->when($stok == 'on', function($fs){
                            return $fs->where('stok', '>', 0);
                        })->orderBy('stok','DESC')->get();
                    }
                    //$datas->appends($_GET);
                    $view .= '.'.$_GET['menu'];
                    $title = "Barang Per Periode";

                break;
                case 'pembelian':
                $g = (isset($_GET['kd_supplier']))?$_GET['kd_supplier']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Pembelian::where('no_pembelian','like','%'.$s.'%')->where('kd_supplier','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_pembelian',[$from,$to])->get();
                $view .= '.'.$_GET['menu'];
                $title = "Pembelian";
                $seconds = Supplier::all();
                break;
                case 'penjualan':
                $m = (isset($_GET['metode']))?$_GET['metode']:'';
                $b = (isset($_GET['bank']))?$_GET['bank']:'';
                $k = (isset($_GET['kategori']))?$_GET['kategori']:'';

                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');

                $datas = PenjualanEtalase::where('no_penjualan','like','%'.$s.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to]);
                
                // if($b != ''){
                //     $datas = $datas->where('bank_id', $b);
                // }

                if($k != ''){
                    $datas = $datas->whereHas('detail', function($d) use($k) {
                        $d->whereHas('harga_barang', function($hb) use($k) {
                            $hb->whereHas('barang', function($b) use($k) {
                                $b->whereHas('kategori', function($kat) use($k) {
                                    $kat->where('kd_kategori', $k);
                                });
                            });
                        });
                    });
                }

                $datas = $datas->get();
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan";
                $seconds = [
                    'metode' => MetodeBayar::all(),
                    'bank' => Bank::all(),
                    'kategori' => Kategori::all(),
                ];
                break;
                case 'penjualan_barang':
                $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to])->get();
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Per Barang";
                $seconds = Pelanggan::all();
                break;
                case 'penjualan_pelanggan':
                $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Per Pelanggan";
                $seconds = Pelanggan::all();
                break;
                
                case 'penjualan_kasir':
                $daterange = explode(' - ', (isset($_GET['daterange']))?$_GET['daterange']:date('Y-m-d H:i',strtotime('-1 Month')).' - '.date('Y-m-d H:i'));
                $s = (isset($_GET['s']))?$_GET['s']:'';
                
                $from = date('Y-m-d H:i:s',strtotime($daterange[0]));
                $to =    date('Y-m-d H:i:s',strtotime($daterange[1]));
                $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                {
                    $p->whereBetween('created_at',[$from,$to]);
                })->get();
                if(isset($_GET['user_id']) && $_GET['user_id'] != ''){
                    $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                    {
                        $p->whereBetween('created_at',[$from,$to])->where('id_user',$_GET['user_id']);
                    })->get();
                }
                    
               
                // $datas->appends($_GET);

                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Per Kasir";
                $seconds = User::all();
                break;
                
                case 'penjualan_terlaris':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Barang::where('nm_barang','like','%'.$s.'%')->whereHas('harga_barang',function ($hb)  use($from,$to)
                {
                    $hb->whereHas('detail_penjualan',function ($dp)  use($from,$to)
                    {
                        $dp->whereHas('penjualan',function ($p) use($from,$to)
                        {
                            $p->whereBetween('tgl_penjualan',[$from,$to]);
                        });
                    });
                })->get();
                $datas->sortByDesc('qty');
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Barang Per Quantity";
                break;
                case 'penjualan_bulan':
                $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';

                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('created_at',$bulan)->whereYear('created_at',$tahun)->get();
                } else {
                    $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('created_at',$tahun)->get();
                }
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Per Bulan & Tahun";
                $seconds = Pelanggan::all();
                break;
                case 'penjualan_keseluruhan':
                $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Keseluruhan";
                $seconds = Pelanggan::all();
                break;
                case 'retur_periode':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_pembelian',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Pembelian Periode";
                $seconds = Supplier::all();
                break;
                case 'retur_bulan':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                } else {
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                }

                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Pembelian Per Bulan & Tahun";
                $seconds = Supplier::all();
                break;
                case 'retur_barang_periode':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');

                $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_pembelian',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Pembelian Barang Periode";
                $seconds = Supplier::all();
                break;
                case 'retur_barang_bulan':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                } else {
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                }
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Pembelian Barang Per Bulan & Tahun";
                $seconds = Supplier::all();
                break;
                case 'rekap_retur_periode':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_pembelian',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Rekap Retur Pembelian Periode";
                $seconds = Supplier::all();
                break;
                case 'rekap_retur_bulan':
                $g = (isset($_GET['kd_pembelian']))?$_GET['kd_pembelian']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                } else {
                    $datas = ReturPembelian::where('no_retur_pembelian','like','%'.$s.'%')->where('kd_pembelian','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('tgl_retur_pembelian',$tahun)->paginate(10);
                }
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Pembelian";
                $seconds = Supplier::all();
                break;
                case 'retur_jual_periode':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_penjualan',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Penjualan Periode";
                $seconds = Pelanggan::all();
                break;
                case 'retur_jual_bulan':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->paginate(10);
                } else {
                    $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('tgl_retur_penjualan',$tahun)->paginate(10);
                }
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Penjualan Per Bulan & Tahun";
                $seconds = Pelanggan::all();
                break;
                case 'retur_jual_barang_periode':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_penjualan',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Penjualan Barang Periode";
                $seconds = Pelanggan::all();
                break;
                case 'retur_jual_barang_bulan':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->paginate(10);
                } else {
                    $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('tgl_retur_penjualan',$tahun)->paginate(10);
                }
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Retur Penjualan Barang Per Bulan & Tahun";
                $seconds = Pelanggan::all();
                break;
                case 'rekap_retur_jual_periode':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_retur_penjualan',[$from,$to])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Rekap Retur Penjualan Per Periode";
                $seconds = Pelanggan::all();
                break;
                case 'rekap_retur_jual_bulan':
                $g = (isset($_GET['kd_penjualan']))?$_GET['kd_penjualan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                $datas = ReturPenjualan::where('no_retur_penjualan','like','%'.$s.'%')->where('kd_penjualan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Rakap Retur Penjualan Per Bulan & Tahun";
                $seconds = Pelanggan::all();
                break;
                // baru penjualan barang /user
                case 'penjualan_barang_user':
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $user_id = (isset($_GET['user_id']));

                if ($user_id && $_GET['user_id'] !== '') {
                    $user = User::find($_GET['user_id']);
                    $datas = User::where('name','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                } else {
                    $datas = User::where('name','like','%'.$s.'%')->orderBy('created_at','DESC')->paginate(10);
                }

                $datas->appends('s','menu', 'user_id');
                $view .= '.'.$_GET['menu'];
                $title = "Penjualan Per Kasir";
                break;
                
                case 'jasa_kasir':
                $g = (isset($_GET['user']))?$_GET['user']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = DetailJasa::with('jasa_root')->whereHas('jasa_root',function ($p) use($from,$to)
                {
                     $g = (isset($_GET['user']))?$_GET['user']:'';
                    $p->whereBetween('created_at',[$from,$to." 23:59:59"])->where('user_id','like','%'.$g.'%');
                })->paginate(10);

                $datas->appends($_GET);

                $view .= '.'.$_GET['menu'];
                $title = "Jasa Per Kasir";
                $seconds = User::all();
                break;

                case 'jasa_periode':
                $g = (isset($_GET['no_jasa']))?$_GET['no_jasa']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = DetailJasa::where('no_jasa','like','%'.$g.'%')->whereBetween('created_at',[$from,$to." 23:59:59"])->paginate(10);
                $datas->appends($_GET);
                $view .= '.'.$_GET['menu'];
                $title = "Jasa per Periode";
                $seconds = DetailJasa::all();
                break;

                case 'penjualan_kurir':
                    $daterange = explode(' - ', (isset($_GET['daterange']))?$_GET['daterange']:date('Y-m-d H:i',strtotime('-1 Month')).' - '.date('Y-m-d H:i'));
                    $s = (isset($_GET['s']))?$_GET['s']:'';
                    
                    $from = date('Y-m-d H:i:s',strtotime($daterange[0]));
                    $to =    date('Y-m-d H:i:s',strtotime($daterange[1]));
                    $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                    {
                        $p->whereBetween('created_at',[$from,$to])->whereNotNull('id_courier');
                    })->get();
                    if(isset($_GET['id_courier']) && $_GET['id_courier'] != ''){
                        $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                        {
                            $p->whereBetween('created_at',[$from,$to])->where('id_courier',$_GET['id_courier']);
                        })->get();
                    }
                        
                   
                    // $datas->appends($_GET);
    
                    $view .= '.'.$_GET['menu'];
                    $title = "Jasa Pengiriman Penjualan";
                    $seconds = Courier::all();
                break;

                default:
                    # code...
                break;
            }
            
        }
        $jeniss = Jenis::all();
        $mereks = Merek::all();
        $satuans = Satuan::all();
        $kategoris = Kategori::all();
        return view($view,compact('menu','title','url','datas','seconds', 'datas2', 'user','mereks','jeniss','satuans', 'kategoris'));
    }

    public function cetak($m,Request $request)
    {   
        \Helper::add_user_log("Membuat laporan ".$_GET['menu']);
        if($_GET['type'] == "excel"){
            header("Content-type: application/octet-stream");
            header("Content-disposition:attachment;filename=Laporan_".$_GET['menu'].".xls");
        } else {
            echo '<img src="'.url("images/btn_print.png").'" height="20" onClick="javascript:window.print()" />';
        }
        $datas = array();

        $user_id = ''; // baru

        switch ($_GET['menu']) {
            case 'user':

            $datas = User::all();

            break;
            case 'supplier':

            $datas = Supplier::all();

            break;
            case 'pelanggan':

            $datas = Pelanggan::all();

            break;
            case 'merek':

            $datas = Merek::all();

            break;
            case 'kategori':

            $datas = Kategori::all();

            break;
            case 'barang_kategori':
            $g = (isset($_GET['kd_kategori']))?$_GET['kd_kategori']:'';
            $datas = Barang::whereHas('jenis',function ($j) use($g)
            {
                $j->whereHas('kategori',function ($k) use($g)
                {
                    $k->where('kd_kategori','like','%'.$g.'%');
                });
            })->get();
            break;
            case 'barang_periode':
                $stok = (isset($_GET['stok']))? $_GET['stok'] :'';

                $s = (isset($_GET['s']))?$_GET['s']:'';
                $kd_jenis = isset($_GET['kd_jenis'])?$_GET['kd_jenis']:'';
                $kd_merek = isset($_GET['kd_merek'])?$_GET['kd_merek']:'';

                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                if(isset($_GET['from']) && isset($_GET['to'])){
                    $datas = Barang::where(function ($q)use($s, $stok)
                    {
                        $q->where('nm_barang','like','%'.$s.'%')->orWhere('barcode','like','%'.$s.'%');
                    })
                    ->where('kd_jenis','like','%'.$kd_jenis.'%')->where('kd_merek','like','%'.$kd_merek.'%')
                    ->whereBetween('created_at',[$from,$to])->when($stok == 'on', function($fs){
                        return $fs->where('stok', '>', 0);
                    })->orderBy('stok','DESC')->get();
                } else {
                    $datas = Barang::where(function ($q)use($s, $stok)
                    {
                        $q->where('nm_barang','like','%'.$s.'%')->orWhere('barcode','like','%'.$s.'%');
                    })
                    ->where('kd_jenis','like','%'.$kd_jenis.'%')->where('kd_merek','like','%'.$kd_merek.'%')->when($stok == 'on', function($fs){
                        return $fs->where('stok', '>', 0);
                    })->orderBy('stok','DESC')->get();
                }
                
            break;
            case 'pembelian':
            $g = (isset($_GET['kd_supplier']))?$_GET['kd_supplier']:'';
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = Pembelian::whereBetween('tgl_pembelian',[$from,$to])->where('kd_supplier','like','%'.$g.'%')->get();

            break;
            case 'penjualan':

            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = Penjualan::whereBetween('tgl_penjualan',[$from,$to])->orderBy('created_at','DESC')->get();
				

            break;
            case 'penjualan_barang':
            $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = Penjualan::whereBetween('tgl_penjualan',[$from,$to])->where('kd_pelanggan','like','%'.$g.'%')->get();

            break;

            case 'penjualan_pelanggan':
            $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = Penjualan::whereBetween('tgl_penjualan',[$from,$to])->where('kd_pelanggan','like','%'.$g.'%')->get();
            break;
            case 'penjualan_kasir':

            $daterange = explode(' - ', (isset($_GET['daterange']))?$_GET['daterange']:date('Y-m-d H:i',strtotime('-1 Month')).' - '.date('Y-m-d H:i'));
            $s = (isset($_GET['s']))?$_GET['s']:'';
            
            $from = date('Y-m-d H:i:s',strtotime($daterange[0]));
            $to =    date('Y-m-d H:i:s',strtotime($daterange[1]));

            $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
            {
                $p->whereBetween('created_at',[$from,$to]);
            })->get();

            if(isset($_GET['user_id']) && $_GET['user_id'] != ''){
                $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                {
                    $p->whereBetween('created_at',[$from,$to])->where('id_user',$_GET['user_id']);
                })->get();
            }
             // $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to])->get();
            


            break;
            case 'penjualan_terlaris':

            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = Barang::whereHas('harga_barang',function ($hb)  use($from,$to)
            {
                $hb->whereHas('detail_penjualan',function ($dp)  use($from,$to)
                {
                    $dp->whereHas('penjualan',function ($p) use($from,$to)
                    {
                        $p->whereBetween('tgl_penjualan',[$from,$to]);
                    });
                });
            })->get();

            $datas->sortByDesc('qty');
            break;

            case 'penjualan_keseluruhan':
            $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';
                $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
                $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
                $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereBetween('tgl_penjualan',[$from,$to])->get();
              
            break;

            case 'penjualan_bulan' :
             $g = (isset($_GET['kd_pelanggan']))?$_GET['kd_pelanggan']:'';
                $s = (isset($_GET['s']))?$_GET['s']:'';

                $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
                $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');
                if($bulan != "00"){
                    $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereMonth('created_at',$bulan)->whereYear('created_at',$tahun)->get();
                } else {
                    $datas = Penjualan::where('no_penjualan','like','%'.$s.'%')->where('kd_pelanggan','like','%'.$g.'%')->orderBy('created_at','DESC')->whereYear('created_at',$tahun)->get();
                }
            break;

            case 'retur_periode':
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPembelian::whereBetween('tgl_retur_pembelian',[$from,$to])->get();

            break;
            case 'retur_bulan':
            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPembelian::whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->get();
            } else {
                $datas = ReturPembelian::whereYear('tgl_retur_pembelian',$tahun)->get();
            }


            break;
            case 'retur_barang_periode':
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPembelian::whereBetween('tgl_retur_pembelian',[$from,$to])->get();

            break;
            case 'retur_barang_bulan':
            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPembelian::whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->get();
            } else {
                $datas = ReturPembelian::whereYear('tgl_retur_pembelian',$tahun)->get();
            }
            break;
            case 'rekap_retur_periode':
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPembelian::whereBetween('tgl_retur_pembelian',[$from,$to])->get();


            break;
            case 'rekap_retur_bulan':
            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPembelian::whereMonth('tgl_retur_pembelian',$bulan)->whereYear('tgl_retur_pembelian',$tahun)->get();
            } else {
                $datas = ReturPembelian::whereYear('tgl_retur_pembelian',$tahun)->get();
            }


            break;
            case 'retur_jual_periode':

            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPenjualan::whereBetween('tgl_retur_penjualan',[$from,$to])->orderBy('created_at','DESC')->get();

            break;

            case 'retur_jual_bulan':

            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPenjualan::whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->get();
            } else {
                $datas = ReturPenjualan::whereYear('tgl_retur_penjualan',$tahun)->get();
            }

            break;
            case 'retur_jual_barang_periode':

            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPenjualan::whereBetween('tgl_retur_penjualan',[$from,$to])->orderBy('created_at','DESC')->get();

            break;
            case 'retur_jual_barang_bulan':

            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPenjualan::whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->get();
            } else {
                $datas = ReturPenjualan::whereYear('tgl_retur_penjualan',$tahun)->get();
            }

            break;
            case 'rekap_retur_jual_periode':

            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = ReturPenjualan::whereBetween('tgl_retur_penjualan',[$from,$to])->orderBy('created_at','DESC')->get();

            break;
            case 'rekap_retur_jual_bulan':

            $bulan = (isset($_GET['bulan']))?$_GET['bulan']:date('m');
            $tahun =   (isset($_GET['tahun']))?$_GET['tahun']:date('Y');

            if($bulan != "00"){
                $datas = ReturPenjualan::whereMonth('tgl_retur_penjualan',$bulan)->whereYear('tgl_retur_penjualan',$tahun)->get();
            } else {
                $datas = ReturPenjualan::whereYear('tgl_retur_penjualan',$tahun)->get();
            }

            break;

            // penjualan barang user
            case 'penjualan_barang_user':
            if (isset($_GET['user_id']) && $_GET['user_id'] !== '') {
                $user_id = $_GET['user_id'];
                $datas = User::find($_GET['user_id']);
            } else {
                $datas = User::whereHas('penjualan',function ($p)
                {
                    $p->whereBetween('tgl_penjualan',[$_GET['from'],$_GET['to']]);
                })->get()->sortByDesc('qty');
            }

            break;
            case 'jasa_kasir':
            $g = (isset($_GET['user']))?$_GET['user']:'';
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = DetailJasa::with('jasa_root')->whereHas('jasa_root',function ($p) use($from,$to)
            {
                $g = (isset($_GET['user']))?$_GET['user']:'';
                $p->whereBetween('created_at',[$from,$to." 23:59:59"])->where('user_id','like','%'.$g.'%');
            })->get();


            break;

            case 'jasa_periode':
            $from = (isset($_GET['from']))?$_GET['from']:date('Y-m-d',strtotime('-1 Month'));
            $to =   (isset($_GET['to']))?$_GET['to']:date('Y-m-d');
            $datas = DetailJasa::whereBetween('created_at',[$from,$to." 23:59:59"])->get();

            break;
            case 'penjualan_kurir':
                $daterange = explode(' - ', (isset($_GET['daterange']))?$_GET['daterange']:date('Y-m-d H:i',strtotime('-1 Month')).' - '.date('Y-m-d H:i'));
                $s = (isset($_GET['s']))?$_GET['s']:'';
                
                $from = date('Y-m-d H:i:s',strtotime($daterange[0]));
                $to =    date('Y-m-d H:i:s',strtotime($daterange[1]));
                $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                {
                    $p->whereBetween('created_at',[$from,$to]);
                })->get();
                if(isset($_GET['id_courier']) && $_GET['id_courier'] != ''){
                    $datas = DetailPenjualan::with('penjualan')->whereHas('penjualan',function ($p) use($from,$to)
                    {
                        $p->whereBetween('created_at',[$from,$to])->where('id_courier',$_GET['id_courier']);
                    })->get();
                }
                    
               
                // $datas->appends($_GET);
            break;

            default:
                # code...
            break;
        }
        return view('laporan.'.$m.'.cetak_'.$_GET['menu'],compact('datas', 'user_id'));
    }

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

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]