Your IP : 216.73.216.170


Current Path : /var/www/iplanru/data/www/i-plan.ru/administrator/components/com_pay/models/
Upload File :
Current File : /var/www/iplanru/data/www/i-plan.ru/administrator/components/com_pay/models/discount.php

<?php

// No direct access
defined( '_JEXEC' ) or die;

// Подключаем библиотеку modeladmin Joomla.
jimport('joomla.application.component.modeladmin');

/**
 * Модель редактирования текущего элемента
 * @author kirdinyuri
 */
class PayModelDiscount extends JModelAdmin {

	/**
	 * загрузка текущей формы
	 * @param Array $data
	 * @param Boolean $loadData
	 * @return Object form data
	 */
	public function getForm( $data = array( ), $loadData = true ) {
		// Получаем форму.
		$form = $this->loadForm('com_pay.discount', 'discount',
								array('control' => 'jform', 'load_data' => $loadData));
		if (empty($form))
		{
			return false;
		}
		
		$componentParams = JComponentHelper::getParams('com_pay');
		$discount = $componentParams->get('discount', '1');
		$duration = $componentParams->get('duration', '0');
		
		$date_finish = date('Y-m-d H:i:s', strtotime ('+'.$duration.' day'));
		
		if ($form->getValue( 'code')=='')
		{
			$str=time();
			$str1=strtoupper(md5(time().$str));
			$str2=strtoupper(md5(time().$str1));
			$str3=strtoupper(md5(time().$str2));
			$str4=strtoupper(md5(time().$str3));
			$itog = substr($str1,0,4).'-'.substr($str2,0,4).'-'.substr($str3,0,4).'-'.substr($str4,0,5);
			$form->setValue( 'code', null, $itog );
		}
		
		$user = JFactory::getUser();
		$form->setValue( 'manager', null, $user->id );
		
		if ($form->getValue( 'date_issue')=='')
			$form->setValue( 'date_issue', null, date( 'Y-m-d H:i:s' ) );
		if ($form->getValue( 'date_finish')=='')
			$form->setValue( 'date_finish', null, $date_finish );
		if ($form->getValue( 'discount')=='')
			$form->setValue( 'discount', null, $discount );
		
		return $form;
	}
	/**
	 * @param Int $id (object identifier)
	 * @return Object (current item)
	 */
	public function getItem( $id = null ) {
		if ( $item = parent::getItem( $id ) ) {
			//$item->text = trim( $item->fulltext ) != '' ? $item->introtext . '<hr id="system-readmore" />' . $item->fulltext : $item->introtext;
		}
		return $item;
	}

	/**
	 * @param string $type
	 * @param string $prefix
	 * @param array $config
	 * @return JTable|mixed
	 */
	public function getTable( $type = 'pay_discounts', $prefix = 'Table', $config = array( ) ) {
		return JTable::getInstance( $type, $prefix, $config );
	}

	/**
	 * Загрузка данных в форму
	 * @return Object
	 */
	protected function loadFormData() {
		$data = JFactory::getApplication()->getUserState( 'com_pay.edit.discount.data', array() );
		if ( empty( $data ) ) {
			$data = $this->getItem();
		}
		return $data;
	}

	/**
	 * Запрет удаления записи
	 * @param object $record
	 * @return bool
	 */
	protected function canDelete( $record )
	{
		if ( !empty( $record->id ) ) {
			return JFactory::getUser()->authorise( 'core.delete', '#__table1.' . (int)$record->id );
		}
	}

	/**
	 * Запрет изменения состояния
	 * @param object $record
	 * @return bool
	 */
	protected function canEditState( $record )
	{
		$user = JFactory::getUser();

		// Check for existing article.
		if ( !empty( $record->id ) ) {
			return $user->authorise( 'core.edit.state', '#__pay_discounts.' . (int)$record->id );
		} // New article, so check against the category.
		elseif ( !empty( $record->catid ) ) {
			return $user->authorise( 'core.edit.state', '#__pay_discounts.' . (int)$record->catid );
		} // Default to component settings if neither article nor category known.
		else {
			return parent::canEditState( 'com_pay' );
		}
	}

	
	
