Example #1
0
    public function emailContacts()
    {
        Logger::getLogger("AuieoATS")->info("emailContacts:start");
        if ($this->_accessLevel == ACCESS_LEVEL_DEMO)
        {
            CommonErrors::fatal(COMMONERROR_PERMISSION, $this, 'Sorry, but demo accounts are not allowed to send e-mails.');
        }
        
        if(isset($_REQUEST["idlist"]))
        {
            $db = DatabaseConnection::getInstance();
            $idlist=trim($_REQUEST["idlist"]);
            $rs = $db->getAllAssoc(sprintf(
                'SELECT contact_id, email1, email2 '
                    . 'FROM contact '
                    . 'WHERE contact_id IN (%s)',
                $idlist
            ));
            $emailTemplates = new EmailTemplates($this->_siteID);
            $emailTemplatesRS = $emailTemplates->getAll();
            $this->_template->assign('emailTemplatesRS', $emailTemplatesRS);
            $this->_template->assign('active', $this);
            $this->_template->assign('success', false);
            $this->_template->assign('recipients', $rs);
            $this->_template->display('./modules/contacts/emailContacts.php');
        }
        else
        {
            $dataGrid = DataGrid::getFromRequest();

            $contactIDs = $dataGrid->getExportIDs();

            /* Validate each ID */
            foreach ($contactIDs as $index => $contactID)
            {
                if (!$this->isRequiredIDValid($index, $contactIDs))
                {
                    Logger::getLogger("AuieoATS")->error("Invalid contact ID.");
                    CommonErrors::fatalModal(COMMONERROR_BADINDEX, $this, 'Invalid contact ID.');
                    return;
                }
            }

            $db_str = implode(", ", $contactIDs);

            $db = DatabaseConnection::getInstance();

            $rs = $db->getAllAssoc(sprintf(
                'SELECT contact_id, email1, email2 '
                    . 'FROM contact '
                    . 'WHERE contact_id IN (%s)',
                $db_str
            ));

            //$this->_template->assign('privledgedUser', $privledgedUser);
            $emailTemplates = new EmailTemplates($this->_siteID);
            $emailTemplatesRS = $emailTemplates->getAll();
            $this->_template->assign('emailTemplatesRS', $emailTemplatesRS);
            $this->_template->assign('active', $this);
            $this->_template->assign('success', false);
            $this->_template->assign('recipients', $rs);
            $this->_template->display('./modules/contacts/emailContacts.php');
        }
        Logger::getLogger("AuieoATS")->info("emailContacts:end");
    }
Example #2
0
 private function onEmailSettings()
 {
     if ($this->_realAccessLevel < ACCESS_LEVEL_SA) {
         CommonErrors::fatal(COMMONERROR_PERMISSION, $this);
         return;
         //$this->fatal(ERROR_NO_PERMISSION);
     }
     $mailerSettings = new MailerSettings($this->_siteID);
     $mailerSettingsRS = $mailerSettings->getAll();
     foreach ($mailerSettingsRS as $setting => $value) {
         if (isset($_POST[$setting])) {
             $mailerSettings->set($setting, $_POST[$setting]);
         }
     }
     $candidateJoborderStatusSendsMessage = unserialize($mailerSettingsRS['candidateJoborderStatusSendsMessage']);
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_CONTACTED] = UserInterface::isChecked('statusChangeContacted', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_CANDIDATE_REPLIED] = UserInterface::isChecked('statusChangeReplied', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_QUALIFYING] = UserInterface::isChecked('statusChangeQualifying', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_SUBMITTED] = UserInterface::isChecked('statusChangeSubmitted', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_INTERVIEWING] = UserInterface::isChecked('statusChangeInterviewing', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_OFFERED] = UserInterface::isChecked('statusChangeOffered', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_CLIENTDECLINED] = UserInterface::isChecked('statusChangeDeclined', $_POST) ? 1 : 0;
     $candidateJoborderStatusSendsMessage[PIPELINE_STATUS_PLACED] = UserInterface::isChecked('statusChangePlaced', $_POST) ? 1 : 0;
     $mailerSettings->set('candidateJoborderStatusSendsMessage', serialize($candidateJoborderStatusSendsMessage));
     $emailTemplates = new EmailTemplates($this->_siteID);
     $emailTemplatesRS = $emailTemplates->getAll();
     foreach ($emailTemplatesRS as $index => $data) {
         $emailTemplates->updateIsActive($data['emailTemplateID'], UserInterface::isChecked('useThisTemplate' . $data['emailTemplateID'], $_POST) ? 0 : 1);
     }
     $this->_template->assign('active', $this);
     CATSUtility::transferRelativeURI('m=settings&a=administration');
 }
