www_archline_hu/cadline/docroot/crm_hardlock.class.php
LÁZÁR Imre AI Agent 3a62043b94 feat(cadline): add Cadline docroot apps + root PHPs
Docroot sub-apps beiratkozas/, iskolak/, phpext/; root PHPs crashadmin.php, crm_hardlock.class.php, login-external.php, tips.php, recaptchalib.php, configuration.php (74-byte MightySites multi-site stub, legit). public/ excluded (user data, ~219k files).

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

652 lines
27 KiB
PHP
Raw Blame History

<?php
if (!class_exists('crm_database')) require_once("crm_database.class.php");
if (!isset($crm_config)) require_once('crm_config.php');
class crm_hardlock
{
public static $aktivalasihibak = array(
'error: nincs ilyen password', // ok
'error: nem aktiv a program', // ok
'error: nincs vasarlasi idopont', // ok
'error: hianyzo kod', // ok
'error: masik gep van regisztralva', // ok
'error: nem aktiv regisztracio',
'error: nincs kifizetve',
'error: tul sok telepites'
);
public static $kulcsprverzio = array(
// 2013 interior prof - elofizetes
// '950054' => array('9500549300568130',9,1), // mar eladva
'950055' => array('9500559300623371',9,1),
'950056' => array('9500569300901666',9,1),
'950057' => array('9500579300292771',9,1),
'950058' => array('9500589300939891',9,1),
'950059' => array('9500599300308525',9,1),
'950060' => array('9500609300502875',9,1),
'950061' => array('9500619300525057',9,1),
'950062' => array('9500629300291068',9,1),
'950063' => array('9500639300800628',9,1),
'950064' => array('9500649300993926',9,1),
// 2013 standard - normal
'980104' => array('9801047300709739',7,0),
'980105' => array('9801057300249936',7,0),
'980106' => array('9801067300119100',7,0),
'980107' => array('9801077300009403',7,0),
'980108' => array('9801087300176636',7,0),
'980109' => array('9801097300173361',7,0),
'980110' => array('9801107300987491',7,0),
'980111' => array('9801117300041608',7,0),
'980112' => array('9801127300907455',7,0),
// 2013 studio - normal
'980113' => array('9801136300019297',6,0),
'980114' => array('9801146300953568',6,0),
'980115' => array('9801156300054608',6,0),
'980116' => array('9801166300387538',6,0),
'980117' => array('9801176300559245',6,0),
'980118' => array('9801186300983875',6,0),
'980119' => array('9801196300445516',6,0),
'980120' => array('9801206300502309',6,0),
'980121' => array('9801216300152005',6,0)
);
public static $win10creator_old_isid;
public function __construct()
{
self::$aktivalasihibak = $GLOBALS['aktivalasihibak'];
self::$kulcsprverzio = $GLOBALS['kulcsprverzio'];
self::$win10creator_old_isid = $GLOBALS['win10creator_old_isid'];
}
public static function IsValidPassword($password)
{
if ($password=="") return false;
$ph = popen(PATH_CODEGEN." -IsValidPassword ".$password, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
$result = fgets($ph, 1024);
pclose($ph);
return ($result == 'true');
}
public static function IsValidTimeCode($idokod)
{
if ($idokod=="") return false;
$ph = popen(PATH_CODEGEN." -IsValidDealerCode ".$idokod, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
$result = fgets($ph, 1024);
pclose($ph);
return ($result == 'true');
}
public static function GetDayFromTimeCode($idokod)
{
$command = PATH_CODEGEN." -ParseTimeCode " . $idokod;
$ph = popen($command, "r");
$result = fgets($ph, 1024);
$result = (int)$result;
pclose($ph);
return $result;
}
public static function GetIsidFromTimeCode($idokod)
{
if(!self::IsValidTimeCode($idokod))
return '';
$arrIdokod=explode("-", $idokod);
return $arrIdokod[1];
}
public static function GetVeridFromPassword($password)
{
return substr($password, 7, 2);
}
public static function GetTypeFromPassword($password)
{
return substr($password, 6, 1);
}
public static function GeneratePassword($hlNum, $lan, $type, $version)
{
$country = substr($hlNum, 0, 2);
$number = substr($hlNum, 2, 4);
$type = (int)substr($type,0,1);
$command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
$ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
$password = fgets($ph, 1024);
pclose($ph);
return $password;
}
public static function GenerateTimeCode($pass,$isid,$numOfDays)
{
$command=PATH_CODEGEN." -GenerateTimeCode ".$pass." ".$isid." ".$numOfDays;
$ph=popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat");
$aktkod=fgets($ph, 1024);
pclose($ph);
return ($aktkod);
}
public static function IsLiveKey($serial="")
{
return (substr($serial, 6,1) == 'L');
}
public static function IsSoftwareKey($serial="")
{
if ($serial=="") return false;
$ph = popen(PATH_CODEGEN." -IsSoftwareKey ".$serial, "r") or die("A 'codegen' paranccsal nem veheto fel kapcsolat");
$szoftveres = fgets($ph, 1024);
return ($szoftveres == 'true');
}
public static function AddOrUpdateComputer($npID)
{
crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`computers` WHERE `computer_id`='".$npID."' LIMIT 1;");
$res4=crm_database::getInstance()->fetchAssoc();
if(empty($res4)){
$comp=array(
'computer_id'=>$npID,
'last_mod'=>date('Y-m-d',time()));
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`computers`",$comp);
return crm_database::getInstance()->getInsertedId();
} else {
crm_database::getInstance()->update("`".CRMADATBAZIS."`.`computers`",array('last_mod'=>date('Y-m-d',time())),array('computer_id'=>$npID));
return $res4[0]['id'];
}
}
public static function AddHardlockComputer($hlnum, $compid, $verid)
{
if($verid >= 36) {
crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`hardlock_computers` WHERE hlNum='".$hlnum."' AND computer_id='".$compid."' LIMIT 1;");
$res=crm_database::getInstance()->fetchAssoc();
if(empty($res)) {
$comp=array(
'hlNum'=>$hlnum,
'computer_id'=>$compid);
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock_computers`",$comp);
}
}
}
public static function AddToDebugTable($message)
{
$debug=array(
'data'=>$message,
'insert_date'=>date('Y-m-d H:i:s'));
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`debug_table`",$debug);
}
public static function AddNonprofit($tomb=array())
{
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`nonprofit`",$tomb);
}
public static function AddHardlock($tomb=array())
{
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`hardlock`",$tomb);
}
public static function AddProgram($tomb=array())
{
crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`h_programs`",$tomb);
}
public static function GetTheFirstNotUsedHlNumFromInterval($minHlNum=0,$maxHlNum=0)
{
$ret=0;
if ((int)$minHlNum==0 || (int)$maxHlNum==0) return($ret);
crm_database::getInstance()->query("SELECT LEFT(hlNum,6) AS hlNum FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlStat!=0 AND hlNum>=".(int)$minHlNum." AND hlNum<".(int)$maxHlNum." ORDER BY hlNum;");
$res=crm_database::getInstance()->fetchAssoc();
if (count($res))
{
$allHlNums=range($minHlNum, $maxHlNum);
foreach ($res as $r) { $usedHlNums[]=$r['hlNum']; }
$notUsedHlNums=array_diff($allHlNums,$usedHlNums);
reset($notUsedHlNums);
$ret=current($notUsedHlNums);
}
else
{
$ret=0;
}
return $ret;
}
public static function GetVersion($tomb=array())
{
$ret=array();
if (is_array($tomb) && count($tomb)) {
crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_versions` WHERE `".key($tomb) ."`='".current($tomb)."' LIMIT 1;");
$ret=crm_database::getInstance()->fetchAssoc();
return ($ret[0]);
}
return ($ret);
}
function _Hibajelento($kuldo,$kulcs,$hiba="",$arrGCData=array(),$usstatid=NULL)
{
$tomb=array(
"kulcs"=>$kulcs,
"kuldo"=>$kuldo,
"leiras"=>$hiba,
"statusz"=>"uj",
"datum"=>date('Y-m-d H:i:s',time()),
"ip"=>$_SERVER['REMOTE_ADDR']);
if (isset($usstatid) && (int)$usstatid>0)
$tomb['usID']=$usstatid;
if (count($arrGCData)) {
if (isset($arrGCData['usGCMan'])) $tomb['usGCMan']=trim($arrGCData['usGCMan']); // graphic card manufacture
if (isset($arrGCData['usGCType'])) $tomb['usGCType']=trim($arrGCData['usGCType']); // graphic card type
if (isset($arrGCData['usGCDriverVer'])) $tomb['usGCDriverVer']=trim($arrGCData['usGCDriverVer']); // graphic card driver version
}
crm_database::getInstance()->insert(CRMADATBAZIS.'.h_aktivalas_infok',$tomb);
}
public static function _Getaktivalasikod($serial,$isid="",$idokod="")
{
$voltures = false;
// van-e olyan aktiv program aminek ez a sorozatszama // a/b kulcsok miatt
crm_database::getInstance()->query("SELECT prID, prStat, prActCode, prSellDate FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
$ered2 = crm_database::getInstance()->fetchAssoc();
if(!$ered2)
return "error: nincs ilyen password";
$szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
crm_database::getInstance()->query("SELECT hlStat, hlID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
$res=crm_database::getInstance()->fetchAssoc();
$kulcs=$res[0];
if($kulcs['hlStat']!=1) { // a kulcs aktiv-e
$valasz = "error: nem aktiv a program";
} else { // egyeb hiba
if($kulcs['hlID'] == 64300 || $kulcs['hlID'] == 64897) { //ba Namirial Trial program kulcsa es BIMLadder program kulcsa
$valasz = "error: hianyzo kod";
return $valasz;
} else {
foreach($ered2 as $program) {
if ($program['prSellDate'] == "0000-00-00" || $program['prSellDate'] == NULL ) { // van-e eladasi datum
$valasz = "error: nincs vasarlasi idopont";
} elseif ($program['prActCode'] != "") { // neki megfelelo aktivalasi kod
if ($szoftveres) {
self::$win10creator_old_isid=substr($program['prActCode'],5,4);
$isidOK = (substr($program['prActCode'],5,4)==$isid);
if(!$isidOK && substr($program['prActCode'],7,2) == substr($isid,2,2)) {
$elteltnapok = 0;
sscanf(substr($idokod,11,2),'%02x',$elteltnapok);
$elteltnapok+=self::Convert(substr($idokod,10,1))*256;
$engedelyezettnapok = 0;
sscanf(substr($program['prActCode'],11,2),'%02x',$engedelyezettnapok);
$engedelyezettnapok+=self::Convert(substr($program['prActCode'],10,1))*256;
if($engedelyezettnapok > $elteltnapok ) {
$valasz = "error: win10 creator";
break;
}
}
if ($isidOK) {
$valasz = $program['prActCode']; // aktualis aktivalasi kod
break;
} else {
$valasz = 'error: masik gep van regisztralva';
}
} else {
$valasz = $program['prActCode']; // hardveres kulcs eseten egybol visszaadja az aktualis aktivalasi kodot
break;
}
} else {
$valasz = "error: hianyzo kod"; // nincs beirva a kod
$voltures = true;
}
}
}
}
if ($voltures === true && $valasz == "error: masik gep van regisztralva") { // LAN-os szoftver kulcsos liszensznel ha ezt a liszenszt nem talaltuk de volt ures liszensz, akkor csinalja ezt
$valasz = "error: hianyzo kod";
}
// Kivetel: 30, 34, 39, 41, 43 kulcsok, amik soha nem kapnak tolunk automata hosszabbitast.
// csak a hibat adom vissza
if( self::_Get_aktkod($serial) === true || substr($valasz,0,5) == "error" ) {
return $valasz;
} else {
return;
}
}
public static function _Get_aktkod($kulcs)
{
// isCodeReplyEnabled(hlNum:str(6))
// 2017.12.13. F.Zs.
// Ezekre az esetekre ad vissza TRUE-t a fuggveny (version tabla 1182-es rekord): 30;34;36;38;40;41;42;43;44;47;48;49;82;88;93;94;95;97;98;99;
// 39 - Olaszorszag szandekosan hianyzik, amig a volume contract fennall!
if(self::IsLiveKey($kulcs)) { // A live-ok mindig kommunikalnak a szerverrel 2019
return true;
}
$kulcs = substr($kulcs,0,6);
// a lekerdezes vagy egy mezot ad vissza ver_id=1182 vagy semmit
// pl: SELECT ver_id FROM `www_archline_hu`.`version` WHERE ver_id=1182 AND (`usertype` LIKE '%;360012;%' OR `usertype` LIKE '%;36;%' OR LEFT(`usertype`,3)='36;');
crm_database::getInstance()->query("SELECT ver_id FROM `".JMLADATBAZIS."`.`version` WHERE ver_id=".ACT_VERSION_ID." AND (`usertype` LIKE '%;".$kulcs.";%' OR `usertype` LIKE '%;".substr($kulcs,0,2).";%' OR LEFT(`usertype`,3)='".substr($kulcs,0,2).";')");
$res=crm_database::getInstance()->fetchAssoc();
$re=(object)$res[0];
$ret=( (is_numeric($re->ver_id) && $re->ver_id>0) ? TRUE : FALSE);
return ($ret);
}
public static function GetDayInterval($mettol, $meddig)
{
$command3 = PATH_CODEGEN." -DiffDay ".$mettol." ".$meddig;
$ph = popen($command3, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
$napok = fgets($ph, 1024);
pclose($ph);
return $napok;
}
public static function _Password_gen($hlNum, $lan, $type, $version = 64)
{
$country = substr($hlNum, 0, 2);
$number = substr($hlNum, 2, 4);
if($type == 76) // Live
$type = 'L';
else
$type = (int)substr($type,0,1);
if(substr($hlNum,0,1)=="9") $lan=0;
//ba ez 2018.11.27.tol a bimladder trial kodja! if($country=='91') { return '9100014260913946'; }
$command = PATH_CODEGEN." -Password " . $country . $number . $version . $lan . $type;
$ph = popen($command, "r") or die( "A 'codegen' paranccsal nem veheto fel kapcsolat" );
$password = fgets($ph, 1024);
pclose($ph);
return $password;
}
public static function _Ujtempprogram($adatbazis, $kulcs)
{
$hlNum = $kulcs->hlNum;
if ($hlNum>'' && !array_key_exists($hlNum,self::$kulcsprverzio)) {
// hiba, nincs beallitva hogy mit hozzon letre
$err=array(
"osztaly"=>"version",
"fv"=>"_ujtempprogram",
"hiba"=>"Kulcs: {$hlNum}\nnincs beallitva hogy milyen programot hozzon letre",
"datum"=>date('Y-m-d H:i:s',time()));
crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err);
return;
}
$adatok = self::$kulcsprverzio[$hlNum];
$prTypeID = $adatok[1];
$prContact = $adatok[2];
$prVerCode = 70; // 2013-as program
$prVerID = 13; // 2013-as program
$hlNum = $kulcs->hlNum;
$ctrID = $kulcs->hlCtrID;
$hlLan = $kulcs->hlLan;
$password = self::_Password_gen($hlNum, $hlLan, $prTypeID, $prVerCode);
// program felvetele
$ujprogram = array(
"prHlNum" => $hlNum,
"prTypeID" => $prTypeID,
"prSellDate" => date("Y-m-d"),
"prContact" => $prContact,
"prPass" => $password,
"prLan" => $hlLan,
"prLastMod" => date("Y-m-d H:i:s"),
"prVerID" => $prVerID,
"prInfo" => "automatikusan letrehozva (weben), Share It",
"prCtrID" => $ctrID,
"prHiType" => 1
);
crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
$err2=array(
"osztaly"=>"version",
"fv"=>"_ujtempprogram",
"hiba"=>"Uj program letrehozva, Share It-es, kulcs: {$hlNum}",
"datum"=>date('Y-m-d H:i:s',time()));
crm_database::getInstance()->insert("`".JMLADATBAZIS."`.`a_hibak`",$err2);
// szoftveres kulcsnal annyi program, ahany lanos
if (substr($hlNum,0,1)=="9" && $hlLan>1) {
for($i=1;$i<$hlLan;$i++) {
crm_database::getInstance()->insert(CRMADATBAZIS.".h_programs",$ujprogram);
}
}
crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
"hiHlNum" => $hlNum,
"hiDate" => date("Y-m-d"),
"hiManID" => 0,
"hiTypeID" => 2,
"hiCtrID" => $ctrID
));
crm_database::getInstance()->update(CRMADATBAZIS.'.hardlock',array('hlStat'=>1),array('hlNum'=>$hlNum));
return true;
}
public static function Ujaktivalasikod2($serial,$isid,$idokod)
{
// ha uresek a parameterek, akkor az urlbol veszi
if(!$serial) $serial = ''.$_GET['serial']; // segment(3);
if(!$isid) $isid = ''.$_GET['isid']; // segment(4);
if(!$idokod) $idokod = ''.$_GET['kod']; // segment(5);
// isid kiegeszitese
while(strlen($isid)<4) $isid = "0".$isid;
$szoftveres = self::IsSoftwareKey($serial); // Szoftveres-e 2019
$valasz = self::_Getaktivalasikod($serial,$isid,$idokod);
// csak azok kapnak automatikusan kodot, akiknek megengedjuk vagy akiknel hiba van
if(self::_Get_aktkod($serial)!==true && ($valasz=='error: hianyzo kod' || !in_array($valasz,self::$aktivalasihibak))) {
// azoknal lep ki return-el, akiknek nem jar kod (pl. olaszok) es nincs veluk problema (nem kap error-t)
return;
}
$elteltnap = self::GetDayFromTimeCode($idokod);
if(!is_numeric($elteltnap) && $szoftveres) {
self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"(megjegyzes) telepites idejet nem tudtam megallapitani (isid: {$isid}, idokod: {$idokod}, elteltnap: {$elteltnap})");
$elteltnap = 0; // ennek itt semmi ertelme, mert return-al visszater $this->aktivalasihibak['not_act_prg']
return 'error: nem aktiv regisztracio'; // - 2013. 10. 21.
}
$timeelteltnap = 60*60*24*$elteltnap;
if($valasz == 'error: win10 creator') {
// aktivalasi kod torlese
crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`p_serial_isid` SET `isid`=NULL WHERE serial = '".$serial."' AND isid = '".self::$win10creator_old_isid."' LIMIT 1;");
crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`=NULL,`prActDate`=NULL WHERE `prPass`='".$serial."' AND SUBSTR(prActCode,6,4)='".self::$win10creator_old_isid."' LIMIT 1;");
$valasz = 'error: hianyzo kod';
}
$namirialtrial = (substr($serial,0,6) == '930001');
$bimladdertrial = (substr($serial,0,6) == '910001');
// a paros benne van-e a tablaban, regisztralva van-e
crm_database::getInstance()->query("SELECT id, aktiv, datum FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid ='{$isid}' ORDER BY datum DESC");
$ered=crm_database::getInstance()->fetchAssoc();
if(!$namirialtrial && !$bimladdertrial) {
if(count($ered)!=1) { // regisztraljuk ha nincs benne es meg van szabad regisztracio (lan-os)
// a max(hlLan) ertelmetlen, mivel a hardlock tablaban a hlNum az egyedi azonosito is, igy ertelmetlen a csoportositas
/* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
crm_database::getInstance()->query("SELECT max(hlLan) hlLan FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".substr($serial,0,6)."'");
$res=crm_database::getInstance()->fetchAssoc();
$querydb=$res[0];
$maxtelepites = ($querydb['hlLan']==0) ? 1 : $querydb['hlLan'];
crm_database::getInstance()->query("SELECT id FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='{$serial}' AND isid!='' AND isid IS NOT NULL");
$telepitett = crm_database::getInstance()->fetchAssoc();
/* ez a blokk be kell keruljon az if ($szoftveres) agon belulre */
if($szoftveres && count($telepitett)>=$maxtelepites) {
$ret=($querydb['hlLan']>1 ? "error: tul sok telepites" : "error: masik gep van regisztralva");
return ($ret);
}
$regtelepites = date('Y-m-d H:i:s',(time())-$timeelteltnap);
crm_database::getInstance()->insert(CRMADATBAZIS.'.p_serial_isid',array(
"serial"=>$serial,
"isid"=>$isid,
"kod"=>$idokod,
"datum"=>$regtelepites,
"ip"=>$_SERVER['REMOTE_ADDR'],
"aktiv"=>1));
} elseif($ered[0]['aktiv']!=1) {
return "error: nem aktiv regisztracio";
} else {
$regtelepites = substr($ered[0]['datum'],0,10);
}
}
// ha Share-It-es meg nem letezo program
if($valasz == "error: nincs ilyen password" && $serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio)) {
crm_database::getInstance()->query("SELECT * FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
$res=crm_database::getInstance()->fetchAssoc();
$kulcs=(object)$res[0];
self::_Ujtempprogram(CRMADATBAZIS, $kulcs);
$valasz = "error: hianyzo kod";
}
// ha nincs aktivalasi kodja, akkor generalni neki
if($valasz == "error: hianyzo kod") {
crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='{$serial}'");
$res=crm_database::getInstance()->fetchAssoc();
$program=(object)$res[0];
if($namirialtrial || $bimladdertrial) {
$timeMettol = time()-$timeelteltnap;
$mettol = date('Y-m-d',$timeMettol);
if($program->prFizetve) {
$fizetvetime = strtotime($program->prFizetve);
$meddig = date('Y-m-d',$fizetvetime); // vege - telepites
} else {
return "error: nincs kifizetve";
}
$napok = self::GetDayInterval($mettol, $meddig);
$aktkod = self::GenerateTimeCode($serial, $isid, $napok);
$aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
return $aktkod;
} else {
$timeszerzodes = strtotime($program->prSellDate);
$timetelepites = time()-$timeelteltnap;
$maxtelepites = max($timeszerzodes,$timetelepites);
$maxdatetelepites = date('Y-m-d',$maxtelepites);
if(!$szoftveres && $program->prSellDate!='' && $program->prSellDate!='0000-00-00') {
$maxdatetelepites = substr($program->prSellDate,0,10);
}
if($program->prFizetve) {
$fizetvetime = strtotime($program->prFizetve);
$meddig = date('Y-m-d',$fizetvetime); // vege - telepites
} elseif (substr($serial,0,2)=="99" || ($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))) {
$meddig = date('Y-m-d',time() + 30*24*60*60); // eloszor 30 napot kap
} else {
return "error: nincs kifizetve";
}
// mostani ido nagyobb mint ameddig jar
if( date('Y-m-d',time()) > $meddig ) {
return $valasz;
}
$napok = self::GetDayInterval($maxdatetelepites, $meddig);
if($serial>'' && array_key_exists(substr($serial,0,6),self::$kulcsprverzio))
$napok = 30;
if($meddig == '2050-01-01')
$napok=3583;
$aktkod = self::GenerateTimeCode($serial, $isid, $napok);
$aktkod=(self::IsValidTimeCode($aktkod) ? $aktkod : '');
$serial = trim(addslashes($serial));
crm_database::getInstance()->query("SELECT hlCtrID FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='".substr($serial,0,6)."'");
$res=crm_database::getInstance()->fetchAssoc();
$hl=(object)$res[0];
$hlctrid = $hl->hlCtrID;
crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_programs` SET `prActCode`='{$aktkod}', prActDate='{$maxdatetelepites}', prFizetve='{$meddig}' WHERE `prPass`='{$serial}' AND (prActCode='' OR prActCode IS NULL) LIMIT 1");
// internetes aktivalas esem<65>ny
crm_database::getInstance()->insert(CRMADATBAZIS.".h_history",array(
"hiHlNum"=>$program->prHlNum,
"hiDate"=>date('Y-m-d',time()),
"hiManID"=>0,
"hiTypeID"=>16,
"hiTime"=>date('Y-m-d H:i:s',time()),
));
self::_Hibajelento("ujaktivalasikod2",substr($serial,0,6),"felvettem: {$query}");
}
return $aktkod;
}
return $valasz;
}
public static function Convert($betu)
{
$ret=0;
switch (strtoupper($betu))
{
case 'A' : { $ret=0; break; }
case 'B' : { $ret=1; break; }
case 'C' : { $ret=2; break; }
case 'D' : { $ret=3; break; }
case 'E' : { $ret=4; break; }
case 'F' : { $ret=5; break; }
case 'G' : { $ret=6; break; }
case 'H' : { $ret=7; break; }
case 'I' : { $ret=8; break; }
case 'J' : { $ret=9; break; }
case 'K' : { $ret=10; break; }
case 'L' : { $ret=11; break; }
case 'M' : { $ret=12; break; }
case 'N' : { $ret=13; break; }
}
return ($ret);
}
}
?>