<?php

/**
 * eSales Media oxVoucher for Contao Open Source CMS
 *
 * Copyright (c) 2015 eSales Media
 *
 * @author  Benjamin Roth [benjamin@esales-media.de]
 * @license proprietary
 */

namespace eSM_oxVoucher;

class ModuleTicketSelect extends ModuleVoucher
{
	/**
	 * Template
	 * @var string
	 */
	protected $strTemplate = 'mod_oxticket_select';

	/**
	 * Parse the template
	 * @return string
	 */
	public function generate()
	{
		if (TL_MODE == 'BE')
		{
			/** @var \BackendTemplate|object $objTemplate */
			$objTemplate = new \BackendTemplate('be_wildcard');

			$objTemplate->wildcard = '### ' . utf8_strtoupper($GLOBALS['TL_LANG']['FMD']['oxticket_select'][0]) . ' ###';
			$objTemplate->title = $this->headline;
			$objTemplate->id = $this->id;
			$objTemplate->link = $this->name;
			$objTemplate->href = 'contao/main.php?do=themes&amp;table=tl_module&amp;act=edit&amp;id=' . $this->id;

			return $objTemplate->parse();
		}

		$this->importOxDbInstance();

		return parent::generate();
	}


	/**
	 * Compile the current element
	 */
	protected function compile()
	{
		$arrTickets = array();
		if ($this->oxticket_category)
		{
			$objStatement = $this->oxDB->prepare("SELECT a.OXID, a.OXTITLE, a.OXVARSELECT, a.OXPARENTID, pa.OXTITLE AS PARENTTITLE FROM oxv_oxarticles_de a JOIN oxobject2category ac ON a.OXID = ac.OXOBJECTID OR a.OXPARENTID = ac.OXOBJECTID LEFT JOIN oxv_oxarticles_de AS pa ON pa.OXID = a.OXPARENTID AND a.OXPARENTID != '' WHERE ac.OXCATNID = ? AND (a.OXACTIVE = '1' OR (a.OXACTIVETO IS NOT NULL AND a.OXACTIVETO != '0000-00-00 00:00:00' AND a.OXACTIVETO >= ?)) AND ((a.OXPARENTID = '' AND (SELECT COUNT(sa.OXID) FROM oxarticles sa WHERE sa.OXPARENTID = a.OXID) < 1) OR a.OXPARENTID != '') ORDER BY a.OXTITLE, PARENTTITLE, a.OXVARSELECT ");

			$objResult = $objStatement->execute($this->oxticket_category,date('Y-m-d H:i:s'));

			if ($objResult->numRows)
			{
				$arrTickets = $objResult->fetchAllAssoc();
			}
		}

		$this->Template->selectOptions = $arrTickets;
		$this->Template->selectLabel = $GLOBALS['TL_LANG']['MSC']['oxTicket']['selectLabel'];
		$this->Template->submitLabel = $GLOBALS['TL_LANG']['MSC']['oxTicket']['submitLabel'];
	}

}