Anons79 Mini Shell

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

<?php

namespace App\Http\Controllers;

use App\Models\Pelanggan;
use App\Models\Pengguna;
use App\Models\Penjualan;
use App\Models\PesanCustom;
use App\Models\Profil;
use App\Models\Service;
use DateInterval;
use DatePeriod;
use DateTime;
use Illuminate\Http\Request;

class GetDataController extends Controller
{
    public  function itemterjual(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[] = strftime("%d-%b", strtotime($date->format("Y-m-d")));
        }


        $start = $begin->format('Y-m-d');
        $finish = $end->modify('-1 day')->format('Y-m-d');
        if ($start == $finish) {

            $penjualans = Penjualan::whereDate('jam_selesai', $begin)->where('status_pembayaran', 'lunas');
        } else {

            $penjualans = Penjualan::where('status_pembayaran', 'lunas')->whereBetween("jam_selesai", [$begin->format('Y-m-d'), $end->format('Y-m-d')]);
        }
        // $detail_penjualans = DetailPenjualan::whereBetween('created_at', [$begin, $end]);

        if ($start == $finish) {
            $detail_services = Service::where('status_pembayaran', 'lunas')->whereDate('tanggal_selesai', $begin);
        } else {
            $detail_services = Service::where('status_pembayaran', 'lunas')->selesai($begin, $end);
        }


        $allItems = collect();

        foreach ($detail_services->get() as $scv) {
            foreach ($scv->detail as $serviceDetail) {
                $allItems->push([
                    'item_id' => $serviceDetail->sparepart->id,
                    'nama_barang' => $serviceDetail->sparepart->nama_item,
                    'kategori' => $serviceDetail->sparepart->kategoriItem->nama_kategori, // Asumsi ada relasi kategori
                    'qty' => $serviceDetail->jumlah,
                    'transaksi' => 'Service',
                ]);
            }
        }
        foreach ($penjualans->get() as $penjualans) {
            foreach ($penjualans->detail_penjualan as $dp) {


                $allItems->push([
                    'item_id' => $dp->item->id,
                    'nama_barang' => $dp->item->nama_item,
                    'kategori' => $dp->item->kategoriItem->nama_kategori,
                    'qty' => $dp->qty,
                    'transaksi' => 'Penjualan',
                ]);
            }
        }


        $groupedItems = $allItems->groupBy('item_id')->map(function ($items) {
            return [
                'nama_barang' => $items->first()['nama_barang'],
                'kategori' => $items->first()['kategori'],
                'total_qty' => $items->sum('qty'),
                'transaksi' => $items->first()['transaksi'],
            ];
        });