Example #3
0
    public function onEmailCandidates()
    {
        if ($this->_accessLevel == ACCESS_LEVEL_DEMO)
        {
            CommonErrors::fatal(COMMONERROR_PERMISSION, $this, 'Sorry, but demo accounts are not allowed to send e-mails.');
        }
        Logger::getLogger("AuieoATS")->info("inside onEmailCandidates");
        if (isset($_POST['postback']))
        {
            $templateid = $_POST['titleSelect'];
            
            $emailTo = $_POST['emailTo'];
            $emailSubject = $_POST['emailSubject'];
            
            $idlist=$_POST["idlist"];
            $obj=json_decode(urldecode($idlist),true);
            foreach($obj as $candid=>$details)
            {
                $emailBody = $_POST['emailBody'];
                $emailData=array();
                $emailData["id"]=$candid;
                $emailData["email"]=array();
                foreach($details["email"] as $emailind=>$data)
                {
                    //$objTemplate=new EmailTemplates($this->_siteID); 
                    //$rowTemplate=$objTemplate->get($templateid);
                    $emailBody=$this->renderTemplateVars($emailBody, $candid);

                    $tmpDestination = $data["email"];
                    $emailData["email"][]=array("email"=>$tmpDestination,"name"=>$tmpDestination);
                    $mailer = new Mailer($this->_siteID);
                    // FIXME: Use sendToOne()?
                    $mailerStatus = $mailer->send(
                        array($_SESSION['CATS']->getEmail(), $_SESSION['CATS']->getEmail()),
                        $emailData,
                        $emailSubject,
                        $emailBody,
                        true,
                        true
                    );
                }
            }

            $this->_template->assign('active', $this);
            $this->_template->assign('success_to', $emailTo);
            if($mailer->getError())
            {
                $this->_template->assign('error', $mailer->getError());
                $this->_template->display('./modules/candidates/emailFail.php');
            }
            else
            {
                $this->_template->assign('success', true);
                $this->_template->display('./modules/candidates/emailSuccess.php');
            }
            return;
        }
        else
        {
            if(isset($_REQUEST["idlist"]))
            {
                $db = DatabaseConnection::getInstance();
                $idlist=trim($_REQUEST["idlist"]);
                $rs = $db->getAllAssoc(sprintf(
                    'SELECT candidate_id, email1, email2, last_name, first_name '
                    . 'FROM candidate '
                    . 'WHERE candidate_id IN (%s)',
                    $idlist
                ));
				
                $emailTemplates = new EmailTemplates($this->_siteID);
                $emailTemplatesRS = $emailTemplates->getAll();
                $this->_template->assign('emailTemplatesRS', $emailTemplatesRS);
                $this->_template->assign('active', $this);
                $this->_template->assign('success', true);
                $this->_template->assign('recipients', $rs);
                $this->_template->display('./modules/candidates/emailCandidates.php');
                return;
            }
            else
            {
                $dataGrid = DataGrid::getFromRequest();

                $candidateIDs = $dataGrid->getExportIDs();

                /* Validate each ID */
                foreach ($candidateIDs as $index => $candidateID)
                {
                    if (!$this->isRequiredIDValid($index, $candidateIDs))
                    {
                        CommonErrors::fatalModal(COMMONERROR_BADINDEX, $this, 'Invalid candidate ID.');
                        return;
                    }
                }

                $db_str = implode(", ", $candidateIDs);

                $db = DatabaseConnection::getInstance();

                $rs = $db->getAllAssoc(sprintf(
                    'SELECT candidate_id, email1, email2, last_name, first_name '
                    . 'FROM candidate '
                    . 'WHERE candidate_id IN (%s)',
                    $db_str
                ));

                if(!$mailerStatus)
                {
                    CommonErrors::fatal(COMMONERROR_EMAILFAILED, NULL, $mailer->getError());
                }
                $this->_template->assign('active', $this);
                $this->_template->assign('success', true);
                $this->_template->assign('success_to', $emailTo);
                $this->_template->display('./modules/candidates/emailSuccess.php');

                //$arrTpl["privledgedUser"]=$privledgedUser;
                /*$emailTemplates = new EmailTemplates($this->_siteID);
                $emailTemplatesRS = $emailTemplates->getAll();
                $arrTpl["emailTemplatesRS"]=$emailTemplatesRS;
                $arrTpl["active"]=$this;
                $arrTpl["success"]=false;
                $arrTpl["recipients"]=$rs;
                return $arrTpl;*/
            }
        }
    }