public function __construct($options = null)
 {
     parent::__construct($options);
     $emailCategoryOptionList = array('Invite non-sparks to join campaign' => $this->getView()->translate('Admin_Non-Sparks_Invitation'), 'Invite sparks to join campaign' => $this->getView()->translate('Admin_Sparks_Invitation'), 'Send mail to sparks' => $this->getView()->translate('Admin_Send_Mail_To_Sparks'));
     $emailCategory = new Zend_Form_Element_Select('emailCategory');
     $emailCategory->setMultiOptions($emailCategoryOptionList);
     $emailList = new Zend_Form_Element_Textarea('emailList');
     $emailList->setAttribs(array('rows' => 5, 'cols' => 150, 'onChange' => 'datetable()'))->addFilter('StripTags')->addFilter('StringTrim')->addValidators(array(array('StringLength', false, array(0, 65535))));
     $subject = new Zend_Form_Element_Text('subject');
     $subject->setAttribs(array('size' => 150))->addFilter('StringTrim');
     $message = new Zend_Form_Element_Textarea('message');
     $message->setAttribs(array('rows' => 30, 'cols' => 150))->addFilter('StripTags')->addFilter('StringTrim')->addValidators(array(array('StringLength', false, array(0, 65535))));
     $optionList = array();
     $campaign = new Campaign();
     $campaigns = $campaign->fetchAll(null, "id desc", null, null);
     foreach ($campaigns as $campaign) {
         $optionList[$campaign->id] = $campaign->name;
     }
     $optionList['0'] = $this->getView()->translate('ADMIN_NOT_AUTO_INVITATION');
     $campaignId = new Zend_Form_Element_Select('campaignId');
     $campaignId->setMultiOptions($optionList);
     $code_source = new Zend_Form_Element_Text('code_source');
     $code_source->addFilter('StringTrim');
     $submit = new Zend_Form_Element_Submit('submit');
     $submit->setLabel($this->getView()->translate('INVITATION_MAIL_SEND'));
     $this->addElements(array($emailCategory, $emailList, $subject, $message, $campaignId, $code_source, $submit));
 }
 function clientindexAction()
 {
     $this->_helper->layout->setLayout("layout_client");
     $this->view->title = "Dashboard For Campaigns";
     $this->view->activeTab = "List Campaigns";
     $campaign = new Campaign();
     $order = "expire_date desc";
     $this->view->campaigns = $campaign->fetchAll(null, $order, null, null);
 }
 function admineditAction()
 {
     $reportTab = new ReportTab();
     $this->view->reportTab = $reportTab->fetchRow("id = " . $this->getRequest()->getParam('id'));
     $campaign = new Campaign();
     $this->view->campaigns = $campaign->fetchAll();
     $tag = new Tag();
     $this->view->tags = $tag->fetchAll();
     $tagging = new Tagging();
     //$taggings = $tagging->fetchAll($tagging->select()->from('taggings', 'tag_id')->where('report_tab_id = ? ', $this->getRequest()->getParam('id')));
     $taggings = $tagging->findBy(array('report_tab_id' => $this->getRequest()->getParam('id')));
     $tagging_ids = array();
     foreach ($taggings as $tagging) {
         array_push($tagging_ids, $tagging->tag_id);
     }
     $this->view->taggings = $tagging_ids;
 }
 function admincreategroupAction()
 {
     $request = $this->getRequest();
     //1.get all campaign
     $campaign = new Campaign();
     $order = "expire_date desc";
     $this->view->campaigns = $campaign->fetchAll(null, $order, null, null);
     //2.get all profile_survey
     $profileSurveyModel = new ProfileSurvey();
     $this->view->profilesurveys = $profileSurveyModel->find_by_condition();
     //3.execute sql
     $profileSurveyGroupModel = new ProfileSurveyGroup();
     if ($request->isPost()) {
         $formData = $request->getPost();
         $sql = $formData['sql'];
         if ($sql == null || $sql == '') {
             return;
         } else {
             $sql = 'select consumer.id ' . $sql;
         }
         $campaignId = $formData['campaign_id'];
         $profileSurveyId = $formData['profile_survey_id'];
         $comment = $formData['comment'];
         $currentTime = date("Y-m-d H:i:s");
         //get all consumer id
         $db = Zend_Registry::get('db');
         $result = $db->query($sql);
         $consumers = $result->fetchAll();
         //4.save ProfileSurveyGroup
         $newProfileSurveyGroupId = $profileSurveyGroupModel->createRecord(count($consumers), $campaignId, $profileSurveyId, $currentTime, $comment);
         //5.insert profile survey group consumer
         $profileSurveyGroupConsumerModel = new ProfileSurveyGroupConsumer();
         foreach ($consumers as $row) {
             $profileSurveyGroupConsumerModel->createRecord($newProfileSurveyGroupId, $row['id']);
         }
     }
     //4.get all profile survey group
     $this->view->profilesurveygroups = $profileSurveyGroupModel->find_by_condition('id asc');
     //Zend_Debug::dump($this->view->profilesurveygroups);
     $this->_helper->layout->setLayout("layout_admin");
 }
 /**
  * 
  * analyze the report statistics replied by admin group
  */
 function adminreportcaculateAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     $curPage = 1;
     $rowsPerPage = 99999;
     if ($this->_request->getParam('page')) {
         $curPage = $this->_request->getParam('page');
     }
     $campaignModel = new Campaign();
     $campaignData = $campaignModel->fetchAll();
     $adminModel = new Admin();
     $adminData = $adminModel->fetchAll();
     $postData = $this->_request->getPost();
     if (count($postData)) {
         //var_dump($postData);die;
         $this->view->campaigns = $postData['campaign'];
         $this->view->admins = $postData['admin'];
         $this->view->start_date = $postData['start_date'];
         $this->view->end_date = $postData['end_date'];
         $db = Zend_Registry::get('db');
         $select = $db->select();
         $select->from('report_batch', '*')->join('admin', 'admin.id = report_batch.admin_id', 'name as admin_name')->join('campaign', 'campaign.id = report_batch.campaign_id', 'name as campaign_name')->order('report_batch.start_datetime desc');
         if (!in_array('all', $this->view->admins) && count($this->view->admins)) {
             $select->where('admin_id    in( ' . implode(',', $this->view->admins) . ')');
         }
         if (!in_array('all', $this->view->campaigns) && count($this->view->campaigns)) {
             $select->where('campaign_id in( ' . implode(',', $this->view->campaigns) . ')');
         }
         if ($this->view->start_date != '') {
             $select->where('start_datetime >= "' . $this->view->start_date . '"');
         }
         if ($this->view->end_date != '') {
             $select->where('end_datetime <= "' . $this->view->end_date . '"');
         }
         $reportBatchs = $db->fetchAll($select);
         //var_dump($reportBatchs);die;
         //paging
         $this->view->controller = $this->_request->getControllerName();
         $this->view->action = $this->_request->getActionName();
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($reportBatchs));
         $paginator->setCurrentPageNumber($curPage)->setItemCountPerPage($rowsPerPage);
         $this->view->paginator = $paginator;
     }
     $this->view->campaignData = $campaignData;
     $this->view->adminData = $adminData;
 }
 function admindownloaddataAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         $campaignCriteria = $formData['campaign'];
         $reportCriteria = $formData['report'];
         $statusCriteria = $formData['status'];
         $db = Zend_Registry::get('db');
         $sql = "SELECT c.* , b.num,ci.*\r\n\t\t\t\t\tFROM consumer c , campaign_invitation ci\r\n\t\t\t\t\tLEFT JOIN \r\n\t\t\t\t\t(\r\n\t\t\t\t\tSELECT COUNT(report.id) AS num ,report.consumer_id FROM report \r\n\t\t\t\t\tINNER JOIN campaign_invitation ci ON report.consumer_id = ci.consumer_id WHERE report.campaign_id = {$campaignCriteria}\r\n\t\t\t\t\tGROUP BY report.consumer_id ORDER BY num DESC\r\n\t\t\t\t\t)b ON b.consumer_id = ci.consumer_id\r\n\t\t\t\t\tWHERE ci.consumer_id = c.id AND ci.campaign_id = {$campaignCriteria} AND ci.state = '{$statusCriteria}'";
         //die($sql);
         $campaignUsers = $db->fetchAll($sql);
         if ($reportCriteria > 0 && count($campaignUsers)) {
             $users = array();
             foreach ($campaignUsers as $val) {
                 if ($val['num'] >= $reportCriteria) {
                     $users[] = $val;
                 }
             }
         } else {
             $users = $campaignUsers;
         }
         $campaignUsers = array();
         $file = $campaignCriteria . '_' . date('Y-m-d_H_i_s') . "campaignusers.csv";
         if (count($users)) {
             $i = 0;
             foreach ($users as $val) {
                 $campaignUsers[] = array($i, $val['name'], $val['email'] . '/' . $val['login_phone'], $val['recipients_name'], $val['province'], $val['city'], $val['address1'], $val['phone'], $val['id'], $val['create_date'], $val['num'], $val['campaign_id']);
                 $i++;
             }
             $header = array('No.', 'Name', 'Email/Telephone', 'Recipients_name', 'Province', 'City', 'Address', 'Phone', 'UserID', 'Date', 'Num', 'Campaign');
             $handle = fopen(dirname(dirname(dirname(__FILE__))) . '/public/csv/' . $file, "w");
             fputcsv($handle, $header);
             foreach ($campaignUsers as $line) {
                 fputcsv($handle, $line);
             }
             fclose($handle);
             $this->view->file = file_exists(dirname(dirname(dirname(__FILE__))) . '/public/csv/' . $file) ? dirname(dirname(dirname(__FILE__))) . '/public/csv/' . $file : false;
             $this->view->filename = $file;
         } else {
             $this->view->nousers = true;
         }
     }
     $campaignModel = new Campaign();
     $this->view->campaigns = $campaignModel->fetchAll();
 }
