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
1225 lines
45 KiB
PHP
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
|