<?php

namespace App\Http\Controllers;

use App\CreditFacilityDetails;
use App\CreditFacilityOtherDetails;
use Illuminate\Foundation\Auth\User;
use Illuminate\Http\Request;
use ZipArchive;
use App\UserDetails;
use App\StockFiles;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use App\DataTables\StockDataTable;
use App\DataTables\ManagementReportDataTable;
use App\OperationsModel;
use App\MachineUsedModel;
use App\AddtionalMachineModel;
use App\ProductionLevelsModel;
use App\DirectorsModel;
use App\CreditHistoryModel;
use App\ProductPackagingModel;
use App\KpiModel;
use App\BankMomo;
use App\BusinessType;
use App\BusRegs;
use App\Users;
use App\HistoricalFinancial;
use App\License;
use App\Pitchdeck;
use App\AcceptedOfferLetter;
use App\DirectionalSketch;
use App\EsrmReport;
use App\FinancialRatios;
use App\FyepApplication;
use App\IrrevocableInstruction;
use App\OperatingPermit;
use App\RequestFacility;
use App\UpfrontPayment;
use App\FinancialPerformanceModel;
use App\OperatingPersonnelModel;
use Illuminate\Support\Facades\Session;
use GuzzleHttp\Client as GuzzleClient;
use Illuminate\Support\Facades\DB;

use App\OtpModel;

use PDF;



class UserExistsController extends Controller
{
  public function continueform(){
    $id = Session::get('userid');
    // if (Session::get('check')== true) {
    $form_data = Users::query()->where('user_id', $id)->first();
    $user = UserDetails::where('id',$id)->first();
    $business_types = BusinessType::query()->get();

      $application_funds = User::query()->where('user_id', $id)->first()->application_funds;

      if (!empty($application_funds)){
          $application_funds = (array) json_decode($application_funds);
      }else{
          $application_funds = 'N/A';
      }

      //should query everything concerning user form and pass to page
      $data=[
        'user'=>$user,
        'id'=>$id,
        'name'=>$user->name,
        'phone'=>$user->phone,
        'email'=>$user->email,
        'company_name'=>$user->company_name,
          'dob' => $user->dob,
          'business_types' => $business_types,
          'form_data' => $form_data,
          'application_funds' => $application_funds,
        // 'ee'=>$mc
      ];
      return view('application.continueformtwo',$data);
    // }else {
    //   return redirect()->route('apply')->with('error','Please Complete the form below');
    // }
  }

  public function insertmachineused($id){
    $machineusedd =MachineUsedModel::where('user_id',$id)->get();
    return $machineusedd;
  }


  public function addmachine($id){
    $addmachine =AddtionalMachineModel::where('user_id',$id)->get();
    return $addmachine;

  }

  public function productlevel($id){
    $productlevel =ProductionLevelsModel::where('user_id',$id)->get();
    return $productlevel;
  }

  public function director($id){
    $director =DirectorsModel::where('user_id',$id)->get();
    return $director;
  }

  public function opper($id){
    $machineusedd =OperatingPersonnelModel::where('user_id',$id)->get();
    return $machineusedd;
  }

  public function pack($id){
    $pack =ProductPackagingModel::where('user_id',$id)->get();
    return $pack;
  }

  public function credit($id){
    $credit =CreditHistoryModel::where('user_id',$id)->get();
    return $credit;
  }





  public function creditFacilityOthers($id){
      $credit_facility_other_banks_details = CreditFacilityOtherDetails::query()->where('user_id', $id)->get();
      return $credit_facility_other_banks_details;
  }


    public function getCreditFacility($id){
        $credit_facility_details =CreditFacilityDetails::where('user_id',$id)->get();
        return $credit_facility_details;
    }







  public function logout(){
    session()->flush();
    return redirect()->route('home');
  }


