|
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/TEST/../TMCPRO/pages/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?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é').')</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 © 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>
