Ejemplo n.º 1
0
 function getAdayExcel($post, $get, $files, $canEdit)
 {
     $_db = JFactory::getOracleDBO();
     $user =& JFactory::getUser();
     if ($canEdit) {
         $sqlKurs = "SELECT KURULUS_ID FROM M_BELGELENDIRME_SINAV WHERE SINAV_ID = ?";
         $kurs = $_db->prep_exec($sqlKurs, array($get['sinav']));
         $user_id = $kurs[0]['KURULUS_ID'];
     } else {
         $user_id = $user->getOracleUserId();
     }
     if ($post['bildirim'] == 2) {
         $sql = "DELETE FROM M_BELGELENDIRME_ADAY_BILDIRIM WHERE SINAV_ID=?";
         $_db->prep_exec_insert($sql, array($get['sinav']));
         $sql = "DELETE FROM M_BELGELENDIRME_SINAV_DOSYA WHERE SINAV_ID=?";
         $_db->prep_exec_insert($sql, array($get['sinav']));
     }
     $sinavTarihi = $this->getSinavTarihi($get['sinav']);
     if ($files['upload']['size'] > 0) {
         if ($files['upload']['type'] == 'application/vnd.ms-excel') {
             $uzanti = "xls";
             $excel = new Spreadsheet_Excel_Reader();
             $excel->setOutputEncoding('windows-1254');
             $excel->read($files['upload']['tmp_name']);
             foreach ($excel->sheets[0]['cells'][1] as $key => $val) {
                 $cols[$key] = $val;
             }
             $bossatir = 0;
             $x = 4;
             for ($i = 4; $i <= count($excel->sheets[0]['cells']); $i++) {
                 for ($y = 1; $y <= 20; $y++) {
                     if (!isset($excel->sheets[0]['cells'][$i][$y])) {
                         $excel->sheets[0]['cells'][$i][$y] = "";
                     }
                 }
                 foreach ($excel->sheets[0]['cells'][$i] as $key => $val) {
                     $data[$x][$cols[$key]] = mb_convert_encoding($val, "UTF-8", "windows-1254");
                     if ($cols[$key] == "dogumtarihi" && $data[$x][$cols[$key]] != "") {
                         $timestamp = trim($data[$x][$cols[$key]]);
                         $mysqlDate = date('d/m/Y', strtotime('1899-12-31+' . ($timestamp - 1) . ' days'));
                         if (strpos($timestamp, ".") || strpos($timestamp, "/")) {
                             $data[$x][$cols[$key]] = str_replace('.', '/', $timestamp);
                         } else {
                             $data[$x][$cols[$key]] = $mysqlDate;
                         }
                     } else {
                         if ($cols[$key] == "sinavtarihi" && $data[$x][$cols[$key]] != "") {
                             $timestamp = trim($data[$x][$cols[$key]]);
                             $mysqlDate = date('d/m/Y', strtotime('1899-12-31+' . ($timestamp - 1) . ' days'));
                             if (strpos($timestamp, ".") || strpos($timestamp, "/")) {
                                 $data[$x][$cols[$key]] = str_replace('.', '/', $timestamp);
                             } else {
                                 $data[$x][$cols[$key]] = $mysqlDate;
                             }
                         } else {
                             if ($cols[$key] == "tckn" && $data[$x][$cols[$key]] == '') {
                                 $bossatir++;
                                 break;
                             } else {
                                 if ($data[$x][$cols[$key]] != '') {
                                     $data[$x][$cols[$key]] = trim($data[$x][$cols[$key]]);
                                 }
                             }
                         }
                     }
                 }
                 $x++;
                 if ($bossatir > 0) {
                     break;
                 }
             }
             // 				$objPHPExcel = PHPExcel_IOFactory::load($files['upload']['tmp_name']);
             // 				$uzanti = "xls";
         } else {
             if (($files['upload']['type'] == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || $files['upload']['type'] == "application/octet-stream") && strtotime($sinavTarihi) < strtotime('20/07/2015')) {
                 $objReader = PHPExcel_IOFactory::createReader('Excel2007');
                 $objReader->setReadDataOnly(true);
                 $uzanti = "xlsx";
                 $objPHPExcel = $objReader->load($files['upload']['tmp_name']);
                 $objWorksheet = $objPHPExcel->getActiveSheet();
                 $highestRow = $objWorksheet->getHighestRow();
                 if ($highestRow > 400) {
                     $highestRow = 400;
                 }
                 $highestColumn = $objWorksheet->getHighestColumn();
                 $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                 $data = array();
                 for ($col = 0; $col <= $highestColumnIndex - 1; ++$col) {
                     $key[] = $objWorksheet->getCellByColumnAndRow($col, 1)->getValue();
                 }
                 $bossatir = 0;
                 $tt = 0;
                 for ($row = 4; $row <= $highestRow; ++$row) {
                     for ($col = 0; $col <= $highestColumnIndex - 1; ++$col) {
                         if ($key[$col] == "dogumtarihi") {
                             if ($objWorksheet->getCellByColumnAndRow($col, $row)->getValue() != '') {
                                 $timestamp = trim($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
                                 $mysqlDate = date('d/m/Y', strtotime('1899-12-31+' . ($timestamp - 1) . ' days'));
                                 if (strpos($timestamp, ".") || strpos($timestamp, "/")) {
                                     $data[$row][$key[$col]] = str_replace('.', '/', $timestamp);
                                 } else {
                                     $data[$row][$key[$col]] = $mysqlDate;
                                 }
                             }
                         } else {
                             if ($key[$col] == "sinavtarihi") {
                                 if ($objWorksheet->getCellByColumnAndRow($col, $row)->getValue() != '') {
                                     $timestamp = trim($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
                                     $mysqlDate = date('d/m/Y', strtotime('1899-12-31+' . ($timestamp - 1) . ' days'));
                                     if (strpos($timestamp, ".") || strpos($timestamp, "/")) {
                                         $data[$row][$key[$col]] = str_replace('.', '/', $timestamp);
                                     } else {
                                         $data[$row][$key[$col]] = $mysqlDate;
                                     }
                                 }
                             } else {
                                 if ($key[$col] == "sinavsaati") {
                                     if ($objWorksheet->getCellByColumnAndRow($col, $row)->getValue() != '') {
                                         $mysqlDate = PHPExcel_Style_NumberFormat::toFormattedString(trim($objWorksheet->getCellByColumnAndRow($col, $row)->getCalculatedValue()), 'hh:mm');
                                         $data[$row][$key[$col]] = $mysqlDate;
                                     }
                                 } else {
                                     if ($key[$col] == "tckn" && $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() == '') {
                                         $bossatir++;
                                         break;
                                     } else {
                                         if ($objWorksheet->getCellByColumnAndRow($col, $row)->getValue() != '') {
                                             $data[$row][$key[$col]] = trim($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
                                         }
                                     }
                                 }
                             }
                         }
                         $tt++;
                     }
                     if ($bossatir > 0) {
                         break;
                     }
                 }
             } else {
                 print 'dosya formatı yanlış';
                 exit;
             }
         }
         $sql = "select yeterlilik_id from m_belgelendirme_sinav where sinav_id=" . $get["sinav"];
         $yeterlilik_id = $_db->prep_exec($sql, array());
         $yeterlilik_id = $yeterlilik_id[0]["YETERLILIK_ID"];
         $sql = "select yeni_mi from m_yeterlilik where yeterlilik_id=" . $yeterlilik_id;
         $yeni_mi = $_db->prep_exec($sql, array());
         $yeni_mi = $yeni_mi[0]["YENI_MI"];
         $yeterlilik = array();
         if ($yeni_mi == "1") {
             $sql = "select birim_id, birim_kodu from m_birim join M_YETERLILIK_BIRIM using (birim_id)  where yeterlilik_id=" . $yeterlilik_id;
             $birimler = $_db->prep_exec($sql, array());
             foreach ($birimler as $row) {
                 $sql = "select OLC_DEG_HARF, OLC_DEG_NUMARA from M_BIRIM_OLCME_DEGERLENDIRME where BIRIM_ID=" . $row["BIRIM_ID"];
                 $sinav_kodlari = $_db->prep_exec($sql, array());
                 foreach ($sinav_kodlari as $row2) {
                     if ($row2["OLC_DEG_HARF"] != "D") {
                         $yeterlilik[] = array("ID" => $row["BIRIM_ID"], "KODU" => $row["BIRIM_KODU"], "TUR" => $row2["OLC_DEG_HARF"] . $row2["OLC_DEG_NUMARA"]);
                     }
                 }
             }
         } else {
             $sql = "select yeterlilik_alt_birim_id as birim_id,yeterlilik_alt_birim_no as birim_kodu, yeterlilik_kodu from m_yeterlilik_alt_birim join m_yeterlilik using(yeterlilik_id) where yeterlilik_id=" . $yeterlilik_id;
             $birimler = $_db->prep_exec($sql, array());
             foreach ($birimler as $row) {
                 $sql = "select TUR_KODU from M_YETERLILIK_ALT_BIRIM_TUR WHERE BIRIM_ID=" . $row["BIRIM_ID"];
                 $sinav_kodlari = $_db->prep_exec($sql, array());
                 foreach ($sinav_kodlari as $row2) {
                     $yeterlilik[] = array("ID" => $row["BIRIM_ID"], "KODU" => $row["YETERLILIK_KODU"] . '/' . $row["BIRIM_KODU"], "TUR" => $row2["TUR_KODU"]);
                 }
             }
         }
         $sinavYerleri = $this->sinavYeriKontrol($user_id, $yeterlilik_id);
         $degerlendiriciler = $this->sinavDegerlendiriciKontrol($user_id, $yeterlilik_id);
         $return = array();
         $tcArray = array();
         foreach ($data as $key => $satir) {
             if (!in_array($satir['tckn'], $tcArray)) {
                 $tcArray[] = $satir['tckn'];
                 if (!$satir['tckn'][0]) {
                     $satir['tckn'] = strval($satir['tckn']);
                 }
                 if (ucfirst(trim($satir['uyruk'])) == 'T.C.') {
                     $uyruk = 0;
                     $tckontrol = $this->tckimlik($satir['tckn']);
                 } else {
                     if (ucfirst(trim($satir['uyruk'])) == 'Diğer') {
                         $uyruk = 1;
                         $tckontrol = true;
                     } else {
                         return $return["hataMesaji"][1] = "Aşağıdaki TC Kimlik Numaraları hatalıdır. Lütfen kontrol edip dosyanızı tekrar yükleyiniz.";
                     }
                 }
                 $dateDogum = explode('/', $satir['dogumtarihi']);
                 if (ucfirst(trim($satir['uyruk'])) == 'T.C.') {
                     $tcBilgiDogruMu = FormFactory::TCKimlikDogrulama(array('tcno' => $satir['tckn'], 'isim' => FormFactory::toUpperCase($satir['adi']), 'soyisim' => FormFactory::toUpperCase($satir['soyadi']), 'dogumyili' => $dateDogum[2]));
                 } else {
                     $tcBilgiDogruMu = true;
                 }
                 ////////////// TC KIMLIK NO KURALLARA UYGUN MU KONTROLÜ ///////////////
                 if ($tckontrol === FALSE) {
                     $return['hatalıTckimlik'][] = array($key, $satir['tckn']);
                     $return["hataMesaji"][1] = "Aşağıdaki TC Kimlik Numaraları hatalıdır. Lütfen kontrol edip dosyanızı tekrar yükleyiniz.";
                 } else {
                     if ($tcBilgiDogruMu !== true && $tcBilgiDogruMu !== 'true') {
                         $return['tckimlik'][] = array($key, $satir['tckn']);
                         $return["hataMesaji"][2] = "Aşağıdaki TC Kimlik Numaraları bulunan kişilerin Kimlik bilgileri yanlıştır. Lütfen kontrol edip dosyanızı tekrar yükleyiniz.";
                     } else {
                         ////////////// EXCEL'DEN GELEN KULLANICILAR DB DE KAITLI MI DEĞİL Mİ? HATA VAR MI YOK MU KONRTROLÜ ///////////////
                         $sql = "SELECT * FROM M_BELGELENDIRME_OGRENCI WHERE TC_KIMLIK=?";
                         $kayitliaday = $_db->prep_exec($sql, array($satir['tckn']));
                         $cinsiyeti = FormFactory::toUpperCase($satir['cinsiyeti']);
                         if ($cinsiyeti == 'ERKEK') {
                             $Cins = 1;
                         } else {
                             if ($cinsiyeti == 'KADIN') {
                                 $Cins = 2;
                             } else {
                                 if ($cinsiyeti == 'BELİRTİLMEMİŞ') {
                                     $Cins = 3;
                                 } else {
                                     $return['hataliCins'][] = array($key);
                                     $return["hataMesaji"][10] = "Lütfen Aşağıdaki Satırlardaki Cinsiyet Bilgilerini Düzeltiniz. (Excel Dosyasında Yer Alan Cinsiyet Bilgilerinden Seçiniz)";
                                 }
                             }
                         }
                         $egitimm = FormFactory::toUpperCase(trim(str_replace(' ', '', $satir['egitimi'])));
                         if ($egitimm == 'OKURYAZARDEĞİL') {
                             $egitimi = 1;
                         } else {
                             if ($egitimm == 'OKURYAZAR') {
                                 $egitimi = 2;
                             } else {
                                 if ($egitimm == 'İLKOKUL') {
                                     $egitimi = 3;
                                 } else {
                                     if ($egitimm == 'ORTAOKUL') {
                                         $egitimi = 4;
                                     } else {
                                         if ($egitimm == 'MESLEKLİSESİ') {
                                             $egitimi = 5;
                                         } else {
                                             if ($egitimm == 'GENELLİSE') {
                                                 $egitimi = 6;
                                             } else {
                                                 if ($egitimm == 'MESLEKYÜKSEKOKULU') {
                                                     $egitimi = 7;
                                                 } else {
                                                     if ($egitimm == 'LİSANS') {
                                                         $egitimi = 8;
                                                     } else {
                                                         if ($egitimm == 'YÜKSEKLİSANS') {
                                                             $egitimi = 9;
                                                         } else {
                                                             if ($egitimm == 'DOKTORA') {
                                                                 $egitimi = 10;
                                                             } else {
                                                                 $return['hataliEgitim'][] = array($key);
                                                                 $return["hataMesaji"][10] = "Lütfen Aşağıdaki Satırlardaki Eğitim Bilgilerini Düzeltiniz. (Excel Dosyasında Yer Alan Eğitim Bilgilerinden Seçiniz)";
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         $calisDurum = FormFactory::toUpperCase(trim(str_replace(' ', '', $satir['calismadurumu'])));
                         if ($calisDurum == 'ÇALIŞIYOR') {
                             $calismaDurum = 1;
                         } else {
                             if ($calisDurum == 'ÇALIŞMIYOR') {
                                 $calismaDurum = 2;
                             } else {
                                 if ($calisDurum == 'STAJYAPIYOR') {
                                     $calismaDurum = 3;
                                 } else {
                                     $return['hataliCalisma'][] = array($key);
                                     $return["hataMesaji"][10] = "Lütfen Aşağıdaki Satırlardaki Çalışma Bilgilerini Düzeltiniz. (Excel Dosyasında Yer Alan Çalışma Bilgilerinden Seçiniz)";
                                 }
                             }
                         }
                         $telefon = trim(str_replace(array(' ', '(', ')', '-', '+90'), array('', '', '', '', ''), isset($satir['telefon']) ? $satir['telefon'] : ""));
                         $iban = trim(str_replace(' ', '', isset($satir['iban']) ? $satir['iban'] : ""));
                         $iban = str_replace(array(' ', chr(0xc2) . chr(0xa0)), array('', ''), $iban);
                         $eposta = trim(str_replace(' ', '', isset($satir['eposta']) ? $satir['eposta'] : ""));
                         // 				if(strlen($iban) <> 26){
                         // 					$return['hataliIban'][] = array($key,$iban);
                         // 					$return["hataMesaji"][11]="Lütfen Aşağıdaki Satırlardaki IBAN(Hesap) Bilgileri Hatalıdır.Lütfen kontrol edip dosyanızı tekrar yükleyiniz.";
                         // 				}
                         // ^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$
                         // 				if (!preg_match('/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})/', $eposta))
                         // 				{
                         // 					$return['hataliEmail'][] = array($key, $eposta);
                         // 					$return["hataMesaji"][12]="Lütfen Aşağıdaki Satırlardaki Email Bilgileri Hatalıdır.Lütfen kontrol edip dosyanızı tekrar yükleyiniz.";
                         // 				}
                         if (array_key_exists('hataliCalisma', $return) || array_key_exists('hataliEgitim', $return) || array_key_exists('hataliCins', $return)) {
                             return $return;
                         }
                         if (count($kayitliaday) > 0) {
                             // 					if($kayitliaday[0]['ADI'] != trim(FormFactory::ucWordsTR($satir['adi'])) || $kayitliaday[0]['SOYADI'] != trim(FormFactory::toUpperCase($satir['soyadi'])) || $kayitliaday[0]['DOGUM_TARIHI'] != trim($satir['dogumtarihi']) || $kayitliaday[0]['DOGUM_YERI'] != trim(FormFactory::ucWordsTR($satir['dogumyeri'])) || $kayitliaday[0]['BABA_ADI'] != trim(FormFactory::ucWordsTR($satir['babaadi'])) || $kayitliaday[0]['CINSIYETI'] != $Cins || $kayitliaday[0]['EGITIMI'] != $egitimi || $kayitliaday[0]['CALISMA_DURUMU'] != $calismaDurum){
                             if ($kayitliaday[0]['ADI'] != trim(FormFactory::ucWordsTR($satir['adi'])) || $kayitliaday[0]['SOYADI'] != trim(FormFactory::toUpperCase($satir['soyadi'])) || $kayitliaday[0]['DOGUM_TARIHI'] != trim($satir['dogumtarihi']) || $kayitliaday[0]['CINSIYETI'] != $Cins || $kayitliaday[0]['EGITIMI'] != $egitimi || $kayitliaday[0]['CALISMA_DURUMU'] != $calismaDurum || $kayitliaday[0]['UYRUK'] != $uyruk) {
                                 $return['tckimlik_sistem'][] = array($key, $satir['tckn']);
                                 $return["hataMesaji"][14] = "Aşağıda TC Kimlik numaraları verilen kişilerin gönderdiğiniz bilgileri ile sistemde kayıtlı bilgiler farklılık göstermektedir. Sistemdeki bilgileri güncel ise dosyanızı güncelleyiniz, dosyanızdaki verileriniz güncel ise lütfen önce sistemdeki verileri düzenleyiniz ve dosyanızı tekrar yükleyiniz.";
                             }
                         } else {
                             $params = array($satir['tckn'], FormFactory::ucWordsTR($satir['adi']), FormFactory::toUpperCase($satir['soyadi']), $satir['dogumtarihi'], $Cins, $egitimi, $calismaDurum, $user_id, $uyruk, $telefon, $eposta, $iban);
                             $sql = "INSERT INTO M_BELGELENDIRME_OGRENCI\n\t\t\t\t\t\t(TC_KIMLIK, ADI, SOYADI, DOGUM_TARIHI, DOGUM_YERI, BABA_ADI, CINSIYETI, EGITIMI, CALISMA_DURUMU,SON_DUZENLEYEN_KURULUS_ID,UYRUK,TELEFON,EMAIL,IBAN)\n\t\t\t\t\t\tVALUES(?,?,?,TO_DATE(?, 'dd.mm.yyyy'),null,null,?,?,?,?,?,?,?,?)";
                             $ogr = $_db->prep_exec_insert($sql, $params);
                         }
                     }
                 }
             }
             ////////////// EXCEL'DEN GELEN BIRIMLERIN VE SINAV TURLERININ KONRTROLÜ ///////////////
             $hatayok = false;
             foreach ($yeterlilik as $yetrow) {
                 if (ucwords(trim(str_replace(' ', '', $yetrow['KODU']))) == ucwords(trim(str_replace(' ', '', $satir["birimkodu"]))) and ucwords(trim(str_replace(' ', '', $yetrow['TUR']))) == ucwords(trim(str_replace(' ', '', $satir["sinavturukodu"])))) {
                     $hatayok = true;
                 }
             }
             if (!$hatayok) {
                 $return["hataMesaji"][3] = "Aşağıdaki satırlarda Birim Kodu veya Sınav türü kodu hatalıdır ya da yeterliliğe ait değildir. Hataları giderip tekrar dosyayı yükleyiniz.";
                 $return["sinavTuruKoduSatir"][] = $key;
             }
             ////////////// EXCEL'DEN GELEN SINAV TARİHİ KONTROLÜ ///////////////
             if (!$canEdit) {
                 if (strtotime($sinavTarihi) > strtotime(ereg_replace("/", "-", $satir["sinavtarihi"]))) {
                     $return["hataMesaji"][4] = "Aşağıdaki satırlarda verilen Sınav Tarihleri, Sınav Programınızda belirttiğiniz Başlangıç Tarihinden (" . $sinavTarihi . ") öncedir. Düzeltip dosyanızı yeniden yükleyiniz.";
                     $return["sinavTarihi"][] = array($key, $satir["sinavtarihi"]);
                 }
             }
             ////////////// EXCEL'DEN GELEN SINAV TARİHİ 360 GÜN KONTROLÜ ///////////////
             if (strtotime('+360 days', strtotime($sinavTarihi)) < strtotime(ereg_replace("/", "-", $satir["sinavtarihi"]))) {
                 $return["hataMesaji"][9] = "Aşağıdaki satırlarda verilen Sınav Tarihleri, Sınav Programınızda belirttiğiniz Başlangıç Tarihinden (" . $sinavTarihi . ") 1 yıl içinde olmalıdır. Düzeltip dosyanızı yeniden yükleyiniz.";
                 $return["sinavTarihi360"][] = array($key, $satir["sinavtarihi"]);
             }
             ////////////// EXCEL'DEN GELEN SINAV YERİ KONTROLÜ ///////////////
             if (!in_array($satir["sinavyeri"], $sinavYerleri)) {
                 $return["hataMesaji"][5] = "Aşağıdaki satırlarda Verdiğiniz Sınav Yeri ID'leri, <a href='index.php?option=com_belgelendirme&view=belgelendirme_islemleri&layout=belgelendirme_sinav_yeri'  style='color:red;'>Sınav Yerleriniz</a> arasında yoktur yada Aktif halde değildir. Düzeltip dosyanızı yeniden yükleyiniz.";
                 $return["sinavYeri"][] = array($key, $satir["sinavyeri"]);
             }
             ////////////// EXCEL'DEN GELEN SINAV YERİ ONAY KONTROLÜ ///////////////
             if (!$this->OnayDurumuSinavYeri($satir["sinavyeri"], $yeterlilik_id, strtoupper(substr(trim($satir["sinavturukodu"]), 0, 1)))) {
                 $return["hataMesaji"][13] = "Aşağıdaki satırlarda Verdiğiniz Sınav Yeri ID'leri, <a href='index.php?option=com_belgelendirme&view=belgelendirme_islemleri&layout=belgelendirme_sinav_yeri'  style='color:red;'>Onay Bekleyen</a> sınav yerleriniz arasındadır. Düzeltip dosyanızı yeniden yükleyiniz.";
                 $return["sinavYeriOnay"][] = array($key, $satir["sinavyeri"]);
             }
             ////////////// EXCEL'DEN GELEN DEĞERLENDİRİCİLERİN KONTROLÜ ///////////////
             $degTcKimliks = explode(",", trim(str_replace(' ', '', $satir["degerlendirici"])));
             foreach ($degTcKimliks as $degTcKimlik) {
                 if (!in_array(trim($degTcKimlik), $degerlendiriciler)) {
                     $return["hataMesaji"][6] = "Aşağıdaki satırlarda verdiğiniz Değerlendirici/Gözetmen'ler, <a href='index.php?option=com_belgelendirme&view=belgelendirme_islemleri&layout=belgelendirme_degerlendirici' style='color:red;'>Değerlendiriciler</a> arasında yoktur yada Aktif halde değildir. Düzeltip dosyanızı yeniden yükleyiniz.";
                     $return["degerlendirici"][] = array($key, $degTcKimlik);
                 }
             }
             ////////////// EXCEL'DEN GELEN DEĞERLENDİRİCİLERİN KONTROLÜ ///////////////
             $degTcKimliks = explode(",", trim(str_replace(' ', '', $satir["degerlendirici"])));
             foreach ($degTcKimliks as $degTcKimlik) {
                 if ($this->OnayBekleyenDegerlendiriciSayisiKontrol($degTcKimlik, $yeterlilik_id, $user_id) > 0) {
                     if (!in_array(trim($degTcKimlik), $degerlendiriciler)) {
                         $return["hataMesaji"][12] = "Aşağıdaki satırlarda verdiğiniz Değerlendirici/Gözetmen'ler, <a href='index.php?option=com_belgelendirme&view=belgelendirme_islemleri&layout=belgelendirme_degerlendirici' style='color:red;'>Değerlendiriciler</a> dosya sorumlunuz tarafından onay beklemektedir.";
                         $return["degerlendirici"][] = array($key, $degTcKimlik);
                     }
                 }
             }
         }
         if (count($return) > 0) {
             return $return;
         }
         $i = 0;
         foreach ($data as $key => $satir) {
             foreach ($yeterlilik as $yetrow) {
                 if (ucwords(trim(str_replace(' ', '', $yetrow['KODU']))) == ucwords(trim(str_replace(' ', '', $satir["birimkodu"])))) {
                     $birimId = $yetrow['ID'];
                 }
             }
             $param = array($satir['tckn'], $get['sinav'], $birimId, $satir["sinavturukodu"]);
             $sql = "SELECT * FROM M_BELGELENDIRME_ADAY_BILDIRIM \n\t\t\t\t\t\tWHERE TC_KIMLIK=? AND SINAV_ID=? AND BIRIM_ID=? AND SINAV_TURU_KODU=?";
             if ($_db->prep_exec($sql, $param)) {
                 $return["hataMesaji"][7] = "Aşağıdaki satırlardaki adayın bu sınavda aynı birim ve aynı sınav türü ile kaydı bulunmaktadır. Bu dosyadaki hiç bir veri kaydedilmemiştir. Düzeltip dosyanızı yeniden yükleyiniz.";
                 $return["mukerrer"][] = $key;
             }
             $sql = "INSERT INTO M_BELGELENDIRME_ADAY_BILDIRIM (TC_KIMLIK,SINAV_ID,BIRIM_ID,SINAV_TURU_KODU,SINAV_TARIHI,SINAV_SAATI,SINAV_YERI_ID,DEGERLENDIRICI_TC_KIMLIK,YETERLILIK_ID,KURULUS_ID)\n\t\t\t\t\t\tVALUES(?,?,?,?,TO_DATE(?, 'dd.mm.yyyy'),?,?,?,?,?)";
             $param = array($satir['tckn'], $get['sinav'], $birimId, ucwords(trim(str_replace(' ', '', $satir["sinavturukodu"]))), $satir["sinavtarihi"], $satir["sinavsaati"], $satir["sinavyeri"], $satir["degerlendirici"], $yeterlilik_id, $user_id);
             $kayit = $_db->prep_exec_insert($sql, $param);
             if ($kayit) {
                 $i++;
             }
         }
         if ($i == 0) {
             $return["hataMesaji"][8] = "Dosyada boş ya da hatalıdır Kontrol edip tekrar yükleyiniz..";
         }
         if (count($return) > 0) {
             $sql = "DELETE FROM M_BELGELENDIRME_ADAY_BILDIRIM WHERE SINAV_ID=? AND PAKET_ID=-1";
             $_db->prep_exec_insert($sql, array($get['sinav']));
             return $return;
         }
         $paket_id = $_db->getNextVal('SEQ_SINAV_DOSYA');
         $sql = "INSERT INTO M_BELGELENDIRME_SINAV_DOSYA (PAKET_ID,SINAV_ID,UZANTI) VALUES(?,?,?)";
         $_db->prep_exec_insert($sql, array($paket_id, $get['sinav'], $uzanti));
         $sql = "UPDATE M_BELGELENDIRME_ADAY_BILDIRIM SET PAKET_ID = ? WHERE SINAV_ID=? AND PAKET_ID=-1";
         $_db->prep_exec_insert($sql, array($paket_id, $get['sinav']));
         move_uploaded_file($files['upload']['tmp_name'], EK_FOLDER . "sinav_bildirimleri/" . $user_id . "_" . $get["sinav"] . "_" . $paket_id . "." . $uzanti);
         // Kaydetme işleminde sorun yoksa dosyayı m_belgelendirme_sinav_dosya'ya kaydet ve paket_id'yi al
         // excel dosyasını [kuruluş_id]-[sınav_id]-[paket_id].xlsx ismiyle kaydet
         // sonra m_belgelendirme_aday_bildirimieki sinav idsi bizinm sınavımız ve paket_id si -1 olanları yeni paket id sini update et.
         return $return;
     } else {
         $return["hataMesaji"] = "Gönderdiğiniz dosya hatalı.";
         return $return;
     }
 }
Ejemplo n.º 2
0
 function SonraSilTCKontrol()
 {
     $db =& JFactory::getOracleDBO();
     $sql = "SELECT * FROM M_BELGELENDIRME_OGRENCI";
     $data = $db->prep_exec($sql, array());
     // 		$data[] = array('TC_KIMLIK'=>'10669335856','ADI'=>'Hülya','SOYADI'=>'ÖZFİLİZ','DOGUM_TARIHI'=>'1979-05-22 00:00:00');
     $hataArray = array();
     foreach ($data as $row) {
         $date = explode('/', $row['DOGUM_TARIHI']);
         // 			$date = new DateTime($row['DOGUM_TARIHI']);
         // 			$date = strtotime($row['DOGUM_TARIHI']);
         $deger = array('tcno' => $row['TC_KIMLIK'], 'isim' => $row['ADI'], 'soyisim' => $row['SOYADI'], 'dogumyili' => $date[2]);
         $return = FormFactory::TCKimlikDogrulama($deger);
         if ($return !== true && $return !== 'true') {
             $hataArray[] = $row['TC_KIMLIK'];
         }
     }
     return $hataArray;
 }