function postcampaigndoAction()
 {
     if ($this->autoAccountBinding() == false) {
         return;
     }
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($this->postToIndicate($formData)) {
             //save report successfully
             $consumer = $this->_currentUser;
             $survey_id = (int) $this->_request->getParam('i2_survey_id', 0);
             $code = $this->_request->getParam('id');
             $currentTime = date("Y-m-d H:i:s");
             $campaignModel = new Campaign();
             $this->view->campaign = $campaignModel->fetchRow("post_campaign_survey=" . $survey_id . " or " . "post_campaign_survey_en=" . $survey_id);
             $db = Zend_Registry::get('db');
             $campaignId = $this->view->campaign->id;
             $this->view->campaign_id = $campaignId;
             if ($campaignId > 0) {
                 //change campaign_participation state
                 $db = Zend_Registry::get('db');
                 $select2 = $db->select();
                 $select2->from('campaign_participation', '*')->join('campaign_invitation', 'campaign_invitation.id = campaign_participation.campaign_invitation_id', null)->where('campaign_invitation.consumer_id = ?', $consumer['id'])->where('campaign_invitation.campaign_id = ?', $campaignId)->where("campaign_participation.state != 'COMPLETED'");
                 $isExist = $db->fetchAll($select2);
                 if ($isExist != null) {
                     $campaing_participateModel = new CampaignParticipation();
                     $campaign_participation = $campaing_participateModel->fetchRow('campaign_invitation_id = ' . $isExist[0]['campaign_invitation_id']);
                     $campaign_participation->state = 'COMPLETED';
                     $campaign_participation->save();
                     //add 200 points for member in reward_point_transaction_record
                     $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
                     $rewardPointTransaction = array("consumer_id" => $consumer['id'], "date" => date("Y-m-d H:i:s"), "transaction_id" => "5", "point_amount" => "200");
                     $id = $rewardPointTransactionRecordModel->insert($rewardPointTransaction);
                 }
                 $this->view->message = "Success";
             }
         } else {
             //failed
             $this->view->message = "Failed";
             $this->render('failed');
         }
     } else {
         $this->view->xianei_redirect = $this->xiaonei_redirect('home');
         $this->render('redirect2home');
     }
 }
