Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/airafone.fixmate.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/public_html/airafone.fixmate.id/app/Http/Controllers/LaporanController.php

<?php

namespace App\Http\Controllers;

use App\Exports\GudangExport;
use App\Exports\HutangExport;
use App\Exports\ServicesExport;
use App\Exports\ItemExport;
use App\Exports\LaporanPelangganExport;
use App\Exports\PembelianExport;
use App\Exports\PenjualanExport;
use App\Exports\PiutangExport;
use App\Exports\ReturPembelianExport;
use App\Exports\ReturPenjualanExport;
use App\Exports\uangMukaExport;
use App\Models\Item;
use App\Models\JenisItem;
use App\Models\KategoriItem;
use App\Models\Pelanggan;
use App\Models\Penjualan;
use App\Models\Pembelian;
use App\Models\Pengguna;
use App\Models\ReturPembelian;
use App\Models\ReturPenjualan;
use App\Models\Service;
use App\Models\Teknisi;
use App\Models\TransaksiGudang;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\Request;

use DateInterval;
use DatePeriod;
use DateTime;
use Maatwebsite\Excel\Facades\Excel;

class LaporanController extends Controller
{
    public function index()
    {
        return response()->view("laporan.index");
    }

    public function penjualan(Request $request)
    {
        try {
            $penjualan = new Penjualan;



            $begin = new DateTime('-1 month');
            $end = new DateTime();
            $periode = [
                $begin->format('d/m/Y'),
                $end->format('d/m/Y'),
            ];

            if (request()->periode) {
                $periode = explode(" - ", request()->periode);
                $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
                $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
            }
            $end->modify('+1 day');

            $interval = new DateInterval('P1D');
            $daterange = new DatePeriod($begin, $interval, $end);
            $periodeTanggals = [];
            foreach ($daterange as $date) {

                $periodeTanggals[] = $date->format('d-M');;
            }


            $datas = Penjualan::where('status_pembayaran', 'lunas')->whereBetween("jam_selesai", [$begin->format('Y-m-d'), $end->format('Y-m-d')]);
            if (isset($request->pengguna_id)) {
                $datas = $datas->where('pengguna_id', $request->pengguna_id);
            }

            $penjualan = $datas->get();
            $penjualan_cash = Penjualan::where('status_pembayaran', 'lunas')->whereBetween("jam_selesai", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->where('metode_bayar', 'cash')->get();
            $penjualan_transfer = Penjualan::where('status_pembayaran', 'lunas')->whereBetween("jam_selesai", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->where('metode_bayar', 'transfer')->get();
            $jumlah_penjualan = $datas->count();
            $pendapatan = 0;
            $pendapatan_cash = 0;
            $pendapatan_transfer = 0;
            $modal = 0;
            $jual = 0;
            $laba_rugi = 0;
            foreach ($penjualan as $penjualan) {
                $pendapatan += $penjualan->total;
                $modal += $penjualan->total_modal;
                $jual += $penjualan->total;
                $laba_rugi += $penjualan->total - $penjualan->total_modal;
            }
            foreach ($penjualan_cash as $penjualan_cash) {
                $pendapatan_cash += $penjualan_cash->total;
            }
            foreach ($penjualan_transfer as $penjualan_transfer) {
                $pendapatan_transfer += $penjualan_transfer->total;
            }


            $datas = $datas->paginate(10);
            $pengguna = Pengguna::all();
            $data = [
                "request" => $request,
                'datas' => $datas,
                'modal' => $modal,
                'jual' => $jual,
                'laba_rugi' => $laba_rugi,
                'pengguna' => $pengguna,
                'jumlah_penjualan' => $jumlah_penjualan,
                "periode" => $periode,
                "periodeTanggals" => $periodeTanggals,
                "pendapatan" => $pendapatan,
                "pendapatan_transfer" => $pendapatan_transfer,
                "pendapatan_cash" => $pendapatan_cash,
            ];
            return response()->view("laporan.penjualan.index", $data);
        } catch (\Throwable $th) {
            dd($th);
            return redirect()->route('laporan.penjualan');
        }
    }
    public function service(Request $request)
    {

        try {

            // dd( url()->current());
            // dd( '?'.http_build_query($request->query()));
            // this will default to a time of 00:00:00
            $begin = new DateTime('-1 month');
            $end = new DateTime();
            $periode = [
                $begin->format('d/m/Y'),
                $end->format('d/m/Y'),
            ];

            if (request()->periode) {
                $periode = explode(" - ", request()->periode);
                $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
                $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
            }
            // $end->modify('+1 day');

            $interval = new DateInterval('P1D');
            $daterange = new DatePeriod($begin, $interval, $end);
            $periodeTanggals = [];
            foreach ($daterange as $date) {

                $periodeTanggals[] = $date->format('d-M');;
            }

            $datas = Service::where('status_transaksi', 'success')->orwhere('status_pembayaran', 'refund');

            if (!isset($request->sorting_order)) {
                $sorting_order = "asc";
            }
            if (isset($request->sorting_order)) {
                if ($request->sorting_order == "desc") {
                    $sorting_order = "asc";
                } else if ($request->sorting_order == "asc") {
                    $sorting_order = "desc";
                }
            }


            if (isset($begin) && isset($end)) {
                $datas = $datas->selesai($begin, $end);
            }

            if (isset($request->status)) {
                $datas = $datas->where("status", $request->status);
            }

            if (isset($request->nama_pelanggan)) {
                $datas = $datas->cari($request->nama_pelanggan);
            }
            if (isset($request->pengguna_id)) {
                $datas = $datas->where('pengguna_id', $request->pengguna_id);
            }
            if (isset($request->teknisi_id)) {
                $datas = $datas->where('teknisi_id', $request->teknisi_id);
            }
            if (isset($request->sale_id)) {
                $datas = $datas->where('sale_id', $request->sale_id);
            }
            if (isset($request->sales_out)) {
                $datas = $datas->where('sales_out', $request->sales_out);
            }
            if (isset($request->kasir_out)) {
                $datas = $datas->where('kasir_out', $request->kasir_out);
            }
            if (isset($request->jenis_id)) {

                $datas = $datas->jenis($request->jenis_id);
            }


            if (isset($request->order)) {
                $order = $request->order;
                if ($request->order == "nama_pelanggan") {
                    $datas = $datas->orderBy(
                        Pelanggan::select("nama_pelanggan")
                            ->whereColumn('pelanggans.id', 'services.pelanggan_id'),
                        $sorting_order
                    );
                } else {
                    $datas = $datas->orderBy($request->order, $sorting_order);
                }
            } else {

                $datas = $datas->orderBy("tanggal_selesai", "desc");
            }

            $s_laba_rugi_jasa = 0;
            $s_modal_sparepart = 0;
            $s_jual_sparepart = 0;
            $s_laba_rugi_sparepart = 0;
            $s_laba_total = 0;
            $s_omset_total = 0;
            $omset_cash = 0;
            $omset_transfer = 0;
            foreach ($datas->get() as $s) {
                if ($s->status_transaksi == 'success') {
                    $s_omset_total += $s->grand_total;
                    $s_laba_rugi_jasa += ($s->biaya + $s->total_jual_sparepart_luar) - $s->total_modal_sparepart_luar;
                    $s_modal_sparepart += $s->total_modal_sparepart;
                    $s_jual_sparepart += $s->total_jual_sparepart;
                    $s_laba_rugi_sparepart += $s->total_jual_sparepart - $s->total_modal_sparepart;
                    $s_laba_total += ($s->total_jual_sparepart - $s->total_modal_sparepart) + $s->biaya;


                    $has_cash = false;
                    $has_transfer = false;

                    foreach ($s->pembayaran_service as $pembayaran) {
                        if ($pembayaran->metode_bayar == 'cash') {
                            $has_cash = true;
                        } elseif ($pembayaran->metode_bayar == 'transfer') {
                            $has_transfer = true;
                        }
                    }

                    // Allocate the grand_total to the corresponding payment methods
                    if ($has_cash) {
                        $omset_cash += $s->grand_total;
                    }
                    if ($has_transfer) {
                        $omset_transfer += $s->grand_total;
                    }
                }
            }


            $total_transaksi = $datas->count();
            $services = $datas->get();
            $datas = $datas->paginate(10);

            $total_barang_terjual = 0;

            foreach ($services as $s) {
                foreach ($s->detail as $d) {

                    $total_barang_terjual += $d->jumlah;
                }
            }
            $pengguna = Pengguna::all();
            $teknisi = Teknisi::all();
            $jenis = JenisItem::where('kategori_item_id', 4)->get();

            $data = [
                "request" => $request,
                "datas" => $datas,
                "jenis" => $jenis,
                "teknisi" => $teknisi,
                "pengguna" => $pengguna,
                "total_transaksi" =>  $total_transaksi,
                "total_barang_terjual" => $total_barang_terjual,
                "periodeTanggals" => $periodeTanggals,
                "periode" => $periode,
                "sorting_order" => $sorting_order,
                "s_laba_rugi_jasa" =>  $s_laba_rugi_jasa,
                "s_modal_sparepart" => $s_modal_sparepart,
                "s_jual_sparepart" => $s_jual_sparepart,
                "s_laba_rugi_sparepart" =>  $s_laba_rugi_sparepart,
                "s_laba_total" =>  $s_laba_total,
                "s_omset_total" =>  $s_omset_total,
                "omset_cash" =>  $omset_cash,
                "omset_transfer" =>  $omset_transfer,

            ];

            return response()->view("laporan.service.index", $data);
        } catch (\Throwable $th) {
            dd($th);
            return redirect()->route('laporan.service');
        }
    }

    public function pembelian(Request $request)
    {

        // this will default to a time of 00:00:00
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');;
        }


        $datas = Pembelian::with('detail_pembelian')->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->latest()->paginate(10);
        $jumlahPembelian = Pembelian::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->latest()->count();
        $pembelian = Pembelian::with('detail_pembelian')->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->latest()->get();
        $totalPembelian = 0;
        $jumlahBarang = 0;
        foreach ($pembelian as $p) {
            $totalPembelian += $p->total;
            if (isset($p->detail_pembelian)) {
                foreach ($p->detail_pembelian as $dp) {
                    $jumlahBarang += $dp->qty;
                }
            }
        }

        $data = [
            'datas' => $datas,
            'jumlahPembelian' => $jumlahPembelian,
            'totalPembelian' => $totalPembelian,
            'jumlahBarang' => $jumlahBarang,
            "periode" => $periode,
            "periodeTanggals" => $periodeTanggals
        ];
        return response()->view('laporan.pembelian.index', $data);
    }
    public function returPenjualan()
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');;
        }


