| Current Path : /var/www/iplanru/data/www/i-plan.ru/administrator/components/com_pay/models/ |
| 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;
}
}