Sujet Automatisation du Tableau de Bord de la Division ... · PDF filed’édition...
Transcript of Sujet Automatisation du Tableau de Bord de la Division ... · PDF filed’édition...
Royaume du Maroc Université Mohammed V - Souissi
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
- E.N.S.I.A.S.
Sujet: Automatisation du Tableau de Bord de la Division Régionale de Fès.
Réalisé par: Mlle. EDDARIY ZAKIA
Encadré par : Mr. BENTAJAR My Abdelhadi
Année Universitaire : 2005-2006
1 page texte
0.5 DH
1 page mixte
1 DH
1 page image
2 DH
1 CD vierge
2 DH
1 pochette double
0.5 DH
1 reliure (baguette + transparent + papier cartonné)
6 DH
3.1. Java Java est à la fois un langage de programmation et une plateforme d'exécution [7]. Le langage Java a la particularité principale d'être portable, puisqu'il peut tourner sur n'importe quelle machine disposant d'un interpréteur Java. Cette portabilité est fondamentale sur Internet,
4. Réalisation Au lancement de l’application, l’utilisateur a le choix entre deux menus : New Project et Load Project.
Je tiens à adresser mes plus vifs remerciements à la direction de l’ONE et en
particulier Mr. BENADAD, Chef de la Division De Distribution de Fès, pour m’avoir
permis d’accomplir mon stage au sein de l’ONE, et à mon encadrant Mr. BENTAJAR MY
Abdelahadi, Chef du service du contrôle de gestion, pour son soutien et son encouragement.
Ainsi je remercie Mr. HINDO, Chef de l’Agence de Distribution de Sefrou, pour ses
conseils et aides précieuses qui m’ont aidé à réaliser le travail demandé, et à tout le personnel
du service du contrôle de gestion, et à tout le personnel de la Direction Régionale de
Distribution de Fès pour leurs conseils et leurs aides qui m’ont permis de passer ce stage dans
les meilleurs conditions.
EDDARIY ZAKIA
Figure 1 :répertoire de base de IIS……...…………………………………………………… 16
Figure 2 :Ajouter index.php à IIS…………………………………………………………….17
Figure 3 :première connexion de l’utilisteur...………………………………………………..18
Figure 4 :erreur d’identification1……………………………………………………………..19
Figure 5 : erreur d’identification2…………………………………………………………….19
Figure 6 :erreur d’identification3……………………………………………………………..20
Figure 7 :éléments du tableau de bord………………………………………………………..21
Figure 8 :parcourir un fichier………….……………………………………………………..22
Figure 9 :le tableau de bord de la BT 1.……….……………………………………………..23
Figure 10:le tableau de bord de la BT 2……………………………………………………....24
Figure 11:le tableau de bord des clients NOUR………...……………………………………25
Figure 12 :consultation de la BT……………………………………………………………..26
Figure 13 :menu de la rubrique BT…………………………………………………………..26
Figure 14:menu de la rubrique MT …..……………………………………………………...27
Figure 15:menu de la rubrique période …...…………………………………………………27
Introduction……………………………………………………………………..........1
Chapitre 1 : Contexte général du projet………………………………………….......2
1.1.Présentation de l’Organisme d’accueil……………………...............................3
1.1.1. Présentation de l’Office National d’Electricité…………………….........3
1.1.1.1 Historique et mission……………………………………………....3
1.1.1.2 Organigramme…………………………………………………......4
1.1.2 Présentation de la Direction Régionale de Distribution de Fès……….....5
1.2. Présentation du sujet……………………………………………………….....6
1.2.1. Problématique……………………………………………………..........6
1.2.2. Objectifs…………………………………………………………...........6
1.2.3. Description…………………………………………………………......6
Chapitre 2 : Analyse et Conception…………………………………………………..8
2.1. Analyse des besoins………………………………………………………..9
2.2. Conception…………………………………………………………...........10
Chapitre 3 : Réalisation…………………………………………………………….15
3.1. Choix des outils du développement…………………………………….16
3.2. Interfaces………………………………………………………………..18
Conclusion…………………………………………………………………………………..29
Support technique…………………………………………………………………………...30
Glossaire………………………………………………………………………………….....38
Bibliographie………………………………………………………………………………..40
Rapport de stage Septembre 2005
1
Vu la diversité et la complexité des informations que les managers ont à gérer
aujourd’hui, l’utilisation de tableau de bord est devenue une nécessité. En effet, le tableau de
bord est un outil d’aide à la décision, puisqu’il met à la disposition des gestionnaires les
informations leurs permettant d’agir correctement, il permet de voir et analyser un très grand
nombre de données sans avoir à se perdre dans les informations en vrac. Il se présente sous
forme d’un ensemble d’indicateurs pertinents qui permettront d’avoir une vision globale et
rapide ainsi que les détails en cas de besoin.
C’est pour cette raison que l’automatisation du tableau de bord s’impose, puisque la
fiabilité de l’information est le facteur essentiel pour réussir tout travail de pilotage et de
décision, et la disponibilité de l’information à temps permet aux responsables d’engager les
actions correctes et les décisions nécessaires, afin, d’améliorer la situation présente pour
atteindre les objectifs.
Dans ce cadre s’inscrit le sujet du stage que j’ai effectué au sein de l’Office National
d’Electricité, et qui consiste à automatiser le tableau de bord de la Direction Régionale de
Distribution de Fès.
Le présent rapport se répartit en trois chapitres, le premier s’articule sur deux grandes
parties, à savoir la présentation de l’organisme accueillant, ONE, et celle du sujet. Le
deuxième est une analyse des besoins et les solutions apportées, et le dernier sera une
explication du travail réalisé. Le rapport s’achève par une conclusion qui met le point sur le
travail réalisé.
Rapport de stage Septembre 2005
2
Rapport de stage Septembre 2005
3
1.1 .Présentation de l’organisme d’accueil
1.1.1 Présentation de L’Office National de l’électricité
1.1.1.1 Historique et mission :
L’Office National de l’Electricité a été crée par Dahir en août 1963 et a été substitué à
la Société Electrique du Maroc à qui était confiée depuis 1924, la concession d’une
organisation de production, de transport et de distribution de l’énergie électrique. A cette date,
les usines de l’Energie Electrique du Maroc assuraient 90% de la production nationale.
L’ONE est un établissement public à caractère industriel et commercial, doté de la
personnalité civile et de l’autonomie financière et a été investi depuis sa création de
l’exclusivité de la production et du transport. Il assure également la distribution de l’énergie
électrique dans plusieurs provinces du royaume notamment en milieu rural. Les droits et
obligations de l’ONE sont définis dans un cahier de charge approuvé par décret en 1974,
lequel définit les conditions techniques, administratives et financières relatives à l’exploitation
des ouvrages de production, transport et distribution de l’électricité.
Ainsi, la production et le transport de l'énergie électrique sur le territoire national sont
assurés, depuis 1963, par l'Office National de l'Electricité (ONE), établissement public à
caractère industriel et commercial placé sous la tutelle administrative et technique du
Ministère de l'Energie et des Mines.
Rapport de stage Septembre 2005
4
1.1.1.2 Organigramme :
DIRECTEUR GENERAL Ahmed
NAKKOUCH COMITE DE DIRECTION
Directeur de Projet
Directeur Audit et
Organisation
Directeur Financier
Directeur
Ressources Humaines
Directeur Commercial et
Marketing
Directeur Communication et
Coopération
Directeur
Planification
Directeur Stratégie et Développement
Directeur Electrification
Rurale
Directeur Distribution
Directeur Transport
Directeur Production
Directeur Approvisionnements
et Marchés
Directeur Technique et
Ingénierie
Rapport de stage Septembre 2005
5
1.1.2 Présentation de la Division Régionale :
Pour chaque Direction, que ce soit de Production, du Transport ou de Distribution,
elle chapeaute un ensemble de Division situé dans plusieurs régions du royaume, et pour la
direction de Distribution,il y en a sept placées sur Casa , Fès , Kenitra , Mekhnès , Marrakech
, Agadir et Oujda.
La hiérarchie de chacune de ces Divisions et comme se suit :
Chef de Division
Service des Ressources Humaines
Service de sécurité
Département d’Appui informatique
Services techniques régionaux
Département Comptabilité Service de
Contrôle de Gestion
Les Agences De Distribution (AD)
Les Agences Commerciales (AC)
Le service du contrôle de gestion, où j’ai effectué mon stage, a été crée en 1994, et sa
création avait pour objectif d’assister les opérationnels pour atteindre les objectifs mis en
place.
Rapport de stage Septembre 2005
6
1.2 Présentation du sujet :
1.2.1 Problématique :
Le tableau de bord est un ensemble d’indicateurs permettant de comparer les
prévisions avec les réalisations, mais le point essentiel voire indispensable est la rapidité
d’édition du tableau de bord, qui emporte directement sur la précision.
Donc le problème qui s’impose est :
Comment accélérer l’édition du tableau de bord ? Pour pouvoir mesurer, analyser et
prendre les décisions correctives au bon moment, afin d’améliorer la situation actuelle.
1.2.2Objectifs :
L’objectif de stage que j’ai effectué au sein de l’ONE et précisément à la
Direction Régionale de Distribution de Fès (DRD) au service du contrôle de gestion est de
réaliser une application pour automatiser le tableau de bord de la DRD de Fès, et cette
application doit répondre aux exigences suivantes :
Automatiser le calcul effectué pour élaborer le tableau de bord que soit au niveau
des AD ou au niveau de la DRD.
Permettre l’échange des informations entre les AD situées à Fès, Missour, Taza,
Sefrou, Taounate, Al Hoceima et la DRD à l’aide du serveur.
Permettre à chaque responsable de consulter les informations qui lui sont propres et
de descendre dans les niveaux d’analyse.
1.2.3 Description :
Il s’agit d’une application intranet, où l’utilisateur doit s’identifier dès la
première page en transmettant son login et mot de passe au serveur qui se charge de les
accepter ou répondre par un message d’erreur si il y a une erreur d’identification,si
l’identification se passe correctement une session est affectée à l’utilisateur qui trouvera dès la
deuxième page les choix qui peut faire, à savoir élaborer le tableau de bord du mois en cours
ou consulter les informations des périodes antérieures selon les différents modes d’analyses
soient par agences ou communes,ou encore par usage. Dans la connexion on distingue deux
types d’utilisateurs, la DRD car elle peut consulter toutes les communes et les AC.
Rapport de stage Septembre 2005
7
Quant à chaque AD, elle ne peut que consulter les communes et les AC qui se trouvent dans
son territoire.
Rapport de stage Septembre 2005
8
Rapport de stage Septembre 2005
9
2.1 Analyse des besoins :
Le stage consiste à automatiser le tableau de bord de la DRD de Fès, afin
d’assurer la fiabilité de l’information, puisque chaque mois l’ONE élabore son tableau de
bord et pour faire celui–ci, il doit être élaboré au niveau de la plus petite entité à savoir L’AD
ensuite au niveau de la DRD, pour enfin pouvoir préparer le tableau de bord final de l’Office.
Et le premier problème que la DRD rencontre, c’est qu’elle doit attendre l’arrivée
des informations concernant chaque AD pour pouvoir élaborer son tableau de bord ce
qui entraîne un retard.
Le deuxième problème est que chaque AD effectue le calcul nécessaire pour éditer
son tableau de bord, et la DRD doit refaire le même travail afin d’élaborer le sien
contenant les informations propres à chaque AD, ce qui retarde son édition et réduit le
temps de disponibilité de l’information pour pouvoir comparer, analyser et décider
puisqu’il doit être envoyé au siège à casa.
Le troisième problème c’est que, non seulement,il n’y a pas une seule méthode de
calcul, mais en plus on risque de perdre les informations antérieures puisqu’elles ne
sont pas stockées dans une structure bien déterminée.
Donc l’application doit d’abord permettre le stockage des différentes
informations concernant chaque mois et année et pour chaque entité, automatiser les
calculs faits pour normaliser la méthode de calcul et assurer la validité de
l’information, sa crédibilité et sa fiabilité, et enfin assurer la disponibilité de toute
information recherchée et à chaque moment.
Rapport de stage Septembre 2005
10
2.2 Conception :
Donc pour pouvoir résoudre le problème du stockage des informations j’avais
besoin de concevoir une base de données.
J’ai donc procédé selon les étapes suivantes :
La première étape est d’énumérer les différentes informations dont chaque
entité responsable a besoin, ensuite comprendre la structure des fichiers dont ils
disposent et les méthodes de calculs,et j’ai pu conclure que le tableau de bord
s’articule sur deux grandes parties : la Basse tension (BT), qui elle-même
comprend d’autres éléments à savoir le BT hors NOUR¹, le PERG hors NOUR¹ et
enfin le NOUR¹ lui-même, et la deuxième la moyenne tension (MT),et chaque
élément de cette liste a sa propre méthode de calcul et ses propres informations qui
doivent être stockées,d’où la nécessite d’énumérer les différents attributs de
chaque élément que j’aurai besoin. Et j’ai pu donc tirer :
Pour le BT hors NOUR :
Commune : int.
Cd_Abonnee : char (5).
Tarif : int.
Nb_Abonnebt : int.
Vente_Kwbt : float.
Vente_cmbt : float.
Pour le PERG hors NOUR :
Ind_cto : char (8).
Tarif : int.
Cd_Abonnee : char (4).
Dossier : char (5).
Total_cons :float .
Mont_total :float .
¹ : pour toute explication des termes ci-dessus veuillez consulter le glossaire.
Rapport de stage Septembre 2005
11
Pour NOUR, il faut encore distinguer entre deux types d’informations qui sont
regroupées dans un seul fichier, la première concernant les nouveaux abonnées ainsi que les
résilies du mois en cours, et la deuxième concernant les ventes du mois en cours.
De ce fait, j’ai pu tirer :
Pour les abonnements du NOUR :
Commune : int.
Cd_art : char (4).
Nb_Abonnee : int.
Pour les ventes du NOUR :
Commune : int.
Cd_Art : int.
Cons_Kwh : float.
Cons_dh : float.
C’est ce qui concerne les informations dont il faut disposer pour la BT, et pour traiter la MT
il faut avoir les attributs suivants :
Commune : int.
Cd_Art : int.
Tarif : int.
Nb_Abonneemt : int.
Ventes_Kwhmt : float.
Ventes_cmmt : float.
La deuxième étape concerne la finalisation des attributs cités ci-dessus pour
pouvoir élaborer les tables de la base de données, et comme je l’ai signaler dans la
partie analyse, les informations insérées dans la base de données doivent être
différenciées selon le mois et l’année, pour pouvoir résoudre le problème des
pertes des informations et faciliter la recherche des informations, la consultation,
selon une période choisie par l’utilisateur, c’est pourquoi il s’avère indispensable
d’ajouter à tous les champs cités ci-dessus les attributs :
Mois : char (10).
Année : int.
Rapport de stage Septembre 2005
12
Pour obtenir les cinq tables suivantes :
la table analysebt :
Mois : char (10).
Année : int.
Commune : int.
Cd_Abonnee : char (5).
Tarif : int.
Nb_Abonnebt : int.
Vente_Kwbt : float.
Vente_cmbt : float.
La table PERG :
Mois : char (10).
Année : int.
Ind_cto : char (8).
Tarif : int .
Cd_Abonnee : char (4).
Dossier : char (5).
Total_cons : float.
Mont_total : float.
La table Nourabonnee :
Mois : char (10).
Année : int.
Commune : int.
Cd_art : char (4).
Nb_Abonnee : int.
La table Nourvente :
Mois : char (10).
Année : int.
Commune : int.
Cd_Art : int.
Cons_Kwh : float.
Cons_dh : float.
Rapport de stage Septembre 2005
13
Et enfin la table analysemt :
Mois : char (10).
Année : int.
Commune : int.
Cd_Art : int.
Tarif : int.
Nb_Abonneemt : int.
Ventes_Kwhmt : float.
Ventes_cmmt : float.
Comme on peut le constater, que l’attribut Commune apparaît dans chaque table, et
le pourquoi de la chose fait l’objet de la troisième étape de la conception.
La première chose que j’ai constaté lors de l’étude des fichiers concernant le
tableau bord, que dans ceux-ci il y a une seule information qui peut faire référence
a une région, c’est le code commune, et à partir de celui-ci il faut tirer les
informations concernant chaque AC (agences commerciales) et par la suite chaque
AD, et enfin celles de la DRD.
D’autre part, et comme j’ai signalé dans la partie objectifs du stage, que
l’application doit assurer la consultation des informations concernant chaque
utilisateur, et pouvoir les regrouper par commune, AC et enfin par AD.
Donc l’ajout d’une table où il y a la liste des communes avec leurs AC et AD
est indispensable, et pour ceci j’aurai besoin des attributs suivants :
Commune : int.
Cd_AC : char (6).
Cd_AD : char (6).
Lib_com : char (20).
Lib_AC : char (20).
Lib_AD : char (10).
Mais d’après ce que nous avons vu dans le cours de la base de données,
l’élaboration d’une base de données doit respecter les trois formes normales,ce qui va justifier
la quatrième étape.
Rapport de stage Septembre 2005
14
Pour pouvoir respecter les trois formes normales, la liste des attributs ci-dessus
va donner naissance à trois tables puisque à partir de l’attribut Commune on peut,
tirer le Cd_AC qui est unique pour une commune, et de ce dernier on peut tirer le
Cd_AD qui lui aussi unique pou une AC.
La table commune :
Commune : int. //la clé primaire
Lib_com : char (20).
Cd_AC : char (6).//clé étrangère
La table ac :
Cd_AC : char (6). //la clé primaire
Lib_AC : char (20).
Cd_AD : char (6). //clé étrangère
La table AD :
Cd_AD : char (6). //la clé primaire
Lib_AD : char (10).
En cinquième et dernière étape, j’ai crée une table connexion, car comme il est
signalé dans les objectifs l’application, elle doit être partagée dans le réseau, et une
fois un utilisateur est connecté, il doit s’identifier par un login et mot de passe, qui
seront envoyés au serveur, qui va tester leurs validités, d’où les attributs suivants :
La table connexion :
Login : char (10).
Mot_de_passe : char (7).
Donc, après toutes ces étapes j’ai pu crée la base de données que j’ai nommé
Tableau_de_bord, et qui contient 9 tables à savoir :
La table analysebt.
La table analysemt.
La table PERG.
La table Nourabonnee.
La table Nourvente.
La table commune.
La table ac.
La table ad.
Et enfin la table connexion.
Rapport de stage Septembre 2005
15
Rapport de stage Septembre 2005
16
3.1 Choix des outils de développement : Comme je l’ai déjà signalé que l’application, doit être partagée dans le réseau
local de la DRD, donc j’avais besoin d’un serveur web, enfin j’ai opté pour IIS (Internet
Information Services), pour le langage de programmation j’ai utilisé le PHP, et Java-script, et
comme système de gestion de bases de données (SGBD) MYSQL.
Donc, la première chose à faire, c’est configurer le IIS pour qu’il puisse lire et
interpréter le code écrit en PHP,et ajouter une interface pour pouvoir administrer MYSQL.
La réalisation de ceci demande deux étapes, bien sur après avoir installé PHP et
MYSQL :
la première c’est changer le répertoire de base du site web, pour ce faire
il faut ouvrir les propriétés de Site Web par défaut et aller sur
l'onglet Répertoire de base et changer le chemin d’accès local,on y
est mis le chemin complet du répertoire où se trouvent les pages PHP
du site :
Figure 1
Rapport de stage Septembre 2005
17
la deuxième étape consiste à ajouter l’extension PHP, pour que IIS puisse
interpréter les pages IIS, et ceci en allant dans les propriétés du Site
Web par défaut. Dans l'onglet Documents en cliquant sur Ajouter.
Après entrer index.php comme Nom de document par défaut.
Figure 2
Après, j’ai installé phpMyadmin, qui est une interface en PHP pour administrer MySQL.
Rapport de stage Septembre 2005
18
3.2 Interfaces :
Une fois connecté au site, l’utilisateur se trouvera devant une page où il doit
fournir son login et mot de passe, comme le montre la figure 3, pour pouvoir accéder à
d’autres pages :
Figure 3
Rapport de stage Septembre 2005
19
Si l’utilisateur ne saisie pas ces informations, et clique sur le bouton se connecter, une boite
de dialogue lui demandant de saisir ces informations apparaît, comme le montre la figure 4 :
Figure 4
Si maintenant, l’utilisateur a tapé son login sans mot de passe une autre boite s’affiche lui
signalant l’erreur commise :
Figure 5
Rapport de stage Septembre 2005
20
Le quatrième et dernier cas pour la vérification de la validité de la connexion est
lorsque l’utilisateur envoie au serveur un couple (login, mot de passe) invalide une page
apparaît comme la montre la figure 6 signalant une erreur :
Figure 6
Rapport de stage Septembre 2005
21
Après toutes ces étapes de vérification de la connexion, et après une connexion
valide, une session est affectée à l’utilisateur,qui se trouvera devant une page lui offrant les
différents choix qu’il a, ce qui est explicité dans la figure 7 :
Figure 7
Le premier volet concerne l’élaboration du tableau du bord du mois en cours
avec les différents éléments qui le compose à savoir BT, MT, PERG, et NOUR, et le
deuxième volet concernant la consultation des résultats des périodes passées.
Rapport de stage Septembre 2005
22
Par exemple si l’utilisateur a choisi le premier volet et exactement l’élément
Portefeuille BT pour élaborer le tableau de bord de celui-ci la page suivante s’affiche :
Figure 8
Dans cette page, il y a les champs réservés aux fichiers qui doivent être parcourus pour
insérer les informations dans la base de données.
Rapport de stage Septembre 2005
23
Après que cette opération soit effectuée, le bouton « Générer » amène l’utilisateur à la
page du tableau de bord dans ce cas de la BT, et la première des choses vérifiées est que les
données que l’utilisateur veut insérer ne sont pas déjà insérées dans la base de données, si
c’était le cas un message signalant ceci apparaît, et bien sûr les information ne seront pas
insérées :
Figure 9
Rapport de stage Septembre 2005
24
Dans cette page, il y a quatre tableaux le premier concerne les clients trimestriels, le
deuxième pour le portefeuille BT du mois en cours, et le troisième représente une
comparaison entre Décembre dernier et le mois en cours, et enfin le dernier représente
l’évolution nette du portefeuille de l’année précédente et l’année en cours, comme le montre
la figure 10 :
Figure 10
Je signale que ce que je viens de décrire pour le tableau de bord BT reste valable
pour celui du MT, et du PERG.
Rapport de stage Septembre 2005
25
Seulement pour celui du NOUR qui nécessite un traitement différent, la forme est
aussi différente, mais la page concernant le parcours des fichiers est la même, et elle sous la
forme :
Figure 11
Ceci concernant le traitement d’élaboration du tableau du bord, pour la deuxième
partie de l’application, qui la consultation, l’utilisateur peut consulter et comparer les
différentes informations qui lui sont propres.
Rapport de stage Septembre 2005
26
Par exemple si l’utilisateur choisi l’élément « Ventes d’énergie » la page suivante
s’affiche :
Figure 12
Dans celle-ci, il trouvera les différents modes de consultation qu’il peut faire, après le
choix d’une parmi eux, il trouvera le tableau de bord du mois en cours avec une barre où il y a
tous les choix qu’il veut,c'est-à-dire consulter par commune ou par AC, ou AD :
Figure 13
Rapport de stage Septembre 2005
27
Figure 14
Et pour le menu période il trouvera les différentes périodes qu’il peut consulter a savoir le mois en cours, le mois précèdent, l’année en cours ou encore l’année précédente, comme le montre la figure 15 :
Figure 15
Rapport de stage Septembre 2005
28
Et il faut signaler que lorsque l’utilisateur est dans la partie concernant la MT,
donc le choix d’une période implique l’affichage des informations concernant celles de la
MT, par exemple s’il est dans la page MT/commune lorsqu’il clique sur une période, les
données s’affichent par commune de la période choisie…
Cette remarque s’applique aussi à la rubrique usage qui se trouve dans la BT et la
MT.
Je signale aussi que l’utilisateur ne peut pas accéder à une page en tapant son URL,
car dans chaque page il y a un code par lequel je vérifie est ce que l’utilisateur était identifié
ou non.
Remarque : pour savoir plus de détails sur le code des fonctions utilisées veuillez consulter le
support technique.
Rapport de stage Septembre 2005
29
Le monde de travail dans l’entreprise est différent de celui dans l’école. Puisque ce dernier est basé sur la théorie, et on ignore l’importance des informations qu’on acquit dans celle-ci. Par contre à l’entreprise cette théorie est pratiquée puis développée selon les besoins. Donc, pour bien gérer des notions en théorie il suffit de les pratiquer afin de pouvoir les comprendre.
A la fin du stage, j’ai réussi à accomplir le travail dont j’étais chargée de faire.
Ce stage m’a permis, sur le plan technique, de raffiner ma formation, puisque j’ai pu
connaître d’autres outils informatiques, découvrir les aspects organisationnels de l’entreprise
accueillante, et d’autre part sur le plan humain, de développer des nouveaux rapports avec
les membres du personnel, et pouvoir communiquer avec ces derniers qu’il que soit le poste
qu’ils occupent.
Rapport de stage Septembre 2005
30
Rapport de stage Septembre 2005
31
1. Code de la fonction vérifiant l’insertion de tous les paramètres du formulaire
Je signale que avant tout et au début de la première page je dois déclarer le début d’une
session en écrivant la ligne :
<? session_start();
?>
1.1 Le code du bouton « se connecter »
< input type="submit" name="Submit" value=" Se connecter "
OnClick="verify (login, psswd)" >
1.2 Le code de la fonction verify (login, psswd)
<SCRIPT LANGUAGE="JavaScript"><!--
Function verify (login, psswd)
{
if (login.value == "") //on vérifie si l’utilisateur a bien saisie son login
{
alert(" Veuillez s'identifier SVP et merci"); //le message qui s’affiche
return false;
}
if(psswd.value=="") //on vérifie si l’utilisateur a bien saisie son mot se passe
{
alert(" Veuillez saisir votre mot de passe");
return false;
}
return true; //si l’utilisateur a bien saisie tous ses paramètres
}
//--> </SCRIPT>
Rapport de stage Septembre 2005
32
2. verification de la validité du couple (login,paswd)
<? php
session_start();
if ( isset($_POST['login'])) //je vérifie si le login est envoyé
{$login = $_POST['login'];//je déclare des nouvelles variables où je stocke le login
// Et le mot de passe envoies par le formulaire
$psswd=$_POST ['psswd'];
$_SESSION['login'] = $login;// je déclare une session apportant le nom de la variable
// $login
session_register($_SESSION['login']);//on enregistre le nom de la session pour pouvoir
//l’utiliser par la suite
print('<p align="center" class="Style1">'.'Bonjour' . "$login".'</p>');}}
else{
echo '<p align="center" class="Style1">Désolé!'.' '.' '.'vous devez
s\'identifier </p>';
exit();}//si l’utilisateur a tapé seulement l’url de la page sans s’identifie sa
//demande est rejetée.
?>//je signale que ce code est inséré dans chaque page pour pouvoir garder la
//trace de l’objet session et verifier que l’utilisateur a été identifié.
<?
mysql_connect ('localhost','root','') or die("erreur de connexion au serveur");//connexion au
//serveur
mysql_select_db('tableau_de_bord') or die("erreur de connexion a la base de
données");//connexion à la base de données
$query="select Lib_AD,mot_de_passe from connexion where Lib_AD= '$login' and
mot_de_passe= '$psswd'"; // on cherche dans la table connexion s’il y a un utilisateur possédant
//le couple ($login, $psswd')
$res=mysql_query($query);
If (!mysql_fetch_row($res))//si le résultat est nul donc il y a une erreur dans les informations
//saisies
Rapport de stage Septembre 2005
33
{echo '<div align="center"><font color="#FF0000" size="+2" face="Times New Roman,
Times, serif">Erreur de connexion </font></div>';
echo'<div align="center"><font color="#FF0000" size="+1" face="Times New Roman, Times,
serif">Votre login et mot de passe ne sont pas valides</font></div>';
}
else{
echo'<div align="center"><font color="#FF0000" size="+2" face="Times New Roman, Times,
serif">Succès! </font></div>';}
?>
Rapport de stage Septembre 2005
34
3. Code du formulaire permettant de parcourir les fichiers a inséré dans la base de
données
<form method="POST" ACTION="tabbt.php" enctype="multipart/form-data">
<p align="center"> <span class="Style1">Fichier 1:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 2:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 3:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 4:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 5:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 6:</span>
<input type="file" name="fibt[]"></p>
<p align="center"> <span class="Style1">Fichier 7:</span>
<input type="file" name="fibt[]"></p>
<br />
<input type="submit" value=" Générer ">
</p>
</form>
Je tiens à signaler que les fichiers parcourus sont des fichiers dbase (.dbf) donc pour
pouvoir tirer les informations de ces fichiers et les traitées il faut des fonctions adaptées pour
ceci,puisque les fichiers dbase sont un type de fichiers de base de données.
Donc,dans la suite je vais expliciter le code utilisé pour tirer les informations des
fichiers de la BT.
<? session_start();
if(isset($_SESSION['login']))
{
$login=$_SESSION['login'];
Rapport de stage Septembre 2005
35
session_register($_SESSION['login']);
print('<p align="center" class="Style1">'.'Bonjour' .' '.' '. "$login".'</p>');
$filbt =$HTTP_POST_FILES ['fibt']; //on stocke dans la variable $filbt, qui est un tableau,
// les fichiers parcourus dans la page précédente
}
else{print('<div align="center"> <span class="unnamed1">Désolé!'.' '.' '.'vous
devez s\'identifier'.'</span> </div>');
exit();}
?>
<?
$cp=0;
$months=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","
Octobre","Novembre","Décembre");
$mois_courant = date("m");
$A_courante = date(" Y");
$mois_cr=$months[$mois_courant-2];
count($filbt);//on calcule le nombre des fichiers parcourus
mysql_connect('localhost','root','') or die("erreur de connexion au serveur");
mysql_select_db('tableau_de_bord') or die("erreur de connexion a la base de donnees");
if($login=="DR FES") //on teste si les informations que l’utilisateur veut insérer ne sont pas
//dans la base de données.
{$query4="SELECT * FROM `btvente`, `ac` ,`commune`,`ad`
where (btvente.Commune=commune.Commune)and (commune.Cd_AC=ac.Cd_AC) and
(ac.Cd_AD=ad.Cd_AD) and (btvente.mois=' $mois_cr') and (btvente.Annee= '$A_courante') ";}
else{$query4="SELECT * FROM `btvente`, `ac` ,`commune`,`ad`
where (btvente.Commune=commune.Commune)and (commune.Cd_AC=ac.Cd_AC) and
(ac.Cd_AD=ad.Cd_AD) and (ad.Lib_AD= '$login') and (btvente.mois='$mois_cr') and
(btvente.Annee='$A_courante') ";}
$result=mysql_query($query4);
if (!mysql_fetch_row($result)){//les informations ne sont pas dans la BD.
while($cp<=count($filbt))
{if($filbt['name'][$cp]!=""){
Rapport de stage Septembre 2005
36
$file[$cp]= 'C:\application\www\intranet'.'/'."bt[$cp]".'.'.'dbf';
copy($filbt['tmp_name'][$cp],$file[$cp]);//on copie les fichiers
$db[$cp] =dbase_open("bt[$cp].dbf", 0); //on ouvre la base de données pour la lire
if ($db[$cp]) {//on teste est ce que la BD est bien ouverte.
$record_numbers[$cp] = dbase_numrecords($db[$cp]);//on compte le nombre de champs dans la
//bases de données
for ($i = 1; $i <= $record_numbers[$cp]; $i++) {
$row = dbase_get_record_with_names($db[$cp], $i);//on stocke dans le tableau $row les
//champs
$a=trim($row['CD_ABONNE']);//on lit les champs dont on aura besoin dans la suite
$b=trim($row['COMMUNE']);
$c=trim($row['TARIF']);
$d=trim($row['NB_ABONNE']) ;
$e=trim($row['CONS_1TR']) ;
$f=trim($row['CONS_2TR']) ;
$g=trim($row['CONS_3TR']) ;
$h=trim($row['CONS_4TR']) ;
$ii=trim($row['MONT_1TR']) ;
$j=trim($row['MONT_2TR']) ;
$k=trim($row['MONT_3TR']) ;
$l=trim($row['MONT_4TR']) ;
$m=trim($row['MONT_MNA']) ;
$res1=$f+$e+$g+$h;
$res2=$ii+$j+$k+$l+$m;
if (($row['TARIF'] == 0)||($row['TARIF'] == 1)||($row['TARIF'] == 3)||($row['TARIF']
== 7)||($row['TARIF'] == 8)||($row['TARIF'] == 11)||($row['TARIF'] == 13)||($row['TARIF'] ==
15)||($row['TARIF'] == 18)||($row['TARIF'] == 19)||($row['TARIF'] == 21)||($row['TARIF'] ==
28)||($row['TARIF'] == 31)||($row['TARIF'] == 41)||($row['TARIF'] == 48)||($row['TARIF'] ==
90))
{
mysql_query("insert into analyse values('$mois_cr',
'$A_courante','$a','$b','$c','$d','$res1','$res2');");}
Rapport de stage Septembre 2005
37
}}
echo "<font color=red>FICHIERS COPIENT AVEC SUCCÈS !</font><br /><br />";
}
$cp++; }
}
else{
echo '<p> le fichier que vous voulez parcourir est déjà parcouru!</p>';}
//si les informations sont déjà dans la base de données on envoie un message signalant ceci.
?>
Rapport de stage Septembre 2005
38
Rapport de stage Septembre 2005
39
BT : la basse tension, les clients BT, sont ceux utilisant 110V-220V.
MT : la moyenne tension, les clients MT, sont ceux utilisant 3600V.
NOUR : est un nouveau type de paiement que l’ONE a conçu,et les clients NOUR ou
bien les clients Prépaiement,sont des clients possédant des cartes rechargeables qu’elles
doivent recharger pour pouvoir consommer l’électricité,ce type de clients est essentiellement
basé dans les milieux ruraux.
PERG : Programme d’Electrification Rurale Générale, le programme qu’a commencé
l’ONE au 1997 et qui a pour objectif faire bénéficier tout le milieu rural de l’électricité, et par
la suite les bénéficiers de ce programme sont appelés les clients PERG.
AC : Agence Commerciale, c’est la plus petite entité dans la hiérarchie de l’ONE.
AD : Agence de Distribution, qui chapeaute plusieurs AC.
Rapport de stage Septembre 2005
40
MOHAMED LAARIBI, Le contrôle de Gestion dans les entreprises Marocaines,
1997,327 p.
L’ONE (auteur) ,40 ans d’ONE l’énergie d’un pays en mouvement, 2003.
www.one.org.ma/presentation.
www.one.org.ma/noshommes.
www.developpez.com/php.
www.developez.com/serveurweb.
www.commentcamarche.net/javascript.
www.commentcamarch.net/php.