Автор работы: Пользователь скрыл имя, 16 Июня 2014 в 20:02, дипломная работа
Целью разработки является создание веб-сервиса для потенциальных рекламодателей, который поможет им расширять целевую аудиторию и платить за реальные и фактические просмотры их рекламы, так как бот–просмотры в данном случае практически исключены. Так же целью является увеличение количество точек WI-FI в определённом городе для удобства граждан и возможностью выйти в интернет бесплатно в любом публичном месте.
Актуальность проекта: Беспроводные локальные сети являются достаточно часто востребованной темой на сегодняшний день, ведь это не только самый лучший способ связать в единую сеть несколько разнотипных устройств, но и возможность осуществлять высокоскоростную передачу и приём данных, оставляя при этом устройствам свою мобильность.
->whereParam(array('name'=>'
->whereParam(array('name'=>'
->whereParam(array('name'=>'
->whereParam(array('name'=>'
->whereParam(array('name'=>'
->orderByParam('id', 'id', 'DESC')
->orderByParam('firstname', 'firstname', 'ASC')
->orderByParam('companyname', 'companyname', 'ASC')
->orderByParam('city', 'city', 'ASC')
->orderByParam('email', 'email', 'ASC')
->setParams($this->getRequest(
Model_PS_Client::
$this->view->pager = $Filter->getPager();
Продолжение приложения Б
$this->view->pager->setUrl($
}
}
public function multiClientSaveAction() {
$email = $this->getRequest()->getParam(
$pwd = $this->getRequest()->getParam(
$parentClient = Model_PS_Client::getInstance($
// запоминаю id и хэш пароля клиента, потому что ниже потеряю его
$currentUserId = $_SESSION['uid'];
$currentPwd = $_SESSION['upw'];
// localAPI в случае правильных email и password сам автоматом перелогинивает (меняет текущего клиента)
$result = Util_Whmcs::localAPI('
if($result['result'] == 'error') {
$this->msgErr('Вы указали неверный E-mail или пароль.');
$this->redirect(array('action'
}
// возвращаю пользователю его старую сессию
$_SESSION['uid'] = $currentUserId;
$_SESSION['upw'] = $currentPwd;
$childClient = Model_PS_Client::getInstance($
if ($parentClient->
if ($childClient->getId()*1 > 0 && $childClient->getId()
== $childClient->getParentUserId(
$oldParentId = $childClient->getId();
$newParentId = $parentClient->getId();
$childClient['parentUserId'] = $parentClient->getId();
Продолжение приложения Б
$childClient->save();
foreach(Model_PS_Client::
$row['parentUserId'] = $newParentId;
$row->save();
}
} else {
$childClient['parentUserId'] = $parentClient->
}
} else {
$parentClient['parentUserId'] = $parentClient->getId();
$parentClient->save();
$childClient['parentUserId'] = $parentClient->getId();
}
$childClient->save();
unset ($_SESSION['
$this->msgOk('Мульти-аккаунт успешно добавлен.');
$this->redirect($this->view->
}
public function multiClientDeleteAction() {
$userIds = $this->getRequest()->getParam(
if (!is_array($userIds)) {
$userIds = array($userIds);
}
foreach ($userIds as $id) {
$Client = Model_PS_Client::getInstance($
if ($Client) {
$parentUserId = $Client->getParentUserId();
if ($id == $parentUserId) {
$Client['parentUserId'] = 0;
Продолжение приложения Б
$Client->save();
$newParentId = 0;
foreach(Model_PS_Client::
if ($newParentId == 0) {
$newParentId = $row->getId();
}
$row['parentUserId'] = $newParentId;
$row->save();
}
} else {
$Client['parentUserId'] = 0;
$Client->save();
}
}
}
unset ($_SESSION['
$this->msgOk('Мульти-аккаунт удалён.');
$this->redirect($this->view->
}
/**
* Смена платёжного цикла у продукта
*/
public function productChangeCycleAction() {
$billingcycle = $this->getRequest()->getParam(
$hostingId = $this->getRequest()->getParam(
$Hosting = Model_PS_Hosting::getInstance(
if ($Hosting) {
if ($Hosting->getUserid() != $this->getUserId()) {
$this->msgErr('В доступе отказано');
Продолжение приложения Б
$this->redirect('clientarea.
}
$Pricing = Model_PS_Pricing::
if ($Pricing) {
$newCycle = $billingcycle;
$oldCycle = $Hosting->getBillingcycle();
$Hosting->setBillingcycle($
$billingcycle = str_replace('-', '', strtolower($billingcycle));
$Hosting->setAmount($Pricing[$
$Hosting->
$msgOk = 'Платёжный цикл изменён.';
$InvoiceItem = Model_PS_InvoiceItem::
if ($InvoiceItem) {
$Invoice = Model_PS_Invoice::getInstance(
if ($Invoice && $Invoice->getStatus() == 'Unpaid') {
$total = $Invoice->getTotal() + ($Pricing[$billingcycle] - $InvoiceItem->getAmount());
$tax = $total*0.12;
$Invoice->setTotal($total);
$Invoice->setSubtotal($total - $tax);
$Invoice->setTax($tax);
$Invoice->setTaxrate(12);
$InvoiceItem->setAmount($
if (!$InvoiceItem->save()) {
Продолжение приложения Б
$this->msgErr('Произошла ошибка при изменение платёжного цикла');
$this->redirect('clientarea.
}
if (!$Invoice->save()) {
$this->msgErr('Произошла ошибка при изменение платёжного цикла');
$this->redirect('clientarea.
}
$msgOk .= '<br/>В счёт на продление услуги
<a href="/viewinvoice.php?id='.$
}
}
if ($Hosting->save()) {
$Log = new Model_PS_ActivityLog();
$Log->setDescription('
$Log->setUser('Client');
if ($this->getAdminLogin()) {
$Log->setUser($this->
}
$Log->setUserid($this->
$Log->save();
$this->msgOk($msgOk);
$this->redirect('clientarea.
}
}
}
$this->msgErr('Произошла
Продолжение приложения Б
$this->redirect('clientarea.
}
/**
* Продление продукта
*/
public function productRenewAction() {
$hostingId = $this->getRequest()->getParam(
$Hosting = Model_PS_Hosting::getInstance(
if ($Hosting) {
if ($Hosting->getUserid() != $this->getUserId()) {
$this->msgErr('В доступе отказано');
$this->redirect('clientarea.
}
if ((strtotime($Hosting->
$this->msgErr('Продукт
$this->redirect('clientarea.
}
$InvoiceItem = Model_PS_InvoiceItem::
if ($InvoiceItem) {
$Invoice = Model_PS_Invoice::getInstance(
if ($Invoice && $Invoice->getStatus() == 'Unpaid') {
$this->msgErr('Счёт на продление уже существует
<a href="/viewinvoice.php?id='.$
$this->redirect('clientarea.
}
}
Продолжение приложения Б
$Product = Model_PS_Product::getInstance(
if ($Product) {
$newDate = '';
switch ($Hosting->getBillingcycle()) {
case 'Monthly':
$newDate = date('Y-m-d', strtotime('+1 month', strtotime($Hosting->
break;
case 'Quarterly':
$newDate = date('Y-m-d', strtotime('+3 month', strtotime($Hosting->
break;
case 'Semi-Annually':
$newDate = date('Y-m-d', strtotime('+6 month', strtotime($Hosting->
break;
case 'Annually':
$newDate = date('Y-m-d', strtotime('+1 year', strtotime($Hosting->
break;
}
$newInvoice = Model_PS_Invoice::
$newInvoice->save();
$newInvoiceItem = new Model_PS_InvoiceItem();
$newInvoiceItem->
$newInvoiceItem->setRelid($
$newInvoiceItem->setType('
$newInvoiceItem->setInvoice($
$newInvoiceItem->setAmount($
Продолжение приложения Б
$newInvoiceItem->setTaxed(12);
$newInvoice->invoiceItemAdd($
$newInvoiceItem->save();
$newInvoice->save();
$Log = new Model_PS_ActivityLog();
$Log->setDescription('
$Log->setUser('Client');
if ($this->getAdminLogin()) {
$Log->setUser($this->
}
$Log->setUserid($this->
$Log->save();
$this->redirect('/viewinvoice.
}
}
$this->msgErr('Произошла
$this->redirect('clientarea.
}
/**
* Включение-выключение автопродления
*/
public function productAutoRenewAction() {
$hostingId = $this->getRequest()->getParam(
$Hosting = Model_PS_Hosting::getInstance(
if ($Hosting) {
if ($Hosting->getUserid() != $this->getUserId()) {
$this->msgErr('В доступе отказано');
$this->redirect('clientarea.
Продолжение приложения Б
}
$Log = new Model_PS_ActivityLog();
if ($Hosting->getPsAutoRenew()) {
$Hosting->setPsAutoRenew(0);
$Log->setDescription('Выключил автопродление - Service ID: ' . $hostingId);
$this->msgOk('Автопродление выключено');
} else {
$Hosting->setPsAutoRenew(1);
$Log->setDescription('Включил автопродление - Service ID: ' . $hostingId);
$this->msgOk('Автопродление включено');
}
$Hosting->save();
$Log->setUser('Client');
if ($this->getAdminLogin()) {
$Log->setUser($this->
}
$Log->setUserid($this->
$Log->save();
}
$this->redirect('clientarea.
}
/**
* Пополнение баланса
*/
public function balanceAddAction() {
$amount = $this->getRequest()->getParam(
$paymentMethod = $this->getRequest()->getParam(
$Invoice = Model_PS_Invoice::
Продолжение приложения Б
$Invoice->save();
$InvoiceItem = new Model_PS_InvoiceItem();
$InvoiceItem->setDescription('
$InvoiceItem->setType('
$InvoiceItem->setInvoice($
$InvoiceItem->setAmount($
$Invoice->invoiceItemAdd($
$InvoiceItem->save();
$Invoice->save();
$this->redirect('/viewinvoice.
}
}
?>
<h2>Мои файлы</h2>
<form enctype="multipart/form-data"
action="<?php echo $this->url(array('action'=>'
<select name="typeFile" />
<?php foreach ($this->arrCat as $catId => $catName): ?>
<option value="<?php echo $catId; ?>" ><?php echo $catName; ?></option>
<?php endforeach; ?>
</select>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="clientFile" type="file" />
<input type="submit" class="ps_button" value="Отправить файл" />
</form>
<br/>
<table class="data" width="100%" cellspacing="0" cellpadding="5">
<tr>
<th>Название файла</th>
<th>Тип</th>
<th align="center"> </th>
Продолжение приложения Б
</tr>
<?php foreach($this->files as $file): ?>
<tr>
<td><?php echo $file->getFileName(); ?></td>
<td><?php echo
$this->arrCat[$file->getType()
<td align="right">
<a
href="<?php echo $this->url(array('action'=>'
</td>
</tr>
<?php endforeach; ?>
</table>
<?php
class ClientController extends Util_Addons_ControllerPublic {
public function _init() {
$this->_menu = Array();
Util_Addons_Messages::init('
}
public function indexAction() {
$this->redirect(array('action'
}
public function editClientAction() {
$id = $this->getUserId();
$data = (array)$this->getRequest()->
if($id>0) {
$Client = Model_PS_Client::
$Client->update($data);
if(!empty($_SESSION['client_
$Client->update($_SESSION['
}
}
Продолжение приложения Б
unset($_SESSION['client_edit_
if(!$Client) {
$this->msgErr('Вам
необходимо авторизоваться, чтобы
иметь возможность
$this->disableHelper('view');
return;
}
$this->view->Client = $Client;
$formCode = $Client['customerType'].$
$this->view->blockIds
= (array)Model_PS_Client_Form::
$this->view->errorFields
= Util_Addons_Messages::
// файлы клиента
$this->view->requiredTypeFiles
= Model_PS_Client::
$blockTypeFields = $Client->getBlockTypeFields();
$blockFields = array();
$existFiles = array();
foreach ($this->view->
$ClientFile
= Model_PS_ClientFile::
if ($ClientFile) {
$existFiles[$type] = $ClientFile;
}
if ($Client->getBlock()) {
$blockFields = array_merge($blockFields, $blockTypeFields[$type]);
}
}
$this->view->existFiles = $existFiles;
$this->view->blockFields = $blockFields;
}
Продолжение приложения Б
public function editClientSaveAction() {
$id = $this->getUserId();
if($id>0) {
$Client = Model_PS_Client::
}
if(!$Client) {
$this->msgErr('Вам
необходимо авторизоваться, чтобы
иметь возможность
Информация о работе Разработка биллинга для Hot-Spot точек Wi-fi