예제 #2
0
 function adminsaveurlreportstateAction()
 {
     $type = $this->_request->getParam('type');
     $db = Zend_Registry::get('db');
     if ($type == 'reportState') {
         $idStr = $this->_request->getParam('reportids');
         $idStrArray = explode(',', $idStr);
         $reportIdArray = array();
         $i = 0;
         $config = Zend_Registry::get('config');
         $smtpSender = new Zend_Mail_Transport_Smtp($config->smtp->report->mail->server, array('username' => $config->smtp->report->mail->username, 'password' => $config->smtp->report->mail->password, 'auth' => $config->smtp->report->mail->auth, 'ssl' => $config->smtp->report->mail->ssl, 'port' => $config->smtp->report->mail->port));
         //			$smtpSender = new Zend_Mail_Transport_Smtp(
         //						'smtp.163.com',array(
         //						'username'=>'*****@*****.**',
         //						'password'=>'19990402',
         //						'auth'=>'login'));
         Zend_Mail::setDefaultTransport($smtpSender);
         foreach ($idStrArray as $idAndState) {
             if ($idAndState == '') {
                 continue;
             }
             $idAndStateArray = explode('@', $idAndState);
             if ($idAndStateArray[1] == 'NEW') {
                 continue;
             }
             if ($idAndStateArray[1] == 'APPROVED') {
                 $urlreportModel = new UrlReport();
                 $row = $urlreportModel->fetchRow('id = ' . $idAndStateArray[0]);
                 if ($row->state != 'NEW') {
                     continue;
                 }
                 $row->state = $idAndStateArray[1];
                 if ($row->reward_point_transaction_record_id == null || $row->reward_point_transaction_record_id == '') {
                     $rewardModel = new RewardPointTransactionRecord();
                     $reward = $rewardModel->createRow();
                     $reward->consumer_id = $idAndStateArray[2];
                     $reward->date = date("Y-m-d H:i:s");
                     $reward->transaction_id = 8;
                     $reward->point_amount = 300;
                     $row->reward_point_transaction_record_id = $reward->save();
                 } else {
                     $rewardModel = new RewardPointTransactionRecord();
                     $reward = $rewardModel->fetchRow('id = ' . $row->reward_point_transaction_record_id);
                     if ($reward != null) {
                         $reward->date = date("Y-m-d H:i:s");
                         $reward->point_amount = 300;
                         $reward->save();
                     }
                 }
                 $row->save();
                 //2011-05-13 change the rank of consumer
                 $rankModel = new Rank();
                 $rankModel->changeConsumerRank($idAndStateArray[1]);
             }
             if ($idAndStateArray[1] == 'UNAPPROVED') {
                 $urlreportModel = new UrlReport();
                 $row = $urlreportModel->fetchRow('id = ' . $idAndStateArray[0]);
                 if ($row == null) {
                     continue;
                 }
                 if ($row->reward_point_transaction_record_id != null && $row->reward_point_transaction_record_id != '') {
                     $rewardModel = new RewardPointTransactionRecord();
                     $reward = $rewardModel->fetchRow('id = ' . $row->reward_point_transaction_record_id);
                     if ($reward != null) {
                         $db2 = $rewardModel->getAdapter();
                         $where = $db2->quoteInto('id = ?', $row->reward_point_transaction_record_id);
                         $rows_affected = $rewardModel->delete($where);
                     }
                 }
                 $db2 = $urlreportModel->getAdapter();
                 $where = $db2->quoteInto('id = ?', $idAndStateArray[0]);
                 $rows_affected = $urlreportModel->delete($where);
             }
             $consumerModel = new Consumer();
             $consumer = $consumerModel->fetchRow('id = ' . $idAndStateArray[2]);
             //send mail...
             if ($consumer->email == '') {
                 continue;
             }
             $mail = new Zend_Mail('utf-8');
             if ($consumer->language_pref != null && $consumer->language_pref == 'en') {
                 $emailSubject = $this->view->translate('Admin_Reply_WOM_URLReport_Subject_en');
                 $emailBody = $this->view->translate('Admin_Reply_WOM_URLReport_Body_en');
             } else {
                 $emailSubject = $this->view->translate('Admin_Reply_WOM_URLReport_Subject_zh');
                 $emailBody = $this->view->translate('Admin_Reply_WOM_URLReport_Body_zh');
             }
             $stringChange = array('?USERNAME?' => $consumer->name, '?YOURSTORY?' => $row->url, '?MYRESPONSE?' => $idAndStateArray[3]);
             $emailBody = strtr($emailBody, $stringChange);
             $langNamespace = new Zend_Session_Namespace('Lang');
             if ($langNamespace->lang == 'en' || $langNamespace->lang == 'EN') {
                 $mail->setSubject($emailSubject);
             } else {
                 $mail->setSubject("=?UTF-8?B?" . base64_encode($emailSubject) . "?=");
             }
             $mail->setBodyText($emailBody);
             $mail->addTo($consumer->email);
             $mail->setFrom($config->smtp->report->mail->username, $this->view->translate('Wildfire'));
             //				$mail->setFrom('*****@*****.**',$this->view->translate('Wildfire'));
             $mail->send();
             // save email
             $urlreportreplyModel = new UrlReportReply();
             $urlreportreply = $urlreportreplyModel->createRow();
             $urlreportreply->date = date("Y-m-d H:i:s");
             $urlreportreply->subject = $emailSubject;
             $urlreportreply->content = $idAndStateArray[3];
             $urlreportreply->from = $config->smtp->report->mail->username;
             $urlreportreply->to = $consumer->email;
             $urlreportreply->url_report_id = $row->id;
             //2011-04-08 ham.bao separate the sessions with admin
             $urlreportreply->admin_id = $this->_currentAdmin->id;
             $urlreportreply->save();
         }
     }
 }
 function thankyouAction()
 {
     $this->view->activeTab = 'Polls';
     $this->view->title = $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("Thanks_For_Poll");
     $consumer = $this->_currentUser;
     $id = (int) $this->_request->getParam('survey', 0);
     $profileSurveyModel = new ProfileSurvey();
     $profileSurvey = $profileSurveyModel->fetchRow("i2_survey_id =" . $id . " or " . "i2_survey_id_en =" . $id);
     // $this->view->point = $profileSurvey->points;
     //check history to prevent multiple participation
     $db = Zend_Registry::get('db');
     $select1 = $db->select();
     $select1->from("poll_participation", "count(*)");
     $select1->where("poll_participation.poll_id = ?", $profileSurvey->id);
     $select1->where("poll_participation.consumer_id = ?", $consumer->id);
     $participationCount = $db->fetchOne($select1);
     if ($participationCount == 0) {
         // check ws
         $indicate2Connect = new Indicate2_Connect();
         $ids = array($id);
         $wsResult = $indicate2Connect->getAnswerSetCount($consumer->email, $ids);
         // Zend_Debug::dump($wsResult."------------".$profileSurvey->points);die;
         if ($wsResult > 0) {
             // add poll participation
             $currentTime = date("Y-m-d H:i:s");
             $pollParticipationModel = new PollParticipation();
             $pollParticipation = $pollParticipationModel->createRow();
             $pollParticipation->poll_id = $profileSurvey->id;
             $pollParticipation->consumer_id = $consumer->id;
             $pollParticipation->date = $currentTime;
             $pollParticipation->save();
             // add points
             $pointRecordModel = new RewardPointTransactionRecord();
             $point = $pointRecordModel->createRow();
             $point->consumer_id = $consumer->id;
             $point->transaction_id = 3;
             $point->date = $currentTime;
             $point->point_amount = $profileSurvey->points;
             $point->save();
             //2011-05-13 change the rank of consumer
             $rankModel = new Rank();
             $rankModel->changeConsumerRank($consumer->id);
             $this->view->point = $point->point_amount;
         } else {
             // add poll participation
             $currentTime = date("Y-m-d H:i:s");
             $pollParticipationModel = new PollParticipation();
             $pollParticipation = $pollParticipationModel->createRow();
             $pollParticipation->poll_id = $profileSurvey->id;
             $pollParticipation->consumer_id = $consumer->id;
             $pollParticipation->date = $currentTime;
             $pollParticipation->save();
             // add points
             $pointRecordModel = new RewardPointTransactionRecord();
             $point = $pointRecordModel->createRow();
             $point->consumer_id = $consumer->id;
             $point->transaction_id = 3;
             $point->date = $currentTime;
             $point->point_amount = $profileSurvey->points;
             $point->save();
             //2011-05-13 change the rank of consumer
             $rankModel = new Rank();
             $rankModel->changeConsumerRank($consumer->id);
             $this->view->point = $point->point_amount;
         }
     }
 }