  public function restore(Request $r){
    $email = $r->email;
    $phone = $r->phone;
    $newnum ='';
    $outputString = preg_replace('/[^0-9]/', '', $phone);
    $ed=  strlen($outputString);
    $checkstring = substr( $phone, 0,1);
    if ($ed==10||$ed==12) {

      if ($checkstring == 0) {
        $newnum = "233".substr( $outputString,1);
      }elseif($checkstring == 2) {
        $newnum = "0".substr( $outputString,3);
      }else {
        return redirect()->back()->with('error','Invalid Phone Number Format');
      }

      $dbselect = DB::select('select * from userdetails where email ="'.$email.'" and (phone ="'.$phone.'" or phone = "'.$newnum.'")');
// return $dbselect;
  // $checkuser = UserDetails::where('email',$email)->orWhere('phone',$phone)->orWhere('phone',$newnum)->first();
      if ($dbselect == null) {
        return redirect()->back()->with('error','Invalid Email or Phone Number Entered');
      }else {
        session(['phone' => $phone]);
        // refer to this incase session decides to fuck u up
        // session()->put('phone', $phone);

        $otp =rand(1000,9999);
        $saveotp = OtpModel::create([
          'code'=>$otp,
        ]);
        session(['optid'=>$saveotp->id]);
    //send otp sms
        $number = $phone;
        $source='FYEI';
        $message="Hello, Your OTP code is ".$otp;
        $sms_name = env('SMS_USERNAME');
        $sms_pass = env('SMS_PASSWORD');
        //
        $url = "https://deywuro.com/api/sms?username=$sms_name&password=$sms_pass&source=$source&destination=" . $number . "&message=" . $message;
        $client = new GuzzleClient();

        $request = $client->request('GET', $url, [
          'http_errors' => false,
        ]);
        $response = json_decode($request->getBody()->getContents(),true);
        return redirect()->route('showverify');
      }
    }else {
      return redirect()->back()->with('error','Invalid Phone Number Format');
    }
  }


  public function viewunder_review(){

    $id = Session::get('userid');
    $userdetails = UserDetails::where('id',$id)->first();
    $oppe = OperationsModel::where('user_id',$id)->first();
    $mu = MachineUsedModel::where('user_id',$id)->get();
    $am = AddtionalMachineModel::where('user_id',$id)->get();
    $pl = ProductionLevelsModel::where('user_id',$id)->get();
    $dir = DirectorsModel::where('user_id',$id)->get();
    $opp = OperatingPersonnelModel::where('user_id',$id)->get();
    $ppl = ProductPackagingModel::where('user_id',$id)->get();
    $chis = CreditHistoryModel::where('user_id',$id)->get();
    $fp = FinancialPerformanceModel::where('user_id',$id)->first();
    $kpis = KpiModel::where('user_id',$id)->first();
    $bm = BankMomo::where('user_id',$id)->get();
    $br = BusRegs::where('user_id',$id)->get();
    $hf = HistoricalFinancial::where('user_id',$id)->get();
    $lc = License::where('user_id',$id)->get();
    $pd = Pitchdeck::where('user_id',$id)->get();

    $data =[
      'userdetails'=>$userdetails,
      'oppe'=>$oppe,
      'mu'=>$mu,
      'am'=>$am,
      'pl'=>$pl,
      'dir'=>$dir,
      'opp'=>$opp,
      'ppl'=>$ppl,
      'chis'=>$chis,
      'fp'=>$fp,
      'kpi'=>$kpis,
      'bankmomo'=>$bm,
      'busregs'=>$br,
      'hist'=>$hf,
      'license'=>$lc,
      'pitch'=>$pd,
    ];

    return view('application.viewapplication',$data);
  }

  public function downloadform(){
    $id = Session::get('userid');
    $userdetails = UserDetails::where('id',$id)->first();
    $oppe = OperationsModel::where('user_id',$id)->first();
    $mu = MachineUsedModel::where('user_id',$id)->get();
    $am = AddtionalMachineModel::where('user_id',$id)->get();
    $pl = ProductionLevelsModel::where('user_id',$id)->get();
    $dir = DirectorsModel::where('user_id',$id)->get();
    $opp = OperatingPersonnelModel::where('user_id',$id)->get();
    $ppl = ProductPackagingModel::where('user_id',$id)->get();
    $chis = CreditHistoryModel::where('user_id',$id)->get();
    $fp = FinancialPerformanceModel::where('user_id',$id)->first();
    $kpis = KpiModel::where('user_id',$id)->first();
    $dfname = $userdetails->name.'_Invest In Jobs Application'.'.pdf';
    $data =[
      'userdetails'=>$userdetails,
      'oppe'=>$oppe,
      'mu'=>$mu,
      'am'=>$am,
      'pl'=>$pl,
      'dir'=>$dir,
      'opp'=>$opp,
      'ppl'=>$ppl,
      'chis'=>$chis,
      'fp'=>$fp,
      'kpi'=>$kpis,
    ];

    $abs_path = public_path("app/public/");

    $pdf = PDF::loadView('application.downloadform',$data);

    return $pdf->download($dfname);
  }