Example #7
0
 function adminreceiveAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     // get current page(default page = 1)
     if ($this->_request->getParam('page')) {
         $this->_curPage = $this->_request->getParam('page');
     }
     // get all sms desc
     $sparkSmsModel = new SparkSms();
     $this->view->messages = $sparkSmsModel->findAllSMS();
     //Zend_Debug::dump($this->view->messages);
     //paging
     $this->view->controller = $this->_request->getControllerName();
     $this->view->action = $this->_request->getActionName();
     $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($this->view->messages));
     $paginator->setCurrentPageNumber($this->_curPage)->setItemCountPerPage($this->_rowsPerPage);
     $this->view->paginator = $paginator;
     $this->view->testEnv = Zend_Registry::get('testEnv');
     // get active campaign
     $campaign = new Campaign();
     $time = date("Y-m-d H:i:s");
     $where = "create_date<'" . $time . "' and expire_date>'" . $time . "'";
     $order = "expire_date desc";
     $this->view->campaigns = $campaign->fetchAll($where, $order, null, null);
 }
 function adminadvancedsearchAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     $campaigns = new Campaign();
     $this->view->campaigns = $campaigns->fetchAll();
 }
 function adminemailtemplateAction()
 {
     $this->_helper->layout->setLayout("layout_admin");
     $emailTemplate = new EmailTemplate();
     $admintemplateId = $this->_request->getParam('id');
     if ($this->_request->isPost()) {
         if (!$admintemplateId) {
             $row = $emailTemplate->createRow();
             $row->campaign = $this->_request->getPost('campaign');
             $row->subject = $this->_request->getPost('subject');
             if ($this->_request->getPost('message') != '') {
                 $row->message = $this->_request->getPost('message');
             } else {
                 $row->message = $this->_request->getPost('htmlmessage');
             }
             $row->crdate = date('Y-m-d h:i:s');
             $row->save();
         } else {
             if ($this->_request->getPost('message') != '') {
                 $message = $this->_request->getPost('message');
             } else {
                 $message = $this->_request->getPost('htmlmessage');
             }
             $emailTemplate->update(array('subject' => $this->_request->getPost('subject'), 'message' => $message), 'id = ' . $admintemplateId);
         }
         $submitted = true;
     } else {
         $submitted = false;
     }
     $form = new CampaignEmailTemplateForm();
     $campaigns = new Campaign();
     $campaignsData = $campaigns->fetchAll(NULL, 'create_date desc');
     //print_r($campaignsData);
     $campaignOptions = array();
     foreach ($campaignsData as $val) {
         $campaignOptions[$val->id] = $val->name;
     }
     $fc = Zend_Controller_Front::getInstance();
     $this->view->oFCKeditor = new FCKeditor('htmlmessage');
     $this->view->oFCKeditor->BasePath = $fc->getBaseUrl() . "/js/fckeditor/";
     $this->view->oFCKeditor->Height = "500px";
     if ($admintemplateId) {
         $email = $emailTemplate->fetchRow('id =' . $admintemplateId);
         $this->view->oFCKeditor->Value = $email->message;
         $form->setDefault('subject', $email->subject);
         $this->view->admintemplateId = $admintemplateId;
     }
     //var_dump($email->message);die;
     $this->view->form = $form;
     $this->view->campaigns = $campaignOptions;
     $this->view->submitted = $submitted;
 }
 function adminphoneinAction()
 {
     $campaign = new Campaign();
     $order = "expire_date desc";
     $this->view->campaigns = $campaign->fetchAll(null, $order, null, null);
 }