AnonSec Team
Server IP : 10.128.40.6  /  Your IP : 216.73.216.233
Web Server : Apache
System : Linux webd006.cluster128.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : logmcpe ( 111175)
PHP Version : 7.3.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/logmcpe/www/TMCPRO/pages/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/logmcpe/www/TMCPRO/pages/paye.php
<?php
include 'includes/config_tmcpro.php' ;
include 'includes/stable_functions_tmcpro.php' ;
// ini_set('display_errors','on');
// error_reporting(E_ALL);
// kkk
$ferier = array('0101','0501','0508','0515','0714','1111','1101','1225');
function heuresSemaine($interv, $deb, $to, &$sem)
{
	// echo $deb.' ++ '. $to.'<br/>' ;
	global $agence ;
	global $ferier ;
	$sem = array() ;
	
	$debut = int2time($deb) ;
	
	// $d=1 quand différentk
	$d = date('w', $debut) != 1 ;
	
	// date du début de semaine
	while(date('w', $debut) != 1) {
		$debut -= 24*3600 ;
	}
	// fin de la semaine
	$end = time2int($debut+6*24*3600+3600) ;
	$debut = time2int($debut+3600) ;
	$e = ($end > $to) ;
	
	// si pas début de semaine et fin de semaine supérieur à To => erreur
	if($d && $e)
		return -1 ;
			
	$retour = $d + $e*2 ;
	
	$sem = array('debut' => $debut, 'end' => $end) ;
	list($sem['hc']) = dbi_fetch_row(dbi_query("SELECT contrat_heure FROM ".TABLE_CONTRAT." WHERE contrat_debut <= $end AND agence_id=$agence AND (contrat_fin IS NULL OR contrat_fin > $debut OR contrat_fin=0) AND inter_id = $interv AND Contrat_type_ID != 12 ORDER BY contrat_debut DESC LIMIT 1")) ;
	list($sem['ancien_contrat']) = dbi_fetch_row(dbi_query("SELECT count(*) FROM ".TABLE_CONTRAT." WHERE contrat_debut <= $debut AND agence_id=$agence AND (contrat_fin IS NULL OR contrat_fin > $debut OR contrat_fin=0) AND inter_id = $interv ORDER BY contrat_debut DESC LIMIT 1")) ;
	

	$sem['hc'] = (real)$sem['hc'] ;
	$sem['ht'] = $d || $e ? array(0,0) : 0 ;
	$sem['dim'] = array(0,0);
	$sem['fer'] = array(0,0);
	$trunc = $d||$e ;
	$debut1 = $debut ;
	$end1 = $end ;
	while ($debut1 <= $end1 )
	{
		$q = dbi_query("
SELECT * FROM PRESTATIONS p where presta_date_debut <= $debut1 AND (p.presta_date_fin >= $debut1 OR p.presta_date_fin IS NULL)
AND ( p.presta_id IN (select presta_id FROM PRESTATIONS WHERE salarie_id = $interv   ) OR p.presta_id IN ( select presta_id FROM PRESTATIONS_MODIF WHERE salarie_id = $interv ) )
		");
		// echo "
// SELECT * FROM PRESTATIONS p where presta_date_debut <= $debut1 AND (p.presta_date_fin >= $debut1 OR p.presta_date_fin IS NULL)
// AND ( p.presta_id IN (select presta_id FROM PRESTATIONS WHERE salarie_id = $interv   ) OR p.presta_id IN ( select presta_id FROM PRESTATIONS_MODIF WHERE salarie_id = $interv ) )
		// **";
			while($prest = dbi_fetch_row($q))
		{		
				$date_presta_sem = $prest['presta_date_debut'] ;
				$q1 = dbi_query("SELECT * FROM PRESTATIONS_MODIF WHERE presta_id = ".$prest['presta_id']." order by start, modif_id ") ;
				while (($m = dbi_fetch_row($q1)) && $debut1 >= $m['start'])
				{
					if( $m['presta_sem'] != NULL ) $date_presta_sem = $m['start'];
					$prest['salarie_id'] = $m['salarie_id'] === NULL ? $prest['salarie_id'] : $m['salarie_id'] ;
					$prest['presta_sem'] = $m['presta_sem'] === NULL ? $prest['presta_sem'] : $m['presta_sem'] ;
					$prest['presta_jour'] = $m['presta_jour'] === NULL ? $prest['presta_jour'] : $m['presta_jour'] ;
					$prest['presta_Hdeb'] = $m['presta_Hdeb'] === NULL ? $prest['presta_Hdeb'] : $m['presta_Hdeb'] ;
					$prest['presta_Hduree'] = $m['presta_Hduree'] === NULL ? $prest['presta_Hduree'] : $m['presta_Hduree'] ;
				}
				
				if( $prest['salarie_id'] == $interv ) {
				$day = date("w", strtotime( int2date_autre_format($debut1)));
				
				
				if( $day == $prest['presta_jour'] OR  ( $debut1 == $prest['presta_date_debut'] &&  $prest['presta_date_debut']	== $prest['presta_date_fin'] ) ){
					$EXP = dbi_fetch_row(dbi_query("SELECT date_presta FROM EXCEPTIONS WHERE presta_id = ".$prest['presta_id']." AND date_presta = ".$debut1." " )) ;	   ;
					if($EXP ){}   else {
						
						// echo $debut1.' ****** '.$prest['presta_Hduree'].'<br>' ;
						// echo .'<br>' ;
						
						// if (in_array(substr($debut1, 4, 4), $ferier))

										if($retour==2){ 
				$sem['date'][$debut1] =  $debut1 ;  //pour afficher dimanche
				// si fin du mois
					$sem['ht'][$debut1 > $to]  +=  $prest['presta_Hduree'] ;
					if($day == 0)
					$sem['dim'][$debut1 > $to]  +=  $prest['presta_Hduree'] ;
				
					if(in_array(substr($debut1, 4, 4), $ferier))
					$sem['fer'][$debut1 > $to]  +=  $prest['presta_Hduree'] ;
				
				} elseif($retour==1) {
				// si début mois
					$sem['ht'][$debut1 >= $deb]  +=  $prest['presta_Hduree'] ; 
					if($day == 0)
					$sem['dim'][$debut1 >= $deb]  +=  $prest['presta_Hduree'] ; 
					if(in_array(substr($debut1, 4, 4), $ferier))
					$sem['fer'][$debut1 >= $deb]  +=  $prest['presta_Hduree'] ; 
				} else {
					$sem['ht'] += $prest['presta_Hduree']  ;
					if($day == 0)
					$sem['dim'][0] += $prest['presta_Hduree']  ;
					if(in_array(substr($debut1, 4, 4), $ferier))
					$sem['fer'][0] += $prest['presta_Hduree']  ;
					$sem['date'][$debut1] =  $debut1 ; //pour afficher dimanche
				}
						
					   
					}  
					
					
				}	
					
				}
		}		
		
		// echo $debut1.' ** '.$end1.'<br>';
		
		$debut1 =  date("Ymd", strtotime("+1 day", strtotime($debut1)));
	}	
	

	if($trunc)
	{
		$sem['ht'][0] /= 60 ;
		$sem['ht'][1] /= 60 ;
		$sem['dim'][0] /= 60 ;
		$sem['dim'][1] /= 60 ;
		$sem['fer'][0] /= 60 ;
		$sem['fer'][1] /= 60 ;
	}
	else
	{
		$sem['ht'] /= 60 ;
		$sem['dim'][0] /= 60 ;
		$sem['fer'][0] /= 60 ;
	}
	$abs = array() ;
	
	// Absences intervenants dans la semaine hors congés payés
	$reque = ("SELECT a.*, c.descr FROM ".TABLE_ABSENCES." a LEFT JOIN ".TABLE_CAUSES." c on a.cause = c.cause_id WHERE (type IN ('".MALADIE."', '".PERSO."', '".FERIE."', '".PERSONNE."') OR cause is null) AND a.agence_id=$agence AND inter_id = $interv AND (date_debut between $debut AND $end OR date_fin between $debut AND $end OR (date_debut < $debut AND date_fin > $end) OR (date_debut < $end AND date_fin is NULL))") ;
	
	$q = dbi_query($reque);
		
	while($a = dbi_fetch_row($q))  
	      $abs[] = $a ;
		
	$sem['abs'] = array() ;
	// s'il y a des absences cette semaine 
	if(!empty($abs))
	{   
		//print_r($sem);
	    // On cherche toutes les exceptions pour cause d'intervenant absent 
		//$reque=("SELECT distinct e.* FROM ".TABLE_EXCEPT." e, ".TABLE_PREST." p WHERE en_cours='1' AND e.presta_id=p.presta_id AND agence_id=$agence AND inter_abs = '1' AND e.date BETWEEN '".$sem['debut']."' AND '".$sem['end']."'") ;
		
		$reque=("SELECT distinct e.* FROM ".TABLE_EXCEPT." e, ".TABLE_PREST." p WHERE en_cours='1' AND e.presta_id=p.presta_id AND p.agence_id=$agence AND inter_abs = '1' AND (p.presta_date_fin IS NULL OR p.presta_date_fin >'".$sem['debut']."') AND e.date BETWEEN '".$sem['debut']."' AND '".$sem['end']."' AND ( (p.inter_id='".$interv."' AND (SELECT count(*) FROM ".TABLE_PRESTA_MODIF." m WHERE m.presta_id=p.presta_id AND m.start<=e.date AND m.inter_id IS NOT NULL ORDER BY m.start DESC LIMIT 1)=0) OR '".$interv."'=(SELECT m.inter_id FROM ".TABLE_PRESTA_MODIF." m WHERE m.presta_id=p.presta_id AND m.start<=e.date AND m.inter_id IS NOT NULL ORDER BY m.start DESC LIMIT 1) )");
		
		$q = dbi_query($reque);
		while($a = dbi_fetch_row($q))
		{
			list($nbAnnule) = dbi_fetch_row(dbi_query("SELECT count(*) FROM ".TABLE_EXCEPT." WHERE en_cours='' AND presta_id=".$a['presta_id']." AND date=".$a['date'])) ;
			$p = '' ;
			$date = '' ;
			$Hdeb = '' ;
			$Hfin = '' ;
			$duree = '' ;
			if($nbAnnule)
			{
				$p = dbi_fetch_row(dbi_query("SELECT p.* from ".TABLE_EXCEPT." e LEFT JOIN ".TABLE_PREST." p on p.presta_id=e.new_presta_id WHERE en_cours='' AND e.presta_id=".$a['presta_id']." AND date=".$a['date']." ORDER BY excpt_id DESC LIMIT 1")) ;
				$date = $p['presta_date_debut'] ;
				$Hdeb = $p['presta_Hdeb'] ;
				$Hfin = addDuree($p['presta_Hdeb'], $p['presta_Hduree']) ;
				$duree = $p['presta_Hduree'] ;
			}
			else
			{
				$p = dbi_fetch_row(dbi_query("SELECT p.* from ".TABLE_PREST." p WHERE presta_id=".$a['presta_id']." LIMIT 1")) ;
				$date = $a['date'] ;
				$Hdeb = $p['presta_Hdeb'] ;
				$Hfin = addDuree($p['presta_Hdeb'], $p['presta_Hduree']) ;
				$duree = $p['presta_Hduree'] ;
				$detail = get_occurence($a['presta_id'], 0, $a['date'],0,'') ;
				$duree = $detail['duree'];
				$Hdeb = $detail['deb'];
				$Hfin = addDuree($Hdeb, $duree) ;
			}
			//echo "<br> test datexc=".$a['date']." dateprest=".$p['presta_date_debut']." date=".$date;
			$ok = false ;
			$j = 0 ;
			if($debut <= $date && $date < $end)
			{
			//if($sem['debut']=="20070827") echo "<br>TEST";
				for(; $j < count($abs) && !$ok ; $j++)
				{ ///echo "<br>test=".$j;
					$ok =	($date > $abs[$j]['date_debut'] && $date < $abs[$j]['date_fin']) || # Date entre le debut et la fin
							($date == $abs[$j]['date_debut'] && $Hdeb >= $abs[$j]['heure_debut']) || # Date = debut et presta pendant congé
							($date == $abs[$j]['date_fin'] && $Hfin <= $abs[$j]['heure_fin']) ; # Date = fin et presta pendant congé
				}
				if ($ok) { 
					$sem['abs'][$abs[$j-1]['descr']][$j-1]['heure'] += $duree/60 ;
					$sem['abs'][$abs[$j-1]['descr']][$j-1]['date'] = $date ;
				}
			}
		}
	}
	// echo"<pre>" ;
			// print_r($sem ) ;
			// echo"</pre>" ;
	return $retour ;
}


if(isset($_POST['salarie_ids']) && !empty($_POST['salarie_ids']) && !empty($_POST['du']) && !empty($_POST['au'])){
// echo '<pre>';
// print_r($_POST);
// echo '</pre>';
// include 'includes/fch.php' ;
	// dateformaint($
// $from=dateformaint($_POST['from']);
$du = dateformaint($_POST['du']);
$au = dateformaint($_POST['au']);
// $au=dateformaint($_POST['au']);
// $du = dateformaint($_POST['du']);
// $du=dateformaint($_POST['du']);
// $au=dateformaint($_POST['au']);
// echo '<pre>';
// print_r($_POST);  
// echo '</pre>';
}



if( empty($_POST['du']) && empty($_POST['au']) ) {
$du = date('Ym01');
$au = date('Ymt');
}

$du = int2date_autre_format($du) ;
$au = int2date_autre_format($au) ;
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>MC PRO | Paye</title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- Font Awesome -->
  <link rel="stylesheet" href="../plugins/fontawesome-free/css/all.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
  <!-- daterange picker -->
  <link rel="stylesheet" href="../plugins/daterangepicker/daterangepicker.css">
  <!-- iCheck for checkboxes and radio inputs -->
  <link rel="stylesheet" href="../plugins/icheck-bootstrap/icheck-bootstrap.min.css">
  <!-- Bootstrap Color Picker -->
  <link rel="stylesheet" href="../plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css">
  <!-- Tempusdominus Bbootstrap 4 -->
  <link rel="stylesheet" href="../plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css">
  <!-- Select2 -->
  <link rel="stylesheet" href="../plugins/select2/css/select2.min.css">
  <link rel="stylesheet" href="../plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css">
  <!-- Bootstrap4 Duallistbox -->
  <link rel="stylesheet" href="../plugins/bootstrap4-duallistbox/bootstrap-duallistbox.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="../../dist/css/adminlte.min.css">
  <!-- Google Font: Source Sans Pro -->
  <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
  
  <link rel="stylesheet" href="listing.css">
</head>
<body class="hold-transition sidebar-mini">
<div class="wrapper">
<!-- TOP MENU -->
  <nav class="main-header navbar navbar-expand navbar-white navbar-light">
 <!-- Menu extensible -->
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
      </li>

     
    </ul>

 <!-- liens TOP MENU DROITE -->
    <ul class="navbar-nav ml-auto">
     <!-- Placer ici l'élément à positionner à droite du TOP MENU -->
    </ul>
  
  </nav>  <!-- fin du TOP MENU -->

<?php include('menu.php'); ?>
<div  class="modal fade" id="PrestUpt" role="dialog" class="modal fade task-modal-single in" tabindex="-1"  aria-labelledby="myLargeModalLabel" >
					  <div class="modal-dialog modal-lg">
						<div class="modal-content data">
							<div id="jalil" ></div>
							
							   
							</div>
						</div>
</div>
  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
   


    <!-- Main content -->
    <section class="content">
		<div class="container-fluid">
			
			<div class="row">
				<!-- /.col -->
				<div class="col-md-12">
					<div class="card" >
						<div class="card-header">
							<h5 class="card-title"><i class="nav-icon fas fa-cash-register"></i>  Préparation de la Paye</h5>
						</div>
						<!-- form start -->
						<form role="form" method='POST' action=''>	  
							<!-- /.card-header -->
							<div class="card-body" >
								<div class="row">
								
									
									
									<div class="col-12">
										<div class="form-group">
											<select class="duallistbox" multiple="multiple" style="height: 150px;" name="salarie_ids[]" id="salarie_ids[]">
														<?php   $req =dbi_query("SELECT * FROM salarie WHERE salarie_statut = '1' ORDER BY salarie_nom,salarie_prenom ASC") ;
																while(  $sal=dbi_fetch_row($req)) { ?>
																<option value="<?php echo $sal['salarie_id'] ; ?>" <?php if( isset($_POST['salarie_ids']) && in_array($sal['salarie_id'] , $_POST['salarie_ids'])) echo 'selected';?>><?php echo $sal['salarie_nom'].' '.$sal['salarie_prenom']; ?></option>
														<?php   }	?>
											</select>
										</div>
									</div>
									<div class="form-group col-md-3">
											<label>Du</label>
											<div class="input-group">
												<div class="input-group-prepend"> <span class="input-group-text"><i class="far fa-calendar-alt"></i></span></div>
												<input type="date" class="form-control" id="du" name="du" placeholder="jj/mm/aaaa" value='<?php echo $du;?>' />
											</div>
									</div>
									<div class="form-group col-md-3">
											<label>Du</label>
											<div class="input-group">
												<div class="input-group-prepend"> <span class="input-group-text"><i class="far fa-calendar-alt"></i></span></div>
												<input type="date" class="form-control" id="au" name="au" placeholder="jj/mm/aaaa" value='<?php echo $au;?>' />
											</div>
									</div>
									<div class="col-sm-3">
									  <div class="form-group"><label><br/></label>
										<button type="submit" class="btn btn-block bg-primary">Valider</button>
									  </div>
									</div>	
								</div>
							</div>
						</form>
					</div>
				</div> <!-- /.col -->
			</div><!-- /.row -->







		<?php
		define ('GOOD', '#2DCD0C');
		define ('BAD', '#FD0005');
		$mois=array('01'	=>'janvier','02'	=>'fevrier','03'	=>'mars','04'	=>'avril','05'	=>'mai','06'	=>'juin','07'	=>'juillet','08' =>'aout','09'	=> 'septembre','10'	=> 'octobre','11'	=> 'novembre','12'	=> 'decembre');
		if(isset($_POST['salarie_ids']) && !empty($_POST['salarie_ids']) && !empty($_POST['du']) && !empty($_POST['au'])){
			$from = dateformaint($_POST['du']);
			$to = dateformaint($_POST['au']);;
			$liste = array() ;		
			$hb_gtot = 0;
			$hcomp_gtot = 0;
			$hsup_gtot = 0;
			$delta_gtot = 0;
			foreach($_POST['salarie_ids'] as $interv)
			{
				$intervenant = dbi_fetch_row(dbi_query("select CONCAT( salarie_genre, ' ' ,salarie_nom, ' ' ,salarie_prenom ) as nom from salarie where inter_id = $interv LIMIT 1")) ;
				$inter = dbi_fetch_row(dbi_query("SELECT * FROM salarie WHERE inter_id = $interv ")) ; 
				$eche= dbi_fetch_row(dbi_query("SELECT Echelon FROM echelon where echelon  =  '".$inter['salarie_echelon']."'"));
				// $inti= dbi_fetch_row(dbi_query("SELECT intitule FROM poste_intitule where poste_intitule_ID =  ".$inter['salarie_position']));
				$po= dbi_fetch_row(dbi_query("SELECT Position FROM position where position =  '".$inter['salarie_position']."'"));
						if($inter['salarie_situation_paiement']==0)
				{
				 $inter_paiement= "mensuel" ; 
				}
				else
				{
				 $inter_paiement= "hebdomadaire" ; 
				}
				// echo $interv.'</br>';
				
				// echo '<div align="center"> <b> '.$intervenant['nom'].'</b> '."   Position : ".$po['Position']." -  Echelon : ".$eche['Echelon']." - paiement : $inter_paiement </div>" ;				
		?>			
				<div class="row">
					<div class="card col-md-12">
						<div class="card-header">
							<div class="user-block">
							  <span class="username" ><a href="#"><?php echo $intervenant['nom']; ?></a></span>
							  <span class="description"><?php echo "   Position : ".$po['Position']." -  Echelon : ".$eche['Echelon']." - paiement : $inter_paiement "?></span>
							</div>
							<!-- /.user-block -->
							<div class="card-tools">
							  <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i>
							  </button>
							  <button type="button" class="btn btn-tool" data-card-widget="remove"><i class="fas fa-times"></i>
							  </button>
							</div>
							<!-- /.card-tools -->
						 </div>

					  <!-- /.card-header -->
					  <div class="card-body p-0">
						<div class="table-responsive">
						  <table class="table m-0">
							<thead>
							<tr>
							  <th style='text-align:center;'>Période</th>
							  <th style='text-align:center;'>Contrat</th>
							  <th style='text-align:center;'>Travaillées</th>
							  <th style='text-align:center;'>Evénements</th>
							  <th style='text-align:center;'>Delta</th>
							  <th style='text-align:center;'>Dimanche</th>
							  <th style='text-align:center;'>Jours fériés</th>
							</tr>
							</thead>
							<tbody>
<?		
		$debut = $from ;
		$hm = 0;
		
		$ht_tot = 0;
		$hb_tot = 0;
		$hcomp_tot = 0;
		$hsup_tot = 0;
		$habs_tot=0;
		$deltap_tot = 0;
		$deltan_tot = 0;
		
		for ($i = 0 ; $debut <= $to ; $i++)
		{
			$part = heuresSemaine($interv, $debut, $to, $sem) ;
			$style='td_listing'.($i % 2);
			$diff=0;
			// echo"<pre>" ;
			// print_r($sem ) ; 
			// echo"</pre>" ;
			
			
			$sql2="SELECT contrat_heure  FROM ".TABLE_CONTRAT." WHERE inter_id = ".$interv." AND agence_id = ".$agence." AND contrat_debut<=".$debut." AND ( contrat_fin IS NULL OR contrat_fin >".$debut." ) AND Contrat_type_ID = 12 ORDER BY contrat_id DESC";
  
  

// echo $sql1;
// exit ; 

list($heures_contrat_ACH)=dbi_fetch_row(dbi_query($sql2));
			// $style='td_listing'.($i % 2);
		// $diff=0;	
			?>
	<TR>				
	  
	  <TD class="<?=$style?>" nowrap><B><?php 
	  // if( $sem['debut'] > $from  ) 
			if($part == 0)
				echo int2date($sem['debut']).' - '. int2date($sem['end']); 
			else if($part == 1){
					 if( $sem['debut'] > $from  ) 
						echo int2date($sem['debut']).' - '. int2date($sem['end']); 
					else 
						echo int2date($sem['debut']).' - '. date('t/m/Y', strtotime(int2date($sem['debut'],'Y-m-d') ));
			}
			
			else if($part == 2){ 
						echo int2date($sem['debut']).' - '. date('t/m/Y', strtotime(int2date($sem['debut'],'Y-m-d') ));
			}
	  
  
  
	  
	  // ?></B></TD>
      
	  <!-- Heures du contrat -->
	  <TD class="<?=$style?>"<?=$part ? ' rowspan="2"' : ''?> nowrap>
	  <B> <?=number_format( $sem['hc'], 2, ',', ' ');?></B>
	 </TD>
	  <?php $httemp = 0;
	  if($part){
			$httemp += $sem['ht'][0] ;
			if(isset($sem['ht'][1]))
				$httemp += $sem['ht'][1] ; 
			if(isset($sem['ht'][2]))
				$httemp += $sem['ht'][2] ; 
		  
			$diff=$httemp -$sem['hc'] ;
	  }		  
	  
else	  $diff=$sem['ht']-$sem['hc'];?>
	  <!-- Heures travaillées + Date du jour si au début ou fin de mois -->
	  <TD class="<?=$style?>" nowrap>
	  

	  <B>
	   <?=number_format( ($part ? $sem['ht'][0] : $sem['ht']), 2, ',', ' ');?>
	  <?
	  if ($part==1) $ht_tot+=$sem['ht'][1];
	  else if ($part==2) $ht_tot+=$sem['ht'][0];
	  else if ($part==0) $ht_tot+=$sem['ht'];
	  ?>
	  </B>
      </TD>
	  <!-- Heures de congés, maladie ou personelle -->
	  <TD class="<?=$style?>"<?=$part ? ' rowspan="2"' : ''?> nowrap><? 
	  		foreach($sem['abs'] as $a => $id)
			{ 
			
				foreach($id as $cle => $valeur)
				{ 
					if ($a == "Congés maladie") {
						$jus='Maladie : ' ;
						$habs += $valeur['heure'];
					} else if ($a == "Jour férié") {
						$jus='Jour férié : ' ;
						//$habs += $valeur['heure'];
						//$sem['ht'] = $sem['ht'] + $valeur['heure'];
					} else if ($a == "Congé pour convenance personnelle") {
						$habs += $valeur['heure'];
						$jus= 'Convenance personnelle : ' ;
					} else if ($a == "") {
						$habs += $valeur['heure'];
						$jus = 'Injustifiée : ' ;
					} else {
						$habs += $valeur['heure'];
						$jus= stripslashes($a) . ' : ' ;
					}
			
				}
			}
			$habs_tot+=$habs;
			
			
			
			$q = dbi_query("SELECT * FROM ".TABLE_ABSENCES." a LEFT JOIN ".TABLE_CAUSES." c on a.cause = c.cause_id WHERE a.agence_id=$agence AND a.inter_id=".$interv." 
			AND (
			(date_fin BETWEEN ".$sem['debut']." AND ".$sem['end']." OR date_debut BETWEEN ".$sem['debut']." AND ".$sem['end'].")
			OR 
			(date_fin >= ".$sem['end']." AND date_debut <= ".$sem['end'].")
			OR 
			(date_fin >= ".$sem['end']." AND date_debut <= ".$sem['debut'].")
			
	        )
			ORDER BY date_debut DESC");
		
			//$q = dbi_query("SELECT * FROM ".TABLE_ABSENCES." a LEFT JOIN ".TABLE_CAUSES." c on a.cause = c.cause_id WHERE a.agence_id=$agence AND a.inter_id= 1988 AND (date_fin BETWEEN ".$sem['debut']." AND ".$sem['end'].") AND (date_fin > ".$sem['end'].") ORDER BY date_debut DESC");
			while ($abs = dbi_fetch_row($q))
			{
	         // echo "<pre>" ;
			 // print_r($abs);
			 // echo "<pre>" ;
			 // exit();
			if($abs['date_fin'] == NULL || $abs['date_fin'] == $abs['date_debut'])
			echo $abs['descr']." , le ".substr (int2date($abs['date_debut']),0,2).' '.$mois[substr(int2date($abs['date_debut']),3,2)].'<br />';
			else
			echo $abs['descr']." , le ".substr (int2date($abs['date_debut']),0,2).' '.$mois[substr(int2date($abs['date_debut']),3,2)].' au '.substr (int2date($abs['date_fin']),0,2).' '.$mois[substr(int2date($abs['date_fin']),3,2)].'<br />';
			}
			$contrat = dbi_query("SELECT * FROM ".TABLE_CONTRAT." WHERE inter_id=".$interv." AND agence_id = $agence AND (contrat_debut BETWEEN ".$sem['debut']." AND ".$sem['end']." OR contrat_fin BETWEEN ".$sem['debut']." AND ".$sem['end']." ) ORDER BY contrat_debut DESC") ;
		// echo "SELECT * FROM ".TABLE_CONTRAT." WHERE inter_id=".$interv." AND agence_id = $agence AND (contrat_debut BETWEEN ".$sem['debut']." AND ".$sem['end']." OR contrat_fin BETWEEN ".$sem['debut']." AND ".$sem['end']." ) ORDER BY contrat_debut DESC";
		while ($cc = dbi_fetch_row($contrat))
			{
			if($cc['parent_id']==NULL)
				{
					$msg=" Contrat initial d'une durée de ".$cc['contrat_heure']."H ";
				if($cc['contrat_debut'] >= $sem['debut'] || $cc['contrat_debut'] <= $sem['end'])
					$msg.=",débutant le ".int2date($cc['contrat_debut'])." à ".$cc['contrat_Hdebut']."H  ";
				if(($cc['contrat_fin'] >= $sem['debut'] || $cc['contrat_fin'] <= $sem['end']) && $cc['contrat_fin']!=NULL)	
					$msg.=",et finissant le".int2date($cc['contrat_fin']);
					$msg.="<br/>";		
				}
			elseif($cc['parent_id']>0)
				{
				$msg=" Avenant temporaire d'une durée de ".$cc['contrat_heure']."H ";
				if($cc['contrat_debut'] >= $sem['debut'] || $cc['contrat_debut'] <= $sem['end'])
					$msg.=",débutant le ".int2date($cc['contrat_debut'])." à ".$cc['contrat_Hdebut']."H ";
				if(($cc['contrat_fin'] >= $sem['debut'] || $cc['contrat_fin'] <= $sem['end']) && $cc['contrat_fin']!=NULL)	
					$msg.=",et finissant le".int2date($cc['contrat_fin']);
					$msg.="<br/>";	
				}
			echo $msg;
			}
			  ?></TD>
			  
			  
			  
			  
	  <?php
			if ($sem['hc']>0 && $sem['ancien_contrat']==0) {
				switch($part)
				{
					case 0 :
						$sem['hc'] = $sem['ht'];
						break ;
					case 1 :
						$sem['hc'] = $sem['ht'][0];
						break ;
					case 2 :
						$sem['hc'] = $sem['ht'][1];
						break ;
				}
			}
			if( $part == 0) {
					$hc = $sem['hc'];
					//$habs = $sem['abs'][0][0]+$sem['abs'][0][1];
					$ht = $sem['ht'];
					$hc2 = $ht;
					if ($habs>0) $hb = max($ht,$hc-$habs); else $hb = $hc;
			}
			elseif( $part == 1) {
					$habs_mois_prec = $sem['abs'][0][0];
					$habs_debut_mois = $sem['abs'][0][1];
					//$habs = $habs_mois_prec + $habs_debut_mois;
					$ht_mois_prec = $sem['ht'][0];
					$ht_debut_mois = $sem['ht'][1];
					$hc = $sem['hc'] - $ht_mois_prec;
					$ht = $ht_mois_prec + $ht_debut_mois;
					$hc2 = $ht;
					//if($ht_debut_mois>$sem['hc']) $hb = $sem['hc']-$habs;
					if($ht_debut_mois>$sem['hc']) $hb = $hc-$habs;
					else $hb = max($ht_debut_mois-$ht_mois_prec,$hc-$habs);
			}
			elseif( $part == 2) {
					$habs_fin_mois = $sem['abs'][0][0];
					$habs_mois_suiv = $sem['abs'][0][1];
					//$habs = $habs_fin_mois + $habs_mois_suiv;
					$ht_fin_mois = $sem['ht'][0];
					$ht_mois_suiv = $sem['ht'][1];
					$hc = $sem['hc'] - $ht_mois_suiv;
					$ht = $ht_fin_mois + $ht_mois_suiv;
					$hc2 = $ht_fin_mois;
					$hb = $ht_fin_mois;
					//$hc = $sem['ht'][0]-$sem['hc'];
					//$hc2 = max($sem['ht'][0]+$sem['ht'][1],$sem['hc'])-$sem['abs'][0][0]-$sem['abs'][0][1];
			}				
			
			$hb_tot+=$hb;

?>			
	  <!-- Heures Complémentaire -->	  
	 <?php
		$comp=0;
		if( $hc2 >= ($sem['hc']*(1+0.1)) )  $comp=$sem['hc']*0.1; 
		else if( $hc2 < ($sem['hc']*(1+0.1)) && $hc2 > $sem['hc']) $comp = $hc2-$sem['hc'];
        
		// echo '<span style="float:center">'.$comp.'</span>';
		$hcomp_tot+=$comp;
	  ?> 
	  
	  <!-- Heures Supplémentaire -->
	  <?php
		$supp=0;
		if( $hc2 >= ($sem['hc']*(1+0.1)) ) $supp=$hc2-$sem['hc']-$comp;

		// echo '<span style="float:center">'.$supp.'</span>';
		$hsup_tot+=$supp;
	  ?>	 
		
	  <!-- Heures complémentaires - Delta -->	  
	  <!-- Heures complémentaires - Delta -->	  
	  <TD class="<?=$style?>"<?=$part ? ' rowspan="2"' : ''?> nowrap ><?php
//	  		switch($part)
//			{
//				case 0 :
//					$hc = $sem['ht']-$sem['hc'];
//					break ;
//				case 1 :
//					$hc = $sem['ht'][0]+$sem['ht'][1]-$sem['hc'];
//					break ;
//				case 2 :
//					//$hc = $sem['ht'][0]-$sem['hc'];
//					$hc = $sem['ht'][0]+$sem['ht'][1]-$sem['hc'];
//					break ;
//			}
			
			//echo '<span style="font-weight:bold;color:'.($hc>=0?GOOD:BAD).';">'.$hc.' ('.($sem['hc'] ? number_format($hc/$sem['hc']*100,2,',',' ').'%' : 'indetermin&eacute;').')</span>';
			
	  		switch($part)
			{
				case 0 :
					if ($ht < ($hb + $comp + $supp)) $delta = $ht - ($hb + $comp + $supp) + $habs;
					else $delta = ($hb + $comp + $supp) - $sem['hc'] + $habs;
					break ;
				case 1 :
					if (($ht - $sem['ht'][0]) < ($hb + $comp + $supp)) $delta = ($ht - $sem['ht'][0]) - ($hb + $comp + $supp) + $habs;
					else $delta = ($hb + $comp + $supp) + $sem['ht'][0] - $sem['hc'] + $habs; 
					break ;
				case 2 :
					if (($ht - $sem['ht'][1]) < ($hb + $comp + $supp)) $delta = ($ht - $sem['ht'][1]) - ($hb + $comp + $supp) + $habs;
					else $delta = $sem['ht'][1] + ($hb + $comp + $supp) - $sem['hc'] + $habs;
					break ;
			}
			if ($delta>0) $deltap_tot+=$delta;
			else $deltan_tot+=$delta;
			
			echo '<span style="font-weight:bold;color:'.($diff>0?GOOD:BAD).';">'.number_format( $diff, 2, ',', ' ').'</span>';?></TD>
			
	  <TD class="<?=$style?>" nowrap><B>
	 <?php if($sem['dim'][0]) echo $sem['dim'][0];?>  
	  </B>
      </TD>
	  <TD class="<?=$style?>" nowrap><B>
	 <?php if($sem['fer'][0]) echo $sem['fer'][0];?>  
	  </B>
      </TD>  	  
	</TR> 
	
			<?php
			if($part)
			{
?>
	<tr>
    	<td class="<?=$style?>" nowrap><B><?php 
		if($part == 2)
			
		echo date('01/m/Y', strtotime(int2date($sem['end'],'Y-m-d') )).' - '.int2date($sem['end']);
		// if( $sem['end'] > $to  ) echo ' **** ' ; else 
		else
		echo sprintf("%s - %s", $part == 1 ? int2date($debut) : int2date($to), int2date($sem['end']));?></B></td>
		<td class="<?=$style?>" nowrap><B><?=$sem['ht'][1]?></B></td>
		<td class="<?=$style?>" nowrap><B><?php if($sem['dim'][1]) echo $sem['dim'][1];?></B></td>
		<td class="<?=$style?>" nowrap><B><?php if($sem['fer'][1]) echo $sem['fer'][1];?></B></td>

	</tr>
<?php
			}
			
			$debut = int2time($debut) ;
			// debut de la semaine suivante
			$debut = time2int($debut + (8-(date("w", $debut) ? date("w", $debut) : 7))*24*3600+3600) ;
			
		} 
		
		
		?>
							</tbody>
						  </table>
						</div>
						<!-- /.table-responsive -->
					  </div>
					  <!-- /.card-body -->
					  <!-- /.card-footer -->
					</div>
				</div>	
		<?php
			}
		}
		?>			
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
		
			
			

        <!-- /.row -->
      </div><!-- /.container-fluid -->
    </section>
    <!-- /.content -->
  </div>
  <!-- /.content-wrapper -->

  <footer class="main-footer">
    <div class="float-right d-none d-sm-block">
      <b>Version</b> 3.0.2
    </div>
    <strong>Copyright &copy; 2014-2019 <a href="http://adminlte.io">AdminLTE.io</a>.</strong> All rights
    reserved.
  </footer>

  <!-- Control Sidebar -->
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
  </aside>
  <!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->

<!-- jQuery -->
<script src="../plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Select2 -->
<script src="../plugins/select2/js/select2.full.min.js"></script>
<!-- Bootstrap4 Duallistbox -->
<script src="../plugins/bootstrap4-duallistbox/jquery.bootstrap-duallistbox.js"></script>
<!-- InputMask -->
<script src="../plugins/moment/moment.min.js"></script>
<script src="../plugins/inputmask/min/jquery.inputmask.bundle.min.js"></script>
<!-- date-range-picker -->
<script src="../plugins/daterangepicker/daterangepicker.js"></script>
<!-- bootstrap color picker -->
<script src="../plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="../plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js"></script>
<!-- Bootstrap Switch -->
<script src="../plugins/bootstrap-switch/js/bootstrap-switch.min.js"></script>
<!-- AdminLTE App -->
<script src="../../dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="../../dist/js/demo.js"></script>
<!-- Page script -->
<script>
  $(function () {
$("#allcheck").click(function(){
    $('input:checkbox').not(this).prop('checked', this.checked);
});
	 var TOTALCA ="<?php echo number_format( $CATTC, 2, ',', ' ').'<sup> € </sup>';?>";
	$('#TOTALCA').html(TOTALCA);
	 var TOTALCAHT ="<?php echo number_format( $CAHT, 2, ',', ' ').'<sup> € </sup>';?>";
	$('#TOTALCAHT').html(TOTALCAHT); 	
    //Initialize Select2 Elements
    $('.select2').select2()

    //Initialize Select2 Elements
    $('.select2bs4').select2({
      theme: 'bootstrap4'
    })

    //Datemask dd/mm/yyyy
    $('#datemask').inputmask('dd/mm/yyyy', { 'placeholder': 'dd/mm/yyyy' })
    //Datemask2 mm/dd/yyyy
    $('#datemask2').inputmask('mm/dd/yyyy', { 'placeholder': 'mm/dd/yyyy' })
    //Money Euro
    $('[data-mask]').inputmask()

    //Date range picker
    $('#reservation').daterangepicker()
    //Date range picker with time picker
    $('#reservationtime').daterangepicker({
      timePicker: true,
      timePickerIncrement: 30,
      locale: {
        format: 'MM/DD/YYYY hh:mm A'
      }
    })
    //Date range as a button
    $('#daterange-btn').daterangepicker(
      {
        ranges   : {
          'Today'       : [moment(), moment()],
          'Yesterday'   : [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
          'Last 7 Days' : [moment().subtract(6, 'days'), moment()],
          'Last 30 Days': [moment().subtract(29, 'days'), moment()],
          'This Month'  : [moment().startOf('month'), moment().endOf('month')],
          'Last Month'  : [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
        },
        startDate: moment().subtract(29, 'days'),
        endDate  : moment()
      },
      function (start, end) {
        $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'))
      }
    )

    //Timepicker
    $('#timepicker').datetimepicker({
      format: 'LT'
    })
    
    //Bootstrap Duallistbox
    $('.duallistbox').bootstrapDualListbox()

    //Colorpicker
    $('.my-colorpicker1').colorpicker()
    //color picker with addon
    $('.my-colorpicker2').colorpicker()

    $('.my-colorpicker2').on('colorpickerChange', function(event) {
      $('.my-colorpicker2 .fa-square').css('color', event.color.toString());
    });

    $("input[data-bootstrap-switch]").each(function(){
      $(this).bootstrapSwitch('state', $(this).prop('checked'));
    });

  })
</script>
</body>
</html>

AnonSec - 2021