  public function resendotp(){
    $phone = Session::get('phone');
    $otpid = Session::get('otpid');
    $nullotp = OtpModel::where('id',$otpid)->delete();
    $otp =rand(1000,9999);
    $saveotp = OtpModel::create([
      'code'=>$otp,
    ]);
    session()->forget(['optid']);
    session(['optid'=>$saveotp->id]);
    $source='FYEI';
    $message="Hello, Your OTP code is ".$otp;
    $sms_name = env('SMS_USERNAME');
    $sms_pass = env('SMS_PASSWORD');
    //
    $url = "https://deywuro.com/api/sms?username=$sms_name&password=$sms_pass&source=$source&destination=" . $phone . "&message=" . $message;
    $client = new GuzzleClient();

    $request = $client->request('GET', $url, [
      'http_errors' => false,
    ]);
    $response = json_decode($request->getBody()->getContents(),true);
    return redirect()->route('showverify');
  }



  public function post_index(){
    $userid = Session::get('userid');
    $user = UserDetails::where('id',$userid)->first();
    $checkifexist = RequestFacility::where('user_id',$userid)->first();
    $checkstore = StockFiles::where('user_id',$userid)->first();
    $data=[
      'user'=>$user,
      'pre'=>$checkifexist==null?0:1,
      'post'=>$checkstore==null?0:1,
    ];
    return redirect()->back()->with('error','Loan already approved for this applicant');
  }



  public function showpostdis(){
    return view('application.post.postcon');
  }

  public function post_add(){
    $userid = Session::get('userid');


    $data =[
      'userid'=>$userid,

    ];
    return view('application.post.add',$data);
  }



