function nbjoursouvres($mois, $annee) { $date_depart = strtotime($annee . "-" . $mois . "-01"); $samedi = 0; $dimanche = 0; $ferie1 = 0; $nbjoursMois = nbjoursMois($mois, $annee); $jour = jour_semaine($mois, 1, $annee); $feries = getFeries($date_depart); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $ferie1++; break; case $jour == 6: $samedi++; break; case $jour == 7: $dimanche++; break; } if ($jour == 7) { $jour = 0; } $jour++; } $jourouvre = $nbjoursMois - $ferie1 - $dimanche - $samedi; return $jourouvre; }
/** * génère le RAM * */ function generer_ram() { $nbJours = nbjoursMois($_POST['mois'], $_POST['annee']); $tab_jour = array(); $tab_client = array(); $tab_conge = array(); $tab_projet = array(); $query_projet = "SELECT DISTINCT P.PRO_NO, P.PRO_NOM, C.CLI_NO, C.CLI_NOM FROM CLIENT C, PROJET P WHERE P.CLI_NO=C.CLI_NO"; $result_projet = $GLOBALS['connexion']->query($query_projet); while ($row = $result_projet->fetch_assoc()) { $tab_projet[$row['PRO_NO']] = array('PRO_NOM' => $row['PRO_NOM'], 'CLI_NO' => $row['CLI_NO'], 'CLI_NOM' => $row['CLI_NOM']); } for ($i = 1; $i <= $_POST['nb_client']; $i++) { $tab_client[$_POST['projet' . $i]] = array(); } for ($i = 1; $i <= $nbJours; $i++) { $tab_jour[$i] = array(); $tab_conge[$i] = array(); foreach ($tab_client as &$client) { $client[$i] = array(); } } /* * à ce point, on a la liste des jours dans tab_jour, * dans tab_client on a une ligne par client et la liste des jours pour chacun * et pour $tab_conge on a la liste des jours */ ajout_classe($tab_jour); remplir_ram($tab_jour, $tab_client, $tab_conge); $html = '<form action="ram_envoyes.php" method="post">' . ram_to_html($tab_jour, $tab_client, $tab_conge, $tab_projet); //echo "MODE ".$_POST['mode']; switch ($_POST['mode']) { case 'creer': $html .= ajout_comm_apsa(); break; case 'modif': $html .= ajout_tab_conge() . ajout_comm_apsa() . ajout_comm_cli($tab_client, $tab_projet); break; case 'voir': $html .= ajout_tab_conge() . ajout_comm_apsa() . ajout_comm_cli($tab_client, $tab_projet); break; case 'imprimer': case 'imprimerAdm': $html = select_cli($tab_client, $tab_projet) . $html; $html .= ajout_tab_recap($tab_jour) . ajout_comm_cli($tab_client, $tab_projet); $html .= ajout_signature(); break; } return $html; }
$query = "SELECT ID_TYABS, NOM_TYABS FROM type_abs"; $result = $GLOBALS['connexion']->query($query); $types = array(); while ($row = $result->fetch_assoc()) { $types[str_replace(' ', '', $row['NOM_TYABS'])] = $row['ID_TYABS']; } /* * suppression des anciens enregistremets */ $query = "DELETE FROM demande_abs WHERE ANNEE_DEM = '" . $_POST['annee'] . "' AND MOIS_DEM = '" . $_POST['mois'] . "' AND ID_COL = '" . $_SESSION['col_id'] . "'"; $GLOBALS['connexion']->query($query); /* * ajout des enregistrements */ $query = "INSERT INTO demande_abs (ID_COL, ID_TYABS, JOUR_DEM, MOIS_DEM, ANNEE_DEM, NBH_DEM) VALUES "; $vars = array('ID_COL' => $_SESSION['col_id'], 'ID_TYABS' => '', 'JOUR_DEM' => '', 'MOIS_DEM' => $_POST['mois'], 'ANNEE_DEM' => $_POST['annee'], 'NBH_DEM' => ''); $nbJours = nbjoursMois($_POST['mois'], $_POST['annee']); for ($i = 1; $i <= $nbJours; $i++) { if (isset($_POST[$i])) { $vars['JOUR_DEM'] = $i; $vars['NBH_DEM'] = 1; $classe = explode('-', $_POST[$i]); if (count($classe) == 2) { $vars['NBH_DEM'] = 0.5; } $vars['ID_TYABS'] = $types[$classe[0]]; $query .= "('" . implode("', '", $vars) . "'), "; } } $GLOBALS['connexion']->query(substr($query, 0, -2)); echo "Votre demande a été prise en compte";
} if ($_POST['mode'] == 'imprimer' || $_POST['mode'] == 'imprimerAdm') { ?> <div class="row-fluid"> <div class="offset6 span10"> <button class='btn btn-primary not_printed' type='button' onClick="javascript:ImprimeRAM();"> Imprimer </button> </div> </div> <?php } ?> </form> </div> <div id='footer'> <div id="nbJours" style="display:none"><?php echo nbjoursMois($_POST['mois'], $_POST['annee']); ?> </div> <script type="text/javascript" src="js.js"></script> </div> <script type="text/javascript"> function ImprimeRAM(){ $('.').css('margin-top', '0px'); var comcli = $('textarea[name^=comcli_]').val(); if (comcli == ""){ $('div[name=libcomcli]').attr('class', 'not_printed'); $('textarea[name^=comcli_]').attr('class', 'not_printed'); } window.print(); } <?php
$designation[] = array($FAC_NOMPRO, $FAC_PRODETAIL, $FAC_ELEM); while (isset($row['FAC_ELEM_SUP_' . $i]) && !empty($row['FAC_ELEM_SUP_' . $i])) { $elem = explode("­", $row['FAC_ELEM_SUP_' . $i]); //Le montant HT représentant le montant du projet principal facturé. Le montantHT étant modifié par les éventuels lignes supplémentaires //On retranche donc le montant des éléments supplémentaires afin d'avoir le vrai montant du projet principal $designation[] = array($elem[0], $elem[1], $elem[2]); $i++; } } $query_ent = 'SELECT * FROM ENTREPRISE WHERE ENT_NO = ' . $row['ENT_NO']; $entreprise = $GLOBALS['connexion']->query($query_ent)->fetch_assoc(); $query_ban = 'SELECT * FROM BANQUE WHERE BAN_NO = ' . $row['BAN_NO']; $banque = $GLOBALS['connexion']->query($query_ban)->fetch_assoc(); $contact = ''; //Ligne élément facturable $line = array("Période :" => "Du 1er " . $libmois . " " . $FAC_ANNEE . " au " . nbjoursMois($FAC_MOIS, $FAC_ANNEE) . " " . $libmois . " " . $FAC_ANNEE, "Désignation" => "Détails­Montant"); $bottomLine = ''; if ($row['FAC_AVO'] == "") { $bottomLine = array("Total HT : " => ' ­' . sprintf("%.2F", $FAC_TOTAL_HT), "TVA aux taux légal en vigueur :" => sprintf("%.2F", $tauxTVA) . ' %­' . sprintf("%.2F", $FAC_MONTANT_TVA), "Total TTC :" => ' ­' . sprintf("%.2F", $FAC_TOTAL_TTC)); } else { $bottomLine = array("Total HT : " => ' ­' . sprintf("%.2F", $FAC_MT_AVO), "TVA aux taux légal en vigueur :" => sprintf("%.2F", $tauxTVA) . ' %­' . sprintf("%.2F", $FAC_MT_AVO * ($FAC_TAUXTVA / 100)), "Total TTC :" => ' ­' . sprintf("%.2F", $FAC_MT_AVO * (1 + $FAC_TAUXTVA / 100))); } } // Libellé du document FACTURE $query_libdoc = "SELECT * FROM LIBDOCUMENT L LEFT JOIN DOCUMENT D ON D.DOC_NO = L.DOC_NO WHERE D.DOC_CODE='FAC' ORDER BY LDO_ORDRE"; $result_libdoc = $GLOBALS['connexion']->query($query_libdoc); while ($lib = $result_libdoc->fetch_assoc()) { $titre[] = $lib['LDO_NOM']; $pave[] = $lib['LDO_CONTENU']; } //var_dump($titre);
$annee = $_POST['annee']; $nomMois = nomMois($mois); $GLOBALS['retour_page'] = 'chx_date.php?type=visu_prepaie'; $GLOBALS['titre_page'] = '<div class="adm">Pré-Paie de ' . $nomMois . ' ' . $annee . '</div>'; include "menu/menu_global.php"; ?> <!-- Affiche Bonjour Prénom Nom de la personne en loguée + date du jour--> <?php $date_depart = strtotime($annee . "-" . $mois . "-01"); $date_arrive = strtotime($annee . "-" . $mois . "-31"); $samedi = 0; $dimanche = 0; $ferie1 = 0; $tab_we = array(); $nbjoursMois = nbjoursMois($mois, $annee); //connaitre le nb de jours dans le mois $jour = jour_semaine($mois, 1, $annee); $feries = getFeries($date_depart, $date_arrive); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $ferie1++; break; case $jour == 6: $samedi++; array_push($tab_we, $i); break; case $jour == 7: $dimanche++; array_push($tab_we, $i);
echo '<input type="hidden" name="FACT_PENALITE" value="' . $_POST['FACT_PENALITE'] . '"/>'; echo '<input type="hidden" name="FACT_CON_VENTE" value="' . $_POST['FACT_CON_VENTE'] . '"/>'; ?> </form> <script type="text/javascript"> document.getElementById('mon_form').submit(); </script> <?php } else { //On récupère la date courante $date = date('Y-m-'); //On sépare le mois et l'année $tab = explode("-", $date); //$tab[1] == mois $tab[0] == annee //floatval == cast en float $nbJour = nbjoursMois(floatval($tab[1]), floatval($tab[0])); $date .= $nbJour; $moisCourant = date('m'); $anneeCourant = date('Y'); $num_col_pro = explode(".", $_POST['COL_NO']); //$num_col_pro[0] == collaborateur //$num_col_pro[1] == projet //Requête permettant d'afficher toutes les informations relatives au client concerné $query_client = 'SELECT * FROM CLIENT WHERE CLI_NO = (' . ' SELECT CLI_NO FROM PROJET WHERE PRO_NO ="' . $num_col_pro[1] . '");'; $stmtCli = $GLOBALS['connexion']->query($query_client)->fetch_assoc(); //Requête permettant d'afficher toutes les informations relatives du projet concerné $query_projet = 'SELECT * FROM PROJET WHERE PRO_NO = ' . $num_col_pro[1]; $stmtPro = $GLOBALS['connexion']->query($query_projet)->fetch_assoc(); //Requête permettant d'afficher toutes les inforamtions du contact client s'occupant de se projet $query_contact = 'SELECT * FROM CONTACT_CLIENT WHERE CTC_NO = ' . $stmtPro['CTC_NO']; $stmtContact = $GLOBALS['connexion']->query($query_contact);
</br> <div class="nav pull-right" > <a href="./prefacturation.php?mois=<?php echo $mois; ?> &annee=<?php echo $annee; ?> "><button id="btprefacturation" class="btn btn-primary" type="button" > Retour pré-facturation<i class="icon-arrow-left"></i> </button></a> </div> <div style="text-align: center; width: 100%;"><b>Liste des Proforma</b></div> <div style="text-align: center; width: 100%;">Période du 1er <?php echo nomMois($mois); ?> au <?php echo nbjoursMois($mois, $annee); ?> <?php echo nomMois($mois); ?> <?php echo $annee; ?> </div> </br> <?php $query = "SELECT F.FAC_NO, F.FAC_DEV, F.FAC_NUM, F.FAC_AVO, C.COL_NOM, C.COL_PRENOM, I.INT_FACTURABLE, F.FAC_NOMCLI, F.FAC_NOMPRO, F.COL_NO, F.PRO_NO\n FROM FACTURE F, COLLABORATEUR C, INTERNE I \n WHERE I.COL_NO = C.COL_NO\n AND F.COL_NO = C.COL_NO\n AND F.FAC_MOIS = '" . $mois . "'\n AND F.FAC_ANNEE = '" . $annee . "'\n GROUP BY F.COL_NO, F.PRO_NO \n ORDER BY C.COL_NOM, C.COL_PRENOM"; $result = $GLOBALS['connexion']->query($query); $tableau = array(); while ($row = $result->fetch_assoc()) { $valeur = $row['COL_NO'] . '.' . $row['PRO_NO'];
/** * Génère le calendrier, le select, la légende et les styles pour les congés * * @param int $id : l'ID du collaborateur dont on désire les congés * @return array : contient chaque morceau généré : style, select, recap et calendrier */ function generer_calendrier($id, $mois, $annee) { $retour = array(); /* * préparation de la liste des types d'absence, des styles et du select et du tableau */ $type_absences = array(); $result_type_absence = $GLOBALS['connexion']->query("SELECT * FROM TYPE_ABSENCE"); $retour['select'] = 'Choix du type de congés<br /><select name="type">'; $retour['style'] = ''; $retour['recap'] = '<table border="1"><thead><tr><th>type</th><th style="width:70px;">Validé</th><th style="width:70px;">Demandé</th></tr></thead><tbody>'; while ($row = $result_type_absence->fetch_assoc()) { $nom = str_replace(' ', '', $row['TYA_LIBELLE']); $type_absences[$row['TYA_NO']] = array('nom' => $nom, 'valide' => $row['TYA_COULEUR'], 'demande' => $row['TYA_COULEUR_DEM']); $retour['style'] .= ecrire_style($nom, $row['TYA_COULEUR_DEM']); $retour['style'] .= ecrire_style($nom . '-valid', $row['TYA_COULEUR']); $retour['select'] .= option($nom, $row['TYA_LIBELLE']); $retour['recap'] .= ajout_row_conge($row['TYA_LIBELLE'], $nom); } $retour['select'] .= '</select>'; $retour['recap'] .= '</tbody></table>'; /* * récupération de la liste des congés validés ou non pour la période donnée */ $conges = array(); $query = "SELECT TYA_NO, ABS_JOUR, ABS_NBH, ABS_VALIDATION FROM ABSENCE WHERE ABS_MOIS = '" . $mois . "' AND ABS_ANNEE = '" . $annee . "' AND COL_NO = '" . $id . "' AND ABS_ETAT != 3"; $result = $GLOBALS['connexion']->query($query); while ($row = $result->fetch_assoc()) { $conges[$row['ABS_JOUR']] = $type_absences[$row['TYA_NO']]['nom']; $conges[$row['ABS_JOUR']] .= $row['ABS_VALIDATION'] ? '-valid' : ''; $conges[$row['ABS_JOUR']] .= $row['ABS_NBH'] == 1 ? '' : '-b'; } /* * préparation du tableau des jours */ $semaine = 1; //nombre de semaine dans un mois $table = array(); //table du mois $nbjoursMois = nbjoursMois($mois, $annee); //connaitre le nb de jours dans le mois $jour = jour_semaine($mois, 1, $annee); //connaitre le jour du premier du mois $feries = getFeriesAnnee($annee); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case isset($conges[$i]): $table[$semaine][$jour]['classe'] = $conges[$i]; $table[$semaine][$jour]['classe'] .= strpos($conges[$i], 'valid') === false ? ' clickable' : ''; break; case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $table[$semaine][$jour]['classe'] = 'feries'; break; case $jour == 6: $table[$semaine][$jour]['classe'] = 'samedi'; break; case $jour == 7: $table[$semaine][$jour]['classe'] = 'dimanche'; break; default: $table[$semaine][$jour]['classe'] = 'clickable'; break; } $table[$semaine][$jour]['valeur'] = $i; if ($jour == 7) { $jour = 0; $semaine++; } $jour++; } $retour['calendrier'] = generer_tableau($table); return $retour; }
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png"></link> <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png"></link> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="offset2 span7"> <h1 class='conges'>Congés <!-- Affichage de la date depuis la liste déroulante dans le titre--> <?php $annee_conges = htmlspecialchars(addslashes(trim($_POST['annee_conges']))); $mois_conges = htmlspecialchars(addslashes(trim($_POST['mois_conges']))); $_SESSION['annee_conges'] = $annee_conges; $_SESSION['mois_conges'] = $mois_conges; $nbjoursMois = nbjoursMois($mois_conges, $annee_conges); $jourjanvier = premierJsemJanvier($annee_conges); if (isset($_POST['mois_conges']) && !empty($_POST['mois_conges'])) { echo nomMois($_POST['mois_conges']) . ' '; } if (isset($_POST['annee_conges']) && !empty($_POST['annee_conges'])) { echo $_POST['annee_conges'] . "<br /><br />"; } ?> </h1> </div> </div > <form action="conges_envoyes.php" method="post" enctype="multipart/form-data" name="monFormulaire"> <?php include "conges/tableau_conges.php";
<?php include 'calendrier/fonction_nbjoursMois.php'; include 'calendrier/fonction_dimanche_samedi.php'; //$date = $_POST['annee'].'-'.$_POST['mois']; //Boucle tant que le dernier jour du mois est un samedi ou un dimanche $nbJour = nbjoursMois(01, 2015); $date = '2015-01-'; $t = 0; do { $t = check_jour(substr($date, 5, 2), $nbJour, substr($date, 0, 4)); if ($t == 0 || $t == 6) { $nbJour--; } } while ($t == 0 || $t == 6); echo $date . $nbJour;