<?php
class Cron extends Controller
{
	
	function Cron(){
		parent::Controller();
	}
	
	function index(){
		print "index";
	}
	
	// minden hajnal 01:30-kor	- trial letöltőknek automatikus e-mail 20 nappal a letöltés után
	function downloademail(){
		$this->load->model('mclusers');
		$kiirni = "";
		$log    = "\n".date('Y-m-d H:i',time()).":";
		
		$elteltnap = 20;
		
		$maxtime = time()-($elteltnap*24*60*60);
		$mintime = time()-(($elteltnap+1)*24*60*60);
		
		// azok a magyar letöltők akik nem kaptak még e-mailt
		$sql  = "SELECT stat_id, stat_email, stat_first, stat_country FROM download_stats ";
		$sql .= " WHERE stat_pron='' AND stat_date>{$mintime} AND stat_date<{$maxtime} ";
		$sql .= " AND stat_lang='hun' ";
		$sql .= " GROUP BY stat_email";
		
	//	print "sql: ".$sql."<br><br>";
		
		$letoltokhun = $this->db->query($sql)->result();
		$pagehun   = $this->mpages->get_row(783);
		
		$this->load->library('email');
		$this->email->initialize();
		
		foreach($letoltokhun as $letolto){
			
			// felhasználónak ne küldjön levelet (van-e aktiv kulcsa)
			$nUserID = $this->mclusers->get_nUserIDByEmail($letolto->stat_email,'hun');
			if(is_numeric($nUserID) && $nUserID>0){
				$kulcssql = "SELECT hlNum FROM ".CRMADATBAZIS.".hardlock WHERE hlUser='{$nUserID}' AND hlStat=1";
				$kulcs = $this->db->query($kulcssql)->row();
				if(isset($kulcs->hlNum) && $kulcs->hlNum!=""){
					$kiirni .= "\n\nnincs elkuldve: ".print_r($letolto,true);//.$leveltext;
					$log    .= "\nHUN nincs elkuldve (felhasznalo): ".$letolto->stat_email." ".$letolto->stat_first." ".$letolto->stat_id." (hun)";
					continue;
				}
			}
			
			$leveltext = str_ireplace('#nev#', $letolto->stat_first, $pagehun->page_body );
			$this->email->setFrom('info@archline.hu', 'CadLine');
			$this->email->subject('ARCHLine.XP letoltes');
			$this->email->message($leveltext);
			
			$this->email->send($letolto->stat_email, 'smtp');
			$this->email->clear();
			
			$ujletolto['stat_pron'] = "1";
			$this->db->update('download_stats',$ujletolto,"stat_id=".$letolto->stat_id);
			
			$kiirni .= "\n\nelkuldve: ".print_r($letolto,true);//.$leveltext;
			$log    .= "\nHUN elkuldve: ".$letolto->stat_email." ".$letolto->stat_first." ".$letolto->stat_id." (hun)";
			
	//		sleep(2);
		}
		
		
		/***********************************************************************************/
		
		// azok a NEM magyar letöltők akik nem kaptak még e-mailt
		$sql  = "SELECT stat_id, stat_email, stat_first, stat_country FROM download_stats ";
		$sql .= " WHERE stat_pron='' AND stat_date>{$mintime} AND stat_date<{$maxtime} ";
		$sql .= " AND stat_lang!='hun' ";
		$sql .= " GROUP BY stat_email";
		
		
		//print "<br><br><br><br>angol sql: ".$sql."<br><br>";
		
		$letoltokeng = $this->db->query($sql)->result();
		$pageeng   = $this->mpages->get_row(784);
		
		$this->load->library('email');
		$this->email->initialize();
		
		foreach($letoltokeng as $letolto){
			
			// felhasználónak ne küldjön levelet (van-e aktiv kulcsa)
			$nUserID = $this->mclusers->get_nUserIDByEmail($letolto->stat_email,'eng');
			if(is_numeric($nUserID) && $nUserID>0){
				$kulcssql = "SELECT hlNum FROM ".CRMADATBAZIS.".hardlock WHERE hlUser='{$nUserID}' AND hlStat=1";
				$kulcs = $this->db->query($kulcssql)->row();
				if(isset($kulcs->hlNum) && $kulcs->hlNum!=""){
					$kiirni .= "\n\nnincs elkuldve: ".print_r($letolto,true)."nUserID: ".$nUserID.", hlnum: ".$kulcs->hlNum;
					$log    .= "\nENG nincs elkuldve (felhasznalo): ".$letolto->stat_email." ".$letolto->stat_first." ".$letolto->stat_id." (eng), hlNum: ".$kulcs->hlNum." , user: ".$nUserID;
					continue;
				}
			}
			
			$leveltext = str_ireplace('#nev#', $letolto->stat_first, $pageeng->page_body );
			$this->email->setFrom('info@archlinexp.com', 'ARCHLine');
			$this->email->subject('ARCHLine.XP download');
			$this->email->message($leveltext);
			
			$this->email->send($letolto->stat_email, 'smtp');
			$this->email->clear();
			
			$ujletolto['stat_pron'] = "1";
			$this->db->update('download_stats',$ujletolto,"stat_id=".$letolto->stat_id);
	
			$kiirni .= "\n\nENG elkuldve: ".print_r($letolto,true);//.$leveltext;
			$log    .= "\nENG elkuldve: ".$letolto->stat_email." ".$letolto->stat_first." ".$letolto->stat_id." (eng)";
			
			print "<hr>elkuldve: ";print_r($letolto);
			
	//		sleep(2);
		}
		
		$record['osztaly'] = "cron";
		$record['fv'] = "downloademail";
		$record['hiba'] = $kiirni;
		$record['datum'] = date('Y-m-d H:i',time());
		$this->db->insert('a_hibak',$record);
		
		exec("echo '{$log}' >> public/download_email.txt");
	}
	
	
	// minden nap 07:30-kor		- kék / sárga könyvből üzeneteket elküldeni e-mailben
	function messages_email(){
		
		$managerek = array("25", "10");	// egyelore csak Illesnek es nekem
		
		$this->load->library('email');
		$this->email->initialize();
		
		$kiirni = "";
		
		foreach( array(CRMADATBAZIS) as $db ){
		foreach( $managerek as $i){	// foreach managers
			$ma = date("Y-m-d");
			$this->email->setFrom('info@cadline.hu', 'CadLine');
			
			$mailsql = "SELECT strMail FROM `{$db}`.managers WHERE nManagerID={$i}";
			$mailrow = $this->db->query($mailsql)->row();
			$email = $mailrow->strMail;
			
			if(!$email)
				continue;
			
			if($email == "barthaattila@hotmail.com")
				$email = "eszter@cadline.hu";
			
			$query = "SELECT nMsgID, strTopic, strMsg, nUserID FROM `{$db}`.`u_messages` WHERE nManagerID={$i} AND `dateSend` = '{$ma}' AND bFlag=0 ";
			
			$result = $this->db->query($query)->result();
			
			foreach( $result as $row ){		// foreach messages
				$message = $row->strMsg."<br><br>";
				$message .= "<a href='https://crm.cadline.hu/hu/users/show/".$row->nUserID."'>";
				$message .= "https://crm.cadline.hu/hu/users/show/".$row->nUserID;
				$message .= "</a>";
				
				$this->email->subject($row->strTopic);
				$this->email->message($message);
				$elkuldve = $this->email->send($email, 'smtp');
				
				print "kuldom: ".$email."-nek: ".$message;
				
				if($elkuldve){
					$valtoztatas['bFlag'] = 1;
					$this->db->update("{$db}.u_messages",$valtoztatas,"nMsgID=".$row->nMsgID);
					$kiirni .= " elkuldve";
				}
				
				$this->email->clear();
			}
			
			$kiirni .= "<br /><br />";
		}
		}
		
		print $kiirni;
		
		/*$record['osztaly'] = "cron";
		$record['fv'] = "messages_email";
		$record['hiba'] = strip_tags($kiirni);
		$record['datum'] = date('Y-m-d H:i',time());
		$this->db->insert('a_hibak',$record);*/
		
	}
	
	
	// minden órában 			- excel feltöltések mennek-e
	function elofizexcelcheck(){
		$utolsofajl = filemtime( PATH_WEBSITE."fizetesek" );
		print "utolso: ".date("Y-m-d H:i:s",$utolsofajl);
		$log = "\n".date("Y-m-d H:i:s")."\n\t";
		
		if( time()-(60*60) > $utolsofajl){
			// már egy órája nincs feltöltés
			
			$this->load->library('email');
			$this->email->initialize();
			
			$this->email->setFrom('info@archline.hu', 'CadLine');
			$this->email->subject('Hiba - Excel fizetesek feltoltes');
			$this->email->message("Már több mint egy órája nincs feltöltés. Utolsó feltöltés időpontja: ".date("Y-m-d H:i:s",$utolsofajl));
			
			$this->email->send("bodnart@cadline.hu", 'smtp');
			$log .= "hiba volt, utolso: ".date("Y-m-d H:i:s",$utolsofajl);
		}
		else{
			$log .= "rendben.";
		}
		
		exec("echo '{$log}' >> public/log_fizetesek_excel.txt");
		
	}
	
