| 1 |
<?php |
| 2 |
/** |
| 3 |
* @package VikBooking |
| 4 |
* @subpackage com_vikbooking |
| 5 |
* @author Alessio Gaggii - e4j - Extensionsforjoomla.com |
| 6 |
* @copyright Copyright (C) 2018 e4j - Extensionsforjoomla.com. All rights reserved. |
| 7 |
* @license GNU General Public License version 2 or later; see LICENSE |
| 8 |
* @link https://vikwp.com |
| 9 |
*/ |
| 10 |
|
| 11 |
defined('ABSPATH') or die('No script kiddies please!'); |
| 12 |
|
| 13 |
// import Joomla view library |
| 14 |
jimport('joomla.application.component.view'); |
| 15 |
|
| 16 |
class VikBookingViewTariffs extends JViewVikBooking |
| 17 |
{ |
| 18 |
public function display($tpl = null) |
| 19 |
{ |
| 20 |
// Set the toolbar |
| 21 |
$this->addToolBar(); |
| 22 |
|
| 23 |
if (!JFactory::getUser()->authorise('core.vbo.pricing', 'com_vikbooking')) { |
| 24 |
VBOHttpDocument::getInstance()->close(403, JText::translate('JERROR_ALERTNOAUTHOR')); |
| 25 |
} |
| 26 |
|
| 27 |
$cid = VikRequest::getVar('cid', array(0)); |
| 28 |
$aid = $cid[0]; |
| 29 |
|
| 30 |
$dbo = JFactory::getDBO(); |
| 31 |
$mainframe = JFactory::getApplication(); |
| 32 |
if (empty($aid)) { |
| 33 |
$q = "SELECT `id` FROM `#__vikbooking_rooms` ORDER BY `#__vikbooking_rooms`.`name` ASC LIMIT 1"; |
| 34 |
$dbo->setQuery($q); |
| 35 |
$dbo->execute(); |
| 36 |
if ($dbo->getNumRows() == 1) { |
| 37 |
$aid = $dbo->loadResult(); |
| 38 |
} |
| 39 |
} |
| 40 |
if (empty($aid)) { |
| 41 |
VikError::raiseWarning('', 'No Rooms.'); |
| 42 |
$mainframe->redirect("index.php?option=com_vikbooking&task=rooms"); |
| 43 |
exit; |
| 44 |
} |
| 45 |
$q = "SELECT `id`,`name`,`img`,`idcat` FROM `#__vikbooking_rooms` WHERE `id`=".$dbo->quote($aid).";"; |
| 46 |
$dbo->setQuery($q); |
| 47 |
$dbo->execute(); |
| 48 |
if ($dbo->getNumRows() != 1) { |
| 49 |
VikError::raiseWarning('', 'No Rooms.'); |
| 50 |
$mainframe->redirect("index.php?option=com_vikbooking&task=rooms"); |
| 51 |
exit; |
| 52 |
} |
| 53 |
$roomrows = $dbo->loadAssoc(); |
| 54 |
$q = "SELECT * FROM `#__vikbooking_prices`;"; |
| 55 |
$dbo->setQuery($q); |
| 56 |
$dbo->execute(); |
| 57 |
$prices = $dbo->getNumRows() > 0 ? $dbo->loadAssocList() : ""; |
| 58 |
$pnewtar = VikRequest::getString('newdispcost', '', 'request'); |
| 59 |
$pddaysfrom = VikRequest::getInt('ddaysfrom', '', 'request'); |
| 60 |
$pddaysto = VikRequest::getInt('ddaysto', '', 'request'); |
| 61 |
if (!empty($pnewtar) && !empty($pddaysfrom) && is_array($prices)) { |
| 62 |
if (empty($pddaysto) || $pddaysfrom == $pddaysto) { |
| 63 |
foreach ($prices as $pr) { |
| 64 |
$tmpvarone = VikRequest::getFloat('dprice'.$pr['id'], '', 'request'); |
| 65 |
if (!empty($tmpvarone)) { |
| 66 |
$tmpvartwo = VikRequest::getString('dattr'.$pr['id'], '', 'request'); |
| 67 |
$multipattr = is_numeric($tmpvartwo) ? true : false; |
| 68 |
$safeq = "SELECT `id` FROM `#__vikbooking_dispcost` WHERE `days`=".$dbo->quote($pddaysfrom)." AND `idroom`='".$roomrows['id']."' AND `idprice`='".$pr['id']."';"; |
| 69 |
$dbo->setQuery($safeq); |
| 70 |
$dbo->execute(); |
| 71 |
if ($dbo->getNumRows() == 0) { |
| 72 |
$q = "INSERT INTO `#__vikbooking_dispcost` (`idroom`,`days`,`idprice`,`cost`,`attrdata`) VALUES('".$roomrows['id']."',".$dbo->quote($pddaysfrom).",'".$pr['id']."','".($tmpvarone * $pddaysfrom)."',".($multipattr ? "'".($tmpvartwo * $pddaysfrom)."'" : $dbo->quote($tmpvartwo)).");"; |
| 73 |
$dbo->setQuery($q); |
| 74 |
$dbo->execute(); |
| 75 |
} elseif ($dbo->getNumRows() == 1) { |
| 76 |
$upd_id = $dbo->loadResult(); |
| 77 |
$q = "UPDATE `#__vikbooking_dispcost` SET `cost`='".($tmpvarone * $pddaysfrom)."', `attrdata`=".($multipattr ? "'".($tmpvartwo * $pddaysfrom)."'" : $dbo->quote($tmpvartwo))." WHERE `id`=".(int)$upd_id." AND `days`=".$dbo->quote($pddaysfrom)." AND `idroom`='".$roomrows['id']."' AND `idprice`='".$pr['id']."' LIMIT 1;"; |
| 78 |
$dbo->setQuery($q); |
| 79 |
$dbo->execute(); |
| 80 |
} |
| 81 |
} |
| 82 |
} |
| 83 |
} else { |
| 84 |
$pddaysto = intval($pddaysto) > 365 ? 365 : $pddaysto; |
| 85 |
for ($i = intval($pddaysfrom); $i <= intval($pddaysto); $i++) { |
| 86 |
foreach ($prices as $pr) { |
| 87 |
$tmpvarone = VikRequest::getFloat('dprice'.$pr['id'], '', 'request'); |
| 88 |
if (!empty($tmpvarone)) { |
| 89 |
$tmpvartwo = VikRequest::getString('dattr'.$pr['id'], '', 'request'); |
| 90 |
$multipattr = is_numeric($tmpvartwo) ? true : false; |
| 91 |
$safeq = "SELECT `id` FROM `#__vikbooking_dispcost` WHERE `days`=".$dbo->quote($i)." AND `idroom`='".$roomrows['id']."' AND `idprice`='".$pr['id']."';"; |
| 92 |
$dbo->setQuery($safeq); |
| 93 |
$dbo->execute(); |
| 94 |
if ($dbo->getNumRows() == 0) { |
| 95 |
$q = "INSERT INTO `#__vikbooking_dispcost` (`idroom`,`days`,`idprice`,`cost`,`attrdata`) VALUES('".$roomrows['id']."',".$dbo->quote($i).",'".$pr['id']."','".($tmpvarone * $i)."',".($multipattr ? "'".($tmpvartwo * $i)."'" : $dbo->quote($tmpvartwo)).");"; |
| 96 |
$dbo->setQuery($q); |
| 97 |
$dbo->execute(); |
| 98 |
} elseif ($dbo->getNumRows() == 1) { |
| 99 |
$upd_id = $dbo->loadResult(); |
| 100 |
$q = "UPDATE `#__vikbooking_dispcost` SET `cost`='".($tmpvarone * $i)."', `attrdata`=".($multipattr ? "'".($tmpvartwo * $i)."'" : $dbo->quote($tmpvartwo))." WHERE `id`=".(int)$upd_id." AND `days`=".$dbo->quote($i)." AND `idroom`='".$roomrows['id']."' AND `idprice`='".$pr['id']."' LIMIT 1;"; |
| 101 |
$dbo->setQuery($q); |
| 102 |
$dbo->execute(); |
| 103 |
} |
| 104 |
} |
| 105 |
} |
| 106 |
} |
| 107 |
} |
| 108 |
} |
| 109 |
|
| 110 |
$q = "SELECT * FROM `#__vikbooking_dispcost` WHERE `idroom`=" . (int)$roomrows['id'] . " ORDER BY `#__vikbooking_dispcost`.`days` ASC, `#__vikbooking_dispcost`.`idprice` ASC;"; |
| 111 |
$dbo->setQuery($q); |
| 112 |
$rows = $dbo->loadAssocList(); |
| 113 |
|
| 114 |
$q = "SELECT `id`,`name` FROM `#__vikbooking_rooms` ORDER BY `#__vikbooking_rooms`.`name` ASC;"; |
| 115 |
$dbo->setQuery($q); |
| 116 |
$allc = $dbo->loadAssocList(); |
| 117 |
|
| 118 |
$this->roomrows = $roomrows; |
| 119 |
$this->rows = $rows; |
| 120 |
$this->prices = $prices; |
| 121 |
$this->allc = $allc; |
| 122 |
|
| 123 |
// Display the template |
| 124 |
parent::display($tpl); |
| 125 |
} |
| 126 |
|
| 127 |
/** |
| 128 |
* Sets the toolbar |
| 129 |
*/ |
| 130 |
protected function addToolBar() |
| 131 |
{ |
| 132 |
JToolBarHelper::title(JText::translate('VBMAINTARIFFETITLE'), 'vikbooking'); |
| 133 |
JToolBarHelper::save('cancel', JText::translate('VBMAINTARIFFEBACK')); |
| 134 |
JToolBarHelper::spacer(); |
| 135 |
if (JFactory::getUser()->authorise('core.delete', 'com_vikbooking')) { |
| 136 |
JToolBarHelper::deleteList(JText::translate('VBDELCONFIRM'), 'removetariffs', JText::translate('VBMAINTARIFFEDEL')); |
| 137 |
JToolBarHelper::spacer(); |
| 138 |
JToolBarHelper::spacer(); |
| 139 |
} |
| 140 |
} |
| 141 |
} |
| 142 |
|