JUST THE FOCUS FOR YOU
EPIGRAPHE
Que ce livre de la loi ne s'éloigne point de ta
bouche ; médite-le jour et nuit, pour agir fidèlement selon
tout ce qui y est écrit ; car c'est alors que tu auras du
succès dans tes entreprises, c'est alors que tu réussiras.
Ne t'ai-je pas donné cet ordre : Fortifie toi et
prend courage ? Ne t'effraie point et ne t'éprouvante point, car
l'Eternel, ton Dieu, est avec toi dans tout ce que tu entreprendras.
JOSUE 1 : 8-9
DEDICACE
A toi mon Seigneur Dieu tout puissant qui m'a soutenu, conduit
durant tout ces moments ;
A mes parents : Dominique MINDONGO, Elie KANIKI et
Alphonsine MANKOLO pour leur soutient qu'ils m'ont accordé tout au long
de mes études.
A toi ma mère Véronique KANIKI, sans qui, mes
études académiques n'auraient pas eu un commencement ;
A vous les autorités de l'asbl HOREB ;
A mon grand frère Jean Marie ALLILO et son
épouse MELAINE pour leur assistance morale et financière durant
cette période académique ;
A mon Pasteur Richard DIYOKA ;
A ma grande soeur Mimi Bola ainsi que son époux
MBIKAYI KAMUNGA Barly pour leur conseils et soutien;
A mes tantes maternelles et paternelles : Sylvie OLEME,
Jean Paul NIVULIJE, Christine KANIKI, Suzie KANIKI ;
A ma soeur Betty MINDONGO et son époux Kaskito
KANKU;
A mes frères: Gay-lor MINDONGO, Bienvenu
MINDONGO ;
A mes soeurs : Laurianne MINDONGO, Ursule MINDONGO et
Raïssa NGANGWE ;
A mon cousin Giscard LUNGUSA ;
A mes nièces et neveux : Noëlla KUKU,
Eminence KABUENA et Ephraïm
A tous ceux qui me sont chers ;
Je dédie ce travail fruit d'un grand courage et d'une
longue persévérance.
REX MINDONGO KANIKI the king
AVANT PROPOS
Le mérite de l'informatique de gestion est celui
d'analyser et de concevoir une base de données. Cette option que nous
avons choisis de faire à l'Ecole Supérieur de Formation des
Cadres (E.S.FOR.CA.), nous a, au terme du premier cycle d'étude en
Informatique de gestion, permis de réalisé ce travail.
Nous tenons à remercier le Professeur TSHISUNGU MVITA
qui a tenu à assurer la direction de ce travail malgré ses
multiples occupations académiques tant scientifiques. Ses conseils, sa
disponibilité et toutes corrections apporté(e)s dans
l'élaboration de ce travail, qu'il trouve ici l'expression de notre
profonde gratitude.
Nous remercions également Monsieur NKUMBI MWAMBA Chef
des Travaux à l'Université de Kinshasa, le co-directeur de ce
travail, pour son apport, l'orientation et son rôle dans ce travail. Ses
encouragements et ses critiques nous ont été utile. Qu'il trouve
ici nos remerciements.
Nos remerciements s'adressent aussi à Monsieur Francis
NGATABA pour toutes ses contributions et assistance à la
rédaction de ce travail.
Que toutes les autorités académiques,
administratives et tous les professeurs qui ont contribués à
notre formation supérieure soient récompensé(e)s.
Que tous ceux qui de près ou de loin ont
contribué à ce présent travail, trouvent leurs
remerciements.
I. INTRODUCTION GENERALE
1.1. GENERALITES
Le monde a connu une grande révolution scientifique
dans tous les domaines grâce à l'apport de l'informatique.
L'informatique, science et technique de traitement automatique
et rationnel des informations, fourni actuellement, plus que jamais auparavant,
des privilèges que tous le monde voudra bénéficier.
Mentionnons : la fiabilité des résultats, la rapidité
dans le traitement, la petite de l'espace de conservation, la
sécurité des informations, la facilité de duplication.
Il est logique que la gestion de stock de « l'eau
pure Horeb » de l'ASBL HOREB soit automatisée.
A l'heure de la mondialisation de l'économie, où
l'environnement fortement concurrentiel des entreprises n'autorise aucune
erreur de gestion, la plupart des entreprises des pays en voie de
développement tant du secteur public que privé font
malheureusement face à des difficultés énormes de
gestion.
Comme entre autres difficultés, la gestion des
approvisionnements et des stocks constitue de plus en plus une
préoccupation des dirigeants d'entreprises
Aussi, les entreprises sont- elles astreintes à
l'élaboration des stratégies leurs permettant d'atteindre leurs
objectifs à travers une distribution régulière et
croissante de leurs produits.
En amont de toute distribution de produits finis, il est sans
nul doute que l'approvisionnement et le stockage des intrants et produits finis
constituent une action d'importance capitale. Aussi capitale en ce sens qu'elle
se justifie par les soucis légitime de pérenniser le cycle
d'exploitation.
En effet, les stocks constituent des valeurs d'exploitation
à gérer. Toutefois, leurs existences engendrent des coûts.
Lorsque des stocks sont moins importants, l'entreprise est menacée de
rupture de stock qui désorganise le processus de fabrication. Cette
rupture crée des coûts supplémentaires et surtout entache
l'image de marque de l'entreprise. A contrario, lorsque les stocks sont trop
importants, ils constituent des immobilisations qui gonflent le prix de revient
et perturbent l'équilibre de la trésorerie.
Aussi, il urge pour toute entreprise d'instituer
impérativement une gestion saine des stocks dont elle a la possession.
Toute optimisation de la gestion s'accompagne inévitablement de la
recherche de la minimisation des coûts des produits laquelle
dépend d'une bonne politique d'approvisionnement et d'une gestion
rationnelle et adéquat des stocks. L'importance de la gestion des stocks
n'est donc plus démontrée de nos jours.
Mais elle reste un concept vaste et complexe, encore mal
perçu par certains chefs d'entreprises. Il apparaît donc
nécessaire aux décideurs d'entreprise qui ont la charge de la
gestion des stocks de se mettre au travail pour accorder à cette
discipline toute son importance.
Et c'est en considération de l'importance de cette
discipline qu'est la gestion des stocks que nous avons décidé
d'étudier cette notion à travers l'étude de cas d'une
entreprise grâce à notre sujet de recherche :
"utilisation du modèle aléatoire de stocks par la méthode
agrégative dans la base de données relationnelle de l'eau pure
HOREB : cas de l'ASBL HOREB."
1.2. Présentation du
sujet
Le Sujet que nous développons dans notre travail c'est
« utilisation du modèle aléatoire de stock
par la méthode agrégative dans la base de données
relationnelle de l'eau pure HOREB»
1.3. Choix et
intérêt du sujet
Nous avons choisi l'utilisation du modèle
aléatoire a cause de :
- la mise en place d'un logiciel qui prendra la place du
système manuel prédominant ;
- Mettre en pratique les notions du modèle
aléatoire de stock ;
1.4. BUT DU TRAVAIL
Le but est de répondre à la question
posée à la problématique et c'est d'une façon
informatique.
1.5. OBJET DU TRAVAIL
L'objectif du problème est d'amener les utilisateurs
à la maîtrise de la situation de la gestion de stock du
modèle aléatoire de l'eau pure HOREB
1.6. LA PROBLEMATIQUE DES
STOCKS
La problématique est l'ensemble de questions
précises et concises que l'on se pose au sujet de l'objet de la
recherche1(*).
Ainsi nous nous sommes posé les questions
suivantes :
Pour notre travail le problème qui s'installe est celui
de savoir
- Quel modèle de gestion utilisé pour avoir des
solutions efficaces ?
- La passation de la commande est elle
régulière ?
- Quand commander?
- Combien commander?
1.7. Hypothèse
L'hypothèse est une idée conductrice,
directrice, provisoire, une tentative d'explication des faits formulés
au début d'une recherche et destinée à guider
l'investigation pour être enfin infirmée ou
confirmée2(*)
Dans le souci profond d'améliorer la gestion de stock
de l'eau pure HOREB de l'ASBL HOREB pour avoir des résultats fiables,
nous préconisons la mise en place d'un système informatisé
pour la gestion de stock
1.8. Délimitations
du sujet
Nous limitons notre travail aux seules ASBL de la
République Démocratique du Congo, et plus particulièrement
à L'ASBL Horeb durant la période allant de Juin
à Aout 2010
1.9. Méthodes et
techniques utilisées
1.9.1. Méthodes
utilisées.
v Méthode analytique : nous a
aidé à analyser en détail le système et les
réalités de l'ASBL HOREB;
v Méthode historique : nous a
permis de comprendre le début et la continuité de l'ASBL
HOREB;
v Méthode structuro
fonctionnelle : elle nous a permis de comprendre la structure de
l'ASBL HOREB.
1.9.2. Techniques
utilisées
v Technique d'observation : elle nous a
permis d'observer et de comprendre le déroulement et le mécanisme
du service concerné3(*)
v Technique documentaire : nous a
aidés à consulter les documents, ouvrages, articles et notes des
cours ayant trait à notre travail.
1.10. Subdivision du
travail.
Hormis l'introduction et la conclusion, ce travail comprend
quatre chapitres dont le premier parle de l'Etude d'opportunité, le
second, l'analyse fonctionnelle, le troisième, de l'analyse organique et
le quatrième la programmation.
Chapitre I : ETUDE
D'OPPORTUNITE
I.1. Définition et
but4(*)
L'étude d'opportunité ou analyse
préalable est une étape recouvrant l'analyse du diagnostique de
l'entreprise, elle a comme but de poser correctement le problème
à résoudre, de le définir, de le formaliser sous forme
accessible.
I.2. CONNAISSANCE DU
SYSTEME D'INFORMATION EXISTANT
I.2.1. HISTORIQUE DE L'ASBL
HOREB
L'ASBL HOREB trouve son origine vers les années 2000.
En effet, la production a commencée vers le début de
l'année 2001 précisément dans la commune de NDJILI
quartier 8 dans la maison d'un frère. Vers la fin de l'année
2001, elle a été transférée au niveau de
l'église SHEKINAH ; en début de l'année 2002, l'usine
a changée de nouveau son adresse pour s'installer dans la commune de
LEMBA sur l'avenue APAPE jusqu'à l'an 2006. Et cette même
année(2006), vers sa fin, elle été de nouveau
retournée à l'église SHEKINAH jusqu'au début de
l'année 2007.
La première production vers l'an 2000 a
été faite dans le bidon de 5 litre et le sachet de 500 ml qui
ont étaient vendues uniquement aux membres de l'église. La
production était faible a cause de marketing adressé uniquement
aux membres de l'église. Vers l'an 2002, on a dû entendre la vente
à travers les quartiers les plus proches de l'église (SHEKINAH)
par manque des moyens de livraison pour les zones éloignées.
En 2004, l'achat d'un véhicule pour atteindre les zones
les plus éloignées comme la demande devienne de plus en plus
grande, la production moyenne qui été au début de 500
m3 par jour à augmenter jusqu'à atteindre 3 m3
par jour et au début de l'année 2007
jusqu'à nos jours, étant donné que toutes les conditions
réunies l'ASBL HOREB peut facilement atteindre 5 m3 par
jour.
I.2.2. SITUATION
GEOGRAPHIQUE
L'ASBL HOREB se situe depuis l'an 2007, jusqu'à nos
jours sur le Boulevard Lumumba au n° 172 bis dans la commune de MATETE
Q/Débonhom, ville de KINSHASA en RDC.
I.2.3. STATUT JURIDIQUE
L' HOREB est une Association Sans But Lucratif
dénommée FONDATION SHEKINAH dont l'Arrêté
Ministériel N° 269/CAB/MIN/AFFA.SO/96 du 25/11/1996.
I.2.4. OBJECTIFS POURSUIVIS
Du point de vue de son statut en vigueur, L'ASBL HOREB vise
actuellement comme objectif ; La production de l'eau pure.
I.2.5. ORGANIGRAMME GENERAL
FONDATEUR
GESTIONNAIRE
PRODUCTION
CAISSE
RECEPTION
LIVRAISON
FACTURATION
SECRETARIAT
RECOUVREMENT
Source : secrétariat
général
I.2.6. ORGANIGRAMME DU SERVICE
CONCERNE.
GESTIONNAIRE
CAISSE
RECEPTION
LIVRAISON
FACTURATION
I.2.7. DESCRIPTION DES
POSTES
I.2.7.1. GESTIONNAIRE
Est un service qui s'occupe de la gestion de l'eau pure et
de l'approvisionnement. S'occupe du service comptable de l'ASBL HOREB
gère les achats et vente de l'eau en question contrôle la
concordance entre les factures, les registres et s'occupe aussi de l'inventaire
du et du journal de caisse.
I.2.7.2. RECEPTION
Est un service qui sert à recevoir les clients et
informe si oui ou non il y a des produits et en cas de la présence des
produits il établit le bon de commande.
I.2.7.3. FACTURATION
Est un service où l'on établit les factures
après chaque opération. Ce service joue un rôle important
du point de vue de la sécurité et de la transparence
financière de l'ASBL.
I.2.7.4. CAISSE
Après avoir parcouru tous les étapes qui
convergent à l'achat des l'eau pure, il faut passer le paiement. Pour y
éclaircir, la caisse est un service ou s'effectuent les versements et
les montants il joue un rôle très important car il faut passer
à la caisse pour payer le montant formulé de la facture. En
outre, la caisse permet une excellence protection et gérance des
fonds.
I.2.7.5. LA LIVRAISON
Est un service qui assure la vérification des produits
venant de la production et la remise des produits vendus aux clients.
I.2.7. ETUDE DU RESEAU
D'INFORMATION
I.2.7. 1. NARRATION DE LA
CIRCULATION DE L'INFORMATION
L'ASBL HOREB dispose d'un service de la
réception pour recevoir les clients qui viennent pour acheter de l'eau,
il possède par donner aux clients les renseignements nécessaires
pour l'achat et pour remettre aux clients en cas d'achat un retrait du bon de
livraison.
Le réceptionnaire vérifie la
disponibilité des produits demandés par le client dans le
registre des produits. Si les produits sont disponibles, il établit le
bon de commande qu'il remet au client et le conduit à la facturation.
Le client se présente à la facturation muni de
son bon de commande qu'il va présenter au service de la facturation
puis le service de la facturation en son tour reçoit le bon de commande
et établit la facture en deux exemplaire qu'il présente une au
client et l'autre est à archivée.
Le client reçoit la facture et se présente
à la caisse pour le paiement. Le caissier retire l'argent du client et
la facturation puis il établit le reçu en deux exemplaires pour
preuve de paiement. A près avoir établit le reçu, le
caissier élie ce dernier au service de la livraison pour la
disponibilité des produits achetés.
Le service de livraison après la réception des
produits et le reçu établit un bon de livraison pour servir le
client les produits achetés au même moment il livre les produits
au client avec le reçu et le bon de livraison qu'il a établis.
I.2.7. 2. LISTE DE POSTE DE
TRAVAIL
CODE
|
DESIGNATION
|
P1
P2
P3
P4
P6
|
CLIENT
RECEPTION
FACTURE
CAISSE
LIVRAISON
|
I.2.7. 4. ETUDE DES
DOCUMENTS
I.2.7. 4.1. LISTE DES
DOCUMENTS
CODE
|
DESIGNATION
|
D1
D2
D3
D4
D5
|
BON DE COMMANDE
REGISTRE DES PRODUITS
FACTURE PRO FORMAT
RECU
BON DE LIVRAISON
|
I.2.7. 5. LISTE DES
DOCUMENTS EXISTANTS
I.2.7. 5.1. INVENTAIRE DES
DOCUMENTS
Codedoc
|
DESIGNATION
|
BUT DE DOCUMENT
|
Emetteur
|
Destinataire
|
Transit
|
NB COPIE
|
D1
|
Bon de Commande
|
Déterminé la commande des produits par le l'ASBL
HOREB
|
P2
|
P3
|
P1
|
1
|
D2
|
Registre des produits
|
Déterminer les produits entrés en stock
|
P2
|
P5
|
|
1
|
D3
|
Facture pro format
|
Se renseigner sur les produits
|
P3
|
P1, P4
|
P1
|
1
|
D4
|
Reçus
|
Preuve de reconnaissance d'avoir reçue la somme
d'argent
|
P4
|
P5
|
P1
|
|
D5
|
Bon de livraison
|
Déterminer les produits et quantités
livrées
|
P5
|
P5
|
|
|
FICHE D'ETUDE DETAILLE (BON DE COMMANDE)
1. CODE DOCUMENT : D1
2. DESIGNATION : BON DE
COMMANDE
3. EMMETEUR : P2
4. DESTINATION : P3
5. TRANSITION : P1
6. NOMBRE D'EXEMPLAIRE : 1
CODE
|
DESIGNATION
|
NATURE
|
TAILLE
|
NUMBON
|
NUMERO BON COMMANDE
|
AN
|
5
|
NUMFOUR
|
NUMERODU FOURNISSEUR
|
AN
|
5
|
NOMFOUR
|
NOM FOURNISSEUR
|
AN
|
25
|
ADRFOU
|
ADRESSE FOURNISSEUR
|
AN
|
20
|
DESIPROD
|
DESIGNATION PRODUIT
|
AN
|
25
|
QTECOM
|
QUANTITE COMMANDEE
|
AN
|
5
|
PU
|
PRIX UNITAIRE
|
AN
|
7
|
DATCOM
|
DATE COMMANDE
|
AN
|
10
|
FICHE D'ETUDE DETAILLE (REGISTRE DES
PRODUIT)
1. CODE DOCUMENT : D2
2. DESIGNATION : REGISTRE DES
PRODUITS
3. EMMETEUR : P2
4. DESTINATION : P5
5. TRANSITION : -
6. NOMBRE D'EXEMPLAIRE : 1
CODE
|
DESIGNATION
|
NATURE
|
TAILLE
|
NUMPROD
|
NUMERO PRODUIT
|
AN
|
5
|
DESIPROD
|
DESIGNATION PRODUIT
|
AN
|
25
|
QTELIV
|
QUANTITE LIVREE
|
N
|
7
|
DATLIV
|
DATE LIVRAISON
|
AN
|
10
|
FICHE D'ETUDE DETAILLE (FACTURE PRO
FORMAT)
1. CODE DOCUMENT : D3
2. DESIGNATION : FACTURE PRO
FORMAT
3. EMMETEUR : P3
4. DESTINATION : P1, P4
5. TRANSITION : P1
6. NOMBRE D'EXEMPLAIRE : 1
CODE
|
DESIGNATION
|
NATURE
|
TAILLE
|
NUMPROD
|
NUMERO PRODUIT
|
AN
|
5
|
DESIPROD
|
DESIGNATION PRODUIT
|
AN
|
25
|
PU
|
PRIX UNITAIRE
|
AN
|
7
|
DATETAB
|
DATE D'ETABLISSEMENT
|
AN
|
10
|
MODPAY
|
MODALITE DE PAYEMENT
|
AN
|
25
|
MODLIV
|
MODALITE DE LIVRAISON
|
AN
|
25
|
FICHE D'ETUDE DETAILLE (RECU)
1. CODE DOCUMENT : D1
2. DESIGNATION : RECU
3. EMMETEUR : P4
4. DESTINATION : P5
5. TRANSITION : P1
6. NOMBRE D'EXEMPLAIRE : 1
CODE
|
DESIGNATION
|
NATURE
|
TAILLE
|
NUMPROD
|
NUMERO PRODUIT
|
AN
|
5
|
DESIPROD
|
DESIGNATION PRODUIT
|
AN
|
25
|
DATE
|
DATE ETABLISSEMENT
|
AN
|
10
|
MONTPAY
|
MONTANT PAYE
|
AN
|
7
|
PU
|
PRIX UNITAIRE
|
AN
|
10
|
PT
|
PRIX TOTAL
|
AN
|
10
|
FICHE D'ETUDE DETAILLE (BON DE LIVRAISON)
1. CODE DOCUMENT : D5
2. DESIGNATION : REGISTRE DES
PRODUITS
3. EMMETEUR : P5
4. DESTINATION : P5
5. TRANSITION : -
6. NOMBRE D'EXEMPLAIRE : 1
CODE
|
DESIGNATION
|
NATURE
|
TAILLE
|
NUMPROD
|
NUMERO PRODUIT
|
AN
|
5
|
DESIPROD
|
DESIGNATION PRODUIT
|
AN
|
25
|
DATEFAB
|
DATE DE FABRUCATION
|
AN
|
10
|
QTENT
|
QUANTITE ENTREE
|
N
|
4
|
I.2.7. 6. FICHE DE
FONCTION5(*)
La fiche de fonction est une fiche qui prépare la
description de la circulation de l'information, elle décrit les
documents qui interviennent d'un poste à l'autre accompagné du
traitement à passer.
POSTE 1 : CLIENT
Document entrant
Cod doc
|
Désignation
|
Provenance
|
D1
D5
D4
D3
|
BON DE COMMANDE
BON DE LIVRAISON
RECU
FACTURE PRO FORMAT
|
P2
P5
P4
P3
|
Document sortant
Cod doc
|
Désignation
|
Destination
|
D1
D3
|
BON DE COMMANDE
FACTURE PRO FORMAT
|
P3
P4
|
Traitement : réception, transmission
POSTE 2 : RECEPTION
Document entrant
Cod doc
|
Désignation
|
Provenance
|
|
-
|
-
|
Document sortant
Cod doc
|
Désignation
|
Destination
|
D1
|
BON DE COMMANDE
|
P1
|
Traitement : réception, transmission et
établissement
POSTE 3 : FACTURATION
Document entrant
Cod doc
|
Désignation
|
Provenance
|
D1
|
BON DE COMMANDE
|
P1
|
Document sortant
Cod doc
|
Désignation
|
Destination
|
D1
D3
|
BON DE COMMANDE
FACTURE PRO FORMAT
|
P1
P4, P1
|
Traitement : réception et établissement
POSTE 4 : CAISSE
Document entrant
Cod doc
|
Désignation
|
Provenance
|
D3
|
FACTURE PRO FORMAT
|
P3
|
Document sortant
Cod doc
|
Désignation
|
Destination
|
D4
|
RECU
|
P5
|
Traitement : réception et établissement
POSTE 5 : LIVRAISON
Document entrant
Cod doc
|
Désignation
|
Provenance
|
D4
|
RECU
|
P5
|
Document sortant
Cod doc
|
Désignation
|
Destination
|
D4
D5
|
RECU
BON DE LIVRAISON
|
P5
P1
|
Traitement : réception et livraison produits
I.2.7. 7. DIAGRAMME DE
CIRCULATION DES INFORMATIONS
Le diagramme de circulation des informations est la
représentation logique, chronologique de la circulation et le traitement
d'information.
o SYMBOLES UTILISES
P2,P3, P4, P5 P1
D1
D3
D4
D5
P1, T1
D1
D3
P1 P3, P4
I.2.7. 8.PRESENTATION DU
DIAGRAMME
POSTE 1
- P2
P2, T2
D1
P2 P3
POSTE 2
P2 P3
D1
P3, T3
D3
P2 P3
POSTE 3
P3 P4
D3
P4, T4
D4
P2 P3
POSTE 4
P4 P5
D4
P5, T5
D4
P5 P6
POSTE 5
P5 P6
D4
P6,T6
D4
D5
D4
P5 P6
POSTE 6
I.2.7. 6. ETUDE DES MOYENS
DE TRAITEMENT DE L'INFORMATION
I.2.7. 6. 1. MOYEN
HUMAIN
L'ensemble du personnel d'un service concerné constitue
les moyens humains que l'information soit traitée.
Grade
|
Nombre des personnes
|
Niveau d'étude
|
Chef de production
Superviseur
Livreur
Caissier
Gestionnaire
Caissier
Chauffeur
|
1
1
1
1
1
1
1
|
Ingénieur technicien
D6
D6
-
-
-
D6
|
I.2.7. 6. 2. MOYENS
MATERIELS
N°
|
DESIGNATION
|
Marque
|
Nbre d'exemplaire
|
etat
|
1
2
3
4
|
TABLE
CHAISE
ETAGERE VITRE
VEHICULE
|
BOIS
BOIS
BOIS
NISSAN/LT VW
|
4
10
1
2
|
BON
BON
ASSEZ BON
BON
|
I.3. ANALYSE CRITIQUE
Cette analyse consiste à étudier un diagnostic
sur l'existant en repérant les insuffisances du système et en
mettant en évidence ses qualités qui sont maintenues dans le
nouveau système.
I.3.1. ASPECTS POSITIFS DE
L'EXIXTANT
L'ASBL HOREB malgré le non informatisation de ses
documents, elle arrive à bien concevoir ces documents, car cela
s'effectue en les classant dans des classeurs, les armoires. Et elle arrive
aussi à satisfaire ses clients en mettant à leurs dispositions de
l'eau bien traitée et de bonne qualité sur tous dans des bons
prix.
I.3.2. ASPECTS NEGATIFS DE
L'EXIXTANT
Nul ne se suffit dit-on, malgré les capacités
soulignées, le constat est que, quelques anomalies qui constituent les
crevasses dans ce système manuel de gestion. Parmi lesquelles nous
citons :
· Du point de vue de la gestion de stock, l'ASBL HOREB ne
tient pas compte des modèles mathématiques ;
· La réception n'est pas bien installée car
elle ne tient pas compte de recevoir beaucoup des clients au même moment,
ce qui veut dire qu'il y a insuffisance des places dans la
réception ;
· Il n'y a pas du tout une bonne sécurité
au niveau de la livraison et la réception ;
· Le support papier qui ne résiste pas aux
intempéries et à la falsification ;
· Mauvaise répartition des tâches des
agents, un agent qui peut exercer une ou plusieurs tâches à la
fois ce qui ne permet pas l'ordre qui devrait être exercé dans la
gestion de stock pour éviter des lourdeurs lors du rapport
journalier ;
· L'espace occupée par l'ASBL HOREB ne permet pas
son éclatement suite à la petitesse dans l'exercice de leurs
fonctions ;
· Manque d'un bon endroit adéquat pour la bonne
conservation des dossiers ;
· Manque des chaises pouvant installer en un coup les
clients ;
· Insuffisance du marketing.
I.3.3. PROPOSITIONS DES
SOLUTIONS
Dans le but d'améliorer la solution, nous allons
proposer ici deux solutions l'une qui est manuelle et l'autre Informatique.
A. SOLUTIONS MANUELLES
Pour ce qui est d'une bonne gestion de L'eau pure, l'ASBL
HOREB doit faire :
· Appel à une formation au gestionnaire pour
adapter un model de gestion qui est aléatoire pour mieux gérer
· Augmentation de la capacité d'accueillir les
clients, engager un ou plus des agents au niveau du service de la
sécurité ;
· Remplacer le livreur (homme) en lieu et place d'une
machine beaucoup plus performante.
v AVANTAGES
ü Une bonne protection des dossiers ;
ü Sérosité, rapidité et
efficacité dans le travail ;
ü Diminution de l'utilisation des machines à
calculer de grande capacité aux opérations ;
ü Moins de temps de recherche
v INCONVIENIENTS
ü Un cout de gestion augmenté ;
ü Insécurité des informations suite au
support d'information qui est le papier.
B. SOLUTIONS INFORMATIQUE
Cette solution consiste à mettre l'ordinateur au centre
de tout traitement des informations au niveau de la gestion de stock pour
éviter les erreurs qui interviennent avec le gestionnaire manuel. Et
l'ordinateur comme étant un outil de base pour remplacer l'homme dans
la résolution des nombreux problèmes dans l'ASBL HOREB.
v AVANTAGES
ü La sécurité des informations des plus en
plus rénové avec usage de mot de passe qui interdira aux
étrangers d'accéder facilement aux informations du
système ;
ü Informations stockées sur le support
magnétique, amovible ou non amovible de grande capacité ;
ü Accès direct et rapide aux informations
recherchées ;
ü Efficacité dans les résultats obtenus et
avec précision.
v INCONVENIENTS
ü Comme le travail s'effectuera au niveau de la
mémoire volatile (RAM), ceci entraîne une perte des informations
non enregistrées aux préalables ;
ü Le coût d'amortissement de l'ordinateur plus
élevé ;
ü Cout de l'achat, implémentation et maintenance
du matériel informatique sont des charges considérables pour
l'ASBL HOREB.
Mais face à cette condition, cette dernière ne
peut que les supporter pour que sa gestion de stock soit efficace.
I.3.4. CHOIX DE LA SOLUTION
Attendant l'impact de l'outil ordinateur dans la gestion de
stock, nous optons pour la solution informatique qui sécurise et rend
fiable les informations dans le service concerné et réduit les
divers accrocs que l'homme rencontre dans ces hétéroclites
opérations concrétisées au sein de l'ASBL HOREB.
Chapitre II : ANALYSE
FONCTIONNELLE
II.1. GENERALITES SUR LES
MODELES DE GESTIONS DES STOCKS
A. GESTION DES STOCKS
Un stock peut se définir comme une réserve
constituée en vue de satisfaire un besoin ultérieur. Un stock se
présente physiquement comme un ensemble d'objets en attente
d'utilisation, à un moment donné, dans un endroit
déterminé. C'est ainsi que, dans une entreprise, on trouvera des
stocks à différents stades du processus de production : des
stocks des matières premières, de composants de produit en cours
de fabrication, de produits finis,6(*) ...
Le rôle de stock étant d'assurer le non
coïncidence entre l'approvisionnement et la demande. En effet, il n'est
généralement pas possible de se faire livrer
instantanément, à des coûts acceptables, là et quant
la demande se manifeste.
Les entreprises constituent des stocks pour :
o des raisons techniques, lorsque les flux de
production et d'utilisation présentent des profits
différents ;
o des raisons économiques, lorsque les
coûts fixes ou des rendements croissants apparaissent dans le processus
de production et d'approvisionnement ;
o des raisons financières si l'entreprise
intervient sur des marchés amont ou aval aux cours fluctuants ;
o des raisons de sécurité, chaque fois
que l'incertitude caractérise la demande et les conditions
d'approvisionnement.
Gérer un stock, c'est définir des règles
de réapprovisionnement telles qu'on ne manque pas trop souvent de
marchandises en stock et que le coût de gestion soit minimal7(*).
En outre, Parmi les décisions de gestion industrielle,
l'une des plus importantes consiste à définir des programmes de
production et de stockage, permettant de satisfaire la demande au moindre
coût. Il s'agit dans tous les cas, de rechercher un compromis entre deux
exigences contradictoires :
· éviter les risques de rupture de stock qui se
traduisent soit par des ventes manquées (produits finis), soit par des
perturbations dans le cycle de production (matières
premières).
· limiter le montant des stocks, dans la mesure où
leur financement peut grever de façon importante le prix de revient des
produits
Nous partirons d'une manière à mettre en place
un système qui contient des processus internes représentés
par l'équation.
Si l'on arrive à cerner les coûts correspondant
à ces deux contraintes, on peut, par des modèles, essayer de
dégager des solutions optimales.
Pour y parvenir, le Stock à la fin de la
journée est obtenu de la manière suivante :
Stock initial - quantité sortie + la quantité
entrée.
Dans ce problème, les rôles importants sont les
paramètres suivants :
ü Quantité initiale
ü Quantité entrée initiale
ü Quantité sortie initiale
ü Quantité final
Pour que l'entreprise arrive à se garder de
l'équilibre entre les différents paramètres de
l'équation soulignée ci-haut pour sa bonne gestion de stock il
faut savoir :
Ø Comment s'approvisionner ;
Ø Comment conditionner les stocks ;
Ø Comment procéder à la livraison des
produits.
Pour ce, nous tenons à signaler que parler de
l'utilisation du modèle aléatoire de stock ne rien d'autre que le
respect de celui-ci, perpétuellement capable aux demandes des clients
en évitant la rupture de stock.
B. LE MODELE DE GESTION DE
STOCK8(*)
Partant de ce point, la gestion de stock possède deux
modèles qui sont :
· Les modèles déterministes
· Les modèles aléatoires
Pour y éclaircir, dans les modèles
déterministes on connaît bien avant les actions et
réactions de l'univers de façon certaine tandis que les
modèles aléatoires, le gestionnaire ne connaît pas
exactement les flux de sortie qu'il devra alimenter dans le future.
C. DEFINITIONS ET PRINCIPES DU
MODELE CHOISI
Les grandeurs aléatoires qu'on rencontre dans
l'étude des faits de stock sont essentiellement la demande et le
délai de réapprovisionnement ; Il arrive souvent que la
demande, si elle est faible, suive une loi de Poisson et si, elle est forte,
une loi normale. Mais elle peut aussi être d'un autre type
(eulérienne, binomiale négative, etc.). La loi du délai de
livraison s'apparente quelques fois à une loi de Poisson, souvent
à une loi binomiale.
La demande n'étant jamais connue avec certitude dans la
réalité, il faut, dans la gestion des stocks, prendre en compte
l'aléatoire. On le fait d'habitude au moyen d'un « stock de
sécurité ».
Il existe de nombreux modèles de gestion de stocks en
avenir aléatoire notamment,
· Selon les hypothèses de départ,
v Gestion à période fixe ou variable ;
v Demande discrète ou continue ;
v Délai de réapprovisionnement certain ou
continu ;
v Coûts de stockage et de pénurie proportionnels
ou non au temps.
· Selon les objectifs recherchés,
v maximisation de l'espérance du résultat (ou
minimisation de l'espérance du coût) ;
v Obtention d'un certain « taux de
service » défini comme le rapport entre la demande satisfaite
et la demande totale. Ne pouvant pas évaluer avec certitude le
coût d'une rupture de stock, un fixera pour ce taux de service une valeur
minimale qui devra être atteinte au moindre coût.
II.2. MODELE DE GESTION A
PERIODE FIXE ET COUTS NON PROPORTIONNELS AU TEMPS : ARBITRAGE ENTRE COUT
DES INVENDUS ET DES RUPTURES DE STOCK
Nous supposons un réapprovisionnement à
intervalles fixes. Le niveau Q du stock en début de période est
choisi comme variable de décision.
Les notations utilisées sont :
Q : le stock en début de
période (valeur à déterminer)
X : la demande de la
période :
f(x) : la probabilité de l'événement
{X = x} (fonction de probabilité de la demande) ;
f(x)dx : P{x < X < x+dx} ;
Cs : le coût de stockage sur le
stock en fin de période;
Cp : le coût de pénurie sur
le manquant en fin de période (occasionné par une rupture de
stock) ;
L'objectif est de maximiser l'espérance
mathématique du résultat (c'est-à-dire de la marge sur
coût variable). Deux cas doivent être distingués pour
calculer cette marge :
Sur les X articles vendus, la marge sur coût variable
est Cp.X
Sur les (Q-X) invendus, la perte est Cs(Q-X)
CpX-Cs(Q-X) = (Cp+Cs)X-CsQ
Q Q
X
X
X<Q Stock fin période Temps manquant
fin période X> Q
On vend Q unités dont la marge est égale
à CP.Q. A partir de là, nous pouvons donner deux méthodes
de résolution.
Considérons le tableau suivant : le coût
unitaire de détention d'un bidon de 5 litre de l'eau pure HOREB est de
200 Fc par jour et le coût de rupture est l'unité et revendu
à 600 Fc.
Cp=400 Fc
Cs =200 Fc
DEMANDE
|
280
|
380
|
480
|
580
|
680
|
780
|
PROBABILITE
|
0,1
|
0,2
|
0,3
|
0,2
|
0,1
|
0,1
|
Première Méthode :
Nous allons définir une matrice carrée R dont la
ligne i correspond à une valeur xi du
stock initial et dont la colonne j correspond à une
valeur xj du stock initial de la demande.
Le terme R(i,j) est la marge obtenue pour une valeur
xi du stock initial et une valeur xj de la
demande.
Q X
|
280
|
380
|
480
|
580
|
680
|
780
|
280
|
112000
|
112000
|
112000
|
112000
|
112000
|
112000
|
380
|
92000
|
152000
|
152000
|
152000
|
152000
|
152000
|
480
|
72000
|
132000
|
192000
|
192000
|
192000
|
192000
|
580
|
52000
|
112000
|
172000
|
232000
|
232000
|
232000
|
680
|
32000
|
92000
|
152000
|
212000
|
272000
|
272000
|
780
|
12000
|
72000
|
132000
|
192000
|
252000
|
312000
|
Considérons ceci :
Sur la diagonale et en dessous, nous avons X<= Q qui
veut dire :
R(i,j)= (Cp+Cs)X-CsQ
Pour Notre cas, la solution se réalise comme suite:
600X-200Q
Nous allons calculer les différentes valeurs en
constatant la progression arithmétique en ligne ou en colonne.
Au-dessus de la diagonale, X> Q R(i,j) =400Q.
Ce résultat étant indépendant de X, le
montant sur chaque ligne est constant.
Soit K le vecteur colonne dont le terme de la ligne j
est égal à K(xj). (Probabilité
que la demande prenne la valeur xj).
Le produit R.K=B est un vecteur colonne dont
le terme de la j-ième ligne est l'espérance
mathématique de la marge, correspondant à la valeur xj
du stock initial,
R
K
B
L'espérance mathématique Maximale est donc
172000 et correspond à la valeur xj =
580 pour le stock initial.
Cette méthode de résolution est toujours
possible, que les coûts envisagés soient proportionnel ou non au
temps, lorsque la demande est discrète.
Nous savons aussi bien qu'elle conduit à des calculs
longs dès que le nombre de valeurs possibles de la demande est
élevé. Deuxième
Méthode :
Soit R(Q) l'espérance mathématique du
résultat pour un stock initial Q.
R(Q)= R(Q)=
Nous admettrons sans le démontrer que R(Q) est une
fonction croissante, puis décroissante de Q.
A cette effet, l'optimum sera atteint lorsque :
R (Q+1)-R(Q) devient négatif.
R (Q+1)-R(Q) = (Cp+Cs)(Q+1)P(Q+1) - (Cp+Cs) QP(Q+1) - (Cp+Cs)
F(Q+1)+Cp
= (Cp+Cs)(Q+1)P(Q+1) - (Cp+Cs) F(Q+1)+Cp
Puisque
F (Q+1) = F(Q) + p (Q+1)
R (Q+1) - R(Q) = Cp- (Cp+Cs) F (Q).
Donc la valeur optimal est la plus petite valeur de Q telle
que :
Cp- (Cp+Cs) F (Q) < 0 donc telle que
F(Q)>
Le coût de stockage par article et par mois
s'élève à 200 Fc, le manque à gagner est
estimé à 400 Fc par produit non disponible.
Pour résoudre ce problème, il faut envisager
pour touts les cas possibles le coût de gestion du constitué
par :
Le coût de stockage K2 qui dépend de la
valeur de X :
Si X <= Q : K2 = (Q - ) Cs
Si X > Q : K2 = ( ) Cs
Le coût de pénurie K3 = (X
-Q)Cp
X
Prob
Q
|
280
0,1
|
380
0,2
|
480
0,3
|
580
0,2
|
680
0,1
|
780
0,1
|
COUT DE GESTION
|
280
|
K2=28000
|
K2=20631,6
K3=40000
|
K2=16333,33
K3=80000
|
K2=13517,24
K3=12000
|
K2=11529,41
K3 =16000
|
K2=10051,3
K3=20000
|
89087,83
|
380
|
K2=48000
|
K2=38000
|
K2=30083,33
K3=40000
|
K2=24896,6
K3=80000
|
K2=21235,3
K3=120000
|
K2=18512,82
K3=160000
|
86379,13
|
480
|
K2=68000
|
K2=58000
|
K2=48000
|
K2=39724,14
K3=40000
|
K2=33882,35
K3= 80000
|
K2=29538,5
K3=120000
|
75086,91
|
580
|
K2=88000
|
K2=78000
|
K2=68000
|
K2=58000
|
K2=49470,6
K3=40000
|
K2=43128,20
K3=80000
|
77659,88
|
680
|
K2=108000
|
K2=98000
|
K2=88000
|
K2=78000
|
K2=68000
|
K2=59282,05
K3=40000
|
89128,21
|
780
|
K2=128000
|
K2=118000
|
108000
|
98000
|
88000
|
78000
|
105000
|
Le choix sera un niveau de stock de début de
période 480 car le coût de gestion moyen est
minimum.
- La consommation mensuelle de l'eau pure HOREB est de 2304
- La consommation journalière est de 96
bidons/année de 300 Jours
- Le délai de réapprovisionnement est de 5
jours
- Le point de commande est de 480 bidons
- La quantité économique à
commandée est de 768 bidons soit 3 commande par mois
- Soit une consommation tous les 5 jours
- Le coût unitaire de détention est de 200
Fc/bidon et par mois
- Le coût de rupture est de 400 Fc /bidon
Pour dégager le niveau de consommation et de rupture
de stock nous allons nous référer au tableau ci-dessous pour
faire sortir le niveau de possibilité de stock en fonction du niveau
possible de consommation.
Niveau de consommation pendant le délai
d'approvisionnement
|
niveau de possibilité de stock en fonction du niveau
possible de consommation
|
BIDONS (demande)
|
PROBABILITE
|
BIDONS (manquants)
|
280
|
0,1
|
0
|
380
|
0,2
|
0
|
480
|
0,3
|
0
|
580
|
0,2
|
100
|
680
|
0,1
|
200
|
780
|
0,1
|
300
|
Nous avons trouvés les résultats de la
troisième colonne avec la formule suivante :
· Considérons tout d'abord notre point de commande
qui est de 480 bidons ce qui est en d'autres termes notre stock de
sécurité. si les nombres des bidons utilisés sont
inférieurs ou égale au stock de sécurité, le
niveau de possibilité de stock en fonction du niveau possible de
consommation est égal à zéro car il n'y a pas des pertes.
Mais si les nombres des bidons utilisés sont supérieurs au stock
de sécurité, nous allons prendre les nombres des bidons du niveau
de consommation pendant le délai d'approvisionnement en faisant une
soustraction avec le stock de sécurité.
Après avoir ressortis tout ces problèmes, nous
allons maintenant passer au tableau qui va nous permettre de trouver
l'espérance Mathématique de coût de rupture.
Niveau de stock de sécurité
|
Niveau de consommation
|
Nombre des bidons manquants
|
Coût unitaire de rupture
|
Probabilité
|
Nombre des commandes
|
Expérience Mathématique de coût
total de rupture
|
0
|
280
380
480
580
680
780
|
0
0
0
100
200
300
|
400
|
0,1
0,2
0,3
0,2
0,1
0,1
|
3
|
0
0
0
24000
24000
36000
|
100
|
280
380
480
580
680
780
|
0
0
0
0
100
200
|
0,1
0,2
0,3
0,2
0,1
0,1
|
0
0
0
0
12000
24000
|
200
|
280
380
480
580
680
780
|
0
0
0
0
0
100
|
0,1
0,2
0,3
0,2
0,1
0,1
|
0
0
0
0
0
12000
|
300
|
280
380
480
580
680
780
|
0
0
0
0
0
0
|
0,1
0,2
0,3
0,2
0,1
0,1
|
0
0
0
0
0
0
|
ESPERIENCE MATHEMATIQUE DE COUT DE
RUPTURE
L'expérience Mathématique est trouvée
à l'aide de la formule ci-après :
(Nombres des bidons manquants) x
(Coût unitaire de rupture) x
(Probabilité) x (Nombre des
commandes)
Exemple : considérons notre niveau de stock de
sécurité 0
.
Nous avons au niveau de consommation (les quantités)
suivantes : 280, 380, 480, 580, 680 et 780. Pour se faire, nous allons
prendre dans ce niveau en premier lieu la quantité 280,
ce la va nous produire ;
0 x 400 x 0,1
x 3 =0
0 x 400 x 0,2
x 3 =0
0 x 400 x 0,3
x 3 =0
100 x 400 x 0,2
x 3 =24000
200 x 400 x 0,1
x 3 =24000
300 x 400 x 0,1
x 3 =36000
En ce qui suit, nous présentons le niveau du stock de
sécurité en fonction de la variabilité de la consommation
de la demande.
NIVEAU OPTIMAL DU STOCK DE SECURITE EN FONCTION DE LA
VARIABILITE DE LA CONSOMMATION DE LA DEMANDE
Niveau de stock de sécurité
|
Coût de détention
|
Espérance Mathématique
|
Fonction du coût global
|
0
100
200
300
|
0
20.000
40.000
60.000
|
84000
36000
12.000
0
|
84.000
56.000
52.000
60.000
|
Dans ce tableau, le Coût de détention
est trouvé d'après la multiplication du Niveau
de stock de sécurité avec les Nombre des
commandes, et l'espérance
Mathématique trouvé en fonction de la du niveau de stock de sécurité du
tableau expliqué ci-dessus et en fin Fonction du coût
global est juste l'addition du cout de détention
avec l'espérance Mathématique (du
deuxième tableau).
Pour clore, nous témoignons que le niveau de stock de
sécurité de 200 est celui que nous maintenons
car sa fonction du coût global est minimum.
Quant à la formule de la valeur optimal :
F(Q)>
Nous obtenons : = 0,667
251668992
using System;
using System.Data;
using System.Data.Odbc;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace MINDONGO_FACTURATION_DEVIS
{
public class Compte_Utilisateur :
System.Windows.Forms.Form
{
private System.Windows.Forms.Button conexion;
private System.Windows.Forms.Label login;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox mot_de_passe;
private System.Windows.Forms.TextBox compte;
/// <summary>
/// Required designer variable.
/// </summary>
///
private System.ComponentModel.IContainer components =
null;
public Compte_Utilisateur()
{
//
// Requis pour la prise en charge du Concepteur
Windows Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur
après l'appel à InitializeComponent
//
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed
resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void conexion_Click(object
sender,System.EventArgs e)
{
cnx();
}
void cnx()
{
if
(this.MdiParent.Menu.MenuItems[0].MenuItems[0].Text =="SeConnecter")
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
try
{
cnx.Open();
}
catch
{
MessageBox.Show("Erreure de la
Connexion");
}
finally
{
OdbcCommand commd;
commd = new OdbcCommand("select * from utilisateur where login=?
and mot_de_passe=?", cnx);
commd.Parameters.Add("login",
compte.Text);
commd.Parameters.Add("mot_de_passe",
mot_de_passe.Text);
commd.Connection = cnx;
OdbcDataReader dtr;
try
{
dtr = commd.ExecuteReader();
if (dtr.Read())
{
if (dtr.GetString(2) == "a")
{
this.MdiParent.Menu.MenuItems[1].Visible = true;
this.MdiParent.Menu.MenuItems[2].Visible = true;
this.MdiParent.Menu.MenuItems[3].Visible = true;
this.MdiParent.Menu.MenuItems[4].Visible = true;
this.MdiParent.Menu.MenuItems[5].Visible = true;
}
else
{
this.MdiParent.Menu.MenuItems[3].Visible = true;
this.MdiParent.Menu.MenuItems[4].Visible = true;
}
this.MdiParent.Menu.MenuItems[0].MenuItems[0].Text = "Deconnecter";
this.MdiParent.Text = this.MdiParent.Text + "
*********** La personne connectée est: " + dtr.GetString(5) + " " +
dtr.GetString(3) + " " + dtr.GetString(4) + " ***********";
this.Close();
}
else
MessageBox.Show(this, "Login ou Mot de passe invalide", "",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception KINGREX)
{
MessageBox.Show(this, "Login ou Mot de
passe invalide", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
compte.Text = KINGREX.ToString();
}
}
}
}
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.Odbc;
namespace MINDONGO_FACTURATION_DEVIS
{
/// <summary>
/// Required designer variable.
/// </summary>
public class UTILISATEUR : System.Windows.Forms.Form
{
private System.Windows.Forms.GroupBox groupBoxloginut;
private System.Windows.Forms.Button bt_valider;
private System.Windows.Forms.Button bt_annuler;
private System.Windows.Forms.TextBox logine;
private System.Windows.Forms.TextBox pass;
private System.Windows.Forms.Label Login;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ListBox typeUser;
private System.Windows.Forms.GroupBox tt;
private System.Windows.Forms.RadioButton feminin;
private System.Windows.Forms.RadioButton Masculin;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txt_prenom;
private System.Windows.Forms.TextBox txt_nom;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label1;
private System.ComponentModel.IContainer components =
null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed
resources should be disposed; otherwise, false.</param>
public UTILISATEUR()
{
//
// Requis pour la prise en charge du Concepteur Windows
Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur après l'appel
à InitializeComponent
//
}
protected override void Dispose(bool
disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
private void bt_valider_Click(object sender,
System.EventArgs e)
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
int KING;
try
{
cnx.Open();
}
catch
{
MessageBox.Show("Erreure de la Connexion");
}
finally
{
OdbcCommand comdKING;
comdKING=new OdbcCommand("select * from utilisateur where
login=?",cnx);
comdKING.Parameters.Add("login",logine.Text);
comdKING.Connection=cnx;
OdbcDataReader dtr;
try
{
dtr=comdKING.ExecuteReader();
if (dtr.Read())
{
MessageBox.Show(this, "Login Existant", "",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (logine.Text != "" && pass.Text != "" &&
typeUser.SelectedItem.ToString() != "" && txt_prenom.Text != ""
&& txt_nom.Text != "" && (Masculin.Checked == true ||
feminin.Checked == true))
{
dtr.Close();
OdbcCommand cmdRex = new OdbcCommand("insert into utilisateur
values(?,?,?,?,?,?)", cnx);
cmdRex.Parameters.Add("login",
logine.Text);
cmdRex.Parameters.Add("mot_de_passe",
pass.Text);
if (typeUser.SelectedItem.ToString()
== "")
cmdRex.Parameters.Add("type",
"u");
if (typeUser.SelectedItem.ToString()
== "Administrateur")
cmdRex.Parameters.Add("type",
"a");
if (typeUser.SelectedItem.ToString()
== "utilisateur")
cmdRex.Parameters.Add("type",
"u");
cmdRex.Parameters.Add("prenom",
txt_prenom.Text.ToLower());
cmdRex.Parameters.Add("nom",
txt_nom.Text.ToUpper());
if (Masculin.Checked == true)
cmdRex.Parameters.Add("sexe",
"Monsieur");
if (feminin.Checked == true)
cmdRex.Parameters.Add("sexe",
"Madame/Mademoiselle");
KING = cmdRex.ExecuteNonQuery();
MessageBox.Show(this, "Utilisateur ajouté", "",
MessageBoxButtons.OK, MessageBoxIcon.Information);
logine.Text = "";
pass.Text = "";
}
else
MessageBox.Show(this, "Veuiller
remplir tous les champs", "", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
catch
{
MessageBox.Show(this,"Erreure du
System","",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
cnx.Close();
}
private void bt_annuler_Click(object sender,
System.EventArgs e)
{
this.Close();
}
}
}
using System;
using System.Data;
using System.Data.Odbc;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace MINDONGO_FACTURATION_DEVIS
{
public class GERER_LE_CLIENT : System.Windows.Forms.Form
{
private System.Data.Odbc.OdbcConnection KING_CLI;
private System.Windows.Forms.ImageList REX_IMAGE;
private System.Windows.Forms.ToolBar tlb_KING;
private System.Windows.Forms.ToolBarButton
Enregistrer;
private System.Windows.Forms.ToolBarButton IMPRIMER;
private System.Windows.Forms.ToolBarButton SEPARA1;
private System.Windows.Forms.ToolBarButton ACTUALISER;
private System.Windows.Forms.ToolBarButton VALIDER;
private System.Windows.Forms.ToolBarButton SUPPRIMER;
private System.Windows.Forms.ToolBarButton SEPDEUX;
private System.Windows.Forms.ToolBarButton PREMIER;
private System.Windows.Forms.ToolBarButton PRECEDENT;
private System.Windows.Forms.ToolBarButton SUIVANTS;
private System.Windows.Forms.ToolBarButton DERNIER;
private System.Windows.Forms.ToolBarButton SEPTROIS;
private System.Windows.Forms.ToolBarButton RETOUR;
private System.Windows.Forms.Label label20;
private System.Windows.Forms.Button bt_quitt;
private System.Windows.Forms.Button bt_ajout;
private System.Windows.Forms.TextBox prenom;
private System.Windows.Forms.TextBox nom;
private System.Windows.Forms.TextBox code_client;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Label label18;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.TextBox fax;
private System.Windows.Forms.TextBox e_mail;
private System.Windows.Forms.TextBox compte_bancaire;
private System.Windows.Forms.TextBox banque;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox societe;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.DateTimePicker
date_naissance;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox lieu_naissance;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox adresse;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox tel;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label23;
private System.Windows.Forms.Label label24;
public GERER_LE_CLIENT()
{
//
// Requis pour la prise en charge du Concepteur Windows
Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur après l'appel
à InitializeComponent
//
}
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components =
null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed
resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
void Initia()
{
/******************************************************************************************/
//Génération automatique du nouvel code
utilisateur
/******************************************************************************************/
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
System.Data.Odbc.OdbcCommand cmd = new
System.Data.Odbc.OdbcCommand("select max(code_client) from client",cnx);
cmd.Connection = cnx;
cnx.Open();
OdbcDataReader dtr = cmd.ExecuteReader();
dtr.Read();
code_client.Text =""+(dtr.GetInt32(0)+1);
dtr.Close();
cnx.Close();
}
void save()
{
/******************************************************************************************/
//new customer
/******************************************************************************************/
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
try
{
cnx.Open();
}
catch
{
MessageBox.Show("Echec de la Connexion");
}
finally
{
int SHEKINAH;
System.Data.Odbc.OdbcCommand commd = new
System.Data.Odbc.OdbcCommand("insert into
client(code_client,nom,prenom,societe,date_naissance,lieu_naissance,adresse,tel,fax,e_mail,compte_bancaire,banque)
values(?,?,?,?,?,?,?,?,?,?,?,?)", cnx);
commd.Parameters.Add("code_client",
Convert.ToDecimal(code_client.Text));
commd.Parameters.Add("nom",
nom.Text.ToUpper());
commd.Parameters.Add("prenom",
prenom.Text.ToUpper());
if (societe.Text != "")
commd.Parameters.Add("societe",
societe.Text);
else
commd.Parameters.Add("societe",
"anonyme");
commd.Parameters.Add("date_naissance",
@Convert.ToDateTime(date_naissance.Text));
commd.Parameters.Add("lieu_naissance",
lieu_naissance.Text);
if (adresse.Text != "")
commd.Parameters.Add("adresse",
adresse.Text);
else
commd.Parameters.Add("adresse",
"anonyme");
if (tel.Text != "")
commd.Parameters.Add("tel",
@Convert.ToDecimal(tel.Text));
else
commd.Parameters.Add("tel",
@Convert.ToDecimal("00000000"));
if (fax.Text != "")
commd.Parameters.Add("fax",
@Convert.ToDecimal(fax.Text));
else
commd.Parameters.Add("fax",
@Convert.ToDecimal("00000000"));
if (e_mail.Text != "")
commd.Parameters.Add("e_mail",
e_mail.Text);
else
commd.Parameters.Add("e_mail", "anonyme");
commd.Parameters.Add("compte_bancaire",
compte_bancaire.Text);
commd.Parameters.Add("banque", banque.Text);
try
{
if (nom.Text != "" && prenom.Text !=
"" && date_naissance.Text != "" && lieu_naissance.Text != ""
&& tel.Text != "" && banque.Text != "" &&
compte_bancaire.Text != "")
{
SHEKINAH = commd.ExecuteNonQuery();
commd.Parameters.Clear();
MessageBox.Show(this, "Le Client a été
Ajouté", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
//MAB
Initia();
code_client.Text = "";
nom.Text = "";
prenom.Text = "";
societe.Text = "";
date_naissance.Text = "";
lieu_naissance.Text = "";
adresse.Text = "";
tel.Text = "";
fax.Text = "";
e_mail.Text = "";
compte_bancaire.Text = "";
banque.Text ="";
}
else
MessageBox.Show(this, "Vous devez remplir
au moins les champs Obligatoire * ", "", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch
{
MessageBox.Show(this, "Client déja
existant", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
void
numéric(System.Windows.Forms.KeyPressEventArgs e)
{
//Verification de champ numérique
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
private void tlb_KING_ButtonClick(object sender,
ToolBarButtonClickEventArgs e)
{
switch (tlb_KING.Buttons.IndexOf(e.Button))
{
case 0:
save();
Initia();
break;
case 12:
this.Close();
break;
}
}
private void GERER_LE_CLIENT_Load(object sender,
EventArgs e)
{
Initia();
}
private void bt_ajout_Click(object sender, EventArgs
e)
{
save();
Initia();
}
private void bt_quitt_Click(object sender, EventArgs
e)
{
this.Close();
}
private void tel_KeyPress(object sender,
KeyPressEventArgs e)
{
numéric(e);
}
private void fax_KeyPress(object sender,
KeyPressEventArgs e)
{
numéric(e);
}
private void compte_bancaire_KeyPress(object sender,
KeyPressEventArgs e)
{
numéric(e);
}
}
//************************************************************
using System;
using System.Data;
using System.Data.Odbc;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace MINDONGO_FACTURATION_DEVIS
{
public class UPDATE_ART : System.Windows.Forms.Form
{
private System.Windows.Forms.ToolBarButton sep2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.Button rechrch;
private System.Windows.Forms.TextBox rech_num_article;
private System.Windows.Forms.DataGrid dKING_article;
private System.Windows.Forms.ToolBarButton tBB_delete;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ToolBarButton
tBB_valider;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.ToolBarButton
tBB_refresh;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.ToolBarButton tBB_print;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.ToolBarButton sep1;
private System.Windows.Forms.TextBox qte_en_stock;
private System.Windows.Forms.ToolBarButton tBB_first;
private System.Windows.Forms.Label lblenre;
private System.Drawing.Printing.PrintDocument pdfirst;
private System.Windows.Forms.ToolBarButton
tBB_previous;
private System.Windows.Forms.ToolBarButton tBB_next;
private System.Windows.Forms.ToolBarButton tBB_last;
private System.Windows.Forms.ToolBarButton sep3;
private System.Windows.Forms.ToolBarButton tBB_quit;
private System.Windows.Forms.Button cmdsvt;
private System.Windows.Forms.Button cmdprecdent;
private System.Windows.Forms.Button cmdDernier;
private System.Windows.Forms.Button cmd1er;
private System.Windows.Forms.ToolBarButton tBB_save;
private System.Windows.Forms.TextBox type_article;
private System.Windows.Forms.TextBox designation;
private System.Windows.Forms.TextBox tva_article;
private System.Windows.Forms.TextBox num_article;
private System.Windows.Forms.TextBox fiche_tech;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.TextBox prix_unitaire;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.PrintDialog pdlone;
private System.Windows.Forms.ImageList REX_IMAGE;
private System.Windows.Forms.ToolBar tlb_KING;
private System.Windows.Forms.ToolBarButton
Enregistrer;
private System.Windows.Forms.ToolBarButton IMPRIMER;
private System.Windows.Forms.ToolBarButton SEPARA1;
private System.Windows.Forms.ToolBarButton ACTUALISER;
private System.Windows.Forms.ToolBarButton VALIDER;
private System.Windows.Forms.ToolBarButton SUPPRIMER;
private System.Windows.Forms.ToolBarButton SEPDEUX;
private System.Windows.Forms.ToolBarButton PREMIER;
private System.Windows.Forms.ToolBarButton PRECEDENT;
private System.Windows.Forms.ToolBarButton SUIVANTS;
private System.Windows.Forms.ToolBarButton DERNIER;
private System.Windows.Forms.ToolBarButton SEPTROIS;
private System.Windows.Forms.ToolBarButton RETOUR;
//**les variables suivant, ns les ajoutons ns
même (manuellement)
int MINDONGOrowCount = 0;
int KINGindex=1;
int REXselec;
OdbcDataReader dtr;
public UPDATE_ART()
{
//
// Requis pour la prise en charge du Concepteur Windows
Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur après l'appel
à InitializeComponent
//
}
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components =
null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed
resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not
modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
void suiv_ant()
{
if (KINGindex != MINDONGOrowCount)
{
KINGindex++;
lblenre.Text = "" + KINGindex + " / " +
MINDONGOrowCount;
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
cnx.Open();
OdbcCommand cmdm = new OdbcCommand("select *from
article");
cmdm.Connection = cnx;
dtr = cmdm.ExecuteReader();
for (int i = 0; i < KINGindex ; i++)
dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text =
dtr.GetInt32(3).ToString();
prix_unitaire.Text =
dtr.GetInt32(4).ToString();
tva_article.Text =
dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
cnx.Close();
}
if (KINGindex ==MINDONGOrowCount)
{
cmdsvt.Enabled = false;
SUIVANTS.Enabled = false;
}
cmdprecdent.Enabled = true;
PRECEDENT.Enabled = true;
dKING_article.UnSelect(REXselec);
dKING_article.Select(KINGindex - 1);
REXselec = KINGindex - 1;
}
void der_nier()
{
KINGindex = MINDONGOrowCount;
lblenre.Text = "" + KINGindex + " / " +
MINDONGOrowCount;
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
cnx.Open();
OdbcDataReader dtr;
OdbcCommand cmdb = new OdbcCommand("select *from
article");
cmdb.Connection = cnx;
dtr = cmdb.ExecuteReader();
for (int i = 0; i < KINGindex; i++) dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text = dtr.GetInt32(3).ToString();
prix_unitaire.Text = dtr.GetInt32(4).ToString();
tva_article.Text = dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
cmdsvt.Enabled = false;
SUIVANTS.Enabled = false;
cmdprecdent.Enabled = true;
PRECEDENT.Enabled = true;
dKING_article.UnSelect(REXselec);
dKING_article.Select(KINGindex - 1);
REXselec = KINGindex - 1;
cnx.Close();
}
void premier()
{
KINGindex = 1;
lblenre.Text = "" + KINGindex + " / "
+MINDONGOrowCount ;
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
cnx.Open();
OdbcDataReader dtr;
OdbcCommand cmdq = new OdbcCommand("select *from
article");
cmdq.Connection = cnx;
dtr = cmdq.ExecuteReader();
dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text = dtr.GetInt32(3).ToString();
prix_unitaire.Text = dtr.GetInt32(4).ToString();
tva_article.Text = dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
cmdprecdent.Enabled = false;
PRECEDENT.Enabled = false;
cmdsvt.Enabled = true;
SUIVANTS.Enabled = true;
dKING_article.UnSelect(REXselec);
dKING_article.Select(KINGindex - 1);
REXselec = KINGindex - 1;
cnx.Close();
}
void initialiser()
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
OdbcDataAdapter adptr = new OdbcDataAdapter("select
num_article,designation,qte_en_stock,prix_unitaire,prix_unitaire*qte_en_stock
as VALEUR from article", cnx);
DataSet dts = new DataSet();
try
{
adptr.Fill(dts, "article");
MINDONGOrowCount =
dts.Tables["article"].Rows.Count;
lblenre.Text = "" + KINGindex + " / " +
MINDONGOrowCount;
cnx.Open();
OdbcCommand cmde = new OdbcCommand("select *from
article");
dKING_article.SetDataBinding(dts, "article");
shw_ART(cnx,cmde);
cnx.Close();
dKING_article.Select(0);
REXselec = 0;
}
catch (Exception KING)
{
designation.Text = KING.ToString();
cmdprecdent.Enabled = false;
PRECEDENT.Enabled = true;
cmdsvt.Enabled = true;
SUIVANTS.Enabled = true;
}
}
void Prece_dent()
{
if (KINGindex != 1)
{
KINGindex--;
lblenre.Text = "" + KINGindex + " / " +
MINDONGOrowCount;
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
cnx.Open();
OdbcCommand cmdx = new OdbcCommand("select *from
article");
cmdx.Connection = cnx;
dtr = cmdx.ExecuteReader();
for (int i = 0; i < KINGindex; i++)
dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text =
dtr.GetInt32(3).ToString();
prix_unitaire.Text =
dtr.GetInt32(4).ToString();
tva_article.Text =
dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
cnx.Close();
}
if (KINGindex == 1)
{
cmdprecdent.Enabled = false;
PRECEDENT.Enabled = false;
}
cmdsvt.Enabled = true;
SUIVANTS.Enabled = true;
dKING_article.UnSelect(REXselec);
dKING_article.Select(KINGindex-1);
REXselec = KINGindex - 1;
}
void supprm()
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
try
{
cnx.Open();
}
catch
{
MessageBox.Show("erreur de la connection");
}
finally
{
OdbcCommand commde=new OdbcCommand("delete from article where
num_article="+@Convert.ToDecimal(num_article.Text),cnx);
try
{
int rex =
commde.ExecuteNonQuery();
MessageBox.Show(this, "un Article est
Supprimé", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
KINGindex--;
MINDONGOrowCount--;
Prece_dent();
}
catch (Exception DKING)
{
designation.Text =
DKING.ToString();
MessageBox.Show(this, "cet article
n'est pas supprimé", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
String sql2 = "select
num_article,designation,qte_en_stock from article";
ACTUALISER_dKING_article(sql2);
cnx.Close();
}
}
void Updateart()
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
try
{
cnx.Open();
}
catch
{
MessageBox.Show("erreur de la connection");
}
finally
{
OdbcCommand commd = new OdbcCommand("update article set
designation=?,type_article=?,qte_en_stock=?,prix_unitaire=?,tva_article=?,fiche_tech=?
where num_article=" + @Convert.ToDecimal(num_article.Text), cnx);
commd.Parameters.Add("designation",
designation.Text.ToUpper());
commd.Parameters.Add("type_article",
type_article.Text.ToUpper());
commd.Parameters.Add("qte_en_stock",
qte_en_stock.Text);
commd.Parameters.Add("prix_unitaire",
@Convert.ToInt32(prix_unitaire.Text));
commd.Parameters.Add("tva_article",
@Convert.ToDouble(tva_article.Text));
commd.Parameters.Add("fiche_tech",
fiche_tech.Text);
try
{
int rex = commd.ExecuteNonQuery();
MessageBox.Show(this, "un article a
été modifié", "", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch
{
MessageBox.Show(this, "cet article n'est pas
enregistré", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
String sql = "select
num_article,designation,qte_en_stock,prix_unitaire,prix_unitaire*qte_en_stock
as VALEUR from article";
ACTUALISER_dKING_article(sql);
Actualiser();
cnx.Close();
}
}
void REX_numeric(System.Windows.Forms.KeyPressEventArgs
e)
{
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
void ctrl_num(System.Windows.Forms.KeyPressEventArgs
e)
{
//for numeric textbox
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
void ACTUALISER_dKING_article(String PATHY)
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
OdbcDataAdapter adptr = new
OdbcDataAdapter(PATHY,cnx);
DataSet dts = new DataSet();
cnx.Open();
cnx.Close();
dKING_article.Refresh();
adptr.Fill(dts, "article");
dKING_article.SetDataBinding(dts, "article");
dKING_article.Refresh();
}
public void shw_ART(OdbcConnection cnx, OdbcCommand
cmde)
{
OdbcDataReader dtr;
cmde.Connection = cnx;
dtr = cmde.ExecuteReader();
dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text = dtr.GetInt32(3).ToString();
prix_unitaire.Text = dtr.GetInt32(4).ToString();
tva_article.Text = dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
}
public void Actualiser()
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
OdbcCommand cmd = new OdbcCommand("select * from
article");
try
{
OdbcDataReader dtr;
cnx.Open();
cmd.Connection = cnx;
dtr = cmd.ExecuteReader();
int KING = 1;
while (KING < KINGindex + 1) { dtr.Read();
KING++; }
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text =
dtr.GetInt32(3).ToString();
prix_unitaire.Text =
dtr.GetInt32(4).ToString();
tva_article.Text =
dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
dtr.Close();
cnx.Close();
}
catch (Exception MINDONGO)
{
designation.Text = MINDONGO.ToString();
}
}
private void dKING_article_CurrentCellChanged(object
sender, System.EventArgs e)
{
KINGindex = dKING_article.CurrentCell.RowNumber +
1;
lblenre.Text = "" + KINGindex + " / " +
MINDONGOrowCount;
OdbcDataReader dtr;
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
cnx.Open();
OdbcCommand cmdK = new OdbcCommand("select *from
article");
cmdK.Connection = cnx;
dtr = cmdK.ExecuteReader();
for (int i = 0; i < KINGindex; i++) dtr.Read();
num_article.Text = dtr.GetInt32(0).ToString();
designation.Text = dtr.GetString(1);
type_article.Text = dtr.GetString(2);
qte_en_stock.Text = dtr.GetInt32(3).ToString();
prix_unitaire.Text = dtr.GetInt32(4).ToString();
tva_article.Text = dtr.GetDouble(5).ToString();
fiche_tech.Text = dtr.GetString(6);
cnx.Close();
}
private void UPDATE_ART_Load(object sender, EventArgs
e)
{
initialiser();
}
private void rechrch_Click(object sender, EventArgs e)
{
OdbcConnection cnx = new
OdbcConnection("DSN=KINGMINDONGO");
String KING="";
OdbcDataAdapter adptr = new OdbcDataAdapter("select * from
article", cnx);
try
{
cnx.Open();
KING ="select*from article where num_article=" +
@Convert.ToDecimal(rech_num_article.Text);
OdbcCommand cmdy = new OdbcCommand(KING);
shw_ART(cnx, cmdy);
}
catch
{
}
finally
{
cnx.Close();
}
}
private void cmd1er_Click(object sender, EventArgs e)
{
premier();
}
private void cmdprecdent_Click(object sender, EventArgs
e)
{
Prece_dent();
}
private void cmdsvt_Click(object sender, EventArgs e)
{
suiv_ant();
}
private void cmdDernier_Click(object sender, EventArgs
e)
{
der_nier();
}
private void qte_en_stock_KeyPress(object sender,
KeyPressEventArgs e)
{
REX_numeric(e);
}
private void tlb_KING_ButtonClick(object sender,
ToolBarButtonClickEventArgs e)
{
switch (tlb_KING.Buttons.IndexOf (e.Button))
{
case 1:
pdlone.ShowDialog();
break;
case 3:
Actualiser();
break;
case 4:
Updateart();
break;
case 5:
supprm();
break;
case 7:
premier();
break;
case 8:
Prece_dent();
break;
case 9:
suiv_ant ();
break;
case 10:
der_nier ();
break;
case 12:
this.Close();
break;
}
}
}
}
* 1 Gustave Ababa Nonga, Notes
de cours de MRS, ISIPA 2002-2003
* 2 Gustave Ababa Nonga,
Notes de cours de MRS, ISIPA 2002-2003
* 3 Robert REIX, l'analyse en
informatique de gestion, Paris, Bordas, 1984, P.193
* 4 THEO KAKAFUKA MAI
2ème Graduat, ESFORCA, 2010-2011
* 5 MVIBUDULU KALUYIT, note
du cours de Méthode d'Analyse Informatique II, G3 Info, ISP,
2009-2010
* 6 KAMIANTAKO Antoine
recherche opérationnelle 1er licence, UNIKIN,
2010-2011
* 7 NKUMBI MWAMBA recherche
opérationnelle 3e Graduat, ESFORCA, 2011-2012
* 8 NKUMBI MWAMBA, Op.cit.
|