예제 #4
0
 function postcampaignfinishedAction()
 {
     $this->view->activeTab = 'Campaign';
     $this->view->title = $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("You_are_in");
     $id = (int) $this->_request->getParam('survey');
     $campaignModel = new Campaign();
     $this->view->campaign = $campaignModel->fetchRow("post_campaign_survey=" . $id . " or " . "post_campaign_survey_en=" . $id);
     $db = Zend_Registry::get('db');
     $campaignId = $this->view->campaign->id;
     $this->view->campaign_id = $campaignId;
     $consumer = $this->_currentUser;
     if ($campaignId > 0) {
         //change campaign_participation state
         $db = Zend_Registry::get('db');
         $select2 = $db->select();
         $select2->from('campaign_participation', '*')->join('campaign_invitation', 'campaign_invitation.id = campaign_participation.campaign_invitation_id', null)->where('campaign_invitation.consumer_id = ?', $consumer->id)->where('campaign_invitation.campaign_id = ?', $campaignId)->where("campaign_participation.state != 'COMPLETED'");
         $isExist = $db->fetchAll($select2);
         //	Zend_Debug::dump($isExist[0]['campaign_invitation_id']);
         if ($isExist != null) {
             $campaing_participateModel = new CampaignParticipation();
             $campaign_participation = $campaing_participateModel->fetchRow('campaign_invitation_id = ' . $isExist[0]['campaign_invitation_id']);
             $campaign_participation->state = 'COMPLETED';
             $campaign_participation->save();
             //add 200 points for member in reward_point_transaction_record
             $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
             $rewardPointTransaction = array("consumer_id" => $consumer->id, "date" => date("Y-m-d H:i:s"), "transaction_id" => "5", "point_amount" => "200");
             $id = $rewardPointTransactionRecordModel->insert($rewardPointTransaction);
             //2011-05-13 change the rank of consumer
             $rankModel = new Rank();
             $rankModel->changeConsumerRank($consumer->id);
         }
     }
 }
