<?php

// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
if (isset($_GET)) {
        $server=isset($_GET['server'])?$_GET['server']:'localhost';
        $password=isset($_GET['sifre'])?$_GET['sifre']:'';
		$sDbName=isset($_GET['dbName'])?$_GET['dbName']:'master';
} 
if (isset($_POST['xml'])) {
        $server=isset($_POST['server'])?$_POST['server']:'localhost';
        $password=isset($_POST['sifre'])?$_POST['sifre']:'';
		$sDbName=isset($_POST['dbName'])?$_POST['dbName']:'master';
}
if (strlen($sDbName)>20) exit;
if (strlen($password)>20) exit;
$password=str_replace('*','/',$password);
$user='DersaneAdmin';
$baglan="Driver={SQL Server};Server=$server;Database=$sDbName;";
$ms_conn = odbc_connect($baglan, $user, $password);
$my_conn = mysql_connect("localhost", "root", "");

mysql_select_db("devamNet",$my_conn);

//$sql= odbc_exec($conn,"Select * From TBLOGRENCI");


    if (isset($_GET)) {
				    	$sVtDoldur=isset($_GET['vtdoldur'])?$_GET['vtdoldur']:'';
				    	$sSubeDoldur=isset($_GET['subedoldur'])?$_GET['subedoldur']:'';
				    	$sDanismanDoldur=isset($_GET['danismandoldur'])?$_GET['danismandoldur']:'';
						
				    	$sDanisman=isset($_GET['danisman'])?$_GET['danisman']:'';
				    	$sSube=isset($_GET['sube'])?$_GET['sube']:'';
				    	$sSinifKodu=isset($_GET['sinifKodu'])?$_GET['sinifKodu']:'';
				    	$sSinifAdi=isset($_GET['sinifAdi'])?$_GET['sinifAdi']:'';
				    	$sDers=isset($_GET['ders'])?$_GET['ders']:'';
				    	$sEtut=isset($_GET['etut'])?$_GET['etut']:'0';

              $sDvmBaslik  = '';
              $bSubeSecim  = false;
              $mysql = mysql_query("select * from ayarlar");
			  if ($row=mysql_fetch_assoc($mysql)) {
					$sDvmBaslik  = $row['DevamAlan'];
					$bSubeSecim  = $row['SubeSecim']== 1?true:false;
			  }

            $sXML = '<?xml version="1.0" encoding="iso-8859-9"?>'."\n";


            //--------------------------------------------------------------------------------------
            //--------------------------------------------------------------------------------------
            if ($sVtDoldur == '1') {
                {
                    try {

                      $master = odbc_exec($ms_conn,"SELECT Name FROM Master.dbo.Sysdatabases WHERE NAME NOT IN ('master', 'model', 'msdb', 'pubs', 'tempdb', 'DS_REPORTDB') ORDER BY NAME");
					  
                      $sXML .= '<DbList>';
					  while ($rw=odbc_fetch_object($master)) {
                              if (trim( $rw->Name!='')) {
									$sXML .= '<Veritabani>'  . $rw->Name . '</Veritabani>'."\n";
							  }
					  }
                        $sXML .= '</DbList>'."\n";
					   echo $sXML;
					}
					catch (Exception $e) {
                                echo '<Hata>1100 - Veritabanı bilgileri okunurken hata oluştu!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
					}
				}
			}
			elseif ($sSubeDoldur == '1') {
                    try {
                      $sube = odbc_exec($ms_conn,"SELECT SubeKodu, SubeAdi FROM tblSUBE ORDER BY SubeAdi");
                          
                      $sXML .= '<SubeList>';
					  while ($rw=odbc_fetch_object($sube)) {
									$sXML .= '<SubeAdi SubeKodu= "'. $rw->SubeKodu.' ">'  . $rw->SubeAdi .'</SubeAdi>'."\n";
					  }
                        $sXML .= '</SubeList>'."\n";
						echo $sXML;
					}
					catch (Exception $e) {
                                echo '<Hata>1101 - Şube bilgileri okunurken hata oluştu !!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
					}
				}
               else if ($sDanismanDoldur == '1') {
                    try
                      {
                              $danisman = odbc_exec($ms_conn,' SELECT Id, DanismanAdi FROM tblDANISMAN WHERE SubeKodu = '. $sSube .' ORDER BY DanismanAdi ');

                      $sXML .= '<DanismanList>';
					  while ($rw=odbc_fetch_object($danisman)) {
									$sXML .= '<DanismanAdi>'  . $rw->DanismanAdi . '</DanismanAdi>'."\n";
					  }
                        $sXML .= '</DanismanList>'."\n";
						echo $sXML;

					}
					catch (Exception $e) {
                                echo '<Hata>1102 - Danışman bilgileri okunurken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
					}
				}
            else if (( $sSube != '' ) and ( $sSinifKodu == '' ) and ( $sDers == '' )) {
                    try {
                          $sSinifIdList = '-1';
                          //if not bSubeSecim then
						        $sinif = mysql_query(" SELECT SinifId FROM TanimSubeDanisman WHERE DbName  = '".$sDbName."' AND SubeKodu  = '".$sSube."' AND Danisman  = '".$sDanisman."'");
								
							  while ($rw=mysql_fetch_object($sinif)) {
											$sSinifIdList .=  ',' . $rw->SinifId;
							  }

                          $sTmp = str_replace(';',"+'-'+",$sDvmBaslik);
                          $sTmp = rtrim($sTmp,"+'-'+");
						
						        $sql = " SELECT ID, SubeKodu, SinifKodu, Devre,  Kurs, Zaman, Bolum, Sinif, KursTuru, ( " . $sTmp . " ) AS TmpSinifAdi FROM tblSINIF WHERE SubeKodu = '" . $sSube. "'";

                                //if not bSubeSecim then
                                    $sql.= " AND ( ( ID IN ( ". $sSinifIdList ." ) ) OR ( '". $sSinifIdList ."' = '-1' ) ) ";

                                // alt kısımda yusuf order yapmış ama sinif geldiginde 2 tane sinif olunca patliyor
                                // bu kısma gecici yama yaptım sonra bakılacak (özcan)
                                    
                                if (trim($sTmp) == 'Sinif') 
                                    $sql .= ' ORDER BY ( ' . $sTmp . ' ) ';
                                else 
                                    $sql .= ' ORDER BY ( ' . $sTmp . ' ), Sinif ';
								

                                //ss := SQL.Text;
                                //InputQuery('-2-', 'sınıf - MS-SQL', ss );
								
								$sinif = odbc_exec($ms_conn, $sql);


                                $sXML .= '<List><SinifList>'."\n";

							  while ($rw=odbc_fetch_object($sinif)) {
                                  
                                      if (trim( $rw->TmpSinifAdi ) != '')
                                        $sXML .=  '<Sinif SinifId= "'.$rw->ID.'" SinifKodu= "'.$rw->SinifKodu.'">' .$rw->TmpSinifAdi. '</Sinif>';
                                      else if (trim( $rw->Sinif != '')) 
                                        $sXML .= '<Sinif SinifId= "'.$rw->ID.'" SinifKodu= "'.$rw->SinifKodu.'">' .$rw->Sinif. '</Sinif>';

                                 }

                                $sXML .= '</SinifList></List>';

                                //----------------------------------------

                                echo $sXML;
                                //memoLog.Lines.Add( FormatDateTime('dd.mm.yy hh:mm', Date+Time)+ ' [ GET ] Öğretmen : ' + sOgretmen + ' - Bölüm : ' + sBolum );
					}
					catch (Exception $e) {
                                echo '<Hata>1007 - Sınıf bilgileri okunurken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
					}
		}
            else if (( $sSube != '' ) and ( $sSinifKodu != '' ) and ( $sDers != '' )) {
                
                    try {
                          $sXML .=  '<List>';

                               $sTmp=$sEtut=='0'?'':iconv("iso-8859-1","utf-8",$sDanisman).'_';
							    
                          
                                $sql=  " SELECT LogDevamsizlikId FROM LogDevamsizlik WHERE ( substr(Tarih,1,10)  = '".date("Y-m-d")."'    ) AND ( DbName    = '".$sDbName."'   ) ".
                                            " AND ( Sube      = '".$sSube     ."') ".
                                            " AND ( SinifKodu = '".$sTmp . $sSinifKodu."') ".
                                            " AND ( DersNo    = '". $sDers   ."') ";
								$log_list=mysql_query($sql);
								
								 // echo $sql;
								 $sayi=mysql_num_rows($log_list);
                                $sXML .= '<OgrList log="'.mysql_num_rows($log_list).'" >'."\n";
								
								
									
                                if ($sSinifKodu!='0') 
                                            $sTmp = " AND og.SinifKodu = '" . $sSinifKodu . "'";
                                else
                                            $sTmp = " AND og.DanismanKodu in (Select DanismanKodu From TblDANISMAN where DanismanAdi='" . $sDanisman . "') " ;

                                $sql= ' SELECT og.Id, og.SubeKodu, og.OgrenciNo, og.Adi, og.Soyadi, '.
                                            '   og.SinifKodu, og.DanismanKodu '.
                                            ' FROM tblOGRENCI og '.
                                            ' WHERE og.Kayitlimi=1 and og.SubeKodu  = ' . $sSube .
                                            $sTmp .
                                            ' ORDER BY og.OgrenciNo ';

                                
								$ogrenci_list= odbc_exec($ms_conn, $sql);



							  while ($rw=odbc_fetch_object($ogrenci_list)) {

                                        $sOgrNo = $rw->OgrenciNo;

                                        $sGetDvm = '';
										$tarih=date("d.m.Y");
										$sql= ' SELECT * FROM Yoklama '.
                                                            " WHERE Tarih =  '".$tarih." 00:00:00'".
                                                            ' AND OgrenciNo = '.$sOgrNo;

															$devam_varmi=odbc_exec($ms_conn,$sql);
										if ($rw2=odbc_fetch_object($devam_varmi)) {
										    $d="D".$sDers;										    
											$sGetDvm = $rw2->$d;
										}
										 $sGetDvm = $sGetDvm==''?'0':$sGetDvm;


                                        $sXML .=  '<Ogr>'

                                                  . '<ONo>'  . $rw->OgrenciNo. '</ONo>'
                                                  . '<OAd>'  . $rw->Adi       . '</OAd>'
                                                  . '<OSyd>' . $rw->Soyadi    . '</OSyd>'
                                                  . '<ODvm>' . $sGetDvm                           . '</ODvm>'

												  . '</Ogr>'."\n";

                                 } 

                                $sXML .=  '</OgrList>'."\n\n";

                                $sXML .=  '<Yoklama>'."\n\n";
								
								$yoklama_sebebi=odbc_exec($ms_conn,' SELECT SubeKodu, YoklamaSebebiKodu, YoklamaSebebiAdi '.
                                            ' FROM YoklamaSebebi '.
                                            ' WHERE SubeKodu = ' . $sSube);
								

                                while ($rw=odbc_fetch_object($yoklama_sebebi)) {
                                      $sXML .=  '<YoklamaAdi Kodu="'.$rw->YoklamaSebebiKodu.'">'  .$rw->YoklamaSebebiAdi. '</YoklamaAdi>'."\n\n";

								}
                                $sXML .= '</Yoklama>';

                                //memoLog.Lines.Add( FormatDateTime('dd.mm.yy hh:mm', Date+Time)+ ' [ GET ] Öğretmen : ' + sOgretmen + ' - Sınıf : ' + sSinif + ' - Ders : ' + sDers );
                            

                          $sXML .= '</List>';
                          echo $sXML;
					}
					catch (Exception $e) {
                                echo '<Hata>1006 - Öğrenci bilgileri okunurken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
					}
				}
	}
	if (isset($_POST['xml'])) {

            //----------------------------
            //----------  1001  ----------
            //----------------------------
			$xml=str_replace('*!*!','<',$_POST['xml']);
			$xml=str_replace('!!!!','>',$xml);
			try {
			    $xml = simplexml_load_string($xml);
			 //echo "1";
				$sDanisman=tr_duzelt($xml->attributes()->danisman);
				$sSube=$xml->attributes()->sube;
				$sSinifKodu=$xml->attributes()->sinifKodu;
				$sSinifAdi=$xml->attributes()->sinifAdi;
				$sDers=$xml->attributes()->ders;
				$sEtut=$xml->attributes()->etut;
                if ($sEtut=='') $sEtut = '0';
                $sTarih = date("d.m.Y");
				
            }
					catch (Exception $e) {
                                echo '<Hata>1001 - Parametre Bilgileri okunurken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
							exit;
					}
			

            //----------------------------
            //----------  1002  ----------
            //----------------------------


            try
				{
				  foreach($xml->Ogr as $ogrenciler) {
						
                      $sOgrNo  = $ogrenciler->ONo;
                      $sOgrAd  = $ogrenciler->OAd.' '.$ogrenciler->OSyd;
                      $sDevam  = $ogrenciler->ODvm;
                      if ($sDevam == '0') $sDevam = '';
				  

                      // boş geldiğinde hata veriyor...

                      //----------------------------
                      //----------  1003  ----------
                      //----------------------------

                      // yoklama kaydı olmayanlar eklenmiyor!!!!
					  
                      if ($sDevam != '')
                        {
                              try {
									$sql= ' SELECT * '.
                                                  ' FROM Yoklama y '.
                                                  " WHERE ( SubeKodu  = ".$sSube  .") ".
                                                  " AND ( Tarih       = '".date("d.m.Y")." 00:00:00"."') ".
                                                  " AND ( OgrenciNo   = ".$sOgrNo."  ) ";
								      
									  $devam=odbc_exec($ms_conn,$sql);
									  
									  if (($sEtut=='1') and ($sDevam=='Y')) $sDevam='E';

                                      if ($rw=odbc_fetch_object($devam)) {
									       $d="D".$sDers;
									       if ($rw->$d=='') {
														$sql= "UPDATE Yoklama SET D".$sDers." = '".$sDevam."' WHERE SubeKodu  = '".$sSube."' and OgrenciNo = $sOgrNo AND  Tarih = '".date("d.m.Y")." 00:00:00'";
														odbc_exec($ms_conn,$sql);
												}
                                          }
                                      else 
                                          {
                                            $sql =" Insert into YOKLAMA (SubeKodu,Foto,OgrenciNo,Tarih,D".$sDers.") values ('".$sSube."',1,".$sOgrNo.",'".date("d.m.Y")." 00:00:00','".$sDevam."')";
											odbc_exec($ms_conn,$sql);
                                    }
								 }
								catch (Exception $e) {
												echo '<Hata>1003 - Devamsızlık bilgileri kaydedilirken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

				//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
				  //                              AResponseInfo.ContentText := sMesaj;
												exit;
									}				

                              //----------------------------
                              //----------  1004  ----------
                              //----------------------------
                              $sTmp = '';
                              
                                    $sql = ' SELECT SubeKodu, YoklamaSebebiKodu, YoklamaSebebiAdi '.
                                                ' FROM YoklamaSebebi '.
                                                ' WHERE SubeKodu = ' . $sSube.
                                                " AND YoklamaSebebiKodu = '" . $sDevam . "'";
                                    $st=odbc_exec($ms_conn,$sql);
									if ($s=odbc_fetch_object($st))  $sTmp = $s->YoklamaSebebiAdi;
							 

                              if ( $sTmp == '' ) $sTmp = $sDevam;

                              try
							   {
                                        $sTmp2 = $sEtut=='0'?'':$sDanisman.'_';
                                        $sql = ' INSERT INTO LogDevamsizlik ( LogTarih, Tarih, DbName, Sube, SinifKodu, SinifAdi, Danisman, OgrNo, OgrAdi, DersNo, Durum ) '.
                                                    " VALUES ( '".date("Y-m-d")."', '".date("Y-m-d")."','". $sDbName."','".$sSube."','".$sTmp2.$sSinifKodu."','".$sSinifAdi."','".
													$sDanisman."','".$sOgrNo ."','".$sOgrAd."','".$sDers."','".$sTmp."') ";
										mysql_query($sql);

								 }
								catch (Exception $e) {
												echo '<Hata>1004 - Devamsızlık LOG bilgileri kaydedilirken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

				//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
				  //                              AResponseInfo.ContentText := sMesaj;
											exit;
									}				
                        }//if sDevam <> '' then
				 }
				} 
				catch (Exception $e) {
                                echo '<Hata>1002 - Devamsızlık bilgileri kaydedilirken hata oluştu!!'."\nHATA : ".$e->getMessage()."</hata>";

//                                LogEkle( 'IP Adresi : '+ARequestInfo.Host+' - '+ sMesaj );
  //                              AResponseInfo.ContentText := sMesaj;
							exit;
					}				
            //-----------------------------------------------------------------------------------------------------
            //-----------------------------------------------------------------------------------------------------

            //memoLog.Lines.Add( FormatDateTime('dd.mm.yy hh:mm', Date+Time)+ ' [ POST ] Öğretmen : ' + sOgretmen + ' - Sınıf : ' + sSinif +' - Ders : ' + sDers );
			
            echo 'OK';
	
  }
?>