WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

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

( Télécharger le fichier original )
par kaniki MINDONGO
Ecole supérieure de formation des cadres ( E.S.FOR.CA.) à  Kinshasa en RDC - Graduat 2011
   Télécharger le fichier original

Disponible en mode multipage

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

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.