	// előfizetők tábla ürítése hajnal 02:00-kor
	function elofizurites(){
		$sql = "TRUNCATE TABLE ".CRMADATBAZIS.".t_excelfizetes";
		$sql2 = "TRUNCATE TABLE ".CRMADATBAZIS.".temp_excelfizetes";
		$this->db->query($sql);
		$this->db->query($sql2);
	}
	
	
	// minden nap 06:00-kor		- azok az aktív cserélt kulcsok, ahol a cserét már elindították
	function startchangedhardlock(){
		
		// cserélt aktív kulcsok
		$aktivak = $this->db->query("SELECT hlNum, hlNewHlNum FROM ".CRMADATBAZIS.".hardlock WHERE hlStat=1 AND hlNewHlNum!='' AND hlNewHlNum IS NOT NULL")->result();
		$ujak = array();
		
		foreach($aktivak as $kulcs){
			print "<br>Cserelt: ".$kulcs->hlNum." ";
			$inditott = $this->db->query("SELECT kulcs, datum FROM ".CRMADATBAZIS.".h_aktivalas_infok WHERE kulcs='{$kulcs->hlNewHlNum}' AND leiras LIKE 'programinditas - %' ORDER BY datum LIMIT 0,1")->row();
			if( isset($inditott->datum) && $inditott->datum!="")
				$ujak[$kulcs->hlNum] = $kulcs->hlNewHlNum;
		}
		
		print_r($ujak);
		
		$message = "Ez egy automatikusan generált CRM rendszer üzenet. Azokról a kulcsokról, melyek lecserélésre  kerültek, de a Régi kulcs” még nem volt letiltva. Az üzenet azt jelenti, hogy az „Új Kulcs”-al valaki elinditotta a 2013-as programot. Mindig a teljes listát tartalmazza. Eltünik a régi kulcs, ha a státusa „letiltott” lesz.<br />
		<br />
		A következő cserélt és aktív kulcsok 2013-as programjait indították már el. (A régi kulcs letiltható, amit a viszonteladóval egyeztetni kell!): ";
		foreach($ujak as $k=>$uj){
			$message .= "<br>Régi kulcs: ".$k.", új kulcs: ".$uj;
		}
		
		$this->load->library('email');
		$this->email->initialize();
		$this->email->setFrom('info@cadline.hu', 'CadLine');
		$this->email->subject('Cserélt kulcsok');
		$this->email->message($message);
		$this->email->send('edit@cadline.hu', 'smtp');
		
		
		/* tegnapi hibás programindítások */
		//$this->hibasprograminditasok();
		
	}
	
