www_archline_hu/cadline/modules/modules/mod_alusers/helper.php
LÁZÁR Imre AI Agent 7012528980 feat(cadline): add Cadline-own modules
11 Cadline-only modules (mod_al_*, mod_alusers, mod_alworkshops, mod_course_list, mod_webinar*, mod_wsregister). Dropped webshells excluded (mod_al_upload/b8.php, mod_course_list/a1.php); legit module bases kept.

Signed-off-by: LÁZÁR Imre <imre@illusion.hu>
Assisted-by: claude-code@claude-opus-4-8
2026-07-16 11:34:30 +02:00

1225 lines
45 KiB
PHP

<?php
//error_reporting(E_ALL);
defined('_JEXEC') or die;
jimport('joomla.user.helper');
require_once($_SERVER['DOCUMENT_ROOT'] . '/maintenance/libraries/phpmailer/PHPMailerAutoload.php');
class ModAlusersHelper
{
public static function QuaterlyPaid($prFizetve)
{
$currentDate = date('Y-m-d');
$currentTime = strtotime($currentDate);
// Elso negyedev
if ($prFizetve == date('Y') . '-01-31' && $currentTime < strtotime(date('Y') . '-01-01')) {
return true;
}
// Masodik negyedev
if ($prFizetve == date('Y') . '-04-30' && $currentTime < strtotime(date('Y') . '-04-01')) {
return true;
}
// Harmadik negyedev
if ($prFizetve == date('Y') . '-07-31' && $currentTime < strtotime(date('Y') . '-07-01')) {
return true;
}
// Negyedik negyedev
if ($prFizetve == date('Y') . '-10-31' && $currentTime < strtotime(date('Y') . '-10-01')) {
return true;
}
return false;
}
public static function getQuarterlySupportPaid($prFizetve)
{
$currentDate = date('Y-m-d');
$currentTime = strtotime($currentDate);
$expire = '';
// Elso negyedev
if ($prFizetve == date('Y') . '-01-31' && $currentTime < strtotime(date('Y') . '-01-01')) {
$date = date('Y', strtotime('-1 year'));
$expire = $date . '-12-31';
}
// Masodik negyedev
if ($prFizetve == date('Y') . '-04-30' && $currentTime < strtotime(date('Y') . '-04-01')) {
$expire = date('Y') . '-03-31';
}
// Harmadik negyedev
if ($prFizetve == date('Y') . '-07-31' && $currentTime < strtotime(date('Y') . '-07-01')) {
$expire = date('Y') . '-06-30';
}
// Negyedik negyedev
if ($prFizetve == date('Y') . '-10-31' && $currentTime < strtotime(date('Y') . '-10-01')) {
$expire = date('Y') . '-09-30';
}
return $expire;
}
public static function getQuarterlySupportNotPaid($prFizetve)
{
$currentDate = date('Y-m-d');
$currentTime = strtotime($currentDate);
$expire = '';
// Elso negyedev
if ($prFizetve == date('Y') . '-01-31' && $currentTime >= strtotime(date('Y') . '-01-01')) {
$expire = date('Y') . '-03-31';
}
// Masodik negyedev
if ($prFizetve == date('Y') . '-04-30' && $currentTime >= strtotime(date('Y') . '-04-01')) {
$expire = date('Y') . '-06-30';
}
// Harmadik negyedev
if ($prFizetve == date('Y') . '-07-31' && $currentTime >= strtotime(date('Y') . '-07-01')) {
$expire = date('Y') . '-09-30';
}
// Negyedik negyedev
if ($prFizetve == date('Y') . '-10-31' && $currentTime >= strtotime(date('Y') . '-10-01')) {
$expire = date('Y') . '-12-31';
}
return $expire;
}
public static function getSupport($prContact, $maintenance_valid, $maint_expiration, $prFizetve, $prSellDate)
{
// Karbantartasi szerzodesek
$maintenanceArray = array(2, 6, 7);
// Van ervenyes karbantartasi szerzodese es ki is van fizetve
if (in_array($prContact, $maintenanceArray) && $prFizetve == '2050-01-01') {
$expire = date('Y') . '-12-31';
return "{$expire}-ig";
}
// Elofizetoi, ha a az aktivalas ervenyessege nagyobb, mint a jelenlegi datum
if ($prContact == '1' && $prFizetve > date('Y-m-d')) {
return "{$prFizetve}-ig";
}
// Licenc - egy osszeg vagy Licenc - berles vagy Licenc - reszlet
if ($prContact == '0' || $prContact == '11' || $prContact == '3') {
if ($maint_expiration != '' && $maint_expiration > date('Y-m-d')) {
return "{$maint_expiration}-ig";
}
// Az eladasi datumhoz hozza kell adni 90 napot, annyi a termektamogatas
$perpExpire = date('Y-m-d', strtotime($prSellDate . ' + 90 days'));
// Ha a jelenlegi datum kisebb, mint az eladasi datum + 90 nap, akkor van termektamogatas
if (strtotime(date("Y-m-d")) <= strtotime($perpExpire)) {
return "{$perpExpire}-ig";
}
}
// Karbantartasi - egyosszeg - nincs kifizetve
if (($prContact == '2' && date('Y-m-d') > date('Y-01-20'))) {
return "{$prFizetve}-ig";
// return "Nem (Hátralék miatt felfüggesztve)";
}
// Karbantartasi - reszlet - nincs kifizetve
if ($prContact == '7' && $prFizetve != '2050-01-01' && $prFizetve > date('Y-m-d')) {
return "{$prFizetve}-ig";
}
// Karbantartasi - negyedeves - nincs kifizetve
if ($prContact == '6' && !ModAlusersHelper::QuaterlyPaid($prFizetve)) {
$expire = ModAlusersHelper::getQuarterlySupportNotPaid($prFizetve);
return "{$prFizetve}-ig";
}
// Karbantartasi - negyedeves - kifizetve
if ($prContact == '6' && ModAlusersHelper::QuaterlyPaid($prFizetve)) {
return "{$prFizetve}-ig";
}
// Be van allitva a termektamogatas lejarata
if ($maint_expiration != '' && strtotime($maint_expiration)) {
return "{$maint_expiration}-ig";
}
return "Nem";
}
public static function getSupportForOlder($prHlNum, $supportArray, $maint_expiration, $prContact, $prSellDate)
{
// Karbantartasi szerzodesek
$maintenanceArray = array(2, 6, 7);
if (in_array($prContact, $maintenanceArray) && array_key_exists($prHlNum, $supportArray)) {
return $supportArray[$prHlNum];
}
// Licenc - egy osszeg vagy Licenc - berles vagy Licenc - reszlet
if ($prContact == '0' || $prContact == '11' || $prContact == '3') {
if ($maint_expiration != '' && $maint_expiration > date('Y-m-d')) {
return "{$maint_expiration}-ig";
}
// Az eladasi datumhoz hozza kell adni 90 napot, annyi a termektamogatas
$perpExpire = date('Y-m-d', strtotime($prSellDate . ' + 90 days'));
// Ha a jelenlegi datum kisebb, mint az eladasi datum + 90 nap, akkor van termektamogatas
if (strtotime(date("Y-m-d")) <= strtotime($perpExpire)) {
return "{$perpExpire}-ig";
}
}
// Be van allitva a termektamogatas lejarata
if ($maint_expiration != '' && strtotime($maint_expiration)) {
return "{$maint_expiration}-ig";
}
return "Nem";
}
public static function getCurrentVersion()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('v.*'));
$query->from($db->quoteName('cl_hlusers.p_versions', 'v'));
$query->where('v.verID = 26');
$db->setQuery($query);
$result = $db->loadObject();
return (count($result) ? $result : FALSE);
}
public static function getLatestVersion($nUserID = 0, $ids = array())
{
if ((int)$nUserID == 0 || empty($ids)) return (FALSE);
$keys = implode(',', $ids);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT * FROM cl_hlusers.p_versions WHERE verID = 26 ORDER BY verID DESC LIMIT 1";
$db->setQuery($query);
$result = $db->loadObject();
return (count($result) ? $result->verID : FALSE);
}
public static function getRemainingCredits($nUserID = 0)
{
if ((int)$nUserID == 0) return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*'));
$query->from($db->quoteName('mobileview.ai_render_credits', 'c'));
$query->where($db->quoteName('c.nUserID') . ' = ' . $db->quote($nUserID));
$query->order($db->quoteName('c.created_at') . ' DESC');
$db->setQuery($query);
$result = $db->loadObject();
return (count($result) ? $result->credit : FALSE);
}
public static function getCredits($nUserID = 0)
{
if ((int)$nUserID == 0) return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*'));
$query->from($db->quoteName('mobileview.ai_render_credit_history', 'c'));
$query->where($db->quoteName('c.nUserID') . ' = ' . $db->quote($nUserID));
$query->order($db->quoteName('c.created_at') . ' DESC');
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getLatestPrograms($nUserID = 0, $verID, $ids = array())
{
if ((int)$nUserID == 0 || !$verID || empty($ids)) return (FALSE);
$keys = "'" . implode("','", $ids) . "'";
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT p.*, t.*, v.*, h.hlCtrID AS hlCtrID, h.maintenance_valid AS maintenance_valid, h.maint_expiration AS maint_expiration
FROM cl_hlusers.h_programs p
LEFT JOIN cl_hlusers.p_types t ON t.typeCode = p.prTypeID
LEFT JOIN cl_hlusers.p_versions v ON v.verID = p.prVerID
LEFT JOIN cl_hlusers.hardlock h ON h.hlNum = p.prHlNum
WHERE h.hlUser IN (" . $keys . ") AND p.prVerID = " . $verID . " AND h.hlStat != 2
ORDER BY
CASE
WHEN p.prTypeID = 8 THEN 1
WHEN p.prTypeID = 4 THEN 2
ELSE 3
END,
prID ASC";
/*$query->select(array('p.*', 't.*'));
$query->from($db->quoteName('cl_hlusers.h_programs', 'p'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_types', 't') . ' ON ' . $db->quoteName('t.typeCode') . ' = ' . $db->quoteName('p.prTypeID'));
$query->join('LEFT', $db->quoteName('cl_hlusers.hardlock', 'h') . ' ON ' . $db->quoteName('h.hlNum') . ' = ' . $db->quoteName('p.prHlNum'));
$query->where($db->quoteName('h.hlUser') . ' = ' . $db->quote($nUserID));
$query->where($db->quoteName('p.prVerID') . ' = ' . $db->quote($verID));
$query->order($db->quoteName('p.prPass') . ' DESC');*/
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getOlderPrograms($nUserID = 0, $verID, $ids = array())
{
if ((int)$nUserID == 0 || !$verID) return (FALSE);
$keys = "'" . implode("','", $ids) . "'";
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT p.*, t.*, v.*, h.maint_expiration AS maint_expiration
FROM cl_hlusers.h_programs p
LEFT JOIN cl_hlusers.p_types t ON t.typeCode = p.prTypeID
LEFT JOIN cl_hlusers.p_versions v ON v.verID = p.prVerID
LEFT JOIN cl_hlusers.hardlock h ON h.hlNum = p.prHlNum
WHERE h.hlUser IN (" . $keys . ") AND p.prVerID < " . $verID . " AND h.hlStat != 2
ORDER BY prVerID DESC,
CASE
WHEN p.prTypeID = 8 THEN 1
WHEN p.prTypeID = 4 THEN 2
ELSE 3
END,
prID ASC";
/*$query->select(array('p.*', 't.*', 'v.*'));
$query->from($db->quoteName('cl_hlusers.h_programs', 'p'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_versions', 'v') . ' ON ' . $db->quoteName('v.verID') . ' = ' . $db->quoteName('p.prVerID'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_types', 't') . ' ON ' . $db->quoteName('t.typeCode') . ' = ' . $db->quoteName('p.prTypeID'));
$query->join('LEFT', $db->quoteName('cl_hlusers.hardlock', 'h') . ' ON ' . $db->quoteName('h.hlNum') . ' = ' . $db->quoteName('p.prHlNum'));
$query->where($db->quoteName('h.hlUser') . ' = ' . $db->quote($nUserID));
$query->where($db->quoteName('p.prVerID') . ' < ' . $db->quote($verID));
$query->order($db->quoteName('p.prVerID') . ' DESC');*/
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getComputerData($prPass, $isid)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*'));
$query->from($db->quoteName('cl_hlusers.p_serial_isid', 'p'));
$query->join('LEFT', $db->quoteName('cl_hlusers.computers', 'c') . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('p.computer_id'));
$query->where($db->quoteName('p.serial') . ' = ' . $db->quote($prPass));
$query->where($db->quoteName('p.isid') . ' = ' . $db->quote($isid));
$db->setQuery($query);
$result = $db->loadObject();
return (count($result) ? $result : FALSE);
}
public static function getUserFromCRM($nUserID = 0)
{
if ((int)$nUserID == 0) return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('u.*'));
$query->from($db->quoteName('cl_hlusers.users', 'u'));
$query->where($db->quoteName('u.nUserID') . ' = ' . $db->quote($nUserID));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result[0] : FALSE);
}
public static function getEmails($email = '')
{
if ($email == '') return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('e.*'));
$query->from($db->quoteName('cl_hlusers.u_emails', 'e'));
$query->where($db->quoteName('e.email') . ' = ' . $db->quote($email));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getNewsletterEmails($nUserID = 0)
{
if ((int)$nUserID == 0) return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('e.*'));
$query->from($db->quoteName('cl_hlusers.u_emails', 'e'));
$query->where($db->quoteName('e.nUserID') . ' = ' . $db->quote($nUserID));
// Reset the query using our newly populated query object.
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public function getIdFromEmail($email = '')
{
if ($email == '') return (FALSE);
$db = JFactory::getDbo();
//$db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE email='" . $email . "' ORDER BY u_emails_id LIMIT 1;");
$query = $db->getQuery(true);
$query->select(array('e.*'));
$query->from($db->quoteName('cl_hlusers.u_emails', 'e'));
$query->where($db->quoteName('e.email') . ' = ' . $db->quote($email));
$query->order('e.u_emails_id ASC');
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result[0]->nUserID : FALSE);
}
public static function getPrivacyPolicy($nUserID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('u.privacy_policy'));
$query->from($db->quoteName('cl_hlusers.users', 'u'));
$query->where($db->quoteName('u.nUserID') . ' = ' . $db->quote($nUserID));
$db->setQuery($query);
$result = $db->loadObjectList();
return ($result[0]->privacy_policy == 1 ? TRUE : FALSE);
}
public static function isStudent($nUserID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('s.*'));
$query->from($db->quoteName('cl_hlusers.students', 's'));
$query->where($db->quoteName('s.nUserID') . ' = ' . $db->quote($nUserID));
$db->setQuery($query);
$result = $db->loadObjectList();
return (!empty($result) ? TRUE : FALSE);
}
public static function getKeys($ids = array())
{
if (empty($ids)) return (FALSE);
$idString = "'" . implode("','", $ids) . "'";
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('h.hlNum kulcs_kod'));
$query->from($db->quoteName('cl_hlusers.hardlock', 'h'));
$query->where($db->quoteName('h.hlUser') . ' IN ' . "(" . $idString . ")");
$query->where($db->quoteName('h.hlStat') . ' != ' . $db->quote(2));
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getPrograms($key = '')
{
if ($key == '') return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('p.*', 'v.*', 't.*'));
$query->from($db->quoteName('cl_hlusers.h_programs', 'p'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_versions', 'v') . ' ON ' . $db->quoteName('v.verID') . ' = ' . $db->quoteName('p.prVerID'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_types', 't') . ' ON ' . $db->quoteName('t.typeCode') . ' = ' . $db->quoteName('p.prTypeID'));
$query->where($db->quoteName('p.prHlNum') . ' = ' . $db->quote($key));
$query->order($db->quoteName('p.prID') . ' DESC');
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public function getLastProgram($key = '')
{
if ($key == '') return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('p.*'));
$query->from($db->quoteName('cl_hlusers.h_programs', 'p'));
$query->where($db->quoteName('p.prHlNum') . ' = ' . $db->quote($key));
$query->order($db->quoteName('p.prVerID') . ' DESC');
$db->setQuery($query);
$result = $db->loadObject();
return (count($result) ? $result : FALSE);
}
public static function getModules($prid = '')
{
if ((int)$prid == 0) return (FALSE);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('m.*', 'mt.*'));
$query->from($db->quoteName('cl_hlusers.p_modules', 'm'));
$query->join('LEFT', $db->quoteName('cl_hlusers.p_mtypes', 'mt') . ' ON ' . $db->quoteName('m.mdID') . ' = ' . $db->quoteName('mt.ID'));
$query->where($db->quoteName('m.mdPrID') . ' = ' . $db->quote($prid));
$db->setQuery($query);
$result = $db->loadObjectList();
return (count($result) ? $result : FALSE);
}
public static function getAllKeyData($ids = array())
{
if (empty($ids)) return (FALSE);
$kulcsok = self::getKeys($ids);
if (is_array($kulcsok) && count($kulcsok)) {
foreach ($kulcsok as $key => $kulcs) {
$programs = self::getPrograms($kulcs->kulcs_kod);
if (count($programs) && is_array($programs)) {
foreach ($programs as $key_program => $program) {
$programs[$key_program]->modulok = ModAlusersHelper::getModules($program->prID);
}
}
$kulcsok[$key]->programok = $programs;
}
}
return (count($kulcsok) ? $kulcsok : FALSE);
}
public function getContactName($contactID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*'));
$query->from($db->quoteName('cl_hlusers.p_contact', 'c'));
$query->where($db->quoteName('c.contID') . ' = ' . $db->quote($contactID));
$db->setQuery($query);
return $db->loadObject();
}
public function saveInvoiceSettings($nUserID = 0, $tomb = array())
{
if ((int)$nUserID == 0 || !is_array($tomb) || empty($tomb)) return (FALSE);
$set = '';
$new = array();
$mezok = array(
'strInvoiceName' => JText::_('MOD_ARCHLINE_NAME'),
'strInvoiceEMail' => JText::_('MOD_ARCHLINE_EMAIL'),
'nInvoiceCtrID' => JText::_('MOD_ARCHLINE_COUNTRY'),
'strInvoiceZip' => JText::_('MOD_ARCHLINE_ZIP'),
'strInvoiceCity' => JText::_('MOD_ARCHLINE_CITY'),
'strInvoiceAddress' => JText::_('MOD_ARCHLINE_ADDRESS'),
'strTaxNumber' => JText::_('MOD_ARCHLINE_TAXNUMBER'),
'strInvoiceEAccount' => JText::_('MOD_ARCHLINE_EACCOUNT'),
);
foreach ($tomb as $k => $v) {
if (in_array($k, array_keys($mezok))) {
$new[$k] = $v;
$set .= ($set == '' ? '' : ', ') . "`" . $k . "`='" . $v . "'";
}
}
/*$db = JFactory::getDbo();
$query = $db->getQuery(true);
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`users` SET " . $set . " WHERE nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();*/
}
public function getUserPDF($nUserID = 0)
{
$pdfArray = array();
$folder = JPATH_BASE . "/attachements/" . $nUserID;
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('a.*'));
$query->from($db->quoteName('cl_hlusers.attachments', 'a'));
$query->where($db->quoteName('a.file_extension') . ' = ' . $db->quote('.pdf'));
$query->where($db->quoteName('a.nUserID') . ' = ' . $db->quote($nUserID));
$db->setQuery($query);
$attachments = $db->loadObjectList();
foreach ($attachments as $attachment) {
return $attachments;
}
}
public function savePersonalSettings($nUserID = 0, $tomb = array())
{
if ((int)$nUserID == 0 || !is_array($tomb) || empty($tomb)) return (FALSE);
$country = '';
$profession = '';
$set = '';
$new = array();
$mezok = array('strName' => JText::_('MOD_ARCHLINE_NAME'), 'nCtrID' => JText::_('MOD_ARCHLINE_COUNTRY'), 'strZip' => JText::_('MOD_ARCHLINE_ZIP'), 'strCity' => JText::_('MOD_ARCHLINE_CITY'), 'strStreet' => JText::_('MOD_ARCHLINE_ADDRESS'), 'strTel' => JText::_('MOD_ARCHLINE_PHONE'), 'nUserProf' => JText::_('MOD_ARCHLINE_PROFESSION'));
foreach ($tomb as $k => $v) {
if (in_array($k, array_keys($mezok))) {
$new[$k] = $v;
$set .= ($set == '' ? '' : ', ') . "`" . $k . "`='" . $v . "'";
}
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('j.*'));
$query->from($db->quoteName(JMLADATBAZIS . '.jml_users', 'j'));
$query->where($db->quoteName('j.nUserID') . ' = ' . $db->quote($nUserID));
$db->setQuery($query);
$jml = $db->loadObjectList();
$jml = $jml[0];
$query->select(array('u.*'));
$query->from($db->quoteName(CRMADATBAZIS . '.users', 'u'));
$query->where($db->quoteName('u.nUserID') . ' = ' . $db->quote($nUserID));
$db->setQuery($query);
$old = $db->loadObjectList();
$old = $old[0];
$strValt = '';
$valt = array();
foreach ($mezok as $mezo => $str) {
if (!$old->$mezo || !$new[$mezo] || $old->$mezo != $new[$mezo]) {
$valt[] = $mezo;
$strValt .= $str . " " . JText::_('MOD_ARCHLINE_ORIG') . ": " . $old->$mezo . " " . JText::_('MOD_ARCHLINE_NEW') . ": " . $new[$mezo] . "<br />";
}
}
// crm user history-ba elmenti a változásokat
if (count($valt)) self::insertUserHistory($nUserID, $strValt);
foreach (self::getCountries() as $k => $v) {
if ($new['nCtrID'] == $k) {
$country = $v;
break;
}
}
foreach (self::getProfessions() as $k => $v) {
if ($new['nUserProf'] == $k) {
$profession = $v;
break;
}
}
// crm rekord felülírása
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`users` SET " . $set . " WHERE nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE " . CRMADATBAZIS . ".users
SET strTel = REPLACE(strTel, '/', ''), strTel = REPLACE(strTel, '.', ''), strTel = REPLACE(strTel, ' ', ''), strTel = REPLACE(strTel, '-', ''),
strTel = REPLACE(strTel, '+', ''), strTel = REPLACE(strTel, ',', ';'), strTel = REPLACE(strTel, '(', ''), strTel = REPLACE(strTel, ')', ''),
strTel = REPLACE(strTel, '[', ''), strTel = REPLACE(strTel, ']', '')
WHERE nUserID = " . (int)$nUserID . " LIMIT 1;");
$db->execute();
// jml rekord felülírása
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_users` SET `name`='" . $new['strName'] . "' WHERE nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();
// jml profile rekordok felülírása
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $country . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.country' LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $new['strZip'] . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.postal_code' LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $new['strCity'] . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.city' LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $new['strStreet'] . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.address1' LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $new['strTel'] . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.phone' LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . JMLADATBAZIS . "`.`jml_user_profiles` SET `profile_value`='" . $profession . "' WHERE user_id=" . (int)$jml->id . " AND `profile_key`='profile.aboutme' LIMIT 1;");
$db->execute();
}
public function getCountries()
{
$ret = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.countries.ini');
return $ret;
}
public function getProfessions()
{
$ret = parse_ini_file($_SERVER['DOCUMENT_ROOT'] . '/language/' . JFactory::getLanguage()->getTag() . '/' . JFactory::getLanguage()->getTag() . '.prof.ini');
return $ret;
}
public function savePassword($id, $pass)
{
if ((int)$id > 0) {
$db = JFactory::getDbo();
$db->setQuery("UPDATE `jml_users` SET `password`='" . JUserHelper::hashPassword($pass) . "' WHERE id=" . (int)$id . " LIMIT 1;");
$db->execute();
}
}
public function newEmail($nUserID, $email)
{
if ((int)$nUserID > 0 && filter_var($email, FILTER_VALIDATE_EMAIL)) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('e.*'));
$query->from($db->quoteName(CRMADATBAZIS . '.u_emails', 'e'));
$query->where($db->quoteName('e.email') . ' = ' . $db->quote($email));
$db->setQuery($query);
$exist = $db->loadObjectList();
if (empty($exist)) {
$db->setQuery("INSERT INTO `" . CRMADATBAZIS . "`.`u_emails` (`email`,`nUserID`,`default`,`active`,`deleted`,`newsletter`) VALUES ('" . $email . "','" . $nUserID . "','0','1','0','1');");
$db->execute();
$db->setQuery("UPDATE `www_archline_hu`.`jml_users` SET `email`='" . $email . "' WHERE nUserID=" . $nUserID . " LIMIT 1;");
$db->execute();
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`users` SET `strEMail`='" . $email . "' WHERE nUserID=" . $nUserID . " LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_NEW_EMAIL') . ': ' . $email);
}
}
}
public function delEmail($nUserID, $u_emails_id)
{
if ((int)$nUserID > 0 && (int)$u_emails_id > 0) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('e.*'));
$query->from($db->quoteName(CRMADATBAZIS . '.u_emails', 'e'));
$query->where($db->quoteName('e.nUserID') . ' = ' . $db->quote($nUserID));
$query->where($db->quoteName('e.u_emails_id') . ' = ' . $db->quote($u_emails_id));
$db->setQuery($query);
$exist = $db->loadObjectList();
if (!empty($exist)) {
$db->setQuery("DELETE FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE `nUserID`='" . $nUserID . "' AND `u_emails_id`='" . (int)$u_emails_id . "' LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_DEL_EMAIL') . ': ' . $exist[0]->email);
}
}
}
public function saveNewsletters($nUserID = 0, $ids = array())
{
if ((int)$nUserID > 0) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('u.*'));
$query->from($db->quoteName(CRMADATBAZIS . '.users', 'u'));
$query->where($db->quoteName('u.nUserID') . ' = ' . $db->quote($nUserID));
$crmUser = $db->loadObjectList();
$crmUser = $crmUser[0];
/*
if ($crmUser->bNewsletter=='Y' && !isset($_POST['bNewsletter'])) // letiltas
{
$db->setQuery("UPDATE `".CRMADATBAZIS."`.`users` SET `bNewsletter`='N' WHERE nUserID=".(int)$nUserID." LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID,JText::_('MOD_ARCHLINE_NEWSLETTER_DISABLED'),array('nTopicID'=>(JFactory::getLanguage()->getTag()=='hu-HU'?54:166)));
}
if ( (is_null($crmUser->bNewsletter) || $crmUser->bNewsletter=='N') && isset($_POST['bNewsletter'])) // engedélyezés
{
$db->setQuery("UPDATE `".CRMADATBAZIS."`.`users` SET `bNewsletter`='Y' WHERE nUserID=".(int)$nUserID." LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID,JText::_('MOD_ARCHLINE_NEWSLETTER_ENABLED'),array('nTopicID'=>(JFactory::getLanguage()->getTag()=='hu-HU'?38:150)));
}
*/
$db->setQuery("SELECT * FROM `" . CRMADATBAZIS . "`.`u_emails` WHERE nUserID=" . (int)$nUserID . ";");
$exist = $db->loadObjectList();
if (is_array($exist) && count($exist)) {
foreach ($exist as $row) {
if (is_null($ids) || (is_array($ids) && empty($ids))) {
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=0 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_UNSUBSCRIBE_NEWSLETTER') . ': ' . $row->email);
} else {
if ($row->newsletter == 0 && in_array($row->u_emails_id, $ids)) /* elötte nem volt és utána be lett pipálva => FELIRATKOZOTT */ {
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=1 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_SUBSCRIBE_NEWSLETTER') . ': ' . $row->email);
}
if ($row->newsletter == 1 && !in_array($row->u_emails_id, $ids)) /* elötte be volt és utána nem volt bepipálva => LEIRATKOZOTT */ {
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`u_emails` SET `newsletter`=0 WHERE u_emails_id=" . $row->u_emails_id . " AND nUserID=" . (int)$nUserID . " LIMIT 1;");
$db->execute();
self::insertUserHistory($nUserID, JText::_('MOD_ARCHLINE_UNSUBSCRIBE_NEWSLETTER') . ': ' . $row->email);
}
}
}
}
}
}
public function insertUserHistory($nUserID = 0, $strInfo = "", $tomb = array())
{
if ((int)$nUserID > 0 && $strInfo > '') {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$item = array(
'nUserID' => $nUserID,
'nTopicID' => (isset($tomb['nTopicID']) && (int)$tomb['nTopicID'] > 0 ? (int)$tomb['nTopicID'] : (JFactory::getLanguage()->getTag() == 'hu-HU' ? 364 : 365)),
'dateEvent' => (isset($tomb['dateEvent']) && $tomb['dateEvent'] > '' ? $tomb['dateEvent'] : date('Y-m-d', time())),
'strPlace' => (isset($tomb['strPlace']) && $tomb['strPlace'] > '' ? $tomb['strPlace'] : 'web'),
'strInfo' => $strInfo,
'nManagerID' => (isset($tomb['nManagerID']) && (int)$tomb['nManagerID'] > 0 ? $tomb['nManagerID'] : 36),
'insertDate' => (isset($tomb['insertDate']) && $tomb['insertDate'] > '' ? $tomb['insertDate'] : date('Y-m-d H:i:s', time())),
);
foreach ($item as $v) $values[] = $db->quote($v);
$query->insert("`" . CRMADATBAZIS . "`.`u_history`")->columns($db->quoteName(array_keys($item)))->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
}
}
public static function getUserData($nUserID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT u.strName AS strName, e.email AS email
FROM cl_hlusers.users u
LEFT JOIN cl_hlusers.u_emails e ON u.nUserID = e.nUserID
WHERE u.nUserID = {$nUserID} AND e.default = 1
LIMIT 1";
$db->setQuery($query);
return $db->loadObject();
}
public static function getYearFromVerID($verID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT v.year AS programYear FROM cl_hlusers.p_versions v WHERE v.verID = {$verID} LIMIT 1";
$db->setQuery($query);
$years = $db->loadObject();
return $years->programYear;
}
public static function getProgramData($prID)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT p.*, h.maintenance_valid AS maintenance_valid
FROM cl_hlusers.h_programs p
LEFT JOIN cl_hlusers.hardlock h ON h.hlNum = p.prHlNum
WHERE prID = {$prID}
LIMIT 1";
$db->setQuery($query);
return $db->loadObject();
}
public static function getPreviousProgramData($prHlNum)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT * FROM cl_hlusers.h_programs
WHERE prHlNum = '{$prHlNum}'
GROUP BY prPass
ORDER BY prVerID DESC
LIMIT 1,1";
$db->setQuery($query);
return $db->loadObject();
}
public static function sendMaintenanceEmail($nUserID, $strName, $strEmail, $prID)
{
$programData = ModAlusersHelper::getProgramData($prID);
$programYear = ModAlusersHelper::getYearFromVerID($programData->prVerID);
$maint_expiration = '';
if ($programYear > date('Y') && date('Y-m-d') <= date('Y') . '-12-31') {
$previousProgramData = ModAlusersHelper::getPreviousProgramData($programData->prHlNum);
$programYear = ModAlusersHelper::getYearFromVerID($previousProgramData->prVerID);
$programData->prFizetve = $previousProgramData->prFizetve;
}
if ($programData->prFizetve == '2050-01-01') {
$hlNum = substr($programData->prPass, 0, 6);
$dateYear = $programYear;
$maint_expiration = $dateYear . '.12.31';
$info = '"A Cadline Kft-vel létrejött, a ' . $hlNum . ' kulcsra vonatkozó KARBANTARTÁSI SZERZŐDÉS lemondására vonatkozó kérelmét megkaptuk.
A KARBANTARTÁSI SZERZŐDÉS lemondását ' . $dateYear . '.12.31. dátummal elfogadtuk.
Az ARCHLine.XP ' . $programYear . ' végleges licenc aktiválási kódja a felhasználói fiókban található.
A terméktámogatás ' . $dateYear . '.12.31-ig vehető igénybe.
A jelen karbantartási szerződéssel kapcsolatban tovább számlát nem küldünk."';
$msg = 'Kedves ' . $strName . ',
<br><br>
A Cadline Kft-vel létrejött, a ' . $hlNum . ' kulcsra vonatkozó KARBANTARTÁSI SZERZŐDÉS lemondására vonatkozó kérelmét megkaptuk.<br>
A KARBANTARTÁSI SZERZŐDÉS lemondását ' . $dateYear . '.12.31. dátummal elfogadtuk.
<br><br>
Az ARCHLine.XP ' . $programYear . ' végleges licenc aktiválási kódja a felhasználói fiókban található.<br>
A terméktámogatás ' . $dateYear . '.12.31-ig vehető igénybe.<br>
A jelen karbantartási szerződéssel kapcsolatban tovább számlát nem küldünk.
<br><br>
Üdvözlettel<br>
Hárosi Erika<br>
Értékesítési vezető<br>
CadLine Kft<br>
1037 Budapest, Montevideo u. 3/B.<br>
Tel: 06-30-491-3959
<br><br>
Web: <a href="https://www.archline.hu/">www.archline.hu</a><br>
e-mail: <a href="mailto:erika.harosi@cadline.hu">erika.harosi@cadline.hu</a><br>
Skype: cadline_support<br><br>
<img src="https://www.archline.hu/public/Logo_corner_up.png" alt="www.archline.hu">';
$topicID = 44;
$strPlace = date('Y', strtotime('+1 year')); // $prYear->format('Y')
if ($programData->prContact == 6) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`h_programs` SET prContact = 0 WHERE prPass = '{$programData->prPass}';");
$db->execute();
}
} else {
$info = '"A Cadline Kft-vel létrejött, a ' . substr($programData->prPass, 0, 6) . ' kulcsra vonatkozó KARBANTARTÁSI SZERZŐDÉS lemondására vonatkozó kérelmét megkaptuk.
Kollégánk hamarosan felveszi Önnel a kapcsolatot."';
$msg = 'Kedves ' . $strName . ',<br>
A Cadline Kft-vel létrejött, a ' . substr($programData->prPass, 0, 6) . ' kulcsra vonatkozó KARBANTARTÁSI SZERZŐDÉS lemondására vonatkozó kérelmét megkaptuk.<br>
Kollégánk hamarosan felveszi Önnel a kapcsolatot.
<br><br>
Üdvözlettel<br>
CadLine Kft<br>
1037 Budapest, Montevideo u. 3/B.<br>
Tel: +36 30 095 3685
<br><br>
Web: <a href="https://www.archline.hu/">www.archline.hu</a><br><br>
<img src="https://www.archline.hu/public/Logo_corner_up.png" alt="www.archline.hu">';
$msg = 'Kedves ' . $strName . ',<br>
A Cadline Kft-vel létrejött, a ' . substr($programData->prPass, 0, 6) . ' kulcsra vonatkozó KARBANTARTÁSI SZERZŐDÉS lemondására vonatkozó kérelmét megkaptuk.<br><br>';
// Karbantartasi - egyosszeg
if ($programData->prContact == 2) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT huf FROM cl_hlusers.o_products WHERE id = 1297 LIMIT 1";
$db->setQuery($query);
$maintenance = $db->loadObject();
$maintenancePrice = (int)$maintenance->huf / 4;
$prYear = new DateTime($programYear);
$prYear->modify('+1 year');
$expYear = $prYear->format('Y');
$prevProgramYear = ModAlusersHelper::getYearFromVerID($programData->prVerID - 1);
$msg .= '<b>„Időbeli hatály, felmondási feltételek</b>
<br>
<em>…A szerződés határozott időtartamának lejártával a szerződés határozatlan idejűvé alakul át és amennyiben egyik fél sem mondja fel az alábbi feltételek szerint, ezt követően automatikusan megújul egymást követő egy (1) naptári éves időtartamokra. <br>
A határozatlan idejű szerződést bármelyik szerződő fél jogosult 90 (kilencven) napos felmondási határidővel írásban küldött értesítés útján bármikor felmondani. <br>
CADLINE a következő naptári év kezdete előtt legkésőbb november 30-ig email-ben tájékoztatja Licencjogosultat a következő naptári évi díjmódosulásról. Amennyiben a Licencjogosult a módosult díjról az évforduló előtt nem nyilatkozik, CADLINE a módosult díjat tekinti érvényesnek. Amennyiben a Licencjogosult a módosult díjat az évforduló előtt írásban elutasítja, a szerződés az évfordulón megszűnik.”</em>
<br><br>
A szerződés alapján a lemondására két lehetőség van:
<br>
<ol>
<li>
<b>Szerződés lemondása a jövő évre, tehát ' . $expYear . '.01.01-től</b>
<br>
Ebben az esetben:
<ul style="list-style-type:disc">
<li>Várjuk a már kiállított számla rendezését.</li>
<li>A számla rendezése után jogosult lesz az ARCHLine.XP ' . $programYear . ' licenc korlátlan idejű használatára és terméktámogatásra ' . $programYear . '.12.31-ig.</li>
<li>A KARBANTARTÁSI SZERZŐDÉS ' . $programYear . '.12.31. napján megszűnik, több számlát nem küldünk.</li>
</ul>
</li>
<br>
<li>
<b>Szerződés lemondása 90 napra</b>
<br>
Ebben az esetben:
<ul style="list-style-type:disc">
<li>A karbantartási szerződés lejárata: a felmondás napja + 90 nap.</li>
<li>A már kiállított éves karbantartási számlát sztornírozzuk.</li>
<li>Új számlát állítunk ki, 8 napos fizetési határidővel, a szerződés lejáratának időszakára.</li>
<li>A továbbiakban az ügyfél jogosult az ARCHLine.XP ' . $prevProgramYear . ' licenc korlátlan idejű használatára, valamint a szerződés lejáratáig terméktámogatásra</li>
<li>A karbantartási szerződés a lejárat napján megszűnik, ezt követően további számla nem kerül kiállításra</li>
</ul>
</li>
</ol>
<br>
Kérjük, e-mailben jelezze felénk, hogy a két opcióból melyiket választja az <a href="mailto:office@cadline.hu">office@cadline.hu</a> email címen.<br>
A lemondást nem szükséges levélben is elküldeni.
<br><br>
Üdvözlettel<br>
CadLine Kft<br>
1037 Budapest, Montevideo u. 3/B.<br>
Tel: +36 30 095 3685
<br><br>
Web: <a href="https://www.archline.hu/">www.archline.hu</a><br><br>
<img src="https://www.archline.hu/public/Logo_corner_up.png" alt="www.archline.hu">';
$info = 'Szerződés lemondás folyamata - két lehetőség van:
<b>Szerződés lemondása ' . date('Y', strtotime('+1 year')) . '.01.01-től</b>,
vagy
<b>Szerződés lemondása 90 napra</b>
A részletekről e-mailt küldtünk, várjuk a válaszát.';
}
// Karbantartasi - negyedeves
if ($programData->prContact == 6) {
$dateYear = date('Y-m-d');
$needInvoice = false;
$expire = '';
if (ModAlusersHelper::QuaterlyPaid($programData->prFizetve)) {
$expire = ModAlusersHelper::getQuarterlySupportPaid($programData->prFizetve);
} else {
$expire = ModAlusersHelper::getQuarterlySupportNotPaid($programData->prFizetve);
$needInvoice = true;
}
$maint_expiration = str_replace(".", "-", $expire);
$msg .= '<b>Szerződés lemondás folyamata</b><ul style="list-style-type:disc">';
if ($needInvoice) {
$msg .= '<li>Várjuk a már kiállított számla rendezését.</li>';
}
$msg .= '<li>A KARBANTARTÁSI SZERZŐDÉS ' . str_replace("-", ".", $expire) . '. napján megszűnik.</li>';
if (!$needInvoice) {
$msg .= '<li>A jelen karbantartási szerződéssel kapcsolatban tovább számlát nem küldünk.</li>';
}
$msg .= '</ul>';
$msg .= '<br>
Üdvözlettel<br>
CadLine Kft<br>
1037 Budapest, Montevideo u. 3/B.<br>
Tel: +36 30 095 3685
<br><br>
Web: <a href="https://www.archline.hu/">www.archline.hu</a><br><br>
<img src="https://www.archline.hu/public/Logo_corner_up.png" alt="www.archline.hu">';
$info = '<b>Szerződés lemondás folyamata</b>';
if ($needInvoice) {
$info .= '
Várjuk a már kiállított számla rendezését.';
}
$info .= '
A KARBANTARTÁSI SZERZŐDÉS ' . $expire . ' napján megszűnik, több számlát nem küldünk.';
$hlNum = substr($programData->prPass, 0, 6);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "SELECT prVerID FROM cl_hlusers.h_programs WHERE prHlNum = '{$hlNum}' AND prVerID < {$programData->prVerID} ORDER BY prVerID DESC LIMIT 1";
$db->setQuery($query);
$prevProgram = $db->loadObject();
$currentDate = date('Y-m-d');
$currentTime = strtotime($currentDate);
if ($programData->prFizetve == date('Y') . '-10-31' && $currentTime >= strtotime(date('Y') . '-10-01')) {
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`h_programs` SET prContact = 0 WHERE prPass = '{$programData->prPass}';");
$db->execute();
} else {
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`h_programs` SET prContact = 0, prStat = 0 WHERE prHlNum = '{$hlNum}' AND prVerID = {$prevProgram->prVerID};");
$db->execute();
$db->setQuery("DELETE FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = '{$programData->prPass}';");
$db->execute();
}
}
// Karbantartasi - reszlet
if ($programData->prContact == 7) {
$msg .= 'Felhívjuk a figyelmét, a szerződés idő előtti felmondása esetén a továbbiakban nem lesz jogosult a frissített változat használatára.
<br><br>
Kollégánk hamarosan felveszi Önnel a kapcsolatot.
<br><br>
Üdvözlettel<br>
CadLine Kft<br>
1037 Budapest, Montevideo u. 3/B.<br>
Tel: +36 30 095 3685
<br><br>
Web: <a href="https://www.archline.hu/">www.archline.hu</a><br><br>
<img src="https://www.archline.hu/public/Logo_corner_up.png" alt="www.archline.hu">';
$info = 'Felhívjuk a figyelmét, a szerződés idő előtti felmondása esetén a továbbiakban nem lesz jogosult a frissített változat használatára.
Kollégánk hamarosan felveszi Önnel a kapcsolatot. ';
}
$topicID = 322;
$strPlace = '';
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$db->setQuery("INSERT INTO `" . CRMADATBAZIS . "`.`u_history` (`nUserID`,`nTopicID`,`dateEvent`,`strPlace`,`nManagerID`,`insertDate`,`strInfo`) VALUES ('" . $nUserID . "', '" . $topicID . "', '" . date('Y-m-d', time()) . "', '" . $strPlace . "','36','" . date('Y-m-d H:i:s', time()) . "', '{$info}');");
$db->execute();
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->Username = 'www.smtp@cadline.hu';
$mail->Password = 'Chieng0t';
$mail->WordWrap = 50;
$mail->From = 'info@cadline.hu';
$mail->FromName = 'www.archline.hu';
$mail->AddAddress($strEmail);
$mail->AddBCC('office@cadline.hu');
$mail->AddBCC('info@cadline.hu');
$mail->IsHTML(true);
$mail->Subject = 'Karbantartási szerződés lemondása - ' . $strName;
$mail->Body = $msg;
$mail->Send();
$hlNum = substr($programData->prPass, 0, 6);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$db->setQuery("UPDATE `" . CRMADATBAZIS . "`.`hardlock` SET
maintenance_valid = 0, maint_expiration = '{$maint_expiration}'
WHERE hlNum = '" . $hlNum . "' LIMIT 1;");
$db->execute();
}
} // end of class