IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

gerer les depots dont le nombre est inconnu


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut gerer les depots dont le nombre est inconnu
    Bonjour tout le monde;
    je suis entrain de faire une petite utilitaire qui gere des articles.

    j'ai un article avec le nom X quantité X TVA et prix X

    exemple:
    nom = viande;
    quantité = 16;
    TVA = 20%;
    prix = 19 euro;

    le probleme c'est que j'ai plusieurs Depots et dans l'utilitaire je peux créer autant que je veux des dépots.

    maintenant j'ai article viande(qte = 19, tva = 20; prix = 19) dans le Depot 1
    je veux prendre une quantité X (exemple qte = 3) et la placer dans le Depot 2 pour le vendre à 25 euro.

    comment je peux gerer ça ? sachant que je peux créer un nombre X des depots

    dans la table de SQLite j'ai fait id, nom, qte, tva, prix, depot1

    c'est bien, mais ça marche pas cette astuce si je fais un nombre X des depots car à chaque fois je deplace une quantité X de viande Depot va se changer et donc tout les données seront perturbé

    que dois je faire pour gerer les depots, merci beaucoup d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Par défaut
    Table Depot
    IdDepot
    NomDepot
    ...

    Table Article
    IdArticle
    NomArticle
    Tva
    ...

    Table "Association"
    IdArticle
    IdDepot

    NbArticle
    PrixArticle

    Après, la gestion du "déplacement" serait plus appropriée dans le code et non dans la définition des tables.

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Salut,
    Voila une structure qui correspond à ce que tu demandes :
    * Table Articles(Id, Nom)
    * Table Depot(Id, Nom)
    * Table Stock(IdArticle, Quantite, IdDepot, PrixHT, TVA)

    IdArticle de Stock référence Articles(Id)
    IdDepotde Stock référence Depot(Id)

    Comme ça tu peux enlever du stock de dépot1 à un prix X et le rajouter dans le stock de dépor2 à un prix Y.

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    Merci beaucoup pour l'aide mes amis
    je viens de faire ce que vous m'avez dit je cite mes requetes

    pour les articles j'ai fait:

    là, j'inserer les articles que je veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                sql = "CREATE TABLE IF NOT EXISTS article_table(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, designation VARCHAR(255), qte VARCHAR(255), prix VARCHAR(255), depots VARCHAR(255))";

    là, j'insere un nombre illimité des depots
    pour depot j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                sql = "CREATE TABLE IF NOT EXISTS depot_table(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, depot VARCHAR(255))";
    et pour l'Association ou le stock j'ai fait ça:

    là, je deplace une quantité X des articles depuis le depot 1 vert le depot 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                sql = "CREATE TABLE IF NOT EXISTS deplacement_table(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, depotsource VARCHAR(255), depotdestination VARCHAR(255), designation VARCHAR(255), quantite VARCHAR(255), prixttc VARCHAR(255))";
    est ce que ce raisonnement est correcte ?

    merci

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Par défaut
    Tu veux garder une trace du dépôt de départ j'ai l'impression ?

    Table "Association"
    IdAssociation
    IdArticle references Table Article
    IdDepotDepart references Table Depot
    IdDepotArrivee references Table Depot
    NbArticle
    PrixArticle

    (Pour info, les éléments soulignés représentent les clés primaires ^^, et sur ma première version, c'est pas bon vu que ça voudrait dire que tu pourrais déplacer 1 produit d'un dépôt à un autre dépôt qu'une seule fois )
    Par contre, il faudrait créer la première ligne de la table Dépôt comme étant "Stock de départ", pour que tu n'aie pas de problème de nullable

  6. #6
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    Merci encore;

    non je ne veux pas garder une trace de mon depot du depart, sauf que les articles au moment d'achat ont besoin d'un depot pour les stocker !!?
    j'ai donc utiliser depot dans la table des articles car on ne va pas stocker l'article dans le depot1 et on va le changer dans le depot2 au meme temps :/ ça n'a aucun raison mais viendra le jour ou je peux les deplacers, et donc la requet Association est une fenetre appart, dois je utilise la requet association au moment de la creation d'article ?
    j'ai besoin d'une logique pour que je peux programmer ça :/
    algorithme SVP

  7. #7
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour
    Tu crees une table speciale "depot central" qui est la source ou sink de tous les depots ou les nouveaux articles arrives ...
    Cette table est analogue à un registre comptable...Depuis les marchands pheniciens qui ont invente ce systeme diabolique...
    Elle comportera
    - champ ArticeX,2 champs QteEntre et QteSortie
    => QteEntre: comptabilise les entrees de l'exterieur -approv ou achats externes-.
    => QteSortie :comptabilise les sorties vers les depots de( ventes,je suppose ) ...
    Apres tu mouvementes une Qte d'un article X vers un depot de vente existant ou nouveau...
    Au cours d'un exercice (semestre,annee etc ) :
    =>Le flux total d'un article d'un article donne X du depot central vers les depots de vente est le total du champ QteSortie ...
    =>Le flux total d'un article X d'un article donne X pour les approvmts ou achats externes...
    => La difference entre ces 2 totaux s'appele seuil d'alerte (que tu dois definir par toi-meme ) pour approvisionner le "depot central" pour eviter une penurie dans les depots de vente...
    Tu peux meme ajouter un champ ID-DepotDestination pour pister les depots de vente gros consommateur...

  8. #8
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Par défaut
    Citation Envoyé par CLion Voir le message
    Merci encore;

    non je ne veux pas garder une trace de mon depot du depart, sauf que les articles au moment d'achat ont besoin d'un depot pour les stocker !!?
    j'ai donc utiliser depot dans la table des articles car on ne va pas stocker l'article dans le depot1 et on va le changer dans le depot2 au meme temps :/ ça n'a aucun raison mais viendra le jour ou je peux les deplacers, et donc la requet Association est une fenetre appart, dois je utilise la requet association au moment de la creation d'article ?
    j'ai besoin d'une logique pour que je peux programmer ça :/
    algorithme SVP
    En gros, tu vas :

    - Créer tes dépôts (Table Depot)
    - Créer des articles (Table Article)
    - Déposer des articles dans des dépôts (Créer un lien entre Depot et Article via la table d'Association)

    Dépôts :
    *Dépôt1
    *Dépôt2
    *Dépôt3
    Articles :
    *Article1
    * Article2
    Association :
    *15 Article1 dans Dépôt1
    *12 Article1 dans Dépôt3
    *3 Article2 dans Dépôt2
    *1 Article2 dans Dépôt3
    *10 Article2 dans Dépot1
    Et quand tu vas vouloir déplacer des articles venant de dépôts :
    Association :
    *15 Article1 dans Dépôt1 -5
    *12 Article1 dans Dépôt3
    *3 Article2 dans Dépôt2 -2
    *1 Article2 dans Dépôt3 +2
    *10 Article2 dans Dépot1
    *5 Article1 dans Dépot2

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/11/2009, 19h31
  2. Réponses: 29
    Dernier message: 29/03/2007, 11h50
  3. Réponses: 12
    Dernier message: 18/03/2007, 15h26
  4. Réponses: 5
    Dernier message: 24/07/2006, 14h01
  5. [bmp]probleme avec les images dont la largeur est >256
    Par delfare dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 15/02/2006, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo