<?php

namespace App\Http\Controllers\Yonetim;

use App\Http\Controllers\Controller;
use App\Models\Bayi_paketler;
use App\Models\Domain;
use App\Models\Eklentiler;
use App\Models\IstatistikModel;
use App\Models\Paket_urunler;
use App\Models\Paketler;
use App\Models\Siparis_revizyon;
use App\Models\Siparisler;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use App\Models\Uyeler;

class SiparislerController extends Controller
{
    public function veriler(){
        $veriler = Siparisler::latest()->get();

        return view('yonetim.siparisler.siparisler',compact('veriler'));
    }


    public function veriupdate($id){

        $siparisdetay = Siparisler::findOrFail($id);
        $siparisekservis = Siparisler::find($id)->siparisekservis;
        $uyebilgileri=Siparisler::findOrFail($id)->useradi;
        $paketurunler=Paket_urunler::all();
        $paketler=Paketler::all();
        $domainler=Domain::all();
        $eklentiler=Eklentiler::all();
        $bayipaketler=Bayi_paketler::all();
        $revizyonlar=Siparis_revizyon::where('siparis_id',$id)->latest()->get();


        return view('yonetim.siparisler.siparisedit',compact('siparisdetay','siparisekservis','uyebilgileri','paketurunler','paketler','domainler','eklentiler','revizyonlar','bayipaketler'));
    }

    public function veriupdateson(Request $request,$id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {


                if($request->siparisdurum==2){
                    Siparisler::findOrFail($id)->update([
                        'siparisdurum'=>$request->siparisdurum,
                        'updated_at' => Carbon::now(),

                    ]);
                    $toplamkazanc=IstatistikModel::find(1);

                    IstatistikModel::find(1)->update([
                        'toplamkazanc'=>$request->toplamsepetfiyat+$toplamkazanc->toplamkazanc,
                        'bekleyensiparis'=>$toplamkazanc->bekleyensiparis-1,
                        'updated_at' => Carbon::now(),
                    ]);
                    $kulidsi=$request->kullanici_id;
                    $kulbakiye=Uyeler::find($kulidsi);


                    Uyeler::findOrFail($kulidsi)->update([
                        'bakiye'=>($kulbakiye->bakiye)-($request->siparisbakiye),
                        'updated_at' => Carbon::now(),
                    ]);




                }else if($request->siparisdurum==3){
                    Siparisler::findOrFail($id)->update([
                        'siparisdurum'=>$request->siparisdurum,
                        'updated_at' => Carbon::now(),

                    ]);

                    $toplambekleyen=IstatistikModel::find(1);

                    IstatistikModel::find(1)->update([
                        'bekleyensiparis'=>$toplambekleyen->bekleyensiparis-1,
                        'updated_at' => Carbon::now(),
                    ]);



                }


                else if($request->siparisdurum==4){
                    Siparisler::findOrFail($id)->update([
                        'siparisdurum'=>$request->siparisdurum,
                        'updated_at' => Carbon::now(),

                    ]);

                    $toplamkazanc=IstatistikModel::find(1);

                    IstatistikModel::find(1)->update([
                        'toplamkazanc'=>$toplamkazanc->toplamkazanc-$request->toplamsepetfiyat,
                        'updated_at' => Carbon::now(),
                    ]);


                    $kulidsi=$request->kullanici_id;
                    $kulbakiye=Uyeler::find($kulidsi);


                    Uyeler::findOrFail($kulidsi)->update([
                        'bakiye'=>($kulbakiye->bakiye)+($request->siparisbakiye),
                        'updated_at' => Carbon::now(),
                    ]);

                } else if($request->siparisdurum==4){
                    Siparisler::findOrFail($id)->update([
                        'siparisdurum'=>$request->siparisdurum,
                        'updated_at' => Carbon::now(),

                    ]);

                    $toplamkazanc=IstatistikModel::find(1);

                    IstatistikModel::find(1)->update([
                        'toplamkazanc'=>$toplamkazanc->toplamkazanc-$request->toplamsepetfiyat,
                        'updated_at' => Carbon::now(),
                    ]);


                    $kulidsi=$request->kullanici_id;
                    $kulbakiye=Uyeler::find($kulidsi);


                    Uyeler::findOrFail($kulidsi)->update([
                        'bakiye'=>($kulbakiye->bakiye)+($request->siparisbakiye),
                        'updated_at' => Carbon::now(),
                    ]);

                }


                else{
                    return redirect()->route('siparis.all')->with('danger', 'İşlem daha önce yapıldı veya geçersiz istek...');

                }



                return redirect()->route('siparis.all')->with('success', 'Veri Güncellendi...');







        }
        else{
            return redirect()->route('siparis.all')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }






    }


