コード例 #1
0
ファイル: kapcsolatoks.php プロジェクト: utopszkij/lmp
	/**
	  * Belső rutin a CSV importhoz ez a régi prg CSV -ét dolgozza fel
	  * egy csomó javitást is végez az adatokon
	  * csvRow -ból $item objektumot állít elő
	  * @return Item object ha formailag jó az adat, false ha formailag nem jó
	  */
	protected function getItemFromCSV_old($csvRow, $kapcsolatModel, &$errorInfo) {
		/* DBG
		foreach ($csvRow as $fn => $fv)
		  echo $fn.'='.$fv.'; ';
		echo '<br>';
		*/
		
	    $db = JFactory::getDBO();
		$jo = true;
		// üres rekord létrehozása
		$item = $kapcsolatModel->getItem(0);
		// adat olvasás a CSV rekordból az $item -be
		$item->kapcs_id = (int)$csvRow[0];
		$item->nev1 =  trim($csvRow[1]);
		$item->nev3 = trim($csvRow[2]);
		$item->email = trim($csvRow[3]);
		$item->telefon = trim($csvRow[4]);
		$item->telepules = trim($csvRow[5]);
		$item->irsz = trim($csvRow[6]);
		$item->utca = trim($csvRow[7]);
		$item->kjelleg = '';
		$item->hazszam = 0;
		$item->cimkieg = '';
		$item->megjegyzes = trim($csvRow[8]);
		$item->kategoria_id = trim($csvRow[9]);
		$item->terszerv_id = trim($csvRow[10]);
		$item->cimkek = trim($csvRow[11]);

		
		// adat standartizálás az $item -ben
		$item->telefon = stdTelefonszam($item->telefon); 
		//$item->nev1 = mb_ucfirst(mb_strtolower($item->nev1,'utf8'));
		//$item->nev2 = mb_ucfirst(mb_strtolower($item->nev2,'utf8'));
		//$item->nev3 = mb_ucfirst(mb_strtolower($item->nev3,'utf8'));
		$item->nev1 = $item->nev1;
		$item->nev2 = $item->nev2;
		$item->nev3 = $item->nev3;
		
		//$item->telepules = mb_ucfirst(mb_strtolower($item->telepules,'utf8'));
		//$item->kategoria_id = mb_ucfirst(mb_strtolower($item->kategoria_id,'utf8'));
		//$item->terszerv_id = mb_ucfirst(mb_strtolower($item->terszerv_id,'utf8'));
		$item->telepules = $item->telepules;
		$item->kategoria_id = $item->kategoria_id;
		$item->terszerv_id = $item->terszerv_id;
		
        if ($item->nev1 == $item->nev2) $item->nev2 = ''; 
        if ($item->nev1 == $item->nev3) $item->nev3 = ''; 
			
		// név rendbetétel
		$this->stdNev($item->nev1, $item->nev2, $item->nev3, $item->titulus);
			
		// utca értelmezése, szétszedése
		
		//DBG
		//$item->megjegyzes .= '('.$item->utca.')';
		
		$this->stdCim($item->utca, $item->kjelleg, $item->hazszam, $item->cimkieg);
		
		// kategoria kodolása
		$item->kategoria_id= mb_strtoupper($item->kategoria_id, 'utf8');
		if ($item->kategoria_id=='SEGÍTŐ')
			$item->kategoria_id = 2;
		else if ($item->kategoria_id=='PÁRTTAG') 
			$item->kategoria_id = 1;
		else if ($item->kategoria_id=='SZIMPATIZÁNS') 
			$item->kategoria_id = 3;
		else if ($item->kategoria_id=='PÁRTOLÓ TAG') 
			$item->kategoria_id = 4;
		else if ($item->kategoria_id=='SZÜNETELTETETT TAG') 
			$item->kategoria_id = 5;
		else if ($item->kategoria_id=='FELFÜGGESZTETT TAG') 
			$item->kategoria_id = 6;
		else { 
		    $jo = false;
			$errorInfo .= $item->nev1.' '.$item->nev2.' '.$item->nev3.'; hibás státusz adat:"'.$item->kategoria_id.'"<br />';
			return false;
        }
			
		// település irsz-ből
		if (($item->telepules == '') & (substr($item->irsz,0,1)=='1')) $item->telepules = 'Budapest';
			
		// település területi szervezetből
		if (($item->telepules == '') & (substr($item->terszerv_id,0,8)=='Budapest')) $item->telepuless = 'Budapest';

		if ($item->ellenorzott == '') $item->ellenorzott = 1; // ha nincs ilyen adat a csv -ben akkor ""ellenörzött" legyen
			
		// területi szervezet kodolása
		$db->setQuery('select * from #__tny_teruletiszervezetek where nev='.$db->quote($item->terszerv_id).' limit 1');
		$res = $db->loadObject();
		if ($res) {
			$item->terszerv_id = $res->terszerv_id;
		} else {
			$jo = false;  
			$errorInfo .= $item->nev1.' '.$item->nev2.' '.$item->nev3.'; hibás ter.szervezet adat:"'.$item->terszerv_id.'"<br />';
		}
		if ($jo == false) $item = false;	
		
	    //dbg('getItemFromCSV_old stop csvRow[0]='.$csvRow[0].' $item->nev1='.$item->nev1.' / '.$item->nev2.' / '.$item->nev3);

		return $item;
	} //getItemFromCSV_old
