<?php 

namespace App\Helpers;
use App\MailSettings;
use App\MailConfiguration;
use App\MailConfigurationSent;
use App\MailConfigFunctionality;
use App\User;

class MailHelper
{
	public static function sendmailbymailgun($subject, $html,$text, $to_email)
    {
    	$mailsettings = MailSettings::first();
        //dd($mailsettings);
    	if(isset($mailsettings))
    	{
    		$mail_key = $mailsettings->mail_key;
    		$domain = $mailsettings->domain;
    		$mail_from = $mailsettings->from_mail_id;
    		$mail_from_name = $mailsettings->from_mail_name;
    	}

        //define('MAILGUN_URL', 'https://api.mailgun.net/v3/'.$domain);
        if (!defined('MAILGUN_URL')) define('MAILGUN_URL', 'https://api.mailgun.net/v3/'.$domain);
        //define('MAILGUN_KEY', $mail_key); 
        if (!defined('MAILGUN_KEY')) define('MAILGUN_KEY', $mail_key);
        $array_data = array(
            'from'=> $mail_from_name .'<'.$mail_from.'>',
            'to'=> 'Web <'.$to_email.'>',
            'subject'=> $subject,
            'html' => $html,
            'text'=> $text,
            'h:Reply-To'=> $mail_from
        );
        $session = curl_init(MAILGUN_URL.'/messages');
        curl_setopt($session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($session, CURLOPT_USERPWD, 'api:'.MAILGUN_KEY);
        curl_setopt($session, CURLOPT_POST, true);
        curl_setopt($session, CURLOPT_POSTFIELDS, $array_data);
        curl_setopt($session, CURLOPT_HEADER, false);
        curl_setopt($session, CURLOPT_ENCODING, 'UTF-8');
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
        $response = curl_exec($session);
        curl_close($session);
        $results = json_decode($response, true);
        return $results;
    }

    public static function sendmail($functionality_id,$designation_id,$user_id,$standard_name,$date,$user_name,$current_user_name,$dname,$audit_type,$audit_status)
    {
        $stdnamenew = "";
        $loadst_name = explode("~", $standard_name);
        //dd($loadst_name);
        foreach($loadst_name as $loadst_name_val)
        {
            //echo "loadst_name_val =$loadst_name_val..<br>";
            if($stdnamenew)
            {
                $stdnamenew = $stdnamenew." , ".$loadst_name_val;
            }
            else
            {
                $stdnamenew = $loadst_name_val;
            }

        }
        
        $mail_arr="";
        $mail_arr = MailConfigurationSent::where('functionality_id',$functionality_id)->with('functionality')->first();
        //dd($mail_arr);
        if(isset($mail_arr))
        {
            $mail_sent_status = $mail_arr->mail_sent_status;
        
            // $functionality_name = $mail_arr->functionality->functionality;
            $designation = $mail_arr->designation;
            //dd($designation);
            $designations = explode(",", $designation);
            //dd($designations);
            if($mail_sent_status == 1)
            {

                if(in_array($designation_id, $designations))
                {
                    //echo "designation_id=$designation_id...user_id=$user_id..<br>";
                    $user_arr="";
                    $user_arr = User::where('designation_id',$designation_id)->where('id',$user_id)->first();
                    //dd($user_arr);
                    //$user_name =$user_arr->name;
                    $emailid = $user_arr->email;

                    if($functionality_id == 1)
                    {
                        $functionality_name = "Audit Generated";
                        $for ="for";
                        $functionality = "generated by";  
                        $non_confirmities ="";  
                        $dept="";              
                    }
                    else if($functionality_id == 2)
                    {
                        $functionality_name = "Audit Initiated";
                        $functionality = " has initiated ";
                        $non_confirmities ="";
                        if($audit_status =="OrgWithoutDept")
                        {
                            $dept ="";
                            $for ="";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department";
                        }                      
                    }
                    else if($functionality_id == 3)
                    {
                        $functionality_name = "Audit Acceptance Pending";
                        $for ="for";
                        $functionality = "pending by";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 4)
                    {
                        $functionality_name = "Auditor Accepted";
                        $functionality = " has scheduled "; 
                        $non_confirmities ="";    
                        if($audit_status =="OrgWithoutDept")
                        {
                            $dept ="to be conducted on";
                            $for ="";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department to be conducted on";
                        }    
                    }
                    else if($functionality_id == 5)
                    {
                        $functionality_name = "Audit in progress";
                        $for ="for";
                        $non_confirmities ="";
                        $functionality = "progress by";
                        $dept="";
                    }
                    else if($functionality_id == 6)
                    {
                        $functionality_name = "Audit completed";
                        $functionality = "has completed";
                        $non_confirmities = "If ( Major non-confirmities exist ) [ Please submit responses for Major non-confirmities for the auditor to close the ".$audit_type."(eg:Audit/Inspection)] <br>
                          If (Minor non-confirmities / Improvements exist) [ Please submit responses for Minor non-confirmities/Improvements suggested)]";
                        if($audit_status =="OrgWithoutDept")
                        {
                            $dept ="on";
                            $for ="";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department on ";
                        } 
                    }
                    else if($functionality_id == 7)
                    {
                        $functionality_name = "CAPA Pending";
                        $for ="for";
                        $functionality = "pending by";
                        $non_confirmities ="";
                        $dept="";

                    }
                    else if($functionality_id == 8)
                    {
                        $functionality_name = "CAPA Accepted";
                        $for ="for";
                        $functionality = "accepted by";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 9)
                    {
                        $functionality_name = "CAPA Rejected";
                        $for ="for";
                        $functionality = "rejected by";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 10)
                    {
                        $functionality_name = "Audit Closed";
                        $functionality = " has completed ";
                        $non_confirmities ="";
                        if($audit_status =="OrgWithoutDept")
                        {
                            $for ="";
                            $dept ="on";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department on";
                        }  
                    }
                    else if($functionality_id == 11)
                    {
                        $functionality_name = "Audit Reassigned";
                        $functionality = " has assigned you for conducting ";
                        $non_confirmities ="";
                        if($audit_status =="OrgWithoutDept")
                        {
                            $for ="";
                            $dept ="before";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department before";
                        }  
                    }
                     else if($functionality_id == 12)
                    {
                        $functionality_name = "Audit Assigned";
                        $functionality = " has assigned you for conducting ";
                        $non_confirmities ="";
                        if($audit_status =="OrgWithoutDept")
                        {
                            $for ="";
                            $dept ="before";
                        }
                        else
                        {
                            $for ="for";
                            $dept =" department before";
                        }  
                    }
                     else if($functionality_id == 13)
                    {
                        $functionality_name = "Audit Rescheduled";
                        $for ="for";
                        $functionality = "rescheduled to ";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 14)
                    {
                        $functionality_name = "Audit Cancelled";
                        $for ="for";
                        $functionality = "cancelled by ";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 15)
                    {
                        $functionality_name = "Auditor Rejected";
                        $for ="for";
                        $functionality = "rejected by ";
                        $non_confirmities ="";
                        $dept="";
                    }
                    else if($functionality_id == 16)
                    {
                        $functionality_name = "Corrective Action Submitted";
                        $for ="";
                        $functionality = "has submitted responses for the non-confirmities for";
                        $dept ="";
                        $non_confirmities ="";
                    }

                $subject= $functionality_name;
                $html="<div style='color: #343434; font-family: Open Sans; font-size: 20px; text-align: justify;'>
                 Dear ".$user_name.",<br><br>".$current_user_name." ".$functionality." ".$stdnamenew." ".$for." ".$dname." ".$dept." ".$date.".<br>".$non_confirmities."<br><br> Thanks,<br> Team DeW-PAS.";
                $text=$html;
                //dd($text);
                $result= static::sendmailbymailgun($subject,$html,$text,$emailid);
                }
            }
        }
    }
}

?>