    public function dosyayukleson(Request $request,$id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {

            $image = $request->file('dosyayol');
            $teaser_image = time().'.'.$image->getClientOriginalExtension();
            $destinationPath = public_path('/upload/faturalar/');
            $image->move($destinationPath, $teaser_image);
            Siparisler::findOrFail($id)->update([
                'faturadosyayol' => 'upload/faturalar/'.$teaser_image,
                'updated_at' => Carbon::now(),
            ]);

            if ($request->eskidosyayol==""){

            }else{
                $eskidosyayol=$request->eskidosyayol;
                if (file_exists($eskidosyayol)){
                    unlink($eskidosyayol);

                }

            }




            return redirect()->back()->with('success', 'Dosya Başarıyla Yüklendi...');
        }
        else{
            return redirect()->route('siparis.all')->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }






    }


    public function scriptdosyayukleson(Request $request,$id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {


            if ($request->file('dosyayol')) {


                $image = $request->file('dosyayol');
                $teaser_image = time().'.'.$image->getClientOriginalExtension();
                $destinationPath = public_path('/upload/siparisdosya/');
                $image->move($destinationPath, $teaser_image);
                Siparisler::findOrFail($id)->update([
                    'dosyayol' => 'upload/siparisdosya/'.$teaser_image,
                ]);

                $eskidosyayol=$request->eskidosyayol;
                if (file_exists($eskidosyayol)){
                    unlink($eskidosyayol);

                }


            }


            Siparisler::findOrFail($id)->update([
                'dosyalink'=>$request->dosyalink,
                'updated_at' => Carbon::now(),
            ]);

            return redirect()->back()->with('success', 'Sipariş Dosyası Yüklendi...');


        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }








    }

    public function scriptdosyasil($id){

        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            $vericek = Siparisler::findOrFail($id);
            $resimyol=$vericek->resimyol;
            $dosyayol=$vericek->dosyayol;


            if (file_exists($dosyayol)){
                unlink($dosyayol);

            }

            Siparisler::findOrFail($id)->update([
                'dosyayol'=>"",
                'updated_at' => Carbon::now(),
            ]);



            return redirect()->back()->with('success', 'Dosya Silme İşlemi Tamamlandı...');;
        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }



    public function veridelete($id){


        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {

            $siparisdurumal=Siparisler::findOrFail($id);
            if ($siparisdurumal->siparisdurum==2){


                $toplamsiparis=IstatistikModel::find(1);

                IstatistikModel::find(1)->update([
                    'toplamsiparis' => $toplamsiparis->toplamsiparis-1,
                    'toplamkazanc'=>$toplamsiparis->toplamkazanc-$siparisdurumal->toplamsepetfiyat,
                    'updated_at' => Carbon::now(),
                ]);
                Siparisler::findOrFail($id)->delete();

            }else{


                $toplamsiparis=IstatistikModel::find(1);

                IstatistikModel::find(1)->update([
                    'toplamsiparis' => $toplamsiparis->toplamsiparis-1,
                    'bekleyensiparis' => $toplamsiparis->bekleyensiparis-1,
                    'updated_at' => Carbon::now(),
                ]);

                Siparisler::findOrFail($id)->delete();

            }


            return redirect()->back()->with('success', 'Silme İşlemi Başarıyla Tamamlandı');
        }
        else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }



