48
ANNEXES RELATIVES AU MEMOIRE DIRECTEURS DE PFE CORRECTEURS M. RAYMOND CLEMENCEAU M. GUILLAUME KIEHL M. JEAN-MARC PIERROT M. CLAUDE SCHALLER Présenté en Septembre 2009 par : Giacomo ITALIANO Réalisé au sein de l’entreprise : Cabinet CLEMENCEAU – Géomètre-Expert 61 200 Argentan INSTITUT NATIONAL DES SCIENCES APPLIQUEES DE STRASBOURG Optimisation de la gestion des dossiers au sein d’un cabinet de géomètre-expert Mémoire de soutenance de diplôme d’ingénieur INSA Spécialité Topographie CABINET CLEMENCEAU GEOMETRE-EXPERT

Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Embed Size (px)

Citation preview

Page 1: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

!

!

!

!

!

!

!

!

ANNEXES RELATIVES AU MEMOIRE

!

DIRECTEURS DE PFE CORRECTEURS

M. RAYMOND CLEMENCEAU M. GUILLAUME KIEHL

M. JEAN-MARC PIERROT M. CLAUDE SCHALLER

Présenté en Septembre 2009 par : Giacomo ITALIANO Réalisé au sein de l’entreprise : Cabinet CLEMENCEAU – Géomètre-Expert 61 200 Argentan

INSTITUT NATIONAL DES SCIENCES APPLIQUEES DE STRASBOURG

Optimisation de la gestion des dossiers au sein d’un cabinet de géomètre-expert

Mémoire de soutenance de diplôme d’ingénieur INSA Spécialité Topographie

CABINET CLEMENCEAU

GEOMETRE-EXPERT

Page 2: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

SOMMAIRE DES ANNEXES

ANNEXE A : QUELQUES NOTIONS FINANCIERES ...........................................................................................2

ANNEXE B : AUDIT INTERNE .......................................................................................................................5

ANNEXE B.1 : FICHE DE DEMANDE D’INTERVENTION.................................................................................6

ANNEXE B.2 : CHEMISE CONTENANT LES ELEMENTS DU DOSSIER .............................................................7

ANNEXE B.3 : FEUILLE INDIVIDUELLE DES TEMPS PASSES.......................................................................10

ANNEXE C : COMPARATIF DES PROGICIELS ...............................................................................................11

ANNEXE C.1 : DESCRIPTION DES DIVERS MODULES ...............................................................................12

C.1.1 GENESYS ..............................................................................................................................12

C.1.2 GEOCD.................................................................................................................................12

C.1.3 TEMPS2000...........................................................................................................................13

ANNEXE C.2 : LA DIFFERENCE ENTRE LES CONFIGURATIONS « LIGHT » ET COMPLETES ...........................14

C.2.1 LES CONFIGURATIONS « LIGHT » .............................................................................................14

C.2.2 LES CONFIGURATIONS « COMPLETES »....................................................................................15

ANNEXE D : DEVELOPPEMENT EN INTERNE D’UN OUTIL DE GESTION............................................................16

ANNEXE D.1 : PROGRAMMATION DE LA FONCTION BILAN D’UN DOSSIER .................................................17

D.1.1 CODE SOURCE DE LA PAGE BILAN_DOSSIER_2.PHP...................................................................17

D.1.2 SCRIPT DU FICHIER DESIGN_BILAN.CSS....................................................................................33

D.1.3 CODE DE LA PAGE EXPORT_BILAN_DOSSIER_2.PHP .................................................................38

ANNEXE D.2 : ENSEMBLE DES TABLES DE DONNEES ..............................................................................41

ANNEXE D.3 : SCRIPT DE MISE A JOUR DES DONNEES DANS LE CADRE D’UNE AMELIORATION....................46

TABLE DES ILLUSTRATIONS.......................................................................................................................47

Page 3: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 2 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe A : Quelques notions financières

Page 4: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 3 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

L’annexe suivante permet de présenter quelques notions de gestion financière, et ainsi de préciser les

enjeux d’une optimisation du suivi économique des dossiers. Le logiciel développé à l’issue du projet

de fin d’études permet, entre autres, de déterminer :

! les prix de revient et de vente d’un dossier,

! la part d’heures improductives des collaborateurs,

grâce à la centralisation dans une base de données unique des informations inhérentes aux temps

passés et frais dépensés.

Selon le cours de Muller et al. [2008], « le coût de revient d’un produit (ou service) est la somme des

charges liées à l’achat des matières premières (matière première, transport, etc.), la production (main

d’œuvre, dépréciation du matériel, loyer, etc.) et la distribution de ce produit (ou service). ». Ces

propos sont illustrés sur la figure 1 suivante.

!Figure 1 : Notion de coût de revient (Muller et al. [2008])

On peut distinguer 2 catégories de charges :

! directes : charges qui peuvent être affectées sans ambiguïté ni calcul intermédiaire au coût du

produit considéré (exemple : main d’œuvre de production, matériaux mis en place)

! indirectes : charges qui concernent plusieurs activités ou plusieurs produits (exemple : facture

d’électricité, loyer)

L’estimation du coût de revient d’un produit est indispensable pour évaluer la marge relative au prix de

vente HT de ce même produit. Si la marge n’est pas satisfaisante, 2 solutions sont envisageables :

! augmenter le prix de vente : cette solution nécessite une analyse des prix pratiqués par la

concurrence,

! diminuer le coût de revient : cette perspective nécessite l’analyse des éléments constituant le coût

de revient, afin de détecter lesquels sont problématiques.

Les explications suivantes s’inspirent du cours de gestion financière d’entreprise de M. Kiehl [2008].

De manière générale, au sein d’un cabinet de géomètres-experts, les charges fixes sur l’année ainsi

que le coût non productif annuel du personnel (notamment le secrétariat et la direction) sont répartis

sur le coût global horaire de chaque technicien et cadre (qui sont des salariés « productifs ») :

" Coût global horaire personnel = Coût horaire personnel + Frais de structure par heure de

production

Page 5: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 4 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Le coût horaire personnel est défini par le salaire brut et les charges patronales ramenés à une heure

de production. Ce coût est calculé pour chaque personne en fonction de son taux de productivité (qui

correspond au rapport des heures facturées sur les heures travaillées) :

" Coût horaire personnel = (Salaire brut + Charges patronales) annuels / heures facturées annuelles

Les frais de structure représentent la somme des charges fixes sur l’année (charges externes, impôts

et taxes, dotation aux amortissements, intérêts des emprunts et dettes, etc.) et du coût non productif

annuel du personnel administratif (secrétariat) et de la direction (géomètre-expert). Ces frais sont

ramenés à une heure de production :

" Frais de structure / heure de production = Frais de structure annuels / heures totales facturées annuelles

Les heures totales travaillées correspondent aux heures totales payées auxquelles on soustrait les

heures relatives aux congés payés, maladies, RTT, etc.

Les heures totales facturées correspondent aux heures travaillées auxquelles on soustrait les heures

de secrétariat non affecté, de formation, d’archivage, etc.

Donc, pour subvenir à ses propres besoins financiers, le cabinet doit réaliser un chiffre d’affaires au

moins égal à la somme du coût annuel relatifs aux salaires et charges patronales de l’ensemble des

salariés, et des frais de structure de l’entreprise définis ci-dessus.

L’INSEE donne la définition suivante du chiffre d’affaires (INSEE @ [2009]) : « Le chiffre d'affaires

représente le montant des affaires (hors taxes) réalisées par l'entreprise avec les tiers dans l'exercice

de son activité professionnelle normale et courante. Il correspond à la somme des ventes de

marchandises, de produits fabriqués, des prestations de services et des produits des activités

annexes. ».

Page 6: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 5 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe B : Audit interne

Page 7: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 6 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe B.1 : Fiche de demande d’intervention

Figure 2 : Demande d’intervention

La figure 2 présente la feuille utilisée pour recueillir les exigences du client qui contacte le cabinet par

téléphone.

Page 8: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 7 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe B.2 : Chemise contenant les éléments du dossier

Figure 3 : Chemise du dossier – page 1

Cette première page permet :

! une rapide identification du dossier,

! un suivi du dossier, en notant dans le tableau les principaux évènements. Cependant, ce tableau

n’est pas exhaustif, par exemple, il n’y a pas d’emplacement réservé aux convocations des parties

dans le cas d’un bornage.

Page 9: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 8 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Figure 4 : Chemise du dossier – page 2

La figure 4 précédente présente la deuxième page du dossier, qui permet de :

! saisir les informations concernant le client et les intervenants (architectes, notaires, etc.),

! noter les désignations cadastrales du chantier,

! établir la facturation en fonction de la troisième page (voir figure 5 suivante).

Page 10: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 9 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Figure 5 : Chemise du dossier – page 3

Le tableau présenté par la figure 5 précédente permet de :

! saisir les frais spéciaux et les temps passés inhérents au dossier contenu dans cette chemise

