PluginProbe ʕ •ᴥ•ʔ
VikAppointments Services Booking Calendar / trunk
VikAppointments Services Booking Calendar vtrunk
trunk 1.2.17 1.2.18 1.2.19
vikappointments / admin / views / manageclosure / view.html.php
vikappointments / admin / views / manageclosure Last commit date
tmpl 4 years ago index.html 6 years ago view.html.php 2 years ago
view.html.php
130 lines
1 <?php
2 /**
3 * @package VikAppointments
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2021 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * VikAppointments closure management view.
16 *
17 * @since 1.5
18 */
19 class VikAppointmentsViewmanageclosure extends JViewVAP
20 {
21 /**
22 * VikAppointments view display method.
23 *
24 * @return void
25 */
26 function display($tpl = null)
27 {
28 $app = JFactory::getApplication();
29 $input = $app->input;
30 $dbo = JFactory::getDbo();
31
32 $ids = $input->getUint('cid', array());
33 $type = $ids ? 'edit' : 'new';
34
35 $closure = null;
36
37 if ($type == 'edit')
38 {
39 $q = $dbo->getQuery(true)
40 ->select('*')
41 ->from($dbo->qn('#__vikappointments_reservation'))
42 ->where($dbo->qn('id') . ' = ' . $ids[0])
43 ->where($dbo->qn('closure') . ' = 1');
44
45 $dbo->setQuery($q, 0, 1);
46 $tmp = $dbo->loadObject();
47
48 if ($tmp)
49 {
50 $checkin = VAPDateHelper::sql2date($tmp->checkin_ts);
51 $checkout = VAPDateHelper::sql2date(VikAppointments::getCheckout($tmp->checkin_ts, $tmp->duration));
52
53 $closure = new stdClass;
54 $closure->id = $tmp->id;
55 $closure->id_employees = array($tmp->id_employee);
56 $closure->fromdate = $tmp->checkin_ts;
57 $closure->fromtime = JHtml::fetch('vikappointments.time2min', $checkin->format('H:i', true));
58 $closure->totime = JHtml::fetch('vikappointments.time2min', $checkout->format('H:i', true));
59 }
60 else
61 {
62 // we probably tried to edit a real reservation, back to creation mode
63 $type = 'new';
64 }
65 }
66
67 if (empty($closure))
68 {
69 $closure = (object) $this->getBlankItem();
70 }
71
72 // use closure data stored in user state
73 $this->injectUserStateData($closure, 'vap.closure.data');
74
75 // set the toolbar
76 $this->addToolBar($type);
77
78 $this->closure = $closure;
79
80 // display the template
81 parent::display($tpl);
82 }
83
84 /**
85 * Setting the toolbar.
86 *
87 * @return void
88 */
89 protected function addToolBar($type)
90 {
91 // add menu title and some buttons to the page
92 JToolBarHelper::title(JText::translate('VAPMAINTITLENEWCLOSURE'), 'vikappointments');
93
94 $user = JFactory::getUser();
95
96 if ($user->authorise('core.edit', 'com_vikappointments')
97 || $user->authorise('core.create', 'com_vikappointments'))
98 {
99 JToolbarHelper::apply('closure.save', JText::translate('VAPSAVE'));
100 JToolbarHelper::save('closure.saveclose', JText::translate('VAPSAVEANDCLOSE'));
101 }
102
103 if ($user->authorise('core.edit', 'com_vikappointments')
104 && $user->authorise('core.create', 'com_vikappointments'))
105 {
106 JToolbarHelper::save2new('closure.savenew', JText::translate('VAPSAVEANDNEW'));
107 }
108
109 JToolBarHelper::cancel('closure.cancel', $type == 'edit' ? 'JTOOLBAR_CLOSE' : 'JTOOLBAR_CANCEL');
110 }
111
112 /**
113 * Returns a blank item.
114 *
115 * @return array A blank item for new requests.
116 *
117 * @since 1.7
118 */
119 protected function getBlankItem()
120 {
121 return array(
122 'id' => 0,
123 'id_employees' => array(),
124 'fromdate' => 'now',
125 'fromtime' => 480,
126 'totime' => 1020,
127 );
128 }
129 }
130