        $datas = ReturPenjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->paginate(10);
        $returPenjualan = ReturPenjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();
        $jumlahReturPenjualan = ReturPenjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->count();
        $jumlahBarang = 0;
        foreach ($returPenjualan as $rp) {

            if (isset($rp->detail)) {
                foreach ($rp->detail as $detail) {
                    $jumlahBarang += $detail->qry;
                }
            }
        }

        $data = [
            'datas' => $datas,
            'jumlahReturPenjualan' => $jumlahReturPenjualan,
            'jumlahBarang' => $jumlahBarang,
            'periode' => $periode,
            'periodeTanggals' => $periodeTanggals
        ];

        return response()->view("laporan.retur_penjualan.index", $data);
    }
    public function returPembelian()
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');;
        }


        $datas = ReturPembelian::with('detail.item')->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->paginate(10);
        $returPembelian = ReturPembelian::with('detail.item')->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();
        $jumlahReturPembelian = ReturPembelian::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->count();
        $jumlahBarang = 0;
        $nominalBarang = 0;
        foreach ($returPembelian as $rp) {
            if (isset($rp->detail)) {
                foreach ($rp->detail as $detail) {
                    $jumlahBarang += $detail->qty;
                    $nominalBarang += $detail->item->biaya_item;
                }
            }
        }
        $data = [
            'datas' => $datas,
            'jumlahReturPembelian' => $jumlahReturPembelian,
            'jumlahBarang' => $jumlahBarang,
            'nominalBarang' => $nominalBarang,
            'periode' => $periode,
            'periodeTanggals' => $periodeTanggals
        ];


        return response()->view("laporan.retur_pembelian.index", $data);
    }
    public function gudang(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();

        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = TransaksiGudang::latest()->paginate(10);


        $data = [
            'datas' => $datas,
            'arah_transaksi' => $request->arah_transaksi
        ];
        if (isset($request->arah_transaksi)) {

            $data['datas'] = TransaksiGudang::cari($request->arah_transaksi)->latest()->paginate(15);
            return response()->view('laporan.gudang.index', $data);
        }
        if (isset($begin) && isset($end)) {
            $data['datas'] = TransaksiGudang::tanggal($begin, $end)->latest()->paginate(15);
            return response()->view('laporan.gudang.index', $data);
        }

        return response()->view('laporan.gudang.index', $data);
    }
    public function piutang()
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Penjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->whereHas('pembayaran_piutang')->paginate(10);
        $piutang = Penjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->whereHas('pembayaran_piutang')->get();

        $totalPiutang = 0;
        $totalDibayarkan = 0;
        foreach ($piutang as $p) {
            $totalPiutang += $p->total;
            $totalDibayarkan += $p->total_pembayaran_piutang;
        }
        $data = [
            'datas' => $datas,
            'totalPiutang' => $totalPiutang,
            'totalDibayarkan' => $totalDibayarkan,
            'periode' => $periode,
            'periodeTanggals' => $periodeTanggals
        ];

        return response()->view('laporan.piutang.index', $data);
    }
    public function hutang()
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Pembelian::where('metode_bayar', "kredit")->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->paginate(10);
        $hutang = Pembelian::where('metode_bayar', "kredit")->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();
        $totalHutang = 0;
        $totalDibayarkan = 0;
        foreach ($hutang  as $h) {
            $totalHutang += $h->total;
            $totalDibayarkan += $h->total_pembayaran_hutang;
        }
        $data = [
            "datas" => $datas,
            "totalHutang" => $totalHutang,
            "totalDibayarkan" => $totalDibayarkan,
            "periodeTanggals" => $periodeTanggals
        ];


        return response()->view('laporan.hutang.index', $data);
    }


    public function items(Request $request)
    {
        $kategori = KategoriItem::all();
        $datas = Item::paginate(20);
        $data_modal = Item::get();
        if ($request->kategori) {
            $datas = Item::kategori($request->kategori)->paginate(20);
            $data_modal = Item::kategori($request->kategori)->get();
        }
        $stok_toko = 0;
        $stok_gudang = 0;
        $retur_barang = 0;
        $modal = 0;
        foreach ($data_modal as $data) {
            $stok_toko += $data->stok;
            $stok_gudang += $data->stok_gudang;
            $retur_barang += $data->total_retur_penjualan;

            $stok = $data->stok + $data->stok_gudang;
            $modal += $data->biaya_item * $stok;
        }

        $data = [
            'datas' => $datas,
            'kategori' => $kategori,
            'stok_toko' => $stok_toko,
            'stok_gudang' => $stok_gudang,
            'retur_barang' => $retur_barang,
            'modal' => $modal,
            'item_kategori' => $request->kategori,
        ];

        return response()->view('laporan.item.index', $data);
    }

    public function pelanggan(Request $request)
    {

        $datas = new Pelanggan;

        if (isset($request->nama_pelanggan)) {

            $datas = Pelanggan::cari($request->nama_pelanggan);
        }
        if (isset($request->kecamatan_pelanggan)) {

            $datas = Pelanggan::kecamatan($request->kecamatan_pelanggan);
        }
        // if (isset($begin) && isset($end)) {
        //     $datas = Pelanggan::tanggal($begin, $end)->paginate(15);
        //     return response()->view("pelanggan.index", compact("request", "datas"));
        // }
        $datas = $datas->paginate(15);
        $jumlahPelanggan = Pelanggan::count();
        $data = [
            "datas" => $datas,
            "jumlahPelanggan" => $jumlahPelanggan,
            "request" => $request,
        ];

        return response()->view('laporan.pelanggan.index', $data);
    }
    public function uangMuka(Request $request)
    {
        try {
            $begin = new DateTime('-1 month');
            $end = new DateTime();
            $periode = [
                $begin->format('d/m/Y'),
                $end->format('d/m/Y'),
            ];

            if (request()->periode) {
                $periode = explode(" - ", request()->periode);
                $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
                $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
            }
            // $end->modify('+1 day');

            $interval = new DateInterval('P1D');
            $daterange = new DatePeriod($begin, $interval, $end);
            $periodeTanggals = [];
            foreach ($daterange as $date) {

                $periodeTanggals[] = $date->format('d-M');
            }

            $datas = Service::where('status_transaksi', 'proses')->where('uang_bayar', '>', 0);


            if (!isset($request->sorting_order)) {
                $sorting_order = "asc";
            }
            if (isset($request->sorting_order)) {
                if ($request->sorting_order == "desc") {
                    $sorting_order = "asc";
                } else if ($request->sorting_order == "asc") {
                    $sorting_order = "desc";
                }
            }


            if (isset($begin) && isset($end)) {
                $datas = $datas->tanggal($begin, $end);
            }

            if (isset($request->status)) {
                $datas = $datas->where("status", $request->status);
            }

            if (isset($request->nama_pelanggan)) {
                $datas = $datas->cari($request->nama_pelanggan);
            }
            if (isset($request->pengguna_id)) {
                $datas = $datas->where('pengguna_id', $request->pengguna_id);
            }
            if (isset($request->teknisi_id)) {
                $datas = $datas->where('teknisi_id', $request->teknisi_id);
            }
            if (isset($request->sale_id)) {
                $datas = $datas->where('sale_id', $request->sale_id);
            }

            if (isset($request->jenis_id)) {

                $datas = $datas->jenis($request->jenis_id);
            }


            if (isset($request->order)) {
                $order = $request->order;
                if ($request->order == "nama_pelanggan") {
                    $datas = $datas->orderBy(
                        Pelanggan::select("nama_pelanggan")
                            ->whereColumn('pelanggans.id', 'services.pelanggan_id'),
                        $sorting_order
                    );
                } else {
                    $datas = $datas->orderBy($request->order, $sorting_order);
                }
            } else {

                $datas = $datas->orderBy("tanggal", "desc");
            }

            $s_total_uang_muka = 0;
            $s_total_uang_muka_transfer = 0;
            $s_total_uang_muka_cash = 0;

            foreach ($datas->get() as $s) {

                $s_total_uang_muka += $s->uang_bayar;
                if ($s->metode_bayar == 'transfer') {
                    $s_total_uang_muka_transfer += $s->uang_bayar;
                }
                if ($s->metode_bayar == 'cash') {
                    $s_total_uang_muka_cash += $s->uang_bayar;
                }
            }


            $services = $datas->get();
            $total_transaksi = $services->count();
            $datas = $datas->paginate(10);


            $pengguna = Pengguna::all();
            $teknisi = Teknisi::all();
            $jenis = JenisItem::where('kategori_item_id', 4)->get();

            $data = [
                "request" => $request,
                "s_total_uang_muka" => $s_total_uang_muka,
                "s_total_uang_muka_transfer" => $s_total_uang_muka_transfer,
                "s_total_uang_muka_cash" => $s_total_uang_muka_cash,
                "datas" => $datas,
                "jenis" => $jenis,
                "teknisi" => $teknisi,
                "pengguna" => $pengguna,
                "total_transaksi" =>  $total_transaksi,
                "periodeTanggals" => $periodeTanggals,
                "periode" => $periode,
                "sorting_order" => $sorting_order,

            ];

            return response()->view("laporan.uang_muka.index", $data);
        } catch (\Throwable $th) {
            dd($th);
            return redirect()->route('laporan.service');
        }
    }







    // Cetak

    public function itemsPrint(Request $request)
    {
        try {
            $kategori = KategoriItem::all();
            $datas = Item::get();
            if ($request->kategori) {
                $datas = Item::kategori($request->kategori)->get();
            }
            $stok_toko = 0;
            $stok_gudang = 0;
            $retur_barang = 0;
            $modal = 0;
            foreach ($datas as $data) {
                $stok_toko += $data->stok;
                $stok_gudang += $data->stok_gudang;
                $retur_barang += $data->total_retur_penjualan;

                $stok = $data->stok + $data->stok_gudang;
                $modal += $data->biaya_item * $stok;
            }
            $export = [];
            foreach ($datas as $item) {
                $export[] = [
                    $item->nama_item,
                    $item->kategoriItem->nama_kategori,
                    $item->harga_item,
                    $item->biaya_item,
                    $item->stok,
                    $item->stok_gudang,
                    $item->total_retur_penjualan
                ];
            }
            if ($request->excel == 1) {

                return Excel::download(new ItemExport($export), 'Laporan Data-Barang.xlsx');
            } else {

                $data = [
                    'datas' => $datas,
                    'kategori' => $kategori,
                    'stok_toko' => $stok_toko,
                    'stok_gudang' => $stok_gudang,
                    'retur_barang' => $retur_barang,
                    'modal' => $modal,
                ];
                return response()->view("laporan.item.cetak", $data);
            }
        } catch (\Throwable $th) {
            return redirect()->route('laporan.item.index');
        }
    }

    public function servicePrint(Request $request)
    {
        try {

            // dd( url()->current());
            // dd( '?'.http_build_query($request->query()));
            // this will default to a time of 00:00:00
            $begin = new DateTime('-1 month');
            $end = new DateTime();
            $periode = [
                $begin->format('d/m/Y'),
                $end->format('d/m/Y'),
            ];

            if (request()->periode) {
                $periode = explode(" - ", request()->periode);
                $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
                $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
            }
            // $end->modify('+1 day');

            $interval = new DateInterval('P1D');
            $daterange = new DatePeriod($begin, $interval, $end);
            $periodeTanggals = [];
            foreach ($daterange as $date) {

                $periodeTanggals[] = $date->format('d-M');
            }

            $datas =
                Service::where('status_transaksi', 'success')->orwhere('status_pembayaran', 'refund');

            if (!isset($request->sorting_order)) {
                $sorting_order = "asc";
            }
            if (isset($request->sorting_order)) {
                if ($request->sorting_order == "desc") {
                    $sorting_order = "asc";
                } else if ($request->sorting_order == "asc") {
                    $sorting_order = "desc";
                }
            }


            if (isset($begin) && isset($end)) {
                $datas = $datas->selesai($begin, $end);
            }

            if (isset($request->status)) {
                $datas = $datas->where("status", $request->status);
            }

            if (isset($request->nama_pelanggan)) {
                $datas = $datas->cari($request->nama_pelanggan);
            }
            if (isset($request->jenis_id)) {
                $datas = $datas->jenis($request->jenis_id);
            }
            if (isset($request->pengguna_id)) {
                $datas = $datas->where('pengguna_id', $request->pengguna_id);
            }
            if (isset($request->teknisi_id)) {
                $datas = $datas->where('teknisi_id', $request->teknisi_id);
            }
            if (isset($request->sales_out)) {
                $datas = $datas->where('sales_out', $request->sales_out);
            }
            if (isset($request->kasir_out)) {
                $datas = $datas->where('kasir_out', $request->kasir_out);
            }
            if (isset($request->sale_id)) {
                $datas = $datas->where('sale_id', $request->sale_id);
            }
            if (isset($request->order)) {
                $order = $request->order;
                if ($request->order == "nama_pelanggan") {
                    $datas = $datas->orderBy(
                        Pelanggan::select("nama_pelanggan")
                            ->whereColumn('pelanggans.id', 'services.pelanggan_id'),
                        $sorting_order
                    );
                } else {
                    $datas = $datas->orderBy($request->order, $sorting_order);
                }
            } else {

                $datas = $datas->orderBy("tanggal_selesai", "desc");
            }

            $servis = $datas->get();
            $s_dp = 0;
            $s_laba_rugi_jasa = 0;
            $s_modal_sparepart = 0;
            $s_jual_sparepart = 0;
            $s_laba_rugi_sparepart = 0;

            foreach ($servis as $s) {

                $s_dp += $s->uang_bayar;
                $s_laba_rugi_jasa += $s->biaya;
                $s_modal_sparepart += $s->total_modal_sparepart;
                $s_jual_sparepart += $s->total_jual_sparepart;
                $s_laba_rugi_sparepart += $s->total_jual_sparepart - $s->total_modal_sparepart;
            }

            $datas = $datas->get();
            $export = [];
            $metode_bayar = '';
            $akhir_garansi = '';
            $sparepart = '';
            $sparepart = '';
            $jenis_spareparts = '';
            foreach ($datas as $data) {
                $pembayaran_service = $data->pembayaran_service->first();
                if (isset($pembayaran_service)) {
                    $metode_bayar = $pembayaran_service->metode_bayar;
                    $akhir_garansi = $pembayaran_service->akhir_garansi;
                }
                $sparepart = '';
                $jenis_spareparts = '';
                if (isset($data->detail)) {
                    foreach ($data->detail as $d) {
                        $sparepart .= $d->nama_item . ", ";
                        if (isset($d->sparepart->jenis_item)) {
                            $jenis_spareparts .= $d->sparepart->jenis_item->nama_jenis . ',';
                        }
                    }
                }
                $sparepart_luar = '';
                $jenis_sparepart_luar = '';
                if ($data->sparepart_luar->count() > 0) {
                    foreach ($data->sparepart_luar as $sl) {
                        $sparepart_luar .= $sl->nama_SL;
                    }
                    $jenis_sparepart_luar = 'Sparepart Luar';
                }


                $garansi = '';
                $refund = '';
                $set_refund = 0;
                if ($data->garansi == 1) {
                    $garansi = "(Garansi)";
                }
                if ($data->status_pembayaran == 'refund') {
                    $refund = "(Refund)";
                    $set_refund = 1;
                }

                $total = $data->total_jual_sparepart_dalam - $data->total_modal_sparepart + $data->biaya + $data->total_jual_sparepart_luar - $data->total_modal_sparepart_luar;
                if ($set_refund == 1) {
                    $total = -$total;
                }
                $export[] = [
                    $data->no_service . $garansi . $refund,
                    $data->jam_selesai,
                    $data->pelanggan->nama_pelanggan,
                    $data->merk . "(" . $data->tipe . ")",
                    $data->deskripsi,
                    $sparepart . $sparepart_luar,
                    $jenis_spareparts . $jenis_sparepart_luar,
                    $data->teknisi->nama_teknisi,
                    $data->pengguna->nama_pengguna,
                    $data->sales->nama_pengguna,
                    $data->kasir_out,
                    $data->sales_out,
                    $data->uang_bayar,
                    $data->metode_bayar,
                    $data->grand_total,
                    $metode_bayar,
                    $data->biaya,
                    $data->total_jual_sparepart_luar,
                    $data->total_modal_sparepart_luar,
                    $data->total_jual_sparepart_dalam,
                    $data->total_modal_sparepart,
                    $total




                ];
            }
            if ($request->excel == 1) {

                return Excel::download(new ServicesExport($export), 'Laporan Service.xlsx');
            } else {

                $data = [
                    "request" => $request,
                    "datas" => $datas,
                    "s_dp" => $s_dp,

                    "s_laba_rugi_jasa" =>  $s_laba_rugi_jasa,
                    "s_modal_sparepart" => $s_modal_sparepart,
                    "s_jual_sparepart" => $s_jual_sparepart,
                    "s_laba_rugi_sparepart" =>  $s_laba_rugi_sparepart,
                    "periodeTanggals" => $periodeTanggals,
                    "periode" => $periode,
                    "sorting_order" => $sorting_order,
                ];
                // $pdf = Pdf::loadView('laporan.service.cetak', $data);
                // return $pdf->download('Laporan Service.pdf');
                return response()->view("laporan.service.cetak", $data);
            }
        } catch (\Throwable $th) {
            dd($th);
            return redirect()->route('laporan.service');
        }
    }
    public function penjualanPrint(Request $request)
    {
        $penjualan = new Penjualan;


        // $data =



        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Penjualan::where('status_pembayaran', 'lunas')->whereBetween("jam_selesai", [$begin->format('Y-m-d'), $end->format('Y-m-d')]);

        if (isset($request->pengguna_id)) {
            $datas = $datas->where('pengguna_id', $request->pengguna_id);
        }
        $penjualan = $datas->get();
        $pendapatan = 0;
        $modal = 0;
        $jual = 0;
        $laba_rugi = 0;
        foreach ($penjualan as $penjualan) {
            $pendapatan += $penjualan->total;
            $modal += $penjualan->total_modal;
            $jual += $penjualan->total;
            $laba_rugi += $penjualan->total - $penjualan->total_modal;
        }

        $datas = $datas->get();

        $export = [];
        $detail = "";
        $akhir_garansi = "";
        foreach ($datas as $data) {
            $detail = "";
            $akhir_garansi = "";
            foreach ($data->detail_penjualan as $d) {
                $detail .= $d->nama_item . ',';
                $akhir_garansi .= $d->akhir_garansi . ',';
            }
            $export[] = [
                $data->nomor_nota,
                $data->tanggal_penjualan,
                $data->pelanggan->nama_pelanggan,
                $detail,
                $data->metode_bayar,
                $data->status_pembayaran,

                optional($data->sales)->nama_pengguna,
                $data->pengguna->nama_pengguna,
                $data->total_modal,
                $data->total,
                $data->total - $data->total_modal

            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new PenjualanExport($export), 'Laporan Penjualan.xlsx');
        } else {
            $data = [
                'datas' => $datas,
                "periode" => $periode,
                "periodeTanggals" => $periodeTanggals,
                "pendapatan" => $pendapatan,
                "modal" => $modal,
                "jual" => $jual,
                "laba_rugi" => $laba_rugi,
            ];
            // $pdf = Pdf::loadView('laporan.penjualan.cetak', $data);
            // return $pdf->download('Laporan Penjualan.pdf');
            return response()->view("laporan.penjualan.cetak", $data);
        }
    }

    public function pembelianPrint(Request $request)
    {
        // this will default to a time of 00:00:00
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Pembelian::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();

        $export = [];
        $detail_item = '';
        foreach ($datas as $data) {
            $detail_item = '';

            foreach ($data->detail_pembelian as $detail) {
                if (isset($detail->item)) {
                    $detail_item .= $detail->item->nama_item . ',';
                }
            }
            $export[] = [
                $data->tanggal_pembelian,
                $data->supplier->nama_supplier . '(' . $data->supplier->telp_supplier . ')',
                $detail_item,
                $data->total

            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new PembelianExport($export), 'Laporan Pembelian.xlsx');
        } else {

            $data = [
                'datas' => $datas,
                "periode" => $periode,
                "periodeTanggals" => $periodeTanggals
            ];
            return response()->view("laporan.pembelian.cetak", $data);
        }
    }
    public function gudangPrint(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();

        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = TransaksiGudang::latest()->get();
        if (isset($request->arah_transaksi)) {

            $datas = TransaksiGudang::cari($request->arah_transaksi)->latest()->get();
        }
        if (isset($begin) && isset($end)) {
            $datas = TransaksiGudang::tanggal($begin, $end)->latest()->get();
        }


        $export = [];
        foreach ($datas as $data) {
            $export[] = [
                $data->no_transaksi,
                $data->tanggal,
                $data->arah_transaksi,
                $data->keterangan,
            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new GudangExport($export), 'Laporan Transaksi Gudang.xlsx');
        } else {

            $data = [
                'datas' => $datas,
                'arah_transaksi' => $request->arah_transaksi
            ];


            return response()->view('laporan.gudang.cetak', $data);
        }
    }
    public function hutangPrint(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Pembelian::where('metode_bayar', "kredit")->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();

        $export = [];
        $lunas = '';
        foreach ($datas as $data) {
            if (!$data->status_lunas) {
                $lunas = 'Belum Lunas';
            } else {
                $lunas = 'Lunas';
            }
            $export[] = [
                $data->nomor_nota,
                $data->supplier->nama_supplier,
                $data->total,
                $data->total_pembayaran_hutang,
                $lunas,
            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new HutangExport($export), 'Laporan Hutang.xlsx');
        } else {
            $data = [
                "datas" => $datas,
                "periode" => $periode,
                "periodeTanggals" => $periodeTanggals
            ];


            return response()->view('laporan.hutang.cetak', $data);
        }
    }
    public function returPenjualanPrint(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = ReturPenjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();


        $export = [];
        $detail_item = '';
        foreach ($datas as $data) {
            $detail_item = '';
            foreach ($data->detail as $detail) {
                $detail_item .= $detail->nama_item . ',';
            }
            $export[] = [

                $data->created_at->format('d-m-Y'),
                $data->no_penjualan,
                $detail_item,
                $data->pelanggan->nama_pelanggan,
                $data->keterangan,
            ];
        }
        if ($request->excel == 1) {
            return Excel::download(new ReturPenjualanExport($export), 'Laporan Retur Penjualan.xlsx');
        } else {
            $data = [
                'datas' => $datas,
                'periode' => $periode,
                'periodeTanggals' => $periodeTanggals
            ];

            return response()->view("laporan.retur_penjualan.cetak", $data);
        }
    }
    public function returPembelianPrint(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = ReturPembelian::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->get();

        $export = [];
        $detail_item = '';
        foreach ($datas as $data) {
            $detail_item = '';
            foreach ($data->detail as $detail) {
                $detail_item .= $detail->nama_item . ',';
            }
            $export[] = [

                $data->created_at->format('d-m-Y'),
                $data->no_pembelian,
                $data->supplier->nama_supplier,
                $detail_item,
                $data->keterangan,
                $data->ket_tambahan,
            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new ReturPembelianExport($export), 'Laporan Retur Pembelian.xlsx');
        } else {

            $data = [
                'datas' => $datas,
                'periode' => $periode,
                'periodeTanggals' => $periodeTanggals
            ];


            return response()->view("laporan.retur_pembelian.cetak", $data);
        }
    }
    public function piutangPrint(Request $request)
    {
        $begin = new DateTime('-1 month');
        $end = new DateTime();
        $periode = [
            $begin->format('d/m/Y'),
            $end->format('d/m/Y'),
        ];

        if (request()->periode) {
            $periode = explode(" - ", request()->periode);
            $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
            $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
        }
        $end->modify('+1 day');

        $interval = new DateInterval('P1D');
        $daterange = new DatePeriod($begin, $interval, $end);
        $periodeTanggals = [];
        foreach ($daterange as $date) {

            $periodeTanggals[] = $date->format('d-M');
        }


        $datas = Penjualan::whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')])->whereHas('pembayaran_piutang')->get();

        $export = [];
        $lunas = '';
        foreach ($datas as $data) {
            if (!$data->status_lunas) {
                $lunas = 'Belum Lunas';
            } else {
                $lunas = 'Lunas';
            }
            $export[] = [
                $data->nomor_nota,
                $data->pelanggan->nama_pelanggan,
                $data->total,
                $data->total_pembayaran_piutang,
                $lunas,
            ];
        }
        if ($request->excel == 1) {

            return Excel::download(new PiutangExport($export), 'Laporan Piutang.xlsx');
        } else {

            $data = [
                'datas' => $datas,
                'periode' => $periode,
                'periodeTanggals' => $periodeTanggals
            ];

            return response()->view('laporan.piutang.cetak', $data);
        }
    }
    public function pelangganPrint(Request $request)
    {
        $datas = new Pelanggan;

        if (isset($request->nama_pelanggan)) {

            $datas = Pelanggan::cari($request->nama_pelanggan);
        }
        if (isset($request->kecamatan_pelanggan)) {

            $datas = Pelanggan::kecamatan($request->kecamatan_pelanggan);
        }
        // if (isset($begin) && isset($end)) {
        //     $datas = Pelanggan::tanggal($begin, $end)->paginate(15);
        //     return response()->view("pelanggan.index", compact("request", "datas"));
        // }


        $datas = $datas->get();
        $export = [];
        foreach ($datas  as $data) {

            $export[] = [

                $data->nama_pelanggan,
                $data->telp_pelanggan,
                $data->alamat_pelanggan,
                $data->kecamatan_pelanggan,
                $data->riwayat->sum('biaya')
            ];
        }

        if ($request->excel == 1) {

            return Excel::download(new LaporanPelangganExport($export), 'Laporan Pengguna.xlsx');
        } else {

            $data = [
                "datas" => $datas,
                "request" => $request,
            ];

            return response()->view('laporan.pelanggan.cetak', $data);
        }
    }
    public function uangMukaPrint(Request $request)
    {
        try {
            $begin = new DateTime('-1 month');
            $end = new DateTime();
            $periode = [
                $begin->format('d/m/Y'),
                $end->format('d/m/Y'),
            ];

            if (request()->periode) {
                $periode = explode(" - ", request()->periode);
                $begin = DateTime::createFromFormat('d/m/Y', $periode[0]);
                $end = DateTime::createFromFormat('d/m/Y', $periode[1]);
            }
            // $end->modify('+1 day');

            $interval = new DateInterval('P1D');
            $daterange = new DatePeriod($begin, $interval, $end);
            $periodeTanggals = [];
            foreach ($daterange as $date) {

                $periodeTanggals[] = $date->format('d-M');
            }

            $datas = Service::where('status_transaksi', 'proses')->where('uang_bayar', '>', 0);


            if (!isset($request->sorting_order)) {
                $sorting_order = "asc";
            }
            if (isset($request->sorting_order)) {
                if ($request->sorting_order == "desc") {
                    $sorting_order = "asc";
                } else if ($request->sorting_order == "asc") {
                    $sorting_order = "desc";
                }
            }


            if (isset($begin) && isset($end)) {
                $datas = $datas->tanggal($begin, $end);
            }

            if (isset($request->status)) {
                $datas = $datas->where("status", $request->status);
            }

            if (isset($request->nama_pelanggan)) {
                $datas = $datas->cari($request->nama_pelanggan);
            }
            if (isset($request->pengguna_id)) {
                $datas = $datas->where('pengguna_id', $request->pengguna_id);
            }
            if (isset($request->teknisi_id)) {
                $datas = $datas->where('teknisi_id', $request->teknisi_id);
            }
            if (isset($request->sale_id)) {
                $datas = $datas->where('sale_id', $request->sale_id);
            }

            if (isset($request->jenis_id)) {

                $datas = $datas->jenis($request->jenis_id);
            }


            if (isset($request->order)) {
                $order = $request->order;
                if ($request->order == "nama_pelanggan") {
                    $datas = $datas->orderBy(
                        Pelanggan::select("nama_pelanggan")
                            ->whereColumn('pelanggans.id', 'services.pelanggan_id'),
                        $sorting_order
                    );
                } else {
                    $datas = $datas->orderBy($request->order, $sorting_order);
                }
            } else {

                $datas = $datas->orderBy("tanggal", "desc");
            }




            $datas = $datas->get();



            $pengguna = Pengguna::all();
            $teknisi = Teknisi::all();
            $jenis = JenisItem::where('kategori_item_id', 4)->get();

            $data = [
                "request" => $request,
                "datas" => $datas,
                "jenis" => $jenis,
                "teknisi" => $teknisi,
                "pengguna" => $pengguna,
                "periodeTanggals" => $periodeTanggals,
                "periode" => $periode,
                "sorting_order" => $sorting_order,

            ];
            foreach ($datas as $data) {
                $export[] = [
                    $data->no_service,
                    $data->pelanggan->nama_pelanggan,
                    $data->merk . "(" . $data->tipe . ")",
                    $data->deskripsi,
                    $data->status,
                    $data->teknisi->nama_teknisi,
                    $data->pengguna->nama_pengguna,
                    $data->sales->nama_pengguna,
                    $data->uang_bayar,
                    $data->metode_bayar,
                    $data->grand_total,

                ];
            }



            if ($request->excel == 1) {

                return Excel::download(new uangMukaExport($export), 'Laporan Uang Muka Service.xlsx');
            } else {

                $data = [
                    "request" => $request,
                    "datas" => $datas,

                    "periodeTanggals" => $periodeTanggals,
                    "periode" => $periode,
                    "sorting_order" => $sorting_order,
                ];
                // $pdf = Pdf::loadView('laporan.service.cetak', $data);
                // return $pdf->download('Laporan Service.pdf');
                return response()->view("laporan.uang_muka.cetak", $data);
            }
        } catch (\Throwable $th) {
            dd($th);
            return redirect()->route('laporan.service');
        }
    }
}

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