    public function post_store_post(Request $r){
      $id = Session::get('userid');
// return $id;
      if($r->hasFile('files')) {
        $checkexist = StockFiles::where('user_id',$id)->get();
        if ($checkexist !== null) {
          foreach ($checkexist as $key) {
            $abs_path = public_path("storage/PostFiles/");
            File::delete($abs_path.$key->files);

            $key->delete();
          }
        }
        foreach($r->file('files') as $file){
          $extension = $file->getClientOriginalExtension();
          if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
            $files_file_name =  $file->getClientOriginalName();
            $path = "PostFiles/";
            $abs_path = storage_path("app/public/$path");
            $file->move($abs_path, $files_file_name);
            $busregs = new StockFiles();
            $file_path_to_store = "storage/$path" . $files_file_name;
            $busregs->user_id=$id;
            $busregs->files=$files_file_name;
            $busregs->type=$r->type;
            $busregs->save();


          }else {
            return redirect()->back()->with('error', 'Invalid file format selected!')->withInput();
          }
        }
          return redirect()->route('view.post.index')->with('error','Files Added Successfully');
      }
    }


  public function post_store(Request $r){
    $id = Session::get('userid');
// return $r->userid;
    if($r->hasFile('request_facility')) {
      $checkexist = RequestFacility::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->request_facility);

          $key->delete();
        }
      }
      foreach($r->file('request_facility') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $request_facility_file_name = Str::random(4) . '' . $file->getClientOriginalName();
        $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $request_facility_file_name);
          $busregs = new RequestFacility();
          $file_path_to_store = "storage/$path" . $request_facility_file_name;
          $busregs->user_id=$id;
          $busregs->formal_request=$request_facility_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For formal request for the facility!')->withInput();
        }
      }
    }

    if($r->hasFile('business_regs')) {
      $checkexist = BusRegs::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->request_facility);

          $key->delete();
        }
      }
      foreach($r->file('business_regs') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $business_regs_file_name = Str::random(4) . '' . $file->getClientOriginalName();
        $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $business_regs_file_name);
          $busregs = new BusRegs();
          $file_path_to_store = "storage/$path" . $business_regs_file_name;
          $busregs->user_id=$id;
          $busregs->bus_regs=$business_regs_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For Business Registration Documents!')->withInput();
        }
      }
    }

    if($r->hasFile('accepted_offer_letter')) {
      $checkexist = AcceptedOfferLetter::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->accepted_offer_letter);

          $key->delete();
        }
      }
      foreach($r->file('accepted_offer_letter') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $accepted_offer_letter_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $accepted_offer_letter_file_name);
          $busregs = new AcceptedOfferLetter();
          $file_path_to_store = "storage/$path" . $accepted_offer_letter_file_name;
          $busregs->user_id=$id;
          $busregs->accepted_offer_letter=$accepted_offer_letter_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For Accepted offer letter!')->withInput();
        }
      }
    }


    if($r->hasFile('upfront_payment')) {
      $checkexist = UpfrontPayment::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->upfront_payment);

          $key->delete();
        }
      }
      foreach($r->file('upfront_payment') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $upfront_payment_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $upfront_payment_file_name);
          $busregs = new UpfrontPayment();
          $file_path_to_store = "storage/$path" . $upfront_payment_file_name;
          $busregs->user_id=$id;
          $busregs->upfront_payment=$upfront_payment_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For Upfront Payment!')->withInput();
        }
      }
    }


    if($r->hasFile('fyep_application')) {
      $checkexist = FyepApplication::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->fyep_application);

          $key->delete();
        }
      }
      foreach($r->file('fyep_application') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $fyep_application_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $fyep_application_file_name);
          $busregs = new FyepApplication();
          $file_path_to_store = "storage/$path" . $fyep_application_file_name;
          $busregs->user_id=$id;
          $busregs->fyep_application=$fyep_application_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For FYEP Application form!')->withInput();
        }
      }
    }




    if($r->hasFile('irrevocable_instruction')) {
      $checkexist = IrrevocableInstruction::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->irrevocable_instruction);

          $key->delete();
        }
      }
      foreach($r->file('irrevocable_instruction') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $irrevocable_instruction_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $irrevocable_instruction_file_name);
          $busregs = new IrrevocableInstruction();
          $file_path_to_store = "storage/$path" . $irrevocable_instruction_file_name;
          $busregs->user_id=$id;
          $busregs->irrevocable_instruction=$irrevocable_instruction_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For FYEP Application form!')->withInput();
        }
      }
    }
    if($r->hasFile('operating_permit')) {
      $checkexist = OperatingPermit::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->operating_permit);

          $key->delete();
        }
      }
      foreach($r->file('operating_permit') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $operating_permit_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $operating_permit_file_name);
          $busregs = new OperatingPermit();
          $file_path_to_store = "storage/$path" . $operating_permit_file_name;
          $busregs->user_id=$id;
          $busregs->operating_permit=$operating_permit_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For FYEP Application form!')->withInput();
        }
      }
    }
    if($r->hasFile('esrm_report')) {
      $checkexist = EsrmReport::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->esrm_report);

          $key->delete();
        }
      }
      foreach($r->file('esrm_report') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $esrm_report_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $esrm_report_file_name);
          $busregs = new EsrmReport();
          $file_path_to_store = "storage/$path" . $esrm_report_file_name;
          $busregs->user_id=$id;
          $busregs->esrm_report=$esrm_report_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For FYEP Application form!')->withInput();
        }
      }
    }
    if($r->hasFile('directional_sketch')) {
      $checkexist = DirectionalSketch::where('user_id',$id)->get();
      if ($checkexist !== null) {
        foreach ($checkexist as $key) {
          $abs_path = public_path("storage/PostFiles/");
          File::delete($abs_path.$key->directional_sketch);

          $key->delete();
        }
      }
      foreach($r->file('directional_sketch') as $file){
        $extension = $file->getClientOriginalExtension();
        if ($extension == 'jpg'||$extension == 'jpeg'||$extension == 'png'||$extension == 'webp'||$extension == 'pdf') {
          $directional_sketch_file_name = Str::random(4) . '' . $file->getClientOriginalName();
          $path = "PostFiles/";
          $abs_path = storage_path("app/public/$path");
          $file->move($abs_path, $directional_sketch_file_name);
          $busregs = new DirectionalSketch();
          $file_path_to_store = "storage/$path" . $directional_sketch_file_name;
          $busregs->user_id=$id;
          $busregs->directional_sketch=$directional_sketch_file_name;
          $busregs->save();
        }else {
          return redirect()->back()->with('error', 'Invalid file format selected For FYEP Application form!')->withInput();
        }
      }
    }

      return redirect()->route('view.post.index')->with('error','Files Added Successfully');
    // }
  }