(date, nature, personnel), afin de réaliser la facturation,

! noter les éventuels dossiers connexes.

Page 11: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 10 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe B.3 : Feuille individuelle des temps passés

Figure 6 : Feuille individuelle des temps passés

Sur la figure 6 précédente, le tableau correspond à un mois de l’année. Un tel format ne rendrait pas

aisée la retranscription sous un logiciel de gestion. De plus, même en utilisant un script Visual Basic

(autrement dit une macro sous Excel), l’exploitation « automatisée » des données est difficile.

Page 12: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 11 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe C : Comparatif des progiciels

Page 13: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 12 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe C.1 : Description des divers modules

Dans cette annexe nous décrivons uniquement les modules des logiciels qui sont effectivement

scindés en modules, afin de mettre en évidence les fonctionnalités de chacun.

C.1.1 GeneSys

Le seul module de ce logiciel est celui de pointage des heures et frais, qui permet au collaborateur

de saisir uniquement les frais engendrés et les temps passés attachés à un dossier, ou autre (congés,

maladie, RTT, etc.), et d’avoir un tableau de synthèse standard sur son activité.

C.1.2 GeoCD

Les listes suivantes présentent les fonctionnalités de chaque version et module.

! Version Standard : Détermination des indicateurs financiers du dossier et suivi de l'activité des

collaborateurs

• Bilan du dossier sur une période : temps passés, dépenses, comparaison avec prévisionnel, facturation, coût de revient, marge, rentabilité, fournisseurs, etc.

• Bilan collaborateur sur une période : heures et dépenses facturées et facturables, coût de revient, etc.

• Gestion par affaires et dossiers : possibilité de créer une affaire regroupant plusieurs dossiers, • Prévisionnel par dossier, • Planning des collaborateurs, • Suivi des heures de récupération, • Edition des Notes de Frais des collaborateurs, • Gestion des contrats de Maîtrise d'œuvre, • Contrôle de la saisie des temps passés hebdomadaires (comparaison avec les heures

travaillées paramétrées par collaborateur), • Possibilité de saisie sécurisée des temps passés par chaque collaborateur, • Export vers Aurige, • Import / Export de contacts avec Microsoft Outlook, • Liaison avec les logiciels cartographiques Carto / Photo Exploreur et Maxland.

! Version Expert : Contrôle avancé de gestion par des rapports d'activités détaillés

• Tableaux de bord mensuels et annuels : CA, marge, rentabilité (réalisés et comparaison avec les objectifs), encours de facturation, etc.

• Factures à émettre : listing détaillé des dossiers en attente de facturation, • Suivi de production : comparaison de l'avancement de chaque dossier en comparaison avec

les budgets (devis et prévisionnel), • Liste des dossiers : bilan financier complet des dossiers filtrés selon divers critères (date,

responsable, etc.), • Encours de production, • Bilan de chaque affaire sur une période : temps passés, dépenses, comparaison avec

prévisionnel, facturation, coût de revient, marge, rentabilité, fournisseurs, etc. • Facturation prévisionnelle, • Plan de charge,

Page 14: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 13 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

• Statistiques par agences, activités, clients, donneurs d'ordres, responsables, zones géographiques, tâches, etc.

! Module Gestion Commerciale : Traitement de toute la chaîne de facturation

• Gestion des ventes : " Réalisation de devis et factures à partir de modèles prédéfinis, " Edition des documents entièrement paramétrables, " Saisie du prévisionnel au moment de la création du devis,

• Suivi des règlements : " Règlement partiel, total, acompte, relevé des factures à encaisser, " Relance automatique des factures impayées avec incrémentation du niveau de

relance, • Emission de courriers de relance pour les impayés, • Nombreux états de gestion : liste des devis, des factures émises, des règlements perçus, des

règlements à percevoir, des relances effectuées, des relances à effectuer, suivi de facturation des contrats, encours client, bilan par compte de vente,

• Exportation en comptabilité : Fichiers d'export vers divers logiciels (Sage, EBP, Ciel, APISoft, CCMX, Cador) et développement d'interfaces supplémentaires sur demande.

! Module Gestion Documentaire : application de procédures Qualité sur chaque dossier

• Alerte dès l’échéance d’un délai,

• Paramétrage de procédures Qualité : enchaînement des tâches à réaliser (définition du délai

prévu, des intervenants concernés par la tâche, du modèle de courrier utilisé, etc.),

• Application de un ou plusieurs processus sur chaque dossier afin d'en planifier le

déroulement,

• Suivi du déroulement des tâches du dossier : identification pour chacune de son état de

réalisation (débutée, terminée, en retard),

• Emission automatique des courriers (via Microsoft Word) à partir de modèles,

• Alertes et rappels : liste des tâches à réaliser aujourd'hui (possibilité de filtrer par

collaborateur, agence, type de dossier, etc.),

• Bilan des tâches : analyse de l’ensemble des tâches saisies (à réaliser, en retard, réalisées,

toutes),

• Agenda hebdomadaire des collaborateurs : visualisation sous forme d’agenda des tâches

affectées à chaque responsable,

• Archivage numérique : consultation directe des fichiers associés au dossier (lien direct au

fichier ou/et à un répertoire global).

C.1.3 Temps2000

! Module mailing : il permet la gestion des emails reçus et envoyés (par Microsoft Outlook), l’envoi

d’emails au client dont l’adresse Internet est saisie dans la base de données, et l’attachement

d’emails à une affaire ou une tâche.

! Module échéances, évènements : Les échéances sont des dates limites à respecter pour

l'exécution d'un travail, et les événements permettent de prévoir ou garder une trace de toutes les

Page 15: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 14 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

actions. Ce module permet, par exemple, de faire le bilan des rappels des dates limites

concernant une remise de rapport, une livraison des travaux, etc. Les échéances et évènements

sont affectés à une affaire, et peuvent l’être également à un collaborateur ou un client en vue d’un

rappel ultérieur.

! Module budgets : il permet la saisie de budgets ou prévisions de temps et de frais par dossier. La

saisie de budgets permet la valorisation des devis, la gestion du plan de charge des

collaborateurs, des comparaisons prévisions / réalisations par affaire ou collaborateur.

! Module facturation : les factures clients peuvent être automatiquement émises par acomptes, sur

la base des temps passés, des quantités, des débours, de frais de dossier, etc. L’édition des

factures est paramétrable. Ce module gère les règlements clients (traites, prélèvements

bancaires, etc.) et les écritures peuvent être exportées vers votre comptabilité.

! Module multi-sociétés, cessions internes : ce module concerne notamment les entreprises

composées de plusieurs entités juridiques, ce qui n’est pas notre cas, puisque le cabinet

représente une seule et même entité, bien qu’il y ait 2 sites.

Annexe C.2 : La différence entre les configurations « light » et

complètes

Dans cette partie, nous énonçons la différence entre les configurations « light » et complètes des

logiciels qui sont effectivement scindés en modules.

C.2.1 Les configurations « light »

Configuration « light » de GeneSys

Uniquement un poste du secrétariat d’Argentan est équipé d’une licence complète, disposant donc de

toutes les fonctionnalités (mais il est possible de ne pas toutes les paramétrer pour diminuer le

nombre de jours de formation et donc l’investissement). Les autres ordinateurs du cabinet, que ce soit

à Argentan ou à Falaise, sont équipés du module pointage des heures et frais permettant

uniquement la saisie des temps et frais par les collaborateurs et la visualisation de tableaux de

synthèse standards.

Cette solution permet de disposer de toutes les ressources prodiguées par GeneSys, mais sur un seul

poste, et de répondre au besoin le plus urgent du cabinet, à savoir la gestion des temps passés et

frais.

A long terme, on peut imaginer équiper progressivement le cabinet de plusieurs licences complètes, et

surtout de former les utilisateurs à toutes les fonctionnalités du progiciel.

Page 16: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 15 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Configuration « light » de GeoCD

Chaque poste est équipé d’une version standard, et un poste du secrétariat d’Argentan est équipé

d’un module « gestion commerciale », qui permet la gestion des factures et des devis entre autres.

Cette configuration permet d’assurer principalement :

• La gestion de la clientèle, le suivi des dossiers,

• la gestion des temps passés et frais, ainsi que les bilans relatifs,

• la réalisation, le suivi des devis et factures, et les relances des impayés.

Configuration « light » de Temps2000

Chaque poste est équipé d’une licence réseau standard et des modules budgets et facturation.

Cette configuration assure les mêmes fonctions citées précédemment pour GeoCD.

C.2.2 Les configurations « complètes »

Les fonctionnalités offertes par ces configurations sont présentées dans le tableau 2.1 du mémoire.

Dans cette partie ne seront décrites que les licences nécessaires à une version complète du progiciel.

La configuration complète de GeneSys n’est autre que le package de licences complètes (le module

pointage des heures et frais est inutile) entièrement paramétrées, ce qui nécessite plus de jours de