예제 #5
0
 function adminajaxauditAction()
 {
     $this->_helper->layout->disableLayout();
     $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
     $rewardPointTransaction = array("consumer_id" => $this->_request->getParam('consumer'), "date" => date("Y-m-d H:i:s"), "transaction_id" => "11", "point_amount" => $this->_request->getParam('point'));
     $id = $rewardPointTransactionRecordModel->insert($rewardPointTransaction);
     $irrModel = new InboxRepliedRecord();
     $irrModel->updatePointTransaction($this->_request->getParam('irrId'), $id);
 }
예제 #6
0
 function adminsetselectedorderAction()
 {
     $type = $this->_request->getParam('type');
     if ($type == 'orderState') {
         $idStr = $this->_request->getParam('orderids');
         $idStrArray = explode(',', $idStr);
         $productOrderModel = new ProductOrder();
         foreach ($idStrArray as $idAndState) {
             if (null == $idAndState || '' == $idAndState) {
                 continue;
             }
             $idAndStateArray = explode('@', $idAndState);
             $productOrder = $productOrderModel->fetchRow('id = ' . $idAndStateArray[0]);
             // consumer cancel order
             if ($productOrder->state == 'CANCEL') {
                 continue;
             }
             // confirm used point in table 'reward_point_transaction_record'
             $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
             $rewardPointTransactionRecord = $rewardPointTransactionRecordModel->fetchRow('id = ' . $productOrder->reward_point_transaction_record_id);
             if ($rewardPointTransactionRecord == null) {
                 continue;
             } else {
                 $productModel = new Product();
                 $product = $productModel->fetchRow('id = ' . $productOrder->product_id);
                 if ($product == null) {
                     continue;
                 } else {
                     if ($idAndStateArray[1] == 'UNAPPROVED') {
                         $rewardPointTransactionRecord->point_amount = 0;
                     }
                 }
                 $rewardPointTransactionRecord->save();
             }
             // change order state
             $currenttime = date("Y-m-d H:i:s");
             $productOrder->state = $idAndStateArray[1];
             $productOrder->handle_date = $currenttime;
             $productOrder->save();
         }
     }
     $this->_helper->json('Success');
 }
예제 #7
0
 function ajaxaddrewardAction()
 {
     $this->_helper->layout->disableLayout();
     $uid = $this->_request->getParam('uid');
     $postData = $this->_request->getPost();
     if (is_numeric($postData['score'])) {
         $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
         $rewardPointTransactionRecordModel->insert(array('consumer_id' => $uid, 'transaction_id' => 7, 'point_amount' => $postData['score'], 'date' => date("Y-m-d H:i:s")));
         $rankModel = new Rank();
         $rankModel->changeConsumerRank($uid);
         $this->_helper->json("Success");
     } else {
         $this->_helper->json("Wrong");
     }
 }