public function showpredistcons($id){

$checkifpreexists = DB::table('formal_request')->where('user_id',$id)->first();
if ($checkifpreexists == null) {
  return back()->with('error','Applicant has not submitted Pre Disbursement Conditions files');
}else {
  $user = DB::table('users')->where('user_id',$id)->first();
  $formal_request = DB::table('formal_request')->where('user_id',$id)->get();
  $accepted_offer_letter = DB::table('accepted_offer_letter')->where('user_id',$id)->get();
  $upfront_payment = DB::table('upfront_payment')->where('user_id',$id)->get();
  $fyep_application = DB::table('fyep_application')->where('user_id',$id)->get();
  $irrevocable_instruction = DB::table('irrevocable_instruction')->where('user_id',$id)->get();
  $operating_permit = DB::table('operating_permit')->where('user_id',$id)->get();
  $business_registrations = DB::table('business_registrations')->where('user_id',$id)->get();
  $esrm_report = DB::table('esrm_report')->where('user_id',$id)->get();
  $directional_sketch = DB::table('directional_sketch')->where('user_id',$id)->get();
  $stock_reports = DB::table('stock_reports')->where('user_id',$id)->get();

  $zip      = new ZipArchive;
  $fileName = $user->applicant_name.'_decisionform.zip';
  if ($zip->open(storage_path($fileName), ZipArchive::CREATE) === TRUE) {
//            return 'works';
      $files = File::files(storage_path('app/public/PostFiles/'));
      foreach ($formal_request as $key) {
          $relativeName = basename($key->formal_request);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->formal_request), $relativeName);
      }
      foreach ($accepted_offer_letter as $key) {
          $relativeName = basename($key->accepted_offer_letter);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->accepted_offer_letter), $relativeName);
          // return $relativeName;
      }
      foreach ($upfront_payment as $key) {
          $relativeName = basename($key->upfront_payment);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->upfront_payment), $relativeName);
      }
      foreach ($fyep_application as $key) {
          $relativeName = basename($key->fyep_application);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->fyep_application), $relativeName);
      }
      foreach ($irrevocable_instruction as $key) {
          $relativeName = basename($key->irrevocable_instruction);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->irrevocable_instruction), $relativeName);
      }
      foreach ($operating_permit as $key) {
          $relativeName = basename($key->operating_permit);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->operating_permit), $relativeName);
      }
      foreach ($business_registrations as $key) {
          $relativeName = basename($key->bus_regs);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->bus_regs), $relativeName);
      }
      foreach ($esrm_report as $key) {
          $relativeName = basename($key->esrm_report);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->esrm_report), $relativeName);
      }
      foreach ($directional_sketch as $key) {
          $relativeName = basename($key->directional_sketch);
          $zip->addFile(storage_path('app/public/PostFiles/'.$key->directional_sketch), $relativeName);
      }

      if ($stock_reports!=null) {
        foreach ($stock_reports as $key) {
            $relativeName = basename($key->files);
            $zip->addFile(storage_path('app/public/PostFiles/'.$key->files), $relativeName);
        }
      }
      $zip->close();
  }
return response()->download(storage_path($fileName));
}
}
}
