Poo Java Gestionstock
Poo Java Gestionstock
❖ FARHANE SALMA
❖ BENBRAHIM JIHAD
❖ DIARRA BOUBACAR
❖ GUEROUANE ACHRAF
❖ ELGHAZI ABDELLAH
Encadré par :
❖ PROF EZZATI ABDELLAH
SOMMAIRE
Première Partie : Introduction de système :
1.1) Définition de la Gestion.
1.2) Définition du Stock.
1.3) Besoin du marché.
1.4) Nom de L’application.
1.5) Langue de l’application.
1.6) L’objectif de la Gestion Informatisée du Stock.
1.7) Principe de l’application.
1.8 ) Outils utilisés.
Conclusion………………………………
1) INTRODUCTION DU SYSTÈME :
Pour bien comprendre l'introduction sur le système, on doit d'abord savoir les définitions
importantes qui sont :
La gestion est l'ensemble des actes tendant, dans le cadre d'une politique prévisionnelle
définie, à déclencher, suivre et contrôler le fonctionnement des éléments dont dispose
l'entreprise pour atteindre le but fixé.
Gérer, c'est donc mettre en œuvre tous les éléments à la disposition de l'entreprise en vue
de réaliser le (s) but (s) fixé (s).
Gérer, c'est aussi piloter un processus que prend un problème à l'état où le trouve le
gestionnaire, pour le conduire au seuil de la décision.
Gérer, c'est donc organiser un processus de prise de décisions et de telle façon que cette
décision soit prise en temps opportun, par les personnes les mieux placées et ayant autorité
pour la prendre, en intégrant toutes les données et paramètres nécessaires à la qualité de
cette décision.
La gestion implique des règles qui régissent le processus et n'anticipent pas la solution.
Gérer ne consiste pas à élaborer d'abord des règles capables de résoudre tous les cas
susceptibles de se présenter puis de les appliquer aux situations.
Gérer, c'est élaborer des règles à appliquer afin que, pour chaque cas, la meilleure solution
soit trouvée, retenue et appliquée.
Les stocks regroupent l'ensemble des achats non encore consommés ou vendus et qui sont
encore présents dans les entrepôts de l'entreprise.
-Types de stocks
De nos jours, chaque société de vente de produits a besoin d’un système permettant
de simplifier la gestion et l’archivage de ses Différentes opérations (Vente et achat) ainsi que
la gestion et le stockage de ses données (Produits, clients, fournisseurs…). De cela vient
l’idée de concevoir une application de Gestion de Stock « GeStock » permettant à ce genre
de sociétés
d’organiser et gérer ses données d’une manière fiable et efficace.
Puisqu’on est en train de concevoir une application de Gestion de stock, nous avons
décidé de nommé l’application par un simple mot bien signifiant la gestion de stock avec le
module qu'on fait:
« Poo_java_gestion_de_stock»
Pour un Premier temps on utilise le français comme langue standard en espérant qu’on
va ajouter plus tard la possibilité de choisir entre la langue arabe ,anglais et française au
démarrage de l’application.
L’idée de l’informatisation est venue pour remplacer les registres, comme moyen
d’économiser le temps ainsi d’assurer la bonne gestion.
Si l'on n'est pas capable de satisfaire un besoin à l'aide du stock correspondant, on parle de
rupture de stock. Tout l'art de cette gestion est d'avoir suffisamment de stock pour répondre
correctement aux besoins et pas trop pour ne pas avoir à supporter les différents coûts du
stock (coût d'acquisition, coût de stockage, coût de dévalorisation, ...).
Cette prise en charge informatisée permet un allégement considérable de la charge de
travail et une plus grande souplesse par rapport au traitement manuel de l'information.
Pour réaliser le projet de gestion du stock , il a une variété d'outils et de techniques sont
utilisés.
Ainsi que les exigences de l'utilisateur doivent être écrites dans un forme compréhensible.
L'utilisation de différentes représentations graphiques du système Processus a été mis en
œuvre
dans le développement d'un système permettant aux utilisateurs non techniques de
Comprendre
le processus de fonctionnement du système. Et à propos ça on a utilisé les outils suivant :
NetBeans est un projet open source ayant un succès et une base d'utilisateur très
large, une communauté en croissance constante, et près 100 partenaires mondiaux
et des centaines de milliers d'utilisateur à travers le monde. Sun Microsystems a
fondé le projet open source NetBeans en Juin 2000 et continue d'être le sponsor
principal du projet. Aujourd'hui, deux projets existent: L'EDI NetBeans et la
Plateforme NetBeans. L'EDI NetBeans est un environnement de développement - un
outil pour les programmeurs pour écrire, compiler, déboguer et déployer des
programmes. Il est écrit en Java - mais peut supporter n'importe quel langage de
programmation. Il y a également un grand nombre de modules pour étendre l'EDI
NetBeans. L'EDI NetBeans est un produit gratuit, sans aucune restriction quant à
son usage.
est une application Web de gestion pour les systèmes de gestion de base de
données MySQL et MariaDB, réalisée principalement en PHP et distribuée sous
licence GNU GPL.
Il s'agit de l'une des plus célèbres interfaces pour gérer une base de
données MySQL sur un serveur PHP. De nombreux hébergeurs, gratuits comme
payants, le proposent ce qui évite à l'utilisateur d'avoir à l'installer.
● Wamp server :
WampServer est une plate-forme de développement Web sous Windows pour des
applications Web dynamiques à l’aide du serveur Apache2, du langage de scripts
PHP et d’une base de données MySQL. Il possède également PHPMyAdmin pour
gérer plus facilement vos bases de données.
● mysql-connector-java-5.1.41-bin.jar :
2) ANALYSE ET CONCEPTION :
Pour repondre a cet objectif . on veut mettre en place un programme , qui est
comme outil de gestion de stocke . ainsi que cette outil doit integre les
fonctionnalites suivantes :
TABLE PRODUIT :
Id_produit code alpha2 alpha3 nom_en_gb nom_fr_fr
1 4 AF AFG Afghanistan Afghanistan
2 8 AL ALB Albania Albanie
3 10 AQ ATA Antarctica Antarctique
4 12 DZ DZA Algeria Algérie
5 16 AS ASM American Samoa Samoa Américaines
6 20 AD AND Andorra Andorre
7 24 AO AGO Angola Angola
8 28 AG ATG Antigua and Barbuda Antigua-et-Barbuda
9 31 AZ AZE Azerbaijan Azerbaïdjan
10 32 AR ARG Argentina Argentine
11 36 AU AUS Australia Australie
12 40 AT AUT Austria Autriche
13 44 BS BHS Bahamas Bahamas
14 48 BH BHR Bahrain Bahreïn
15 50 BD BGD Bangladesh Bangladesh
16 51 AM ARM Armenia Arménie
17 52 BB BRB Barbados Barbade
18 56 BE BEL Belgium Belgique
19 60 BM BMU Bermuda Bermudes
20 64 BT BTN Bhutan Bhoutan
21 68 BO BOL Bolivia Bolivie
Bosnia and
22 70 BA BIH Herzegovina Bosnie-Herzégovine
23 72 BW BWA Botswana Botswana
ÃŽle
24 74 BV BVT Bouvet Island Bouvet
25 76 BR BRA Brazil Brésil
26 84 BZ BLZ Belize Belize
TABLE UTILISATEUR :
Id_produit id_user username password type
2 25 user1 user1 Admin
3 23 user2 user2 Admin
4 22 admin admin Caissier
5 20 boua boua Admin
6 26 groupe21 groupe21 Admin
8 29 a a Caissier
11 200 z z Admin
12 75 lk lk Admin
TABLE VENTE:
a- Section 1:
b- Section 2 :
On peut consider cette tache comme une base du programme . et pour qu´on puise créer
une base lourde pour le programme on avait besoin d´ importer le driver de Mysql mysql-
connector-java-5.1.41-bin .jar qu on a telecharger sur le netbeans après on Commencer
par la partie d´écriture du code en java en utilisant Netbeans comme un éditeur . cette partie
est la partie du connection de base de donnee et java . alors a propos de ca on a decide de
créer une packege Base de donne , cette derniere comporte 3 classe
Pour pouvoir connecter votre application Java à une base de données MySQL, il vous
faudra télécharger l’extension “MySQL Connector .jar”
Une fois l’extension ajoutée, retournez sur le “Main” de votre projet.
Dans cette classe “Main”, vous devez ajouter ces importations ci-dessous.(il sont ajoute
dans la classe java.sql.ResultSet)
À ce stade, il existe comme un pont entre votre programme Java et votre BDD, mais le trafic
routier n'y est pas encore autorisé : il faut qu'une connexion soit effective afin que le
programme et la base de données puissent communiquer. Cela se réalise grâce à cette ligne
de code qui est réalisé par la classe Base_de_donnee_connexion
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;
A fin de realiser une interface utilisateur bien former et facile a utiliser , on a bien construit
un système bien équipée et bien simplifier . alors la premiere chose on a créer une package
qui s´appele poo_java_gestion_de_stock , qui contient 5 classes
1- class Login
3- class Principale
4- class Produit
5- class Reçu
6- class utilisateur
En tant qu’administrateur je dois pouvoir gérer les accès des différents utilisateurs de
l’application , et voila on a créer un programme qui permet de supprimer ou modifier et
ajouter un utilisateur . L’administrateur doit pouvoir affecter des rôles aux utilisateurs et il
doit pouvoir affecter des vues de l’application aux rôles utilisateurs prédéfinis
Un système est fiable s'il gère correctement les erreurs, telles que les erreurs de saisie,
erreurs de traitement, pannes matérielles ou erreurs humaines. Idéalement, toutes les
erreurs peuvent être empêché. Une approche plus réaliste de la construction d'un système
fiable consiste à planifier erreurs, les détecter le plus tôt possible, permettre leur correction
et prévenir les empêcher d'endommager le système.
Un système est maintenable s'il est bien conçu, flexible et développé avec l'avenir.
modifications à l'esprit. Peu importe à quel point un système est bien conçu et
mis en œuvre, à un moment donné, il devra être modifié. Des modifications seront
nécessaires pour corriger les problèmes, pour s'adapter à l'évolution des besoins des
utilisateurs, pour améliorer le système, ou pour profiter.
L'architecture à deux niveaux aura alors deux nœuds de traitement. Les calques font
référence à
un groupement logique de composants qui peuvent ou non être physiquement situés
sur un nœud de traitement.
Component Architecture
1.Presentation Layer
Cette couche est responsable de la présentation des données et des informations aux
utilisateurs dans le format auquel l'utilisateur peut s'identifier, c'est-à-dire dans un langage
de haut niveau. Il est également responsable pour collecter les événements, les réponses et
les données des différents utilisateurs. La présentation la couche répond à la demande de
l'utilisateur en recevant le résultat requis de l'application couche et présentant dans un
format prédéterminé. Cette couche sera développée par en utilisant JAVA.
Cette couche est chargée de communiquer avec la couche de présentation pour obtenir le
données ainsi que d'autres informations et avec une base de données pour le stockage et la
récupération de
les données. Il reçoit les informations de la couche de présentation, processus qui
informations demandées et si nécessaire, communique avec la base de données pour
traitement ultérieur. Le résultat reçu de la base de données est à nouveau présenté à
couche de présentation.
code_Produit
Fournisseur/Cashier
stock
Vendre
rangement
id
fournisseur
stock
Produits
code_produit
prix
acheter
Utilisateurs type
id
username passeword
.
Acheter un produits d’apres caissier.
Produits:
id Int(11)
Code_produit Varchar(20)
reference Varchar(50)
deseignation Varchar(52)
rangement Varchar(50)
fournisseur Varchar(56)
prix Int(11)
remise Int(11)
stock Int(11)
Utilisateur:
id Int(11)
Id_user Int(11)
username Varchar(50)
password Varchar(52)
type Varchar(50)
Vente:
id Int(11)
num_facture Int(11)
code_produit Int(11)
reference Varchar(52)
Prix_vente Int(11)
Pour établir la connexion avec notre base de données qui s’appelle «gs_pfe», nous avons
créé une Classe « database » dans laquelle nous avons défini des méthodes permettant la
connexion, l’exécution d’une requête et la fermeture de la connexion avec la base de
données
package Base_donnee;
import java.net.Socket;
import java.sql.*;
Connection connection;
Statement statement;
String SQL;
String url;
String username;
String password;
Socket client;
int Port;
String Host;
this.url = url;
this.username = username;
this.password = password;
this.Host = Host;
this.Port = Port;
}
try {
Class.forName("com.mysql.jdbc.Driver");
try {
connection.close();
} catch (SQLException e) {System.err.println(e);//
}
return connection;
}
// Fonction pour exécuter une requête SELECT sur toutes les colonnes
public ResultSet querySelectAll(String nomTable) {
// Connexion à la base de données
connexionDatabase();
// Fonction surchargée pour exécuter une requête SELECT sur toutes les
colonnes avec une clause WHERE
public ResultSet querySelectAll(String nomTable, String état) {
// Connexion à la base de données
connexionDatabase();
// Fonction pour exécuter une requête SELECT sur des colonnes spécifiques
public ResultSet querySelect(String[] nomColonne, String nomTable) {
// Connexion à la base de données
connexionDatabase();
connexionDatabase();
int i;
SQL = "SELECT ";
connexionDatabase();
int i;
SQL = "INSERT INTO " + nomTable + " VALUES(";
SQL += ")";
return this.exécutionUpdate(SQL);
}
//Fungsi eksekusi query insert
connexionDatabase();
int i;
SQL = "INSERT INTO " + nomTable + "(";
for (i = 0; i <= nomColonne.length - 1; i++) {
SQL += nomColonne[i];
if (i < nomColonne.length - 1) {
SQL += ",";
}
}
SQL += ") VALUES(";
for (i = 0; i <= contenuTableau.length - 1; i++) {
SQL += "'" + contenuTableau[i] + "'";
if (i < contenuTableau.length - 1) {
SQL += ",";
}
}
SQL += ")";
return this.exécutionUpdate(SQL);
connexionDatabase();
int i;
SQL = "UPDATE " + nomTable + " SET ";
connexionDatabase();
SQL = "DELETE FROM " + nomtable;
return this.exécutionUpdate(SQL);
connexionDatabase();
SQL = "DELETE FROM " + nomTable + " WHERE " + état;
return this.exécutionUpdate(SQL);
}
}
3.2.1 Capture d’ecran d’execution
a. Interface Authentification
b. Interface Accueil
Pour Ajouter un produit il suffit de appuie sur “Ajouter” et on peut aussi rechercher un
produit, le modifier ou bien le supprimer
d. Interface Gestion Caissiers
Ici l’utilisateur peut faire une commandes et apres generer une facture.