        return response()->json($groupedItems);
    }
    public function getservicedata(Request $request){
        
            // dd( url()->current());
            // dd( '?'.http_build_query($request->query()));
            // this will default to a time of 00:00:00
            $profil = Profil::first();
            $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[] = strftime("%d-%b", strtotime($date->format("Y-m-d")));
            }

            $datas = new Service;
            $datas = $datas->with('sales');

          

            if (isset($begin) && isset($end)) {
                $service = $datas->created($begin, $end->modify('+1 day'))->latest()->get();
                $dp = Service::where('status_transaksi', 'proses')->get();
                $dp_total = $dp->sum('uang_bayar');


                $dp_total_cash = $dp->where('metode_bayar', 'cash')->sum('uang_bayar');
                $dp_total_transfer = $dp->where('metode_bayar', 'transfer')->sum('uang_bayar');



               

                // Total omset
                $omset = 0;
                $omset_cash = 0;
                $omset_transfer = 0;
                $omset_s = Service::where('status_pembayaran', 'lunas')->selesai($begin, $end)->get();


                foreach ($omset_s as $service) {
                    $omset += $service->grand_total;
                    $has_cash = false;
                    $has_transfer = false;

                    foreach ($service->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 += $service->grand_total;
                    }
                    if ($has_transfer) {
                        $omset_transfer += $service->grand_total;
                    }
                }
                $grand_omset = $omset;
                $grand_omset_cash = $omset_cash;
                $grand_omset_transfer = $omset_transfer;




                $dp_service = Service::tanggal($begin, $end)->where('status_transaksi', 'proses')->sum('uang_bayar');
                $dp_service_cash = Service::tanggal($begin, $end)->where('status_transaksi', 'proses')->where('metode_bayar', 'cash')->sum('uang_bayar');
                $dp_service_transfer = Service::tanggal($begin, $end)->where('status_transaksi', 'proses')->where('metode_bayar', 'transfer')->sum('uang_bayar');
            
                // omset Transfer

                $belum_dihubungi = Service::where('status_pesan', null)->created($begin, $end)->count();
                // status_transaksi
                $proses = Service::where('status_transaksi', 'proses')->tanggal($begin, $end)->count();
                $success = Service::where('status_transaksi', 'success')->tanggal($begin, $end)->count();
                $cancel = Service::where('status_transaksi', 'cancel')->tanggal($begin, $end)->count();
                // status
                $pending = Service::where('status', 'pending')->created($begin, $end)->count();
                $indent = Service::where('status', 'indent')->created($begin, $end)->count();
                $pengecekan = Service::where('status', 'pengecekan')->created($begin, $end)->count();
                $konfirmasi = Service::where('status', 'konfirmasi')->created($begin, $end)->count();
                $hp_bisa_diperbaiki = Service::where('status', 'hp_bisa_diperbaiki')->created($begin, $end)->count();
                $hp_normal = Service::where('status', 'hp_normal')->created($begin, $end)->count();
                $pending_perbaikan = Service::where('status', 'pending_perbaikan')->created($begin, $end)->count();
                $proses_perbaikan = Service::where('status', 'proses_perbaikan')->created($begin, $end)->count();
                $selesai = Service::where('status', 'selesai')->created($begin, $end)->count();
                $batal = Service::where('status', 'batal')->created($begin, $end)->count();
                $tidak_bisa_diperbaiki = Service::where('status', 'tidak_bisa_diperbaiki')->created($begin, $end)->count();
                $gagal_perbaikan = Service::where('status', 'gagal_perbaikan')->created($begin, $end)->count();
                $tidak_deal = Service::where('status', 'tidak_deal')->created($begin, $end)->count();
                // status_pembayaran
                $down_payment = Service::where('status_pembayaran', '!=', 'lunas')->where('uang_bayar', '>', 0)->created($begin, $end)->count();
                $belum_ditanggapi = Service::where('status_pembayaran', 'belum_ditanggapi')->created($begin, $end)->count();
                $lunas = Service::where('status_pembayaran', 'lunas')->created($begin, $end)->count();
                $belum_lunas = Service::where('status_pembayaran', 'belum_lunas')->created($begin, $end)->count();
                $refund = Service::where('status_pembayaran', 'refund')->created($begin, $end)->count();
                $refund_dp = Service::where('status_pembayaran', 'refund_dp')->created($begin, $end)->count();

                // Persentase Transaksi



                

                $infobox = [

                    'belum_dihubungi' => $belum_dihubungi,
                    'down_payment' => $down_payment,
                    // status_transaksi
                    'proses' => $proses,
                    'success' => $success,
                    'cancel' => $cancel,
                    //status 
                    'pending' => $pending,
                    'indent' => $indent,
                    'pengecekan' => $pengecekan,
                    'konfirmasi' => $konfirmasi,
                    'hp_bisa_diperbaiki' => $hp_bisa_diperbaiki,
                    'hp_normal' => $hp_normal,
                    'pending_perbaikan' => $pending_perbaikan,
                    'proses_perbaikan' => $proses_perbaikan,
                    'selesai' => $selesai,
                    'batal' => $batal,
                    'tidak_bisa_diperbaiki' => $tidak_bisa_diperbaiki,
                    'gagal_perbaikan' => $gagal_perbaikan,
                    'tidak_deal' => $tidak_deal,
                    // status_pembayaran
                    'lunas' => $lunas,
                    'belum_lunas' => $belum_lunas,
                    'tidak_deal' => $tidak_deal,
                    'refund' => $refund,
                    'refund_dp' => $refund_dp,
                    'belum_ditanggapi' => $belum_ditanggapi,

                    'profil' => $profil,
                    'omset' => number_format($grand_omset),
                    'cash' => number_format($grand_omset_cash),
                    'transfer' => number_format($grand_omset_transfer),
                    'dp_service' => number_format($dp_service),
                    'dp_service_cash' => number_format($dp_service_cash),
                    'dp_service_transfer' => number_format($dp_service_transfer),
                    'dp_total' => number_format($dp_total),
                    'dp_total_cash' => number_format($dp_total_cash),
                    'dp_total_transfer' => number_format($dp_total_transfer),

                ];
            }



            
            
            return response()->json($infobox);
    }
    
}

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