formation ; en effet, ce logiciel n’est pas scindé, hormis pour le module pointage des heures et frais.

Configuration « complète » de GeoCD

Cette configuration nécessite une version expert (secrétariat d’Argentan), 6 versions

standard (réparties sur les 2 sites), un module gestion commerciale (secrétariat d’Argentan) et 5

modules de gestion documentaire (pour les techniciens et cadres).

Configuration « complète » de Temps2000

Cette solution est composée de la licence standard de base, des modules mailing, échéances et

évènements, budgets et facturation.

Page 17: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 16 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe D : Développement en interne d’un outil de gestion

Page 18: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 17 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe D.1 : Programmation de la fonction Bilan d’un dossier

Cette partie présente les éléments suivants :

! le code source de la page bilan_dossier_2.php,

! le fichier .css associé pour la mise en page de l’application,

! le script utilisé pour l’export vers un fichier texte.

D.1.1 code source de la page bilan_dossier_2.php

La partie du code écrite en bleu est du Javascript qui permet de positionner automatiquement le

curseur dans la première case, et de vérifier la validité des données saisies.

<?php session_start(); // on démarre la session pour transmettre des variables sur toutes les pages php $host="127.0.0.1"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>bilan_dossier.php</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- ---------------- insertion du code CSS ---------------- --> <link rel="stylesheet" media="screen" type="text/css" title="Bilan_dossier" href="design_bilan.css" /> </head> <!-- ---------------- code javascript pour initialiser le focus puis vérifier formulaire ---------------- --> <script type="text/javascript"> <!-- cette fonction place le curseur dans la première zone de saisie : numéro de dossier --> function setFocus() { if (document.form_param.num_dossier_a.value == "") { document.form_param.num_dossier_a.focus(); } else { document.form_param.pass.focus(); } } <!-- cette fonction vérifie si une saisie est un nombre entier --> function isIntNumber(sText) { var ValidChars="0123456789"; var IsNbr=true; var Char; for (i=0;i < sText.length && IsNbr == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNbr = false; } } return IsNbr; }

Page 19: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 18 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<!-- cette fonction vérifie si une saisie est alphanumérique --> function isAlphaNumeric(sText) { var ValidChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var IsNbr=true; var Char; for (i=0;i < sText.length && IsNbr == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNbr = false; } } return IsNbr; } <!-- cette fonction vérifie la cohérence de toutes les données saisies --> function submit_form_param(e) { if (typeof e != 'undefined' && !enter_key_trap(e)) { return; } if (!isIntNumber(form_param.num_dossier_a.value)) { alert('Veuillez saisir un nombre entier pour le dossier.'); document.form_param.num_dossier_a.focus(); return false; } else if (document.form_param.num_dossier_a.value == "") { alert('Veuillez saisir le numéro du dossier.'); document.form_param.num_dossier_a.focus(); return false; } else if (!isAlphaNumeric(form_param.num_dossier_b.value)) { alert('Veuillez saisir une chaîne alphanumérique pour le suffixe du numéro de dossier.'); document.form_param.num_dossier_b.focus(); return false; } else { document.form_param.bouton_valider.disabled = true; document.form_param.submit(); return true; } } //--> </script> <!-- ---------------- fin du code javascript pour la vérification du formulaire ---------------- --> <body onload="onLoad();"> <!-- ---------------- connexion à la base de données ---------------- --> <?php mysql_connect($host,"root",""); // connexion mysql_select_db("dream"); // sélection de la BASE ?> <!-- ---------------- fin de la connexion à la base de données ---------------- --> <!-- ---------------- Titre de la page affichée ---------------- --> <div class="cadre_titre"> <p class="titre_page" >

Page 20: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 19 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Bilan par <strong>dossier</strong> </p> </div> <div class="cadre_dossier" > <!-- ---------------- FORMULAIRE de paramétrage du bilan ---------------- --> <form name="form_param" action="bilan_dossier_2.php" method="post" > <p class="formulaire" > <label for="num_dossier_a">Numéro de dossier</label> <input type="text" maxlength="5" name="num_dossier_a" id="num_dossier_a" size="5px" tabindex="10" /> <input type="text" maxlength="9" name="num_dossier_b" tabindex="11" size="8px" /> </p> <p class="formulaire" > <strong>Bilan du dossier concernant les : </strong> <input type="radio" name="param" id="param_heures" value="heures" checked tabindex="20" /> Heures <input type="radio" name="param" id="param_frais" value="frais" tabindex="21" /> Frais <input type="radio" name="param" id="param_heures_frais" value="heures_frais" tabindex="22" /> Heures et Frais </p> <p align="center" > <input type="submit" name="bouton_valider" id="bouton_valider" value="Valider" onclick="return submit_form_param();" tabindex="30" /> </p> </form> <!-- ---------------- fin du FORMULAIRE de paramétrage du bilan ---------------- --> </div> <!-- ---------------- Cette partie est réservée à l'affichage des données du bilan ---------------- --> <?php // condition pour la création des variables de paramétrage du bilan if (isset($_POST['num_dossier_a'])){ // on crée une variable récupérée du formulaire (et on applique des fonctions de sécurité contre hacking) $ref_dossier=mysql_real_escape_string(htmlspecialchars($_POST['num_dossier_a'].strtoupper($_POST['num_dossier_b']))); $param=mysql_real_escape_string(htmlspecialchars($_POST['param'])); ?> <!-- ---------------- titre du tableau du bilan ---------------- --> <div class="cadre_titre_tab_dossier" ><caption> <span class="titre_tab"> Bilan détaillé du dossier <strong><?php echo $ref_dossier ?></strong> concernant les <?php if($param=="heures"){ ?> <strong>Heures</strong> <?php }else if($param=="frais") { ?> <strong>Frais</strong> <?php }else if($param=="heures_frais"){ ?> <strong>Heures</strong> et les <strong>Frais</strong> <?php } ?> </span></caption></div> <div class="cadre_tab_bilan_dossier" >