コード例 #2
0
ファイル: kapcsolatoks_old.php プロジェクト: utopszkij/lmp
	/**
      *	csv import végrehajtása
	  * @JRequest csvfile, csvtipus, firstignore, fieldterminator, importType, 
	  * @return void
	  */
    public function doimport() {
   	  $db = JFactory::getDBO();
      $user = JFactory::getUser();	  
	  $session = JFactory::getSession();
	  $joDarab = 0;
      $hibasDarab = 0;	
      $utkozesDarab = 0;	

	  $userTerhats = $session->get('userTerhats');
	  
      if (is_uploaded_file($_FILES['csvfile']['tmp_name'])) {
         $name = $_FILES['csvfile']['name'];
         $term = JRequest::getVar('fieldterminator');
		 $dirname=JPATH_ROOT.'/tmp';
         move_uploaded_file($_FILES['csvfile']['tmp_name'],$dirname.'/csvimport'.$user->id.'.csv');
		 $importType = JRequest::getVar('importType');
		 $karset = JRequest::getVar('charset','utf-8');

		 $errorInfo = '';

		// CSV file tipusának megfelelő csv row kezelő objektum létrehozása
		$csvTipus =JRequest::getVar('csvtipus','old');
		if ($csvTipus == 'old') {
		  $csvSpec = new csvSpecOld();
		}

		 
		 if ($term=='tab') $term = "\t";
		 if ($term=='coma') $term = ",";
		 if ($term=='semicolon') $term = ";";
         $fp = fopen($dirname.'/csvimport'.$user->id.'.csv','r');
         $w1 = fgetcsv($fp, 0, $term, '"');
		 if (JRequest::getVar('firstignore')==1) {
             if ($w1 !== false) $w1 = fgetcsv($fp, 0, $term, '"');
	     }		 
         while ($w1 !== false) {
			$jo = true;
			
			if ($karset != 'utf-8') {
			   for ($i=0; $i<count($w1); $i++) {
				   $w1[$i] = iconv('ISO-8859-2', 'UTF-8', $w1[$i]);
			   }	
			}

			$id = $csvSpec->get($w1, 'id');
			$nev1 = $csvSpec->get($w1, 'nev1');
			$nev2 = $csvSpec->get($w1, 'nev2');
			$nev3 = $csvSpec->get($w1, 'nev3');
			$titulus = $csvSpec->get($w1, 'titulus');
			$email = $csvSpec->get($w1, 'email');
			$telefon = $csvSpec->get($w1, 'telefon');
            $nem = $csvSpec->get($w1, 'nem');
            $szev = $csvSpec->get($w1, 'szev');
			
			$varos = $csvSpec->get($w1, 'varos');
			$irsz = $csvSpec->get($w1, 'irsz');
			$utca = $csvSpec->get($w1, 'utca');
			$hazszam = (int)$csvSpec->get($w1, 'hazszam');
			$kerulet = (int)$csvSpec->get($w1, 'kerulet');
			$kjelleg = $csvSpec->get($w1, 'kjelleg');
			$cimkieg = $csvSpec->get($w1, 'cimkieg');
			
			$tvaros = $csvSpec->get($w1, 'tvaros');
			$tirsz = $csvSpec->get($w1, 'tirsz');
			$tutca = $csvSpec->get($w1, 'tutca');
			$thazszam = (int)$csvSpec->get($w1, 'thazszam');
			$tkerulet = (int)$csvSpec->get($w1, 'tkerulet');
			$tkjelleg = $csvSpec->get($w1, 'tkjelleg');
			$tcimkieg = $csvSpec->get($w1, 'tcimkieg');
			
			$megjegyzes = $csvSpec->get($w1, 'megjegyzes');
			$statusz = $csvSpec->get($w1, 'statusz');
			$terszerv = $csvSpec->get($w1, 'terszerv');
			$cimkek = $csvSpec->get($w1, 'cimkek');
			$oevk = $csvSpec->get($w1, 'oevk');
			$kapcsnev = $csvSpec->get($w1, 'kapcsnev');
			$kapcsdatum = $csvSpec->get($w1, 'kapcsdatum');
			$hirlevel = (int)$csvSpec->get($w1, 'hirlevel');
			$ellenorzott = $csvSpec->get($w1, 'ellenorzott');
			$email2 = $csvSpec->get($w1, 'email2');
            $belsoemail = $csvSpec->get($w1, 'belsoemail');
			
			
			$telefon = stdTelefonszam($telefon); 
			$nev1 = ucfirst(strtolower($nev1));
			$nev2 = ucfirst(strtolower($nev2));
			$nev3 = ucfirst(strtolower($nev3));
			$varos = ucfirst(strtolower($varos));
			$statusz = ucfirst(strtolower($statusz));
			$terszerv = ucfirst(strtolower($terszerv));
            if ($nev1 == $nev2) $nev2 = ''; 
			
			// név rendbetétel
			$this->stdNev($nev1, $nev2, $nev3, $titulus);
			
			// utca értelmezése, szétszedése
			$this->stdCim($utca, $kjelleg, $hazszam, $cimkieg);

            // kerület az irsz -ből 
			if ($irsz != '') {
				if ((substr($irsz,0,1)=='1') &
                    (substr($irsz,1,2)<'24'))	$kerulet = substr($irsz,1,2);
			}
			
			// kategoria kodolása
			if ($statusz=='Segítő')
				$statusz = 2;
			else if ($statusz=='Párttag') 
				$statusz = 1;
			else if ($statusz=='Szimpatizáns') 
				$statusz = 3;
			else { 
		          $jo = false;
				  $errorInfo .= $nev1.' '.$nev2.' '.$nev3.'; hibás státusz adat:"'.$statusz.'"<br />';
            }
			
			// település irsz-ből
			if (($varos == '') & (substr($irsz,0,1)=='1')) $varos = 'Budapest';
			
			// település területi szervezetből
			if (($varos == '') & (substr($terszerv,0,8)=='Budapest')) $varos = 'Budapest';

			if ($ellenorzott == '') $ellenorzott = 1; // ha nincs ilyen adat a csv -ben akkor ""ellenörzött" legyen
			
			// területi szervezet kodolása
			$db->setQuery('select * from #__tny_teruletiszervezetek where nev='.$db->quote($terszerv).' limit 1');
			$res = $db->loadObject();
			if ($res) {
				$terszerv = $res->terszerv_id;
			} else {
				$jo = false;  
			    $errorInfo .= $nev1.' '.$nev2.' '.$nev3.'; hibás ter.szervezet adat:"'.$terszerv.'"<br />';
			}
			
			// területi hatáskör ellenörzés
			$joTerszerv = false;
			foreach ($userTerhats as $terhat) {
				if ($terhat->terszerv_id == $terszerv) $joTerszerv = true;
			}
			if ($joTerszerv == false) {
				$jo = false;
				$errorInfo .= $nev1.' '.$nev2.' '.$nev3.';Nem a hatáskörébe tartozó területi szervezet! '.$w1[10].'<br />';
			}

			
			// append müveletnél email és telefon ütközés vizsgálat
			// ha ütközés van $jo = false;
			if ($importType == 0) {
				if (JRequest::getVar('utkozestis')!='1')
					$utkozes_info = $this->chkUtkozes($db, $email, $telefon);
				else 
					$utkozes_info = '';
				if ($utkozes_info != '') {
					$jo = false;
					$errorInfo .= $nev1.' '.$nev2.' '.$nev3.'; '.$utkozes_info.' ütközés '.$email.' '.$telefon.'<br />'; 
				} // ütközés van
			} // append
			
			if ($jo) {
				if ($importType == 0) {
					// append
				    $id = 0;  // igy ugyanazt kell tenni mint frissitésnél hiszen 0 id nincs az adatbázisban	
				}	
				// update
				$db->setQuery('select kapcs_id from #__tny_kapcsolatok where kapcs_id = '.$db->quote($id));
				$res = $db->loadObject();
				if ($res) {
						// update
						$db->setQuery('update #__tny_kapcsolatok set
						nev1 = '.$db->quote($nev1).',
						nev2 = '.$db->quote($nev2).',
						nev3 = '.$db->quote($nev3).',
						titulus = '.$db->quote($titulus).',
						nem = '.$db->quote($nem).',
						email = '.$db->quote($email).',
						email2 = '.$db->quote($email2).',
						belsoemail = '.$db->quote($belsoemail).',
						telefon = '.$db->quote($telefon).',
						kategoria_id = '.$db->quote($statusz).',
						terszerv_id = '.$db->quote($terszerv).',
						oevk = '.$db->quote($oevk).',
						kapcsnev = '.$db->quote($kapcsnev).',
						kapcsdatum = '.$db->quote($kapcsdatum).',
						hirlevel = '.$db->quote($hirlevel).',
						ellenorzott = '.$db->quote($ellenorzott).',
						szev = '.$db->quote($szev).',
						telepules = '.$db->quote($varos).',
						kerulet = '.$db->quote($kerulet).',
						utca = '.$db->quote($utca).',
						kjelleg = '.$db->quote($kjelleg).',
						hazszam = '.$db->quote($hazszam).',
						cimkieg = '.$db->quote($cimkieg).',
						ttelepules = '.$db->quote($tvaros).',
						tkerulet = '.$db->quote($tkerulet).',
						tutca = '.$db->quote($tutca).',
						tkjelleg = '.$db->quote($tkjelleg).',
						thazszam = '.$db->quote($thazszam).',
						tcimkieg = '.$db->quote($tcimkieg).',
						cimkek = '.$db->quote($cimkek).',
						lastaction="import",
						lastact_user_id='.$user->id.',
						lastact_time="'.date('Y-m-d H:i').'",
						lastact_info = "'.$name.'",
						megjegyzes = '.$db->quote($megjegyzes).'
						where kapcs_id='.$db->quote($id).' limit 1');
				} else {		
						// insert
						$db->setQuery('INSERT INTO #__tny_kapcsolatok 
							VALUES
							('.$db->quote($id).', 
							'.$db->quote($email).', 
							'.$db->quote($nev1).', 
							'.$db->quote($nev2).', 
							'.$db->quote($nev3).', 
							'.$db->quote($titulus).', 
							'.$db->quote($nem).', 
							'.$db->quote($email2).', 
							'.$db->quote($telefon).', 
							'.$db->quote($irsz).', 
							'.$db->quote($varos).', 
							'.$db->quote($kerulet).', 
							'.$db->quote($utca).', 
							'.$db->quote($kjelleg).', 
							'.$db->quote($hazszam).', 
							'.$db->quote($cimkieg).',
							'.$db->quote($tirsz).', 
							'.$db->quote($tvaros).', 
							'.$db->quote($tkerulet).', 
							'.$db->quote($tutca).', 
							'.$db->quote($tkjelleg).', 
							'.$db->quote($thazszam).', 
							'.$db->quote($tcimkieg).',
							'.$db->quote($oevk).', 
							'.$db->quote($szev).', 
							'.$db->quote($kapcsnev).', 
							0,
							'.$db->quote($kapcsdatum).', 
							'.$db->quote($statusz).', 
							'.$db->quote($terszerv).', 
							'.$db->quote($cimkek).', 
							'.$db->quote($belsoemail).', 
							'.$db->quote($hirlevel).',
							'.$db->quote($ellenorzott).', 
							0, 
							0, 
							"import", 
							'.$user->id.', 
							"'.date('Y-m-d H:i').'", 
							'.$db->quote($name).',
							'.$db->quote($megjegyzes).'
							);
						');
				} // insert/update

				if (!$db->query()) {
						$db->stderr();	
				}
				
				//DBG echo $db->getQuery().'<br />';
				
				$joDarab++;
				
				// Naplózás
				if ($id == 0) {
					$id = $db->insertid();
				}
				//DBG echo 'id='.$id.'<br />';
				$db->setQuery('insert into #__tny_naplo
				select * from #__tny_kapcsolatok
				where kapcs_id='.$id);
				$db->query();
				//DBG echo $db->getQuery().'<br><br>'; 
			} else if ($utkozes_info != '') {
				$utkozesDarab++;
			} else {
                $hibasDarab++;				
			} // $jo
			
  		    $w1 = fgetcsv($fp, 0, $term, '"');
          } // while
		  fclose($fp);
          unlink($dirname.'/csvimport'.$user->id.'.csv');
		  
		  // $errorInfo tárolása file-ba
		  if (($hibasDarab > 0) | ($utkozesDarab > 0)) {
		    $fp = fopen($dirname.'/errorinfo'.$user->id.'.csv','w+');
		    fwrite($fp,str_replace('<br />',"\n",$errorInfo));
		    fclose($fp);
		    $errorInfo= '<br /><a href="'.JURI::root().'tmp/errorinfo'.$user->id.'.csv" target="new" style="color:yellow">Kattints ide ennek a hibalistának a mentéséhez</a><br />'.$errorInfo;
		  }
		  
		  $this->setMessage('CSV file-ból  betöltve '.$joDarab.' sor, Hibás: '.$hibasDarab.' sor Ütközés:'.$utkozesDarab.' esetben<br />'.
		    '<div style="background-color:white; color:black">'.$errorInfo.'</div>');
		  $this->setRedirect('index.php?option=com_tagnyilvantartas&view=kapcsolatoks');
		  $this->redirect();
      } else {
		  $this->setError('CSV file nem található');
		  $this->setRedirect('index.php?option=com_tagnyilvantartas&view=kapcsolatoks');
		  $this->redirect();
	  }		
	}
コード例 #3
0
ファイル: doszures.php プロジェクト: utopszkij/lmp
	/**
	 *
	 * szüro feltételek érkezhetnek JRequest-bol: onlychevked, mezo##, relacio##, ertek##, savedfilter
	 * vagy ha JRequestbol nem jön akkor sessionból veendo
	 * @return string
	*/ 
	public function makeWhereStr($userTerhats) {
		$user =JFactory::getUser();
			//if JRequest savedfilter érkezett akkor
			// - be kell olvasni az uploaded file-t, ebbol kell A JRequest adatokat felülirni
			$uploaddir = JPATH_SITE.'/tmp/';
            $uploadfile = $uploaddir . $user->id. 'filter.ini';
			if (move_uploaded_file($_FILES['savedfilter']['tmp_name'], $uploadfile)) {
			   $lines = file($uploadfile);
			   foreach ($lines as $line) {
				   if ($line != '') {
					   $w = explode('=',$line,2);
					   if (count($w)==2) {
						   JRequest::setVar($w[0],$w[1]);
						   //DBG echo 'setVar '.$w[0].'='.$w[1].'<br>';
						}
				   }
			   }
			   unlink($uploadfile);
			}
			
			
			$session = JFactory::getSession();
			$db = JFactory::getDBO();
			// Ha érkezett a JRequest -ben szürés adat akkor a sessionban lévok törlendoek
			$erkezett = false;
			for ($i=0; $i<20; $i++) {
			   if (JRequest::getVar('mezo'.$i,'') != '') $erkezett = true;
			}  	   
			if ($erkezett) {
			  for ($i=0; $i<20; $i++) {
				 $session->set('doszures.mezo'.$i,''); 
				 $session->set('doszures.relacio'.$i,''); 
				 $session->set('doszures.ertek'.$i,''); 
			  }	
			  $session->set('doszures.onlychecked','');
			}
		   
			// onlychecked filter
			if (JRequest::getVar('onlychecked', $session->get('doszures.onlychecked'))==1) {
			   $where = 'a.ellenorzott=1';
			   $session->set('doszures.onlychecked','1');
			   JRequest::setVar('onlychecked','1');
			} else {
			   $where = 'a.ellenorzott >= 0'; 
			   $session->set('doszures.onlychecked','0');
			   JRequest::setVar('onlychecked','0');
			}
			$where .= ' and a.terszerv_id in (0';
			foreach ($userTerhats as $userTerhat) {
				$where .= ','.$userTerhat->terszerv_id;
			}
			$where .= ')';
			
			// Filter by search in JRequest
			for ($i=0; $i<20; $i++) {
			   if (JRequest::getVar('mezo'.$i,$session->get('doszures.mezo'.$i)) != '') {
				   $mezo = JRequest::getVar('mezo'.$i,$session->get('doszures.mezo'.$i));
				   $relacio = JRequest::getVar('relacio'.$i,$session->get('doszures.relacio'.$i));
				   $ertek = JRequest::getVar('ertek'.$i,$session->get('doszures.ertek'.$i));
				   $session->set('doszures.mezo'.$i,$mezo);
				   $session->set('doszures.relacio'.$i,$relacio);
				   $session->set('doszures.ertek'.$i,$ertek);
				   JRequest::setVar('mezo'.$i,$mezo);
				   JRequest::setVar('relacio'.$i,$relacio);
				   JRequest::setVar('ertek'.$i,$ertek);
				   
				   if ($relacio == 'lt') $relacio = '<';
				   if ($relacio == 'lte') $relacio = '<=';
				   if ($relacio == 'gt') $relacio = '>';
				   if ($relacio == 'gte') $relacio = '>=';
				   if ($relacio == 'ne') $relacio = '<>';
				   
				   // telefonszám standartiozálás
				   if ($mezo == 'telefon') {
					   $relacio = 'like';
					   $ertek = stdTelefonszam($ertek);
				   }
				   
				   // relációnak megfelelõ értékek
				   if ($relacio == 'in') {
					   $w = explode(',',$ertek);
					   $ertek = '(';
					   foreach ($w as $w1) {
						 $ertek .= $db->quote($w1).', ';    
					   }
					   $ertek .= '"@")';
				   } else if ($relacio == 'betwen') {
					   $w = explode(' - ',$ertek);
					   $ertek1 =$db->quote($w[0]);
					   $ertek2 =$db->quote($w[1]);
				   } else if ($relacio == 'like') {
					   $ertek = $db->quote('%'.$ertek.'%');
				   } else {
					   $ertek = $db->quote($ertek);
				   }
				   
				   // tábla alias hozzátétele és karekteres mezõk nagybetüsitve
				   if  (($mezo == 'nev1') | ($mezo == 'nev2') | ($mezo == 'nev3') | 
						($mezo == 'telepules') | ($mezo == 'ttelepules') |
						($mezo == 'kozterület') | ($mezo == 'tkozterület') | 
						($mezo == 'kapcsnev')  |
						($mezo == 'cimke') | ($mezo == 'email') |
						($mezo == 'email2') | ($mezo == 'belsoemail') 
					   ) {
						 $mezo = 'UPPER(a.'.$mezo.')';  
						 $ertek = 'UPPER('.$ertek.')';  
				   } else if ($mezo == 'kategoria') {		 
					  $mezo = 'UPPER(k.szoveg)';
					  $ertek = 'UPPER('.$ertek.')';  
				   } else if ($mezo == 'terszerv') {		 
					  $mezo = 'UPPER(t.nev)';
					  $ertek = 'UPPER('.$ertek.')';  
				   } else {
					   $mezo = 'a.'.$mezo;  
				   }                   

				   // sql kifejezés összeállítása
				   if ($relacio == 'betwen') {
					  $where .= ' and '.$mezo.' >= '.$ertek1.' and '.$mezo.' <= '.$ertek2; 
				   } else if ($relacio == 'add') {
					  $where .= ' and addparity('.$mezo.')'; 
				   } else if ($relacio == 'even') {
					  $where .= ' and evenparity('.$mezo.')'; 
				   } else if ($relacio == 'like') {
					  $where .= ' and '.$mezo.' like '.$ertek; 
				   } else {
					  $where .= ' and '.$mezo.' '.$relacio.' '.$ertek; 
				   }
				   
			   } else {
				   $session->set('doszures.mezo'.$i,'');
				   $session->set('doszures.relacio'.$i,'');
				   $session->set('doszures.ertek'.$i,'');
			   } 
			}
			return $where;
	}
コード例 #4
0
ファイル: kapcsolatok.php プロジェクト: utopszkij/lmp
    /**
      * Adat tárolás területi hatáskör ellenörzéssel
      */
    public function save($data) {
        $session = JFactory::getSession();
		$user = JFactory::getUser();
        $userTerhats = $session->get('userTerhats');
        $userCsoport = $session->get('userCsoport');
		$db = JFactory::getDBO();
		$ujRekord = false;
		if (!isset($data['lastact_info'])) $data['lastact_info'] = '';
 
		// 2015.07.27 megbeszélés alapján
		if (($data['tirsz'] == '') &
		    ($data['ttelepules'] == '') &
		    ($data['tkerulet'] == 0) &
		    ($data['tutca'] == '') &
		    ($data['thazszam'] == 0) &
		    ($data['tkjelleg'] == '') &
		    ($data['tcimkieg'] == '')) {
		  $data['tirsz'] = $data['irsz'];
		  $data['ttelepules'] = $data['telepules'];
		  $data['tkerulet'] = $data['kerulet'];
		  $data['tutca'] = $data['utca'];
		  $data['thazszam'] = $data['hazszam'];
		  $data['tkjelleg'] = $data['kjelleg'];
		  $data['tcimkieg'] = $data['cimkieg'];
		}
		
		
        // modositás esetén el kell érni a meglévő rekordot is,
		// hatáskör ellenörzéshez és a letiltott mező értékek megörzéséhez
		$orig = false;
		if ($data['kapcs_id'] > 0) {
		  $db->setQuery('select * from #__tny_kapcsolatok where kapcs_id='.$data['kapcs_id']);	 
          $orig = $db->loadObject();
		  if ($orig == false) {
			 // üres rekord felvitele
			 $db->setQuery('insert into #__tny_kapcsolatok (kapcs_id) values ('.$data['kapcs_id'].')');	
			 $db->query();
			 $ujRekord = true;
		  }
        } else {
			$ujRekord = true;
		}
 
		// amelyik mező adat nem jött a $data -ban az maradjon az $origban lévő
		if ($orig) {
			foreach ($orig as $fn => $fv) {
				if (!isset($data[$fn])) $data[$fn] = $fv;
			}
		}
		
		//DBG foreach ( $data as $fn => $fv) echo $fn.'='.$fv.'; ';
		//DBG echo '<br><br>';
		
        // adat telefonszám standardizálás
		foreach ($data as $fn => $fv) {
		  $data[$fn] = trim($fv);
		}
		$data['telefon'] =stdTelefonszam($data['telefon']);
		
		/* 2015.07.31 megbeszélés, nem változtatunk a kis/nagy betükön
		$data['nev1'] = mb_ucfirst(mb_strtolower($data['nev1'],'utf8'));
		$data['nev2'] = mb_ucfirst(mb_strtolower($data['nev2'],'utf8'));
		$data['nev3'] = mb_ucfirst(mb_strtolower($data['nev3'],'utf8'));
		$data['telepules'] = mb_ucfirst(mb_strtolower($data['telepules'],'utf8'));
		$data['ttelepules'] = mb_ucfirst(mb_strtolower($data['ttelepules'],'utf8'));
		*/
		
        // uj terszerv a területi hatáskörben ?
        $jo = false;
        foreach ($userTerhats as $userTerhat) {
            if ($userTerhat->terszerv_id == $data['terszerv_id']) $jo = true;
        }
        
		/*
		// orig terszerv a területi hatáskörben ?
		if (($jo) & ($orig)) {
          $jo = false;
          foreach ($userTerhats as $userTerhat) {
            if ($userTerhat->terszerv_id == $orig->terszerv_id) $jo = true;
          }
        }
		*/
		
        // modosithatja a nevet?
        if ($userCsoport->jog_kapcsolat != 1) $jo = false;
        if ($userCsoport->jog_nev != 'RW') $jo = false;
		
        
        if ($jo) {
          $data['lastact_user_id'] = $user->id;
          $data['lastact_time'] = date('Y-m-d H:i');
		  
		  if ($ujRekord) 
			  $data['lastaction'] = 'INSERT';
		  else if ($data['kapcs_id'] > 0)
			  $data['lastaction'] = 'UPDATE';
		  else
			  $data['lastaction'] = 'INSERT';
		  
		  $result = parent::save($data);
		  //DBG echo 'save 3 (parent::save után) <br>';
		  if ($result) {
              // naplózás
			  $id = $data['kapcs_id'];
			  if ($id <= 0) {
				 $id = $this->getDbo()->insertid(); 
			  }
              $db->setQuery('insert into #__tny_naplo
			  select * from #__tny_kapcsolatok where kapcs_id='.$db->quote($id));
			  $db->query();
          }
          return $result;
        } else {
          $this->setError(JText::_('COM_TAGNYILVANTARTAS_NO_TERHAT').' terszerv_id='.$data['terszerv_id']);
          return false;  
        }
    }