| Current Path : /home/megadansyp/www/components/com_eventgallery/library/factory/ |
| Current File : /home/megadansyp/www/components/com_eventgallery/library/factory/servicelineitem.php |
<?php
/**
* @package Sven.Bluege
* @subpackage com_eventgallery
*
* @copyright Copyright (C) 2005 - 2019 Sven Bluege All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();
class EventgalleryLibraryFactoryServicelineitem extends EventgalleryLibraryFactoryLineitem
{
/**
* name of the sql table like #__foobar
*/
protected $_tablename = '#__eventgallery_servicelineitem';
/**
* @param $id
* @return EventgalleryLibraryServicelineitem
*/
public function getLineItemById($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->qn($this->_tablename));
$query->where('id=' . $db->quote($id));
$db->setQuery($query);
$lineItem = $db->loadObject();
$lineItem->table = $this->_tablename;
return new EventgalleryLibraryServicelineitem($lineItem);
}
/**
* @param $id
* @return array
*/
public function getLineItemsByLineItemContainerId($id) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->qn($this->_tablename));
$query->where('lineitemcontainerid = ' . $db->quote($id));
$query->order('id');
$db->setQuery($query);
$dbLineItems = $db->loadObjectList();
$lineitems = Array();
foreach ($dbLineItems as $dbLineItem) {
array_push($lineitems, new EventgalleryLibraryServicelineitem($dbLineItem));
}
return $lineitems;
}
/**
* @param $lineitemcontainerid
* @param EventgalleryLibraryServicelineitem $lineitem
*
* @return EventgalleryLibraryServicelineitem
*/
public function copyLineItem($lineitemcontainerid, $lineitem) {
$data = get_object_vars($lineitem->_getInternalDataObject());
unset($data['id']);
$data['lineitemcontainerid'] = $lineitemcontainerid;
$item = $this->store($data, 'Servicelineitem');
return new EventgalleryLibraryServicelineitem($item);
}
/**
* @param EventgalleryLibraryLineitemcontainer $lineitemcontainer
* @param EventgalleryLibraryMethodsMethod $method
* @return EventgalleryLibraryServicelineitem
*/
public function createLineitem($lineitemcontainer, $method) {
$quantity = 1;
$price = $method->getPrice($lineitemcontainer);
$item = array(
'lineitemcontainerid' => $lineitemcontainer->getId(),
'quantity' => $quantity,
'singleprice' => $price->getAmount(),
'price' => $quantity * $price->getAmount(),
'taxrate' => $method->getTaxrate(),
'currency' => $price->getCurrency(),
'methodid' => $method->getId(),
'type' => $method->getTypeCode(),
'name' => $method->getName()
);
$item = $this->store($item, 'Servicelineitem');
return new EventgalleryLibraryServicelineitem($item);
}
/**
* Deletes all service line items of a given type from the given Lineitemcontainer
*
* @param $id
* @param $methodtypeid
*/
public function deleteMethodTypeFromLineitemContainer($id, $methodtypeid)
{
$db = $this->db;
$query = $db->getQuery(true);
$query->delete('#__eventgallery_servicelineitem');
$query->where('type=' . $db->quote($methodtypeid));
$query->where('lineitemcontainerid=' . $db->quote($id));
$db->setQuery($query);
$db->execute();
}
}