	// minden nap 6:00-kor			- hibás programindítások listája
	function hibasprograminditasok(){
		$tegnap = date('Y-m-d',time()-(60*60*24));
		$sql = "SELECT kulcs, leiras FROM ".CRMADATBAZIS.".`h_aktivalas_infok` WHERE substring(datum, 1, 10) = '{$tegnap}' AND `kuldo` = 'tips' AND `leiras` LIKE '%error:%' GROUP BY kulcs ORDER BY kulcs ASC";
		$kulcsokobjarray = $this->db->query($sql)->result();
		
		$kulcsok = array();
		
		/*foreach($kulcsokobjarray as $obj){
			$kulcsok[] = $obj->kulcs;
			$hardlock  = $this->db->query("SELECT hlCtrID, hlUser FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='{$obj->kulcs}'")->row();
			$orszag    = $this->db->query("SELECT ctrName FROM ".CRMADATBAZIS.".countries WHERE ctrID=".$hardlock->hlCtrID)->row();
			if(is_numeric($hardlock->hlUser)){
				$user = $this->db->query("SELECT strName FROM ".CRMADATBAZIS.".users WHERE nUserID=".$hardlock->hlUser)->row();
				$user = $user->strName;
			}else
				$user = $hardlock->hlUser;
			$htmlkulcsok .= "<tr>";
			$htmlkulcsok .= "<td>".$obj->kulcs."</td>";
			$htmlkulcsok .= "<td>".$orszag->ctrName."</td>";
			$htmlkulcsok .= "<td>".$user."</td>";
			$htmlkulcsok .= "</tr>";
		}*/
		foreach($kulcsokobjarray as $obj){
			$orszag->ctrName = "";
			$hardlock  = $this->db->query("SELECT hlCtrID, hlUser FROM ".CRMADATBAZIS.".hardlock WHERE hlNum='{$obj->kulcs}'")->row();
			if($hardlock->hlCtrID)
				$orszag    = $this->db->query("SELECT ctrName FROM ".CRMADATBAZIS.".countries WHERE ctrID=".$hardlock->hlCtrID)->row();
			if(is_numeric($hardlock->hlUser)){
				$user = $this->db->query("SELECT strName FROM ".CRMADATBAZIS.".users WHERE nUserID=".$hardlock->hlUser)->row();
				$user = $user->strName;
			}else
				$user = $hardlock->hlUser;
			
			$hibahun = $hibaeng = "";
			if( strstr($obj->leiras,"error: nincs ilyen password") ){
				$hibahun = "nincs ilyen Sorozatszám";
				$hibaeng = "no Serial code in CRM database";
				$support = "Check user figures and send order to CadLine";
			}
			elseif(strstr($obj->leiras,"error: nem aktiv a program") ){
				$hibahun = "nem aktiv a program";
				$hibaeng = "this Serial code is not active";
				$support = "Check why? (Maybe prohibited, but old hardlock was not sent back to office.)";
			}
			elseif(strstr($obj->leiras,"error: nincs vasarlasi idopont") ){
				$hibahun = "nincs vasarlasi idopont a CRM-ben";
				$hibaeng = "no selling date setup in database";
				$support = "Check the User payments and ask new activation code from CadLine";
			}
			elseif(strstr($obj->leiras,"error: hianyzo kod") ){
				$hibahun = "hianyzo Aktiválási kod";
				$hibaeng = "no Activation code in CRM";
				$support = "Check the User payments and ask new activation code from CadLine";
			}
			elseif(strstr($obj->leiras,"error: masik gep van regisztralva") ){
				$hibahun = "masik gep van regisztralva - Feloldás kell";
				$hibaeng = "this is already registered on another PC";
				$support = "Check it, maybe user tried to download more times. <b>If its OK, ask to release from CadLine (after that user can register again and can use for more 60 days!)</b> Its your decision.";
			}
			elseif(strstr($obj->leiras,"error: nincs kifizetve") ){
				$hibahun = "nincs kifizetve, aktiválási kód lejárt";
				$hibaeng = "the program is not paid in CRM system";
				$support = "Check the payment and ask new activation from CadLine";
			}
			elseif(strstr($obj->leiras,"error: tul sok telepites") ){
				$hibahun = "túl sok telepités - Feloldás kell";
				$hibaeng = "the program already registered ";
				$support = "Check, discuss with user why tried it twice, and <b>If its OK, ask to release from CadLine (after that user can register again and can use for more 60 days!)</b> Its your decision.";
			}
			
			preg_match('/\d{16}/', $obj->leiras, $serialmatch);
			
			$ujhibaskulcs = array();
			$ujhibaskulcs['kulcs']   = $obj->kulcs;
			$ujhibaskulcs['serial']  = $serialmatch[0];
			$ujhibaskulcs['ctrName'] = $orszag->ctrName;
			$ujhibaskulcs['user']    = $user;
			$ujhibaskulcs['hibahun'] = $hibahun;
			$ujhibaskulcs['hibaeng'] = $hibaeng;
			$ujhibaskulcs['support'] = $support;
			$kulcsok[]   = $ujhibaskulcs;
		}
		
		$htmlkulcsok = "<table>\n";
		$htmlkulcsok .=  "<tr>\n";
		$htmlkulcsok .=  "\t<th>Hardlock No</th>\n";
		$htmlkulcsok .=  "\t<th>Serial No</th>\n";
		$htmlkulcsok .=  "\t<th>Country</th>\n";
		$htmlkulcsok .=  "\t<th>User name</th>\n";
		$htmlkulcsok .=  "\t<th>error message</th>\n";
		//$htmlkulcsok .=  "\t<th>hibaüzenet</th>\n";
		$htmlkulcsok .=  "\t<th>How should you support ?</th>\n";
		$htmlkulcsok .=  "</tr>\n";
		foreach($kulcsok as $kulcs){
			$htmlkulcsok .=  "<tr>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['kulcs']}</td>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['serial']}</td>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['ctrName']}</td>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['user']}</td>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['hibaeng']}</td>\n";
			//$htmlkulcsok .=  "\t<td>{$kulcs['hibahun']}</td>\n";
			$htmlkulcsok .=  "\t<td>{$kulcs['support']}</td>\n";
			$htmlkulcsok .=  "</tr>\n";
		}
		$htmlkulcsok .= "</table>";
		
		$kulcslista = implode(", ",$kulcsok);
		
		$message = "Ez egy automatikusan generált CRM rendszer üzenet. Azokról a kulcsokról, melyeknél tegnap ({$tegnap}) olyan programindítás történt, amire hiba volt a válasz:<br />
		<br />
		Dear xxxxxxx,<br /><br />
		According to our system report please find the errors from yesterday below.
		";
		//$message .= $kulcslista;
		$message .= $htmlkulcsok;
		$message .= "<br /><br />Best Regards,<br /><br />Edit Grőger";
		
		$this->load->library('email');
		$this->email->initialize();
		$this->email->setFrom('info@cadline.hu', 'CadLine');
		$this->email->subject('Hibas programinditasok');
		$this->email->message($message);
		$this->email->send('edit@cadline.hu', 'smtp');
		//$this->email->send('eszter@cadline.hu', 'smtp');
		
	}
	
}
?>