    public function siparisrevizyonekle($id){

        $siparisveri = Siparisler::where('id',$id)->first();
        $siparisid=$id;
        return view('yonetim.siparisler.siparisrevizyonekle',compact('siparisveri','siparisid'));

    }

    public function siparisrevizyonekleson($id,Request $request){

        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {


            if ($request->file('dosyayol')) {


                $image = $request->file('dosyayol');
                $teaser_image = time().'.'.$image->getClientOriginalExtension();
                $destinationPath = public_path('/upload/siparisdosya/');
                $image->move($destinationPath, $teaser_image);
                Siparis_revizyon::insert([
                    'dosyayol' => 'upload/siparisdosya/'.$teaser_image,
                    'siparis_id'=>$id,
                    'baslik'=>$request->baslik,
                    'aciklama'=>$request->aciklama,
                    'created_at' => Carbon::now(),
                    'updated_at' => Carbon::now(),
                ]);



            }else{
                Siparis_revizyon::insert([
                    'dosyalink'=>$request->dosyalink,
                    'siparis_id'=>$id,
                    'baslik'=>$request->baslik,
                    'aciklama'=>$request->aciklama,
                    'created_at' => Carbon::now(),
                    'updated_at' => Carbon::now(),
                ]);

            }




            return redirect()->route('siparis.veriupdate',$id)->with('success', 'Sipariş verileri eklendi...');


        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }


    public function siparisrevizyonedit($id){


        $revizyondata=Siparis_revizyon::where('id',$id)->first();
        return view('yonetim.siparisler.siparisrevizyonedit',compact('revizyondata'));

    }

    public function siparisrevizyoneditson($id,Request $request){

        $oturumyetki = Auth::user()->yetki;

        if ($oturumyetki==2 || $oturumyetki==1) {


            if ($request->file('dosyayol')) {


                $image = $request->file('dosyayol');
                $teaser_image = time().'.'.$image->getClientOriginalExtension();
                $destinationPath = public_path('/upload/revizyondosya/');
                $image->move($destinationPath, $teaser_image);
                Siparis_revizyon::findOrFail($id)->update([
                    'dosyayol' => 'upload/revizyondosya/'.$teaser_image,
                    'baslik'=>$request->baslik,
                    'aciklama'=>$request->aciklama,
                    'updated_at' => Carbon::now(),
                ]);

                $eskidosyayol=$request->eskidosyayol;
                if (file_exists($eskidosyayol)){
                    unlink($eskidosyayol);

                }


            }else{
                Siparis_revizyon::findOrFail($id)->update([
                    'dosyalink'=>$request->dosyalink,
                    'baslik'=>$request->baslik,
                    'aciklama'=>$request->aciklama,
                    'updated_at' => Carbon::now(),
                ]);

            }



            return redirect()->back()->with('success', 'Revizyon verileri güncellendi...');


        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }
    }

    public function revizyonsil($id){

        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            $vericek = Siparis_revizyon::findOrFail($id);
            $dosyayol=$vericek->dosyayol;


            if (file_exists($dosyayol)){
                unlink($dosyayol);

            }

            Siparis_revizyon::findOrFail($id)->delete();




            return redirect()->back()->with('success', 'Dosya Silme İşlemi Tamamlandı...');;
        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }

    public function revizyondosyasil($id){

        $oturumyetki = Auth::user()->yetki;
        if ($oturumyetki==2 || $oturumyetki==1) {
            $vericek = Siparis_revizyon::findOrFail($id);
            $dosyayol=$vericek->dosyayol;


            if (file_exists($dosyayol)){
                unlink($dosyayol);

            }

            Siparis_revizyon::findOrFail($id)->update([
                'dosyayol'=>"",
                'updated_at' => Carbon::now(),
            ]);



            return redirect()->back()->with('success', 'Dosya Silme İşlemi Tamamlandı...');;
        }else{
            return redirect()->back()->with('danger', 'İşlem Yetkiniz kısıtlı..');

        }


    }


}
