Ошибка HTTP 500 при отправке уведомлений по электронной почте в SuiteCRM - PullRequest
0 голосов
/ 11 апреля 2019

Я настроил логику для отправки уведомлений по электронной почте сотрудникам отдела, когда им была назначена проблема, однако, когда я ввожу информацию и нажимаю кнопку Сохранить, появляется сообщение об ошибке

Ошибка HTTP 500 Странно ... Microsoft Edge не может найти эту страницу.

Параметры электронной почты настроены и работают правильно.

class nc_email_notification {
public function email_notification(&$bean, $events, $arguments){

    /*define 'review_pending' as  string constant */

    /*Get sugar email engine*/
    $email = new SugarPHPMailer();
    $email->From = 'suitecrm@gmail.com';
    $email->FromName ='SuiteCRM';

    /*Get the Department NC was Issued to */
    $dept_array= $bean->get_linked_beans('dept_department_nccas_nc_case','dept_Department_sugar');

    if(count($dept_array)==0){      
        /*log error*/
        $GLOBALS['log']->fatal("Could not find the department NC was issued to: ". $bean->name);
    }else{
        /* Get email of users within the Department NC is issued to */              
        $user_array = $dept_array[0]->get_linked_beans('dept_department_users','User');
        if(count($user_array)==0){      
            /*log error*/
            $GLOBALS['log']->fatal("Could not find Users within the department NC is issued to: ". $bean->name);
        }else{
            $address=getDepartmentUsersEmail($user_array);
        }


        /*Get the Department NC was raised by */
        $raised_dept_array= $bean->get_linked_beans('dept_department_nccas_nc_case_1','dept_Department_sugar'); 
        if(count($raised_dept_array)==0){       
            /*log error*/
            $GLOBALS['log']->fatal("Could not find the department NC was raised by: ". $bean->name);
        }else {
            /*Get email of users within the Department NC is raised by*/
            $raised_user_array = $raised_dept_array[0]->get_linked_beans('dept_department_users','User');
            if(count($raised_user_array)==0){       
                /*log error*/
                $GLOBALS['log']->fatal("Could not find Users within the department NC is raised by: ". $bean->name);
            }
            else {
                $r_user_address = getDepartmentUsersEmail($raised_user_array);              
            }
        }


        /*Get the Quality Systems Department*/
        //$qual_dept=$dept_array[0]->retrieve)by)string_fields(array('name' => 'Quality Systems' ));
        //$qual_dept->load_relationship('dept_department_email_addresses_primary');

        /* Send email to Manager */
        $rev_email = 'ramon@gmail.com';


        /*Get NC Action for the NC Case*/
        $action_array = $bean->get_linked_beans('nccas_nc_case_ncact_nc_action','ncact_NC_Action_sugar');

        /* Get sugar template engine */
        $xtpl = new XTemplate("XTemplate/NCEmailTemplate.html");

        /*GEt the URL for the NC Case */
        $url =  $GLOBALS['sugar_config']['site_url'].'index.php?module=ncase_NonConformance&action=DetailView&record='.$bean->id; 
        $xtpl -> assign('URL', $url);

        /* Get NC Status */
        $nc_status=trim($bean->getFieldValue('status'));

        /* Get NC ID */
        $id = $bean->getFieldValue('id');

        if(empty($bean->fetched_row['id'])){

            $email=createNCEmail($email,$rev_email,'New NC Email Notification',$bean,$xtpl);                

            /* Send email to Quality System Manager */
            $email->addaddress($rev_email);

            /* Send email to users of Issued to department  */
            foreach($address as $uemail){                       
                $email->addAddress($uemail);
            }

            }else {
                if (strcasecmp ($nc_status,'review_pending')==0){
                    /* Set Email Subject */
                    $email->Subject = 'NC Case: '. ''. $bean->name . ' '. ' is pending review';

                    /* Send email to users of Raised by department  */
                    foreach($r_user_address as $uemail){                        
                        $email->addAddress($uemail);
                    }
                    /* Send email to Quality System Manager */
                    $email->addaddress($rev_email);


                    /* Create email message using email template */
                    $email=createNCEmailwithAction($email,$action_array,$bean,$xtpl);

                } else if (strcasecmp ($nc_status,'Closed')==0){
                        /* Set Email Subject */
                        $email->Subject = 'NC Case: '. ''. $bean->name . ''. ' is Closed';

                        /* Send email to users of Raised by department  */
                        foreach($r_user_address as $uemail){                        
                            $email->addAddress($uemail);
                        }                       
                        /* Send email to Issued to Department */
                        foreach($address as $iemail){                       
                            $email->addAddress($iemail);
                        }

                        /* Create email message using email template*/
                        $email=createNCEmailwithAction($email,$action_array,$bean,$xtpl);

                } else{

                        If ($bean->fetched_row['description'] != $bean->description){
                        /* Set Email Subject */
                        $email->Subject = 'NC Case: ' .''. $bean->name .''. ' has been modified';

                        /* Create email message using email template */
                        $email=createNCEmailwithAction($email,$action_array,$bean,$xtpl);

                        /* Build appropriate email list */
                        foreach($address as $uemail){                       
                            $email->addAddress($uemail);
                        }
                        /* Send email to Quality System Manager */
                        $email->addaddress($rev_email);

                    }
                }
        }

Logic Hook

<?php

$hook_version = 1; 
$hook_array = Array(); 
$hook_array['before_save'][] = Array(1, 'Create NC email object', 'custom/Extension/modules/ncase_NonConformance/Ext/email_notification.php','nc_email_notification', 'email_notification'); 

?>

Я ожидаю, что введенная информация будет отправлена ​​по электронной почте, а также показана в записи подробного просмотра.

...