Anons79 Mini Shell

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

<?php

namespace App\Http\Controllers;

use App\Models\PembayaranService;
use App\Models\Pengguna;
use App\Models\Service;
use App\Models\Pesan;
use App\Models\PesanDefault;
use App\Models\Profil;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;

class PesanController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index(): Response
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create(): Response
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request): RedirectResponse
    {
        //
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id): Response
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id): Response
    {
        $service = Service::with('pelanggan','pengguna')->find($id);
        $pesans = Pesan::where("service_id", $id)->get();
        $pesanDefault = PesanDefault::where('menu', 'service')->latest()->first();
        $default = @$pesanDefault->isi ?? null;

        if ($default == null) {
            if ($service->status == 'pending') {
                $default = "Terimakasih kak { nama_pelanggan } , Berikut kami lampirkan nota servis hp kakak, mohon di simpan ya kak 🙏🏻😊";
            } else {
                $default = "Halo kak { nama_pelanggan } Hp kakak sudah selesai kami cek, berikut rincian detail kerusakan dan biaya perbaikan nya: 
Kerusakan: { kerusakan }
Harga perbaikan:RP. { grand_total }

Apakah kakak bersedia di lanjut perbaikan?
";

            }
        }

        //         if ($datas->status == 'pending') {
//             $isi_pesan = "Terimakasih kak " . $datas->pelanggan->nama_pelanggan .
//                 " , Berikut kami lampirkan nota servis hp kakak, mohon di simpan ya kak 🙏🏻😊";
//         } else {
//             $isi_pesan = "Halo kak " . $datas->pelanggan->nama_pelanggan . "
// Hp kakak sudah selesai kami cek, berikut rincian detail kerusakan dan biaya perbaikan nya: 

        // Kerusakan:" . $datas->kerusakan . "
// Harga perbaikan:RP. " . number_format($datas->grandTotal) . "

        // Apakah kakak bersedia di lanjut perbaikan?
// ";
//             $isi_pesan_tidak_deal = "Halo kak " . $datas->pelanggan->nama_pelanggan . "
// Terimaksih atas konfirmasinya. Hp Kakak bisa diambil kembali ke konter Anggur Cell dg memberitahukan chat ini ke karyawan kami ya kak. 
// Terimakasih 😊

        // ";
//         }

            $placeholders = [
                '{ service_id }',
                '{ nama_pelanggan }',
                '{ status }',
                '{ biaya }',
                '{ uang_muka }',
                '{ grand_total }',
                '{ tipe_hp }',
                '{ kerusakan }',
                '{ kasir }'
            ];

            $replacements = [
                $service->no_service,
                @$service->pelanggan->nama_pelanggan ?? "-",
                ucwords(str_replace('_', ' ', $service->status)),
                $service->biaya,
                $service->uang_bayar,
                number_format($service->grand_total),
                $service->merk . ' (' . $service->tipe . ')',
                $service->kerusakan,
                @$service->pengguna->nama_pengguna ?? "-"
            ];

            $isi_pesan = str_replace($placeholders, $replacements, $default);
        
        $data = [
            "datas" => $service,
            "pesans" => $pesans,
            "isi_pesan" => $isi_pesan,
            "default" => $default
        ];


        return response()->view("pesan.edit", $data);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {


        DB::beginTransaction();
        try {
            $service = Service::find($id);

            $isi_pesan = $request->isi_pesan;
            

            $pesan = Pesan::create([
                "isi_pesan" => $isi_pesan,
                "service_id" => $id,
            ]);

            if ($pesan) {
                $service->update(['status_pesan' => 1]);
                // dd($service->pelanggan->telp_pelanggan);
                
                \Helper::sendWa($service->pelanggan->telp_pelanggan, $pesan->isi_pesan);


                // nota
                $sales = Pengguna::where('id', $service->sale_id)->first();
                $pembayaran_service = PembayaranService::where('service_id', $id)->latest()->first();
                $profil = Profil::first();
                $data = [
                    "datas" => $service,
                    "sales" => $sales,
                    "pembayaran_service" => $pembayaran_service,
                    "profil" => $profil
                ];

                $pdf = Pdf::loadView('service.nota', $data);
                $fileName = 'NotaPegangan-' . $service->pelanggan->telp_pelanggan . date('Y') . '' . date('m') . '' . date('d') . '' . date('his') . '.pdf';
                $pdf->setPaper('A4', 'landscape');
                $pdf->render();
                $path = public_path('pdf/Nota/' . $fileName);

                $pdf->save($path);
                // return $pdf->stream($path, array("Attachment" => false));
                $pdfUrl = url('pdf/Nota/' . $fileName);
                $pesan_pdf = \Helper::sendNotaPDF($service->pelanggan->telp_pelanggan, $pdfUrl);
                if ($pesan_pdf) {

                    File::delete($path);
                    DB::commit();
                    return redirect()->back()->with('success', 'Pesan berhasil terkirim');
                } else {
                    return redirect()->back()->with('error', 'Pesan nota Service gagal ditambah');
                }
            }

            DB::commit();




            return redirect()->back()->with('success', 'Pesan berhasil Dikirim');
        } catch (\Throwable $th) {

            DB::rollback();
            return redirect()->route('service.index')->with('error', 'Pesan gagal Dikirim');
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id): RedirectResponse
    {
        //
    }
}

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