<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.model');
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_ipricecalc'.DS.'tables');
require_once( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_ipricecalc'.DS.'tables'.DS.'ipricecalc.php');
class IPriceCalcModelCategory extends JModel
{
function getCategories( $options=array() )
{
$table =& JTable::getInstance('Iprice_item', 'JTable');
$table->SetQuery('P');
return $table->GetList(@$options['limitstart'], @$options['limit'] );
}
function getCategoriesCount( &$options )
{
$query = 'SELECT * FROM #__categories where section = "com_ipricecalc"';
//echo $query;
return $this->_getListCount( $query );
}
function getItemsCount( $options=array() )
{
$table =& JTable::getInstance('Iprice_item', 'JTable');
$table->SetQuery('P');
return $table->GetCount();
}
function getNextOrderNo()
{
$db = JFactory::getDBO();
$query = 'SELECT MAX(orderno) from #__iprice_order_main';
$db->setQuery($query);
$nextorder = 1 + (int) $db->LoadResult();
return $nextorder;
}
function updateTotals($orderno)
{
$db = JFactory::getDBO();
$query = 'update #__iprice_order as ipo set amount = (select cost from #__iprice_item as ipi where ipi.id=ipo.itemid ) where orderno = '. (int) $orderno;
$db->setQuery($query);
if (!$db->query())
JError::raiseError( 500, $db->stderr());
$query = 'update #__iprice_order_main as ipom set totalamount = (select sum(amount*countitems) from #__iprice_order as ipo where ipo.orderno=ipom.orderno ) where orderno = '. (int) $orderno;
$db->setQuery($query);
if (!$db->query())
JError::raiseError( 500, $db->stderr());
}
function insOrder( $items, $contact, $orderno )
{
//$msg = 'Count items '.count($items);
if (!$contact)
return false;
$db = JFactory::getDBO();
$query = 'INSERT INTO #__iprice_order_main ( orderno, orderdate, fio, firm, email, phone, comments , totalamount)' .
' VALUES ( '.(int) $orderno.', NOW() , '.$db->Quote($contact->fio).', '.$db->Quote($contact->firm).', '.$db->Quote($contact->email).', '.$db->Quote($contact->phone).', '.$db->Quote($contact->comments).', 0 )';
$db->setQuery($query);
if (!$db->query())
JError::raiseError( 500, $db->stderr());
foreach ($items as $item) {
if ($item->cnt) {
$query = 'INSERT INTO #__iprice_order ( orderno, itemid, countitems, amount)' .
' VALUES ( '.(int) $orderno.', '.(int) $item->id.', '.(int) $item->cnt.', 0 )';
$db->setQuery($query);
if (!$db->query())
JError::raiseError( 500, $db->stderr());
}
}
$this->updateTotals($orderno);
}
function getOrder( $orderno )
{
$db = JFactory::getDBO();
$query = 'select * from #__iprice_order_main where orderno = '. (int) $orderno;
$db->setQuery($query);
$order = $db->loadObject();
return $order;
}
function getOrderItems( $orderno )
{
$query = 'select ipc.title as category, ipi.catid, ipi.name, ipi.shortdesc, ipi.description, ipo.* from #__iprice_order as ipo '.
'LEFT JOIN #__iprice_item AS ipi ON ipo.itemid = ipi.id '.
'LEFT JOIN #__categories AS ipc ON ipi.catid = ipc.id where orderno = '.(int) $orderno. ' ORDER BY ipc.ordering, ipi.ordering';
return $this->_getList( $query );
}
}