Page 21: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 20 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<table class="tableau_recap" > <tr class="en_tete_tab" > <!-- en-tête du tableau --> <th><div>type</div></th> <th><div>date</div></th> <th><div>nom</div></th> <th><div>prestation</div></th> <th><div>tâche/frais</div></th> <th><div>quantité</div></th> <th><div>prix vente HT</div></th> <th><div>coût de revient</div></th> </tr> <?php if ($param=="heures") { // on récupère les données (des tables heures réalisées te frais réalisés) // création de la variable (tableau) qui récupère les données de la base via une requête SQL

$reponse_heures=mysql_query("SELECT hr.id_dossier,DATE_FORMAT(hr.date,'%d-%m-%Y') AS date_fra,hr.initiales_collabo AS collabo, hr.id_tache,hr.quantite AS qte,t.designation_principale AS type,t.designation_secondaire AS tache_frais,

t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, c.designation_secondaire AS designation_contexte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc,contexte AS c WHERE hr.id_dossier='$ref_dossier'

AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND hr.id_contexte=c.id_contexte ORDER BY hr.date") or die (mysql_error()); // CREATION DE VARIABLE TABLEAU $tableau_heures=array(); // création d'un tableau vide pour les frais engagés while ($ligne_heures=mysql_fetch_array($reponse_heures)) // pour chaque ligne résultat { $tableau_heures[]=$ligne_heures; // remplissage du tableau par les lignes récupérées dans la BDD (requête SQL) } // PUBLICATION $_SESSION['tableau_heure_frais']=array(); // création d'un tableau vide public $_SESSION['tableau_heure_frais']=$tableau_heures; // publication de la variable tableau pour export // affichage des données de la table foreach($tableau_heures as $donnees_affichage_final) {

Page 22: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 21 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

?> <tr class="cellule_tab_heures" > <td><div><?php echo $donnees_affichage_final['type']; ?></div></td> <td><div><?php echo $donnees_affichage_final['date_fra']; ?></div></td> <td><div><?php echo $donnees_affichage_final['collabo']; ?></div></td> <td><div><?php echo $donnees_affichage_final['designation_contexte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['tache_frais']; ?></div></td> <td><div><?php echo $donnees_affichage_final['qte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['prix_ht']; ?></div></td> <td><div><?php echo $donnees_affichage_final['cout_revient']; ?></div></td> </tr> <?php } ?> </table> </div> <?php } // fin du if param == heures else if ($param=="frais") {

$reponse_frais=mysql_query("SELECT fr.id_dossier,DATE_FORMAT(fr.date,'%d-%m-%Y') AS date_fra,fr.initiales_collabo AS collabo, fr.id_fraisvar, fr.quantite AS qte,fv.designation_principale AS type,fv.designation_secondaire AS tache_frais,fv.px_vente_unitaire_ht,fv.coefficient_v AS coeff_pv,

fv.cout_revient_unitaire,fv.coefficient_cr AS coeff_cr, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS cout_revient, fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS prix_ht, c.designation_secondaire AS designation_contexte FROM frais_realises AS fr,frais_variables AS fv, contexte AS c WHERE fr.id_dossier='$ref_dossier' AND fv.id_fraisvar=fr.id_fraisvar AND c.id_contexte=fr.id_contexte ORDER BY fr.date") or die (mysql_error()); // CREATION DE VARIABLE TABLEAU $tableau_frais=array(); // création d'un tableau vide pour les frais engagés while ($ligne_frais=mysql_fetch_array($reponse_frais)) // pour chaque ligne résultat { $tableau_frais[]=$ligne_frais; // remplissage du tableau par les lignes récupérées dans la BDD (requête SQL) }

Page 23: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 22 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

// PUBLICATION $_SESSION['tableau_heure_frais']=array(); // création d'un tableau vide public $_SESSION['tableau_heure_frais']=$tableau_frais; // publication de la variable tableau pour export // affichage des données de la table foreach($tableau_frais as $donnees_affichage_final) { ?> <tr class="cellule_tab_frais" > <td><div><?php echo $donnees_affichage_final['type']; ?></div></td> <td><div><?php echo $donnees_affichage_final['date_fra']; ?></div></td> <td><div><?php echo $donnees_affichage_final['collabo']; ?></div></td> <td><div><?php echo $donnees_affichage_final['designation_contexte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['tache_frais']; ?></div></td> <td><div><?php echo $donnees_affichage_final['qte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['prix_ht']; ?></div></td> <td><div><?php echo $donnees_affichage_final['cout_revient']; ?></div></td> </tr> <?php } ?> </table> </div> <?php } else if ($param=="heures_frais") {

$reponse_heures=mysql_query("SELECT hr.id_dossier,DATE_FORMAT(hr.date,'%d-%m-%Y') AS date_fra,hr.initiales_collabo AS collabo, hr.id_tache,hr.quantite AS qte,t.designation_principale AS type,t.designation_secondaire AS tache_frais,

t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, c.designation_secondaire AS designation_contexte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc,contexte AS c WHERE hr.id_dossier='$ref_dossier' AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND hr.id_contexte=c.id_contexte ORDER BY hr.date")

Page 24: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 23 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

or die (mysql_error());

$reponse_frais=mysql_query("SELECT fr.id_dossier,DATE_FORMAT(fr.date,'%d-%m-%Y') AS date_fra,fr.initiales_collabo AS collabo, fr.id_fraisvar, fr.quantite AS qte, fv.designation_principale AS type,fv.designation_secondaire AS tache_frais ,fv.px_vente_unitaire_ht,fv.coefficient_v AS coeff_pv,

fv.cout_revient_unitaire,fv.coefficient_cr AS coeff_cr, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS cout_revient, fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS prix_ht, c.designation_secondaire AS designation_contexte FROM frais_realises AS fr,frais_variables AS fv, contexte AS c WHERE fr.id_dossier='$ref_dossier' AND fv.id_fraisvar=fr.id_fraisvar AND c.id_contexte=fr.id_contexte ORDER BY fr.date") or die (mysql_error()); $tableau_heures=array(); // création d'un tableau vide pour les heures réalisées while ($ligne_heures=mysql_fetch_array($reponse_heures)) // pour chaque ligne résultat { $tableau_heures[]=$ligne_heures; // remplissage du tableau par les lignes récupérées dans la BDD (requête SQL) } $tableau_frais=array(); // création d'un tableau vide pour les frais engagés while ($ligne_frais=mysql_fetch_array($reponse_frais)) // pour chaque ligne résultat { $tableau_frais[]=$ligne_frais; // remplissage du tableau par les lignes récupérées dans la BDD (requête SQL) } // concaténation des 2 variables tableaux heures et frais $tableau_heures_frais=array_merge($tableau_heures,$tableau_frais); // PUBLICATION $_SESSION['tableau_heure_frais']=array(); // création d'un tableau vide public $_SESSION['tableau_heure_frais']=$tableau_heures_frais; // publication de la variable tableau pour export foreach ($tableau_heures_frais as $donnees_affichage_final) { if ($donnees_affichage_final['type']=="frais variables") { ?> <tr class="cellule_tab_frais" > <td><div><?php echo $donnees_affichage_final['type']; ?></div></td> <td><div><?php echo $donnees_affichage_final['date_fra']; ?></div></td> <td><div><?php echo $donnees_affichage_final['collabo']; ?></div></td> <td><div><?php echo $donnees_affichage_final['designation_contexte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['tache_frais']; ?></div></td> <td><div><?php echo $donnees_affichage_final['qte']; ?></div></td>

Page 25: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 24 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<td><div><?php echo $donnees_affichage_final['prix_ht']; ?></div></td> <td><div><?php echo $donnees_affichage_final['cout_revient']; ?></div></td> </tr> <?php } else { ?> <tr class="cellule_tab_heures" > <td><div><?php echo $donnees_affichage_final['type']; ?></div></td> <td><div><?php echo $donnees_affichage_final['date_fra']; ?></div></td> <td><div><?php echo $donnees_affichage_final['collabo']; ?></div></td> <td><div><?php echo $donnees_affichage_final['designation_contexte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['tache_frais']; ?></div></td> <td><div><?php echo $donnees_affichage_final['qte']; ?></div></td> <td><div><?php echo $donnees_affichage_final['prix_ht']; ?></div></td> <td><div><?php echo $donnees_affichage_final['cout_revient']; ?></div></td> </tr> <?php } } ?> </table> </div> <?php } // BILAN TRES SYNTHETIQUE 1: bureau, terrain, frais EN PRIX DE VENTE !!! // on calcule la somme en ! correspondant aux heures réalisées sur le terrain, le bureau et les frais $total_terrain_reponse=mysql_query("SELECT hr.id_dossier,

DATE_FORMAT(hr.date,'%d-%m-%Y') AS date_fra,hr.initiales_collabo AS collabo, hr.id_tache,hr.quantite,t.designation_principale AS type,t.designation_secondaire AS tache_frais, t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, SUM(hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient) AS total_px_ht, SUM(hr.quantite*lc.cout_revient_horaire*lc.coefficient) AS total_cout_revient, SUM(hr.quantite) AS total_qte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc, contexte AS c WHERE hr.id_dossier='$ref_dossier' AND c.id_contexte=hr.id_contexte AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND t.designation_principale='Terrain'")

Page 26: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 25 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

or die (mysql_error()); // dans ce cas la boucle est inutile car il n'y a qu'une seule ligne de données (et oui, c'est une somme) $total_terrain=mysql_fetch_array($total_terrain_reponse); $total_bureau_reponse=mysql_query("SELECT hr.id_dossier,

DATE_FORMAT(hr.date,'%d-%m-%Y') AS date_fra,hr.initiales_collabo AS collabo, hr.id_tache,hr.quantite,t.designation_principale AS type,t.designation_secondaire AS tache_frais, t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, SUM(hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient) AS total_px_ht, SUM(hr.quantite*lc.cout_revient_horaire*lc.coefficient) AS total_cout_revient, SUM(hr.quantite) AS total_qte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc, contexte AS c WHERE hr.id_dossier='$ref_dossier' AND c.id_contexte=hr.id_contexte AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND t.designation_principale='Bureau' ") or die (mysql_error()); $total_bureau=mysql_fetch_array($total_bureau_reponse); $total_improd_reponse=mysql_query("SELECT hr.id_dossier,

DATE_FORMAT(hr.date,'%d-%m-%Y') AS date_fra,hr.initiales_collabo AS collabo, hr.id_tache,hr.quantite,t.designation_principale AS type,t.designation_secondaire AS tache_frais, t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, SUM(hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient) AS total_px_ht, SUM(hr.quantite*lc.cout_revient_horaire*lc.coefficient) AS total_cout_revient,

SUM(hr.quantite) AS total_qte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc, contexte AS c WHERE hr.id_dossier='$ref_dossier' AND c.id_contexte=hr.id_contexte AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND t.designation_principale='Improductif'") or die (mysql_error());

Page 27: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 26 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

$total_improd=mysql_fetch_array($total_improd_reponse); $total_frais_reponse=mysql_query("SELECT fr.id_dossier,

DATE_FORMAT(fr.date,'%d-%m-%Y') AS date_fra,fr.initiales_collabo AS collabo,fr.id_fraisvar, fr.quantite,fv.designation_principale AS type,fv.designation_secondaire AS tache_frais,fv.px_vente_unitaire_ht,fv.coefficient_v AS coeff_pv,

fv.cout_revient_unitaire,fv.coefficient_cr AS coeff_cr, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS cout_revient, fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS prix_ht, SUM(fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v) AS total_px_ht, SUM(fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr) AS total_cout_revient FROM frais_realises AS fr,frais_variables AS fv WHERE fr.id_dossier='$ref_dossier' AND fv.id_fraisvar=fr.id_fraisvar") or die (mysql_error()); $total_frais=mysql_fetch_array($total_frais_reponse); // BILAN PAR TACHES ET PRESTATION // calcul des sommes des heures (et !) réparties par tâche et prestation if ($param=="heures") {

$reponse_total_par_tachefrais_et_collabo=mysql_query("SELECT hr.id_dossier,hr.initiales_collabo AS collabo,

hr.id_tache,hr.quantite,t.designation_principale AS type,t.designation_secondaire AS tache_frais, t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, SUM(hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient) AS total_px_ht, SUM(hr.quantite) AS total_qte, SUM(hr.quantite*lc.cout_revient_horaire*lc.coefficient) AS total_cout_revient, c.designation_secondaire AS designation_contexte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc, contexte AS c

WHERE hr.id_dossier='$ref_dossier' AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND c.id_contexte=hr.id_contexte GROUP BY designation_contexte,tache_frais") or die (mysql_error());

Page 28: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 27 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

} else if ($param=="frais") { $reponse_total_par_tachefrais_et_collabo=mysql_query("SELECT fr.id_dossier,fr.initiales_collabo AS collabo, fr.id_fraisvar, fr.quantite,fv.designation_principale AS type, fv.designation_secondaire AS tache_frais,fv.px_vente_unitaire_ht,fv.coefficient_v AS coeff_pv,

fv.cout_revient_unitaire,fv.coefficient_cr AS coeff_cr, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS cout_revient, fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS prix_ht, SUM(fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v) AS total_px_ht, SUM(fr.quantite) AS total_qte, SUM(fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr) AS total_cout_revient, c.designation_secondaire AS designation_contexte FROM frais_realises AS fr,frais_variables AS fv, contexte AS c WHERE fr.id_dossier='$ref_dossier' AND fv.id_fraisvar=fr.id_fraisvar AND c.id_contexte=fr.id_contexte GROUP BY designation_contexte,tache_frais") or die (mysql_error()); } else if ($param=="heures_frais") {

$reponse_total_par_tachefrais_et_collabo=mysql_query("SELECT hr.id_dossier,hr.initiales_collabo AS collabo, hr.id_tache AS id_tachefrais,hr.quantite,t.designation_principale AS type, t.designation_secondaire AS tache_frais,

t.px_vente_horaire_ht,t.coefficient AS coeff_pv, lc.cout_revient_horaire,lc.coefficient AS coeff_cr, hr.quantite*lc.cout_revient_horaire*lc.coefficient AS cout_revient, hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient AS prix_ht, SUM(hr.quantite*t.px_vente_horaire_ht*t.coefficient*c.coefficient) AS total_px_ht, SUM(hr.quantite) AS total_qte, SUM(hr.quantite*lc.cout_revient_horaire*lc.coefficient) AS total_cout_revient, c.designation_secondaire AS designation_contexte FROM heures_realisees AS hr,taches AS t,liste_collabo AS lc, contexte AS c WHERE hr.id_dossier='$ref_dossier' AND hr.id_tache=t.id_tache AND hr.initiales_collabo=lc.initiales_collabo AND c.id_contexte=hr.id_contexte GROUP BY designation_contexte,tache_frais UNION SELECT fr.id_dossier,fr.initiales_collabo AS collabo, fr.id_fraisvar AS id_tachefrais,

fr.quantite,fv.designation_principale AS type,fv.designation_secondaire AS tache_frais,fv.px_vente_unitaire_ht,fv.coefficient_v AS coeff_pv,

Page 29: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 28 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

fv.cout_revient_unitaire,fv.coefficient_cr AS coeff_cr, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS cout_revient, fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS prix_ht, SUM(fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v) AS total_px_ht, SUM(fr.quantite) AS total_qte, SUM(fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr) AS total_cout_revient, c.designation_secondaire AS designation_contexte FROM frais_realises AS fr,frais_variables AS fv, contexte AS c WHERE fr.id_dossier='$ref_dossier' AND fv.id_fraisvar=fr.id_fraisvar AND c.id_contexte=fr.id_contexte GROUP BY designation_contexte,tache_frais ORDER BY designation_contexte,id_tachefrais") or die (mysql_error()); // a tester } // PUBLICATION DU TABLEAU RECAPITULATIF PAR TACHES/FRAIS ET COLLABO // ET DEFINITION DE LA VARIABLE TABLEAU AFFICHEE $tab_total_par_tachefrais_et_collabo=array(); while ($ligne_tab_tfc=mysql_fetch_array($reponse_total_par_tachefrais_et_collabo)) { $tab_total_par_tachefrais_et_collabo[]=$ligne_tab_tfc; } $_SESSION['export_tab_tfc']=array(); $_SESSION['export_tab_tfc']=$tab_total_par_tachefrais_et_collabo; mysql_close(); // déconnexion de MySQL ?> <!-- ---------------- totaux des heures et frais du dossier classé par tache/frais et prestation ---------------- --> <div class="cadre_recap_dossier_g" > <table class="tableau_recap" > <tr class="en_tete_tab" > <!-- en-tête du tableau --> <!-- <th><div>Nom</div></th> --> <th><div>Prestation</div></th> <th><div>Tâche/Frais</div></th> <th><div>Total Qté</div></th> <th><div>Total Prix Vente HT</div></th> <th><div>Total Coût Revient</div></th> </tr> <?php // affichage des données de la table foreach ($tab_total_par_tachefrais_et_collabo as $donnees_total_par_tachefrais_et_collabo) {

Page 30: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 29 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

if ($donnees_total_par_tachefrais_et_collabo['type']=='frais variables') { ?> <tr class="cellule_tab_frais" > <!-- <td style="width:8%;" ><div >< ?php echo $donnees_total_par_tachefrais_et_collabo['collabo']; ?></div></td> --> <td style="width:22%;" ><div ><?php echo $donnees_total_par_tachefrais_et_collabo['designation_contexte']; ?></div></td> <td style="width:37%;" ><div ><?php echo $donnees_total_par_tachefrais_et_collabo['tache_frais']; ?></div></td> <td style="width:11%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_qte'],2); ?></div></td> <td style="width:15%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_px_ht'],2); ?></div></td> <td style="width:15%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_cout_revient'],2); ?></div></td> </tr> <?php } else { ?> <tr class="cellule_tab_heures" > <!-- <td style="width:8%;" ><div >< ?php echo $donnees_total_par_tachefrais_et_collabo['collabo']; ?></div></td> --> <td style="width:22%;" ><div ><?php echo $donnees_total_par_tachefrais_et_collabo['designation_contexte']; ?></div></td> <td style="width:37%;" ><div ><?php echo $donnees_total_par_tachefrais_et_collabo['tache_frais']; ?></div></td> <td style="width:11%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_qte'],2); ?></div></td> <td style="width:15%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_px_ht'],2); ?></div></td> <td style="width:15%;" ><div ><?php echo number_format($donnees_total_par_tachefrais_et_collabo['total_cout_revient'],2); ?></div></td> </tr> <?php } } ?> </table> </div> <div class="cadre_recap_dossier_d"> <!-- autre tableau récapitulatif : plus synthétique (terrain,bureau et frais) --> <table class="tableau_recap_d" > <div class="en_tete_tab" ><strong>Récapitulatif du dossier</strong></div> <tr> <th style="width:25%;" ></th> <th style="width:37.25%;" >PV</th> <th style="width:37.25%;" >CR</th> </tr> <?php if (($_POST['param'])=="heures"){ ?> <tr class="cellule_tab" > <td> <strong>Total Terrain</strong>

Page 31: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 30 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

</td> <td> <span align="left" ><?php echo number_format($total_terrain['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_terrain['total_qte']; ?> heures</span> </td> <td> <span align="left" ><?php echo number_format($total_terrain['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_terrain['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Bureau</strong> </td> <td> <span align="left" ><?php echo number_format($total_bureau['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_bureau['total_qte']; ?> heures</span> </td> <td> <span align="left" ><?php echo number_format($total_bureau['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_bureau['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Improductif</strong> </td> <td> <span align="left" ><?php echo number_format($total_improd['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_improd['total_qte']; ?> heures</span> </td> <td> <span align="left" ><?php echo number_format($total_improd['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_improd['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Heures</strong> </td> <td> <span align="left" ><?php echo number_format(($total_terrain['total_px_ht']+$total_bureau['total_px_ht']+$total_improd['total_px_ht']),2); ?> ! HT <br/>soit <?php echo ($total_terrain['total_qte']+$total_bureau['total_qte']+$total_improd['total_qte']); ?> heures</span> </td> <td> <span align="left" ><?php echo number_format(($total_terrain['total_cout_revient']+$total_bureau['total_cout_revient']+$total_improd['total_cout_revient']),2); ?> ! HT <br/>soit <?php echo ($total_terrain['total_qte']+$total_bureau['total_qte']+$total_improd['total_qte']); ?> heures</span> </td> </tr>

Page 32: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 31 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<?php } else if (($_POST['param'])=="frais"){ ?> <tr class="cellule_tab" > <td> <strong>Total Frais</strong> </td> <td> <span align="left" ><?php echo number_format($total_frais['total_px_ht'],2); ?> ! HT</span> </td> <td> <span align="left" ><?php echo number_format($total_frais['total_cout_revient'],2); ?> ! HT</span> </td> </tr> <?php } else if (($_POST['param'])=="heures_frais"){ ?> <tr class="cellule_tab" > <td> <strong>Total Terrain</strong> </td> <td> <span align="left" ><?php echo number_format($total_terrain['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_terrain['total_qte']; ?> heures</span> </td> <td> <span align="left" ><?php echo number_format($total_terrain['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_terrain['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Bureau</strong> </td> <td> <span align="left" ><?php echo number_format($total_bureau['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_bureau['total_qte']; ?> heures</span> </td> <td> <span align="left" ><?php echo number_format($total_bureau['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_bureau['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Improductif</strong> </td> <td> <span align="left" ><?php echo number_format($total_improd['total_px_ht'],2); ?> ! HT <br/>soit <?php echo $total_improd['total_qte']; ?> heures</span> </td>

Page 33: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 32 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<td> <span align="left" ><?php echo number_format($total_improd['total_cout_revient'],2); ?> ! HT <br/>soit <?php echo $total_improd['total_qte']; ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Heures</strong> </td> <td> <span align="left" ><?php echo number_format(($total_terrain['total_px_ht']+$total_bureau['total_px_ht']+$total_improd['total_px_ht']),2); ?> ! HT <br/>soit <?php echo ($total_terrain['total_qte']+$total_bureau['total_qte']+$total_improd['total_qte']); ?> heures</span> </td> <td> <span align="left" ><?php echo number_format(($total_terrain['total_cout_revient']+$total_bureau['total_cout_revient']+$total_improd['total_cout_revient']),2); ?> ! HT <br/>soit <?php echo ($total_terrain['total_qte']+$total_bureau['total_qte']+$total_improd['total_qte']); ?> heures</span> </td> </tr> <tr class="cellule_tab" > <td> <strong>Total Frais</strong> </td> <td> <span align="left" ><?php echo number_format($total_frais['total_px_ht'],2); ?> ! HT</span> </td> <td> <span align="left" ><?php echo number_format($total_frais['total_cout_revient'],2); ?> ! HT</span> </td> </tr> <tr class="cellule_tab" > <td> <strong><font color="blue">Total Dossier</font></strong> </td> <td> <span align="left"><font color="blue"><?php echo number_format(($total_terrain['total_px_ht']+$total_bureau['total_px_ht']+$total_improd['total_px_ht']+$total_frais['total_px_ht']),2); ?> ! HT</font></span> </td> <td> <span align="left"><font color="blue"><?php echo number_format(($total_terrain['total_cout_revient']+$total_bureau['total_cout_revient']+$total_improd['total_cout_revient']+$total_frais['total_cout_revient']),2); ?> ! HT</font></span> </td> <?php } ?> </td> </tr> </table> </div>

Page 34: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 33 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

<!-- ---------------- PUBLICATION des Variables pour l'export vers Open Office ---------------- --> <?php // les variables seront connues par toutes les pages php grâce à $_SESSION $_SESSION['ref_dossier_tbd']=$ref_dossier; $_SESSION['param_tbd']=$param; // POUR LE PRIX DE VENTE $_SESSION['total_px_terrain_tbd']=$total_terrain['total_px_ht']; // total prix HT des heures terrain $_SESSION['total_px_bureau_tbd']=$total_bureau['total_px_ht']; // total prix HT des heures bureau (dont improductives) $_SESSION['total_px_improd_tbd']=$total_improd['total_px_ht']; // etc. $_SESSION['total_px_frais_tbd']=$total_frais['total_px_ht']; $_SESSION['total_px_tbd']=($total_terrain['total_px_ht']+$total_bureau['total_px_ht']+$total_improd['total_px_ht']+$total_frais['total_px_ht']); // POUR LE COUT DE REVIENT $_SESSION['total_px_terrain_cr_tbd']=$total_terrain['total_cout_revient']; // total prix HT des heures terrain $_SESSION['total_px_bureau_cr_tbd']=$total_bureau['total_cout_revient']; // total prix HT des heures bureau (dont improductives) $_SESSION['total_px_improd_cr_tbd']=$total_improd['total_cout_revient']; // etc. $_SESSION['total_px_frais_cr_tbd']=$total_frais['total_cout_revient']; $_SESSION['total_px_cr_tbd']=($total_terrain['total_cout_revient']+$total_bureau['total_cout_revient']+$total_improd['total_cout_revient']+$total_frais['total_cout_revient']); ?> <div class="cadre_exporter" > <!-- ---------------- FORMULAIRE d'export des données vers Open Office ---------------- --> <form name="form_export" action="bilan_dossier_2.php" method="post" > <input type="button" name="bouton_exporter" id="bouton_exporter" value="Exporter" onclick="location.href='export_bilan_dossier_2.php'" tabindex="40" /> </form> <!-- ---------------- fin du Formulaire d'export ---------------- --> </div> <?php } // fin du if isset num dossier a ?> <script type="text/javascript"> setFocus() </script> </body> </html>

D.1.2 Script du fichier design_bilan.css

/* code CSS pour le design des pages : bilan_dosier_2.php et bilan_collabo_2.php */ body { background-color:white; }

Page 35: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 34 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

.titre_page { color: black; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .cadre_titre { background-color:#C2C9FE; width:98%; height:5%; position:absolute; left:1%; top:1.5%; } .cadre_dossier { background-color:#C2C9FE; width:98%; height:19%; position:absolute; left:1%; top:8%; } .cadre_collabo_g { background-color:#C2C9FE; width:48.5%; height:22%; position:absolute; left:1%; top:8%; } .cadre_collabo_d { background-color:#C2C9FE; width:48.5%; height:22%; position:absolute; right:1%; top:8%; } .cadre_collabo_valider_d { /* background-color:blue; */ width:48.5%; height:4%; position:absolute; right:1%; top:31%; text-align:center; } .formulaire

Page 36: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 35 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

{ color: black; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .formulaire_g { color: black; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: left; padding-left:33.5%; } .formulaire_d { color: black; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: left; padding-left:15%; } .form_d_fin { padding-left:35.25%; } .form_d_sel { padding-left:3.75%; } .cadre_titre_tab { background-color:silver; width:98%; height:3%; position:absolute; right:1%; top:36%; text-align: center; } .cadre_titre_tab_dossier { background-color:silver; width:98%; height:3%; position:absolute; right:1%; top:29%; text-align: center; } .titre_tab { color: black; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;

Page 37: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 36 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

padding-top:1%; } .cadre_tab_bilan { /* background-color:silver; */ width:98%; height:23%; position:absolute; left:1%; top:40.5%; text-align: center; overflow:auto; } .cadre_tab_bilan_dossier { /* background-color:silver; */ width:98%; height:27%; position:absolute; left:1%; top:33%; text-align: center; overflow:auto; } .en_tete_tab { background-color:silver; font-size: 10.5px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .cellule_tab { background-color:white; font-size: 10.5px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .cellule_tab_heures { background-color: #99CCFF; font-size: 10.5px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .cellule_tab_frais { background-color: #FFCC66; font-size: 10.5px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; }

Page 38: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 37 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

.cadre_recap_g { /* background-color:blue; */ width:67%; height:28%; position:absolute; left:1%; top:65%; text-align: center; overflow:auto; } .cadre_recap_d { /* background-color:blue; */ width:30%; height:28%; position:absolute; right:1%; top:65%; text-align: center; overflow:auto; } .cadre_recap_dossier_g { /* background-color:silver; */ width:67%; height:30%; position:absolute; left:1%; top:62%; text-align: center; overflow:auto; } .cadre_recap_dossier_d { /* background-color:silver; */ width:30%; height:30%; position:absolute; right:1%; top:62%; text-align: center; overflow:auto; } .tableau_recap { width:100%; background-color:white; font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .tableau_recap_d { width:100%; background-color:silver; font-size: small;

Page 39: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 38 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

font-family: Verdana, Arial, Helvetica, sans-serif; text-align: center; } .cadre_exporter { position:absolute; left:1%; top:94%; height:4%; width:98%; /*background-color:blue;*/ text-align:center; } .espace { color:#C2C9FE; /* même couleur que le background de formulaire */ }

D.1.3 Code de la page export_bilan_dossier_2.php

<?php $host="127.0.0.1"; session_start(); // démarrage de la session pour les variables publiques mysql_connect($host,"root",""); // connexion mysql_select_db("dream"); // sélection de la BASE $ref_dossier=$_SESSION['ref_dossier_tbd']; // tbd pour table_bilan_dossier $param_tbd=$_SESSION['param_tbd']; // tableau concernant toutes les lignes de données des heures et frais $rep_tab_final=array(); $rep_tab_final=$_SESSION['tableau_heure_frais']; // tableau concernant le récapitulatif par tâche/frais et prestation $tab_tot_tfc=array(); $tab_tot_tfc=$_SESSION['export_tab_tfc']; // POUR LE PRIX DE VENTE $total_px_terrain_tbd=$_SESSION['total_px_terrain_tbd']; // total prix HT des heures terrain $total_px_bureau_tbd=$_SESSION['total_px_bureau_tbd']; // total prix HT des heures bureau (dont improductives) $total_px_improd_tbd=$_SESSION['total_px_improd_tbd']; // etc. $total_px_frais_tbd=$_SESSION['total_px_frais_tbd']; $total_px_tbd=$_SESSION['total_px_tbd']; // POUR LE COUT DE REVIENT $total_px_terrain_cr_tbd=$_SESSION['total_px_terrain_cr_tbd']; // total CR des heures terrain $total_px_bureau_cr_tbd=$_SESSION['total_px_bureau_cr_tbd']; // total prix HT des heures bureau (dont improductives) $total_px_improd_cr_tbd=$_SESSION['total_px_improd_cr_tbd']; // etc. $total_px_frais_cr_tbd=$_SESSION['total_px_frais_cr_tbd']; $total_px_cr_tbd=$_SESSION['total_px_cr_tbd']; // ECART : PV - CR $ecart_terrain = $total_px_terrain_tbd - $total_px_terrain_cr_tbd ; $ecart_bureau = $total_px_bureau_tbd - $total_px_bureau_cr_tbd ; $ecart_improd = $total_px_improd_tbd - $total_px_improd_cr_tbd ; $ecart_frais = $total_px_frais_tbd - $total_px_frais_cr_tbd ;

Page 40: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 39 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

$ecart_total = $total_px_tbd - $total_px_cr_tbd ; /** * Tutoriel file * Description : Merging a Segment within an array * You need PHP 5.2 at least * You need Zip Extension or PclZip library * * @GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com) * @license http://www.gnu.org/copyleft/gpl.html GPL License * @version 1.3 */ require_once('../library/odf.php'); // appel de la bibliothèque odtPHP $odf = new odf("export_bilan_dossier.odt"); // conditions d'affichage sur le bilan le plus synthétique : bureau, terrain et frais if ($param_tbd=='heures') { $odf->setVars('total_px_terrain',$total_px_terrain_tbd); $odf->setVars('total_px_bureau',$total_px_bureau_tbd); $odf->setVars('total_px_improd',$total_px_improd_tbd); $odf->setVars('total_px_frais', ''); $odf->setVars('total_px',$total_px_tbd); $odf->setVars('total_px_terrain_cr',$total_px_terrain_cr_tbd); $odf->setVars('total_px_bureau_cr',$total_px_bureau_cr_tbd); $odf->setVars('total_px_improd_cr',$total_px_improd_cr_tbd); $odf->setVars('total_px_frais_cr', ''); $odf->setVars('total_px_cr',$total_px_cr_tbd); $odf->setVars('ecart_terrain',$ecart_terrain); $odf->setVars('ecart_bureau',$ecart_bureau); $odf->setVars('ecart_improd',$ecart_improd); $odf->setVars('ecart_frais', ''); $odf->setVars('ecart_total',$ecart_total); } else if ($param_tbd=='frais'){ $odf->setVars('total_px_frais',$total_px_frais_tbd); $odf->setVars('total_px_terrain', ''); $odf->setVars('total_px_bureau', ''); $odf->setVars('total_px_improd', ''); $odf->setVars('total_px', ''); $odf->setVars('total_px_frais_cr',$total_px_frais_cr_tbd); $odf->setVars('total_px_terrain_cr', ''); $odf->setVars('total_px_bureau_cr', ''); $odf->setVars('total_px_improd_cr', ''); $odf->setVars('total_px_cr', ''); $odf->setVars('ecart_frais', $ecart_frais); $odf->setVars('ecart_terrain',''); $odf->setVars('ecart_bureau',''); $odf->setVars('ecart_improd',''); $odf->setVars('ecart_total',''); } else if ($param_tbd=='heures_frais'){ $odf->setVars('total_px_terrain',$total_px_terrain_tbd); $odf->setVars('total_px_bureau',$total_px_bureau_tbd); $odf->setVars('total_px_improd',$total_px_improd_tbd); $odf->setVars('total_px_frais',$total_px_frais_tbd); $odf->setVars('total_px',$total_px_tbd); $odf->setVars('total_px_terrain_cr',$total_px_terrain_cr_tbd);

Page 41: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 40 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

$odf->setVars('total_px_bureau_cr',$total_px_bureau_cr_tbd); $odf->setVars('total_px_improd_cr',$total_px_improd_cr_tbd); $odf->setVars('total_px_frais_cr',$total_px_frais_cr_tbd); $odf->setVars('total_px_cr',$total_px_cr_tbd); $odf->setVars('ecart_terrain',$ecart_terrain); $odf->setVars('ecart_bureau',$ecart_bureau); $odf->setVars('ecart_improd',$ecart_improd); $odf->setVars('ecart_frais', $ecart_frais); $odf->setVars('ecart_total',$ecart_total); } $odf->setVars('titre', $ref_dossier); $odf->setVars('date_impression',date('d/m/Y')); //tableau 1 $article = $odf->setSegment('articles'); foreach($rep_tab_final as $donnees_affichage_final) { $article->typeArticle($donnees_affichage_final['type']); $article->dateArticle($donnees_affichage_final['date_fra']); $article->collaboArticle($donnees_affichage_final['collabo']) $article->conArticle($donnees_affichage_final['designation_contexte']); $article->opArticle($donnees_affichage_final['tache_frais']); $article->qteArticle($donnees_affichage_final['qte']); $article->prixArticle($donnees_affichage_final['prix_ht']); $article->crArticle($donnees_affichage_final['cout_revient']); $article->merge(); } $odf->mergeSegment($article); // autre tableau $art2 = $odf->setSegment('articles2'); foreach($tab_tot_tfc as $donnees_tot_tfc) { $art2->conArt2($donnees_tot_tfc['designation_contexte']); $art2->typeArt2($donnees_tot_tfc['tache_frais']); $art2->totqteArt2($donnees_tot_tfc['total_qte']); $art2->totpxArt2($donnees_tot_tfc['total_px_ht']); $art2->totcrArt2($donnees_tot_tfc['total_cout_revient']); $art2->merge(); } $odf->mergeSegment($art2); $odf->exportAsAttachedFile(); // export du fichier mysql_close(); // déconnexion de MySQL ?>

Page 42: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 41 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe D.2 : Ensemble des tables de données

Le champ coloré en bleu est la clé primaire de la table.

Table Contexte

id_contexte coefficient designation_principale designation_secondaire

101 1 urbanisme CU

102 1 urbanisme lotissement

301 1 maitrise oeuvre MOE - Etude de Projet

302 1 maitrise oeuvre MOE - DCE

303 1 maitrise oeuvre MOE - Suivi des Travaux

401 1 foncier Bornage Délimitation

402 1 foncier Division de propriété

403 1 foncier DMPC

404 1 foncier Foncier - Descriptif

501 1 copro Copro - Tantièmes et Règlement

502 1 copro Loi Carrez

601 1 immobilier Diagnostic Amiante

602 1 immobilier Diagnostic Plomb

603 1 immobilier DPE

604 1 immobilier Diagnostic Gaz

605 1 immobilier Diagnostic Electricité

701 1 expertise Etat des lieux

702 1 expertise Estimation de biens

703 1 expertise Expertise Judiciaire

704 1 expertise Expertise Diverse

801 1 topographie Canevas (polygo, nivellement)

802 1 topographie Relevé Terrestre (alti, plani)

803 1 topographie Topo - Profils

804 1 topographie Cubatures

805 1 topographie Plan d'intérieur et façade

806 1 topographie Implantation

807 1 topographie Récolement

901 1 gestion du cabinet Prix de Revient

902 1 gestion de cabinet Calcul de Devis

903 1 gestion de cabinet Comptabilité

904 1 gestion de cabinet Organisation

905 1 gestion de cabinet Gestion du Personnel

906 1 gestion de cabinet Gestion du Matériel

Page 43: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 42 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Table frais-variables

id_fraisvar designation_

principale

designation_

secondaire

px_vente_

unitaire_ht

cout_revient

_unitaire

coefficient

_v

coefficient_

cr

1 frais variables kilométrage 0.5 0.5 1 1

2 frais variables repas 12.5 12 1 1

3 frais variables borne 30 28 1 1

4 frais variables tirage 4.5 3.5 1 1

5 frais variables piquet 24 0 1 1

6 frais variables point défini 0 0 1 1

7 frais variables surface

carrez 0 0 1 1

Table taches

id_tache designation_principale designation_secondaire px_vente_horaire_ht coefficient

101 Terrain Intervention GPS solo 96.5 1

102 Terrain Intervention Robot solo 96.5 1

103 Terrain Intervention Demi brigade 60 1

105 Terrain GE - Intervention Terrain 92 1

201 Bureau TE - Préparation dossier 73 1

203 Bureau TE - CAO DAO 73 1

202 Bureau GE - Préparation Dossier 92 1

303 Improductif TE - Archivage 73 1

301 Improductif TE - pb informatique 73 1

104 Terrain TE - Intervention Terrain 73 1

204 Bureau GE - CAO DAO 92 1

302 Improductif GE - pb informatique 92 1

304 Improductif GE - Archivage 92 1

305 Improductif TE - Congés Payés 73 1

306 Improductif GE - Congés Payés 92 1

307 Improductif TE - Formation 73 1

308 Improductif GE - Formation 92 1

309 Improductif TE - Abscence 73 1

310 Improductif GE - Abscence 92 1

205 Bureau TE - Rédaction Rapport 73 1

206 Bureau GE - Rédaction Rapport 92 1

106 Terrain TE - Réunion de chantier 73 1

107 Terrain GE - Réunion de chantier 92 1

Page 44: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 43 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Table liste_collabo

initiales_collabo titre nom prenom poste cout_revient_horaire coefficient

SG Mme Girard Sophie technicienne 35 1

FA M. Auger Fabrice technicien 35 1

DEF M. Fouquet Denis technicien 35 1

JMP M. Pierrot Jean Marc cadre 40 1

RC M. Clemenceau Raymond geometre expert 45 1

DF M. Fresnel David technicien 35 1

BL Mme Lecoustey Beatrice secretaire comptable 30 1

SB Mme Bizien Sophie secretaire 30 1

MD Mme Davoust Magali technicienne 35 1

AB M. Boissonnet André technicien 35 1

Table frais_realises (la table heures_realisees est similaire)

id_ligne id_dossier date initiales_collabo id_contexte id_fraisvar quantite

100 09100 2009-02-14 DEF 102 1 60

101 09100 2009-02-14 DEF 102 2 1

Table lignes_facture

id_lignefact id_dossier id_elemfact designation_

principale

designation_

secondaire quantite px_total_ht

0930033 09300 33 5 -53.925

0930022 09300 22 1 26

0930024 09300 24 1 55

0930026 09300 26 1 202

0930015 09300 15 1 101

0930014 09300 14 180.5 180.5

0910014 09100 14 270 270

0910015 09100 15 1 101

093006 09300 6 2 19

0910024 09100 24 1 55

093005 09300 5 1 191

093004 09300 4 6 84

091005 09100 5 1 191

091001 09100 1 1 70

091002 09100 2 2 60

093002 09300 2 5 150

091004 09100 4 4 56

093001 09300 1 1 70

0910025 09100 25 67 33.5

Page 45: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 44 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Table elements_facturation

id_elem

fact

code_

compta intitule

designation_prin

cipale

designation

_secondaire

prix_vent

e_unitaire

_ht

coefficient

_pvu commentaire

1 0 ODA Bureau administratif 70 1 ouverture dossier et archivage

2 0 DB Terrain bornes 30 1 delimitation et bornage:nbr bornes

3 0 DB Terrain piquets 24 1 delimitation et bornage:nbr piquets

4 0 DB Terrain points definis 14 1 delimitation et bornage:nbr pts

31 0 DIVERS Bureau consultation 9.25 1 photocopie certifiée

30 0 DIAGNAM Terrain Bureau complement 1 1 saisir un montant HT pour complément

diagn

29 0 DIAGNAM Terrain Bureau forfait base 98 1 forfait base pour diagn amiante sans

prélèv

28 0 CARREZ Terrain Bureau complement 1.2 1 complément loi carrez par m2 de surface

5 0 DMPC Bureau forfait base 191 1 forfait de base pour DMPC

6 0 DMPC Bureau nbre mes 9.5 1 par mesure supplementaire > 4

7 0 DMPC Bureau nbre num 24 1 par numero supplementaire > 2

8 0 DMPC Bureau nbre num 18 1 par numero supplementaire > 10

27 0 CARREZ Terrain Bureau forfait base 85 1 forfait de base pour certif carrez

15 0 CDAF Bureau CDAF 101 1 constitution dossier (pour parcelle

remembree)

16 0 URBA Bureau CU 142 1 plans situation et parcellaire en 5

exemplaires

21 0 URBA Bureau DP 205 1 constitution dossier DP

26 0 ETLIEU Terrain Bureau etat lieux 202 1 forfait état des lieux (imm>20 ans)

14 0 PLDIVER

S Terrain LevePlani 1 1

levé plani pour opérat° diverses saisie

manuelle

22 0 DTAB Bureau nbre terrain 26 1 Descriptif Terrain A Batir : pour 1 terrain

23 0 DTAB Bureau nbre terrain 37 1 Descriptif Terrain A Batir : pour 2 terrains

24 0 DEBFR frais forfait base 55 1 Debours et Frais : forfait minimum

25 0 DEBFR frais supplement 0.5 1 Debours et Frais : supplement (km,

expedition)

17 0 PVBOR Bureau OpInst 92 1 operation instruction pour PV Bornage

20 0 PVBOR Bureau RedacPV 156 1 operation conservation : redaction PVB

18 0 PVBOR Terrain LevePlani 1 1 Leve Plani pour PVB (saisie manuelle)

9 0 PLDIVER

S Bureau PlanDiv 1 1 plan de division (saisie manuelle)

10 0 PLDIVER

S Bureau PlanBor 1 1 plan bornage (saisie manuelle)

11 0 PLDIVER

S Bureau PlanTopo 1 1 Plan Topo (saisie manuelle)

12 0 PLDIVER

S Bureau PlanVente 1 1 plan de vente (saisie manuelle)

13 0 PLDIVER

S Bureau AltiPlani 1 1 alti et plani (saisie manuelle)

19 0 PVBOR Bureau RechPart 1 1 recherche (saisie manelle)

33 0 REM Remise 0.01 1 remise à exprimer en %

32 0 DIVERS Bureau consultation 18.5 1 recherche archives et duplicata

Page 46: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 45 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Table suivi_factures

id_dos

sier

montant

_ht

montant

_ttc

montant

_regle

montant

_du

date_fac

turation

echeanc

e1

echeanc

e2

echeanc

e3

date_reg

lement

acomp

te

date_aco

mpte

comment

aire

09200 1000,0 1196,0 1196,0 0,00 2009-03-

03

2009-05-

03

2009-07-

03

2009-09-

03

2009-04-

13 200,0

2009-03-

01

09300 1024.5 1225.3 0,0 1225.3 2009-03-

17

2009-05-

17

2009-07-

17

2009-09-

17

0000-00-

00 0,0

0000-00-

00

Page 47: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 46 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

Annexe D.3 : Script de mise à jour des données dans le cadre

d’une amélioration

Ce code permet de mettre à jour les 2 colonnes rajoutées à la table frais_realises.

<?php $host="127.0.0.1"; mysql_connect($host,"root",""); mysql_select_db("dream"); // sélection de la BASE $reponse = mysql_query("SELECT fr.quantite*fv.px_vente_unitaire_ht*fv.coefficient_v AS PxVenteHT, fr.quantite*fv.cout_revient_unitaire*fv.coefficient_cr AS CoutRevient FROM frais_realises AS fr, frais_variables AS fv WHERE fv.id_fraisvar=fr.id_fraisvar") or die(mysql_error()); $donnees=array(); while ($ligne=mysql_fetch_array($reponse)) { $donnees[]=$ligne; } for ($i=100;$i<101+1;$i++) { $PV = $donnees[($i-100)]['PxVenteHT']; $CR = $donnees[($i-100)]['CoutRevient']; mysql_query("UPDATE frais_realises SET PVHT='$PV', CR='$CR' WHERE id_ligne='$i'") or die(mysql_error()); } mysql_close(); ?>

Page 48: Mémoire de soutenance de diplôme d’ingénieur INSA ...eprints2.insa-strasbourg.fr/1078/2/Annexes_GITA.pdf · Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 1

Mémoire de soutenance de Diplôme d’Ingénieur - Annexes Page 47 sur 47

Giacomo ITALIANO – Septembre 2009 INSA de Strasbourg - Topographie

TABLE DES ILLUSTRATIONS

FIGURE 1 : NOTION DE COUT DE REVIENT (MULLER ET AL. [2008])................................................................3

FIGURE 2 : DEMANDE D’INTERVENTION .......................................................................................................6

FIGURE 3 : CHEMISE DU DOSSIER – PAGE 1 ................................................................................................7

FIGURE 4 : CHEMISE DU DOSSIER – PAGE 2 ................................................................................................8

FIGURE 5 : CHEMISE DU DOSSIER – PAGE 3 ................................................................................................9

FIGURE 6 : FEUILLE INDIVIDUELLE DES TEMPS PASSES ...............................................................................10