	public function certificate($pks)
	{
		
		
		foreach($pks as $id)
		{
			$db = $this->getDbo();
			$list = $db->setQuery( "SELECT 	id,
											code,
											mail1, 
											fio1,
											DATE_FORMAT(date_issue,'%d/%m/%Y') as date_issue2,
											DATEDIFF(date_finish,date_issue) as days,
											CONVERT((1-discount)*100, SIGNED) as disc,
											date_use, date_finish
									FROM 	#__pay_discounts 
									where 	id={$id}" )->loadAssoc();
			
			
			$y = $list[days] % 10;
			$x = $list[days] / 10 % 10;
			if ($x && $x == 1) $d = "дней";
			elseif ($y == 1) $d = "день";
			elseif (in_array($y,"2,3,4")) $d = "дня";
			else $d =  "дней";

			
			$img=JPATH_ADMINISTRATOR . '/components/com_pay/certificate/certificate.jpg';
			$pic = ImageCreateFromjpeg($img); //открываем рисунок в формате JPEG
			Header("Content-type: image/jpeg"); //указываем на тип передаваемых данных
			$color=ImageColorAllocate($pic, 0, 0, 0); //получаем идентификатор цвета
			$font=JPATH_ADMINISTRATOR . '/components/com_pay/assets/fonts/ARIALN.TTF';
			/* выводим текст на изображение */
			ImageTTFtext($pic, 34, 0, 660, 590, $color, $font, $list[code]);
			ImageTTFtext($pic, 30, 0, 360, 750, $color, $font, $list[date_issue2]);
			ImageTTFtext($pic, 30, 0, 805, 750, $color, $font, $list[days].' '.$d);
			ImageTTFtext($pic, 30, 0, 1265, 750, $color, $font, $list[disc].'%');
			
			Imagejpeg($pic,JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.jpg"); //сохраняем рисунок в формате JPEG
			ImageDestroy($pic); //освобождаем память и закрываем изображение
			
			
			
			//получение параметров
			$componentParams = &JComponentHelper::getParams('com_pay');
			
			$server 	= $componentParams->get('server', 'main');
			
			if ($server=="main")
			{
				$mmail 		= $componentParams->get('mmail', '');
				$mmail=explode(",",$mmail);
			}
			else
			{
				$mmail 		= $componentParams->get('mmailt', '');
				$mmail=explode(",",$mmail);
			}
			
			$cmtu = $componentParams->get('certificate_mail_text_user', '');
			$cmtu=str_replace("%USERNAME%",$list['fio1'],$cmtu );
			
			$cmtm = $componentParams->get('certificate_mail_text_manager', '');
			$cmtm=str_replace("%USERNAME%",$list['fio1'],$cmtm );
			
			//pdf-------------------------------------------------------
			require('fpdf.php');		
			$pdf = new FPDF('Landscape','mm','A4'); 
			$pdf->Open();		
			$pdf->AddPage(); 
			$pdf->Image(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.jpg",'','',297,210); 
			$pdf->Output(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.pdf");
			$pdfpath=JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.pdf";
			
			//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++					
			$subject="Сертификат на скидку онлайн покупки на сайте i-plan.ru";
			/*
			$mailer =& JFactory::getMailer();						
			$conf = new JConfig();
			$sender = array( 
				$conf->mailfrom,
				$conf->fromname);
			$mailer->setSender($sender);		
			$mailer->addRecipient($list[mail1]);
			$mailer->setSubject($subject);
			$mailer->isHTML(true);
			$mailer->Encoding = 'base64';
			$mailer->setBody($cmtu);
			//$mailer->AddEmbeddedImage(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.jpg", 
			//							'certificate_id', 'certificate.jpg', 'base64', 'image/jpeg');
			$mailer->addAttachment(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.pdf");
			//$send =& $mailer->Send();
			if ( $send !== true ) {
				JError::raiseWarning( 100, "Письмо клиенту (ID {$list[id]}) не отправлено" );
			} else {
				JError::raiseNotice( 100, "Письмо клиенту (ID {$list[id]}) отправлено" );
			}
			unset($msg);
			*/
			
			$cmtu=str_replace('"','\"',$cmtu);
			$query = "INSERT INTO #__pay_mail (`id`,`to`,`msg`,`subject`,`files`,`images`)
				VALUES (NULL , '{$list[mail1]}', '{$cmtu}', '{$subject}', '{$pdfpath}','');";
			$db->setquery($query);$b=$db->query($query);
			
			
			//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			$subject="Сертификат на скидку онлайн покупки на сайте i-plan.ru";
			/*
			$mailer =& JFactory::getMailer();						
			$conf = new JConfig();
			$sender = array( 
				$conf->mailfrom,
				$conf->fromname);
			$mailer->setSender($sender);		
			$mailer->addRecipient($mmail);
			$mailer->setSubject($subject);
			$mailer->isHTML(true);
			$mailer->Encoding = 'base64';
			$mailer->setBody($cmtm);
			$mailer->addAttachment(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.pdf");
			//$send =& $mailer->Send();
			if ( $send !== true ) {
				JError::raiseWarning( 100, "Письмо менеджерам не отправлено" );
			} else {
				JError::raiseNotice( 100, "Письмо менеджерам отправлено" );
			}
			unset($msg);
			*/
			
			$cmtm=str_replace('"','\"',$cmtm);
			foreach($mmail as $item)
			{
				$query = "INSERT INTO #__pay_mail (`id`,`to`,`msg`,`subject`,`files`,`images`)
					VALUES (NULL , '{$item}', '{$cmtm}', '{$subject}', '{$pdfpath}','');";
				$db->setquery($query);$b=$db->query($query);
			}
			
			
			//unlink(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.jpg");
			//unlink(JPATH_ADMINISTRATOR . "/components/com_pay/certificate/certificate_{$list[id]}.pdf");
		}	
		return true;
	}
}