예제 #8
0
 function redeemAction()
 {
     $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("GIFT_REDEEM");
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         $cartNamespace = new Zend_Session_Namespace('Cart');
         if ($cartNamespace->list == null) {
             $this->_redirect('gift/list');
             return;
         }
         // validate consumer info
         $consumerModel = new Consumer();
         $consumer = $consumerModel->fetchRow("email = '" . $this->_currentUser->email . "' and password = MD5('" . $formData['password'] . "')");
         if ($consumer == null) {
             $this->_flashMessenger->addMessage($this->view->translate("Gift_consumer_info_incorrect"));
             $this->_flashMessenger->addMessage(true);
             $this->_redirect('gift/confirmcart');
             return;
         }
         // check redeem condition
         $db = Zend_Registry::get('db');
         $selectTotalCompletedCampaign = $db->select();
         $selectTotalCompletedCampaign->from('campaign_participation', 'count(*)')->join('campaign_invitation', 'campaign_participation.campaign_invitation_id = campaign_invitation.id', null)->where('campaign_invitation.consumer_id = ?', $this->_currentUser->id);
         $this->view->completedCampaignAmount = $db->fetchOne($selectTotalCompletedCampaign);
         //			$selectTotalSubmittedReport = $db->select();
         //			$selectTotalSubmittedReport->from('report', 'count(*)')
         //			->where('state = "APPROVED"')
         //			->where('consumer_id = ?', $this->_currentUser->id);
         //			$this->view->submittedReportAmount = $db->fetchOne($selectTotalSubmittedReport);
         if ($this->view->completedCampaignAmount < 1 || $this->_currentUser->pest != null && $this->_currentUser->pest == 1) {
             $this->_flashMessenger->addMessage($this->view->translate("Gift_can_not_redeem_gift"));
             $this->_flashMessenger->addMessage(true);
             $this->_redirect('gift/confirmcart');
             return;
         }
         // check the point
         $selectUsablePoints = $db->select();
         $selectUsablePoints->from('reward_point_transaction_record', 'SUM(point_amount)')->where("consumer_id = ?", $this->_currentUser->id);
         $usablePoints = (int) $db->fetchOne($selectUsablePoints);
         $amountSelectedProductPoint = 0;
         foreach ($cartNamespace->list as $product) {
             $selectSelectedProductPoint = $db->select();
             $selectSelectedProductPoint->from('product', 'point')->where("id = " . $product['id']);
             $selectedProductPoint = (int) $db->fetchOne($selectSelectedProductPoint);
             $amountSelectedProductPoint += $product['amount'] * $selectedProductPoint;
         }
         if ($amountSelectedProductPoint > $usablePoints) {
             $this->_flashMessenger->addMessage($this->view->translate("Gift_have_no_enough_point"));
             $this->_flashMessenger->addMessage(true);
             $this->_redirect('gift/confirmcart');
             return;
         }
         // save shipping info
         $consumerModel = new Consumer();
         $id = $this->_currentUser->id;
         $consumer = $consumerModel->find($id)->current();
         $consumer->recipients_name = $formData['recipients_name'];
         $consumer->phone = $formData['phone'];
         $consumer->address1 = $formData['address1'];
         $consumer->postalcode = $formData['postalcode'];
         if ($formData['city'] != null && $formData['province'] != null) {
             $consumer->city = $formData['city'];
             $consumer->province = $formData['province'];
         }
         if ($formData['englishcity'] != null) {
             $consumer->city = $formData['englishcity'];
             $consumer->province = null;
         }
         if ($formData['province'] == '' && $formData['englishcity'] == null) {
             $consumer->city = null;
             $consumer->province = null;
         }
         $consumer->save();
         // save exchange records
         $currentTime = date("Y-m-d H:i:s");
         $rewardPointTransactionRecordModel = new RewardPointTransactionRecord();
         $prodcutOrderModel = new ProductOrder();
         $notificationModel = new Notification();
         $total_redeem_point = 0;
         foreach ($cartNamespace->list as $product) {
             // add records to reward_point_transaction_record table
             $rewardPointTransactionRecord = array("consumer_id" => $this->_currentUser->id, "DATE" => $currentTime, "transaction_id" => '4', "point_amount" => -$product['amount'] * $product['point']);
             $transactionRecordId = $rewardPointTransactionRecordModel->insert($rewardPointTransactionRecord);
             // add records to product_order table
             $prodcutOrder = array('consumer_id' => $this->_currentUser->id, 'product_id' => $product['id'], 'create_date' => $currentTime, 'state' => 'NEW', 'reward_point_transaction_record_id' => $transactionRecordId, 'amount' => $product['amount']);
             $prodcutOrderId = $prodcutOrderModel->insert($prodcutOrder);
             // roll back if an exception occurred
             // ...
             $total_redeem_point += $product['amount'] * $product['point'];
         }
         // add notification
         $notificationModel->createRecord("REDEEM_POINT", $this->_currentUser->id, $total_redeem_point);
         $this->paidGifts = $cartNamespace->list;
         $cartNamespace->list = null;
         // show redeem.phtml with "... Successfully"
         $this->_flashMessenger->addMessage("Gift_submit_orders_successfully");
         $this->_flashMessenger->addMessage(false);
         $this->_flashMessenger->addMessage($this->paidGifts);
         $this->_redirect('gift/thankyou');
     } else {
         $this->_redirect('gift/list');
     }
 }