HEX
Server: Apache
System: Linux amsngx344.inmotionhosting.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User: raniho6 (2736)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/raniho6/public_html/raniworks.stream/app/Http/Controllers/EmailTemplateController.php
<?php

namespace App\Http\Controllers;

use App\Models\EmailTemplate;
use App\Models\EmailTemplateLang;
use App\Models\UserEmailTemplate;
use App\Models\Utility;
use Illuminate\Http\Request;

class EmailTemplateController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $lang = 'en';
        $currentWorkspace = Utility::getWorkspaceBySlug('');
         $EmailTemplates = EmailTemplate::all();

         $languages      = Utility::languages();
         $emailTemplate  = EmailTemplate::where('id', '=', 1)->first();
         $currEmailTempLang = EmailTemplateLang::where('parent_id', '=', 1)->where('lang', 'en')->first();

            if(!isset($currEmailTempLang) || empty($currEmailTempLang))
            {
                $currEmailTempLang       = EmailTemplateLang::where('parent_id', '=', $id)->where('lang', 'en')->first();
                $currEmailTempLang->lang = $lang;
            }  

          return view('email_templates.show', compact('EmailTemplates','emailTemplate', 'languages', 'currEmailTempLang'));

    }


    public function create()
    {
        //
    }

  
    public function store(Request $request)
    {
        //
    }

    
    public function show(EmailTemplate $emailTemplate)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\EmailTemplate  $emailTemplate
     * @return \Illuminate\Http\Response
     */
    public function edit(EmailTemplate $emailTemplate)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\EmailTemplate  $emailTemplate
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $validator = \Validator::make(
                $request->all(), [
                                   'subject' => 'required',
                                   'content' => 'required',
                               ]
            );

            if($validator->fails())
            {
                $messages = $validator->getMessageBag();

                return redirect()->back()->with('error', $messages->first());
            }

            $emailLangTemplate = EmailTemplateLang::where('parent_id', '=', $id)->where('lang', '=', $request->lang)->first();

            // if record not found then create new record else update it.
            if(empty($emailLangTemplate))
            {
                $emailLangTemplate            = new EmailTemplateLang();
                $emailLangTemplate->parent_id = $id;
                $emailLangTemplate->lang      = $request['lang'];
                $emailLangTemplate->subject   = $request['subject'];
                $emailLangTemplate->content   = $request['content'];
                $emailLangTemplate->from   = $request['from'];
                $emailLangTemplate->save();
            }
            else
            {
                $emailLangTemplate->subject = $request['subject'];
                $emailLangTemplate->content = $request['content'];
                $emailLangTemplate->from   = $request['from'];
                $emailLangTemplate->save();
            }

            return redirect()->route(
                'manage.email.language', [
                                           $id,
                                           $request->lang,
                                       ]
            )->with('success', __('Email Template Detail successfully updated.'));
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\EmailTemplate  $emailTemplate
     * @return \Illuminate\Http\Response
     */
    public function destroy(EmailTemplate $emailTemplate)
    {
        //
    }

    public function manageEmailLang($id, $lang = 'en')
    {
             $EmailTemplates = EmailTemplate::all();
            $languages         = Utility::languages();
            $emailTemplate     = EmailTemplate::where('id', '=', $id)->first();
            $currEmailTempLang = EmailTemplateLang::where('parent_id', '=', $id)->where('lang', $lang)->first();

            if(!isset($currEmailTempLang) || empty($currEmailTempLang))
            {
                $currEmailTempLang       = EmailTemplateLang::where('parent_id', '=', $id)->where('lang', 'en')->first();
                $currEmailTempLang->lang = $lang;
            }

            return view('email_templates.show', compact('EmailTemplates','emailTemplate', 'languages', 'currEmailTempLang'));
        
    }




    // Used For Store Email Template Language Wise
    public function storeEmailLang(Request $request, $id)
    {
      
            $validator = \Validator::make(
                $request->all(), [
                                   'subject' => 'required',
                                   'content' => 'required',
                               ]
            );

            if($validator->fails())
            {
                $messages = $validator->getMessageBag();

                return redirect()->back()->with('error', $messages->first());
            }

            $emailLangTemplate = EmailTemplateLang::where('parent_id', '=', $id)->where('lang', '=', $request->lang)->first();

            // if record not found then create new record else update it.
            if(empty($emailLangTemplate))
            {
                $emailLangTemplate            = new EmailTemplateLang();
                $emailLangTemplate->parent_id = $id;
                $emailLangTemplate->lang      = $request['lang'];
                $emailLangTemplate->subject   = $request['subject'];
                $emailLangTemplate->content   = $request['content'];
                $emailLangTemplate->save();
            }
            else
            {
                $emailLangTemplate->subject = $request['subject'];
                $emailLangTemplate->content = $request['content'];
                $emailLangTemplate->save();
            }

            return redirect()->route(
                'manage.email.language', [
                                           $id,
                                           $request->lang,
                                       ]
            )->with('success', __('Email Template Detail successfully updated.'));
      
    }

    // Used For Update Status Company Wise.
    public function updateStatus(Request $request,  $slug)
    {
        $usr = \Auth::user();
        $currentWorkspace = Utility::getWorkspaceBySlug($slug);
        $user_emails = UserEmailTemplate::where('workspace_id', '=', $currentWorkspace->id)->where('user_id', '=', $usr->id)->get();

        if(!$user_emails){
                $user_emails = UserEmailTemplate::create(
                                            [
                                                'template_id' => 1,
                                                'user_id' =>$usr->id,
                                                'workspace_id'=>$currentWorkspace->id,
                                                'is_active' => 0,
                                            ]
                                        );

                $user_emails = UserEmailTemplate::create(
                                            [
                                                'template_id' => 2,
                                                'user_id' =>$usr->id,
                                                'workspace_id'=>$currentWorkspace->id,
                                                'is_active' => 0,
                                            ]
                                        );

                $user_emails = UserEmailTemplate::create(
                                            [
                                                'template_id' => 3,
                                                'user_id' =>$usr->id,
                                                'workspace_id'=>$currentWorkspace->id,
                                                'is_active' => 0,
                                            ]
                                        );

                $user_emails = UserEmailTemplate::create(
                                            [
                                                'template_id' => 4,
                                                'user_id' =>$usr->id,
                                                'workspace_id'=>$currentWorkspace->id,
                                                'is_active' => 0,
                                            ]
                                        );

        }

       foreach($user_emails as $user_email){
            if(isset($request->New_Client) &&  $user_email->id == $request->New_Client){
                $user_email->is_active = 1;
            }
            elseif(isset($request->User_Invited)&&  $user_email->id == $request->User_Invited){
                $user_email->is_active = 1;
            }
            elseif(isset($request->Project_Assigned)&&  $user_email->id == $request->Project_Assigned){
                $user_email->is_active = 1;
            }
            elseif(isset($request->Contract_Shared)&&  $user_email->id == $request->Contract_Shared){
                $user_email->is_active = 1;
            }else{
                $user_email->is_active = 0;
                
            }
            $user_email->save();
        }

        return redirect()->back()->with('success', __('Status successfully updated!'));


    }


}