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

Python Discussion :

Gestion de stock et flux


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 31
    Par défaut Gestion de stock et flux
    Bonjour à tous,

    voici mon soucis. Imaginons plusieurs objets de différentes tailles que l'on désire stocker dans différentes boites de différents volumes. Pour chaque objet, on a donc les caractéristiques (dimensions) mais aussi la date où l'on pose l'objet dans une des boites et la date où l'on sort l'objet. Forcément à chaque fois qu'on retire un objet, de la place se libère et influe sur le choix pour où poser le prochain objet, etc...
    J'ai fait une classe objet avec les caractéristiques et une classe boites avec leurs dimensions (et une méthode qui remet à jour le volume lorsqu'un objet est déposé). Mon problème est que je ne vois pas comment faire pour "checker" les dates, enlever les objets et mettre à jour les volumes de chacune des boites. Quelle est la méthode la plus simple ?

    Merci beaucoup

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 31
    Par défaut
    J'ai oublié de mettre mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class Colis(object):
        global df
        def __init__(self, id):
            self.surface = df['surface'][id]
            self.date_arr = df['date_arrive'][id]
            self.date_dep = df['date_depart'][id]
     
    class Entrepot(object):
        def __init__(self, surface_tot):
            self.surface_tot = surface_tot
     
        def maj_surface(self, surface):
            self.surface_tot -= surface
            return self.surface_tot
     
        def depart_colis(self, surface):
            self.surface_tot += surface
    A = Entrepot(15)
    B = Entrepot(100)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    def remplissage():
        # on commence par remplir A, si A est plein on remplit B
        global df 
        for i in range(0, len(df['id'])):
            if A.surface_tot >= 0:
                A.maj_surface(Colis(i).surface)
                for j in range(0, len(df['id'])):
                    if Colis(j).date_dep <= Colis(i).date_arr and i > j:
                        A.depart_colis(Colis(j).surface)
                        df.drop(df.index[j])
            else:
                B.maj_surface(Colis(i).surface)
                for j in range(0, len(df['id'])):
                    if Colis(j).date_dep <= Colis(i).date_arr and i > j:
                        B.depart_colis(Colis(j).surface)
                        df.drop(df.index[j])
    Les données sont des objets avec comme variables: id, surface, date_arr, date_depart. Je remplis la boite A avec les objets, puis quand la boite A est pleine, je commence à remplir la boite B. Un objet arrive à une date et part d'une boite à une autre date. La place disponible change lorsqu'un objet est sorti d'une boite.

    On dirait que j'ai un soucis. Des idées ?
    Merci

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Quelle est la méthode la plus simple ?
    Cette réponse ne va sans doute pas te plaire, mais instinctivement je dirais de le faire sur papier...

    Si tu sais résoudre sur papier, alors le problème n'est pas algorithmique, et il faut apprendre python. Mais je te rassure c'est la chose la plus simple...

    Apparemment sans juger, c'est pas facile au début, tu t'appuies peu sur des codes existants. Je le remarque car dans une classe, tu mets le mot clé global alors que l'utilisation des classes permets surtout de l'éviter (en fait on a aucun besoin de ce mot clé).

    Pour apprendre les bonnes pratiques, tu peux t'appuyer sur le tutoriel officiel de la documentation python ou sur un tutoriel qui a fait ses preuves, Swinnen.

    Ensuite on ne sait pas ce qu'est pour toi,
    • Vérifier les dates et surtout concrètement sans code ce que tu comptes faire pour y parvenir.
    • Des objets (dans les colis ? Si oui, combien ? ... ?)
    • Qu'est-ce qu'une boîte ? Un colis ? Un objet ?
    • Le volume, un ensemble d'objet dans une boîte, un colis ? Un vrai volume, terme mathématiques ?


    Le problème est tellement peu détaillé, difficile à cerner que je comprend que le transcrire en python semble totalement impossible actuellement.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 31
    Par défaut
    Merci. Je me rends compte que ce n'est pas bien détaillé.
    Voilà le probleme : j'ai un csv avec des objets (classe colis)
    - id surface date_arr date_depart
    0 1 . 21 . 12/12/2018 01/01/2021
    1 . 2 . 1.5 . 01/02/2019 . 07/12/2019
    etc.

    J'ai simplifié le problème en prenant deux boites A et B (classe entrepot) de surface 15 et 100. J'ai mis le csv dans un dataframe: df
    Je place les colis un par un par ordre de date_arr et lorsque la boite A est remplie, je commence à remplir la boite B. On travaille en surface et non en volume.
    Je dois aussi checker si on doit retirer un colis avec data_depart. Lorsqu'on retire un colis, la surface se met à jour.
    Je ne sais pas si c'est le plus simple de passer par des classes mais je cherche un truc pas trop trivial pour m'entrainer.

    Merci de votre aide

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par Naunau75 Voir le message
    Je ne sais pas si c'est le plus simple de passer par des classes mais je cherche un truc pas trop trivial pour m'entrainer.
    De toutes façons sans traduire la relation "{colis} est dans {entrepôt/boîte}" d'une façon ou d'une autre...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 31
    Par défaut
    Salut,

    Ce n'est pas la bonne approche ? J'aurais pu passer par la création d'un dictionnaire (ou tuple) mais je voulais passer par les classes où chaque ligne du csv représente un objet (colis)

Discussions similaires

  1. simulateur gestion automatique de stocks en flux tendu
    Par buz33800 dans le forum Prolog
    Réponses: 1
    Dernier message: 06/11/2013, 09h07
  2. Gestion de stock CMUP après chaque entrée
    Par priest69 dans le forum Access
    Réponses: 9
    Dernier message: 13/12/2005, 10h03
  3. Gestion de stock - Prix Moyen Pondéré
    Par hugo69 dans le forum Access
    Réponses: 33
    Dernier message: 28/10/2005, 17h03
  4. Analyses du progiciel de gestion de stock COSWIN CS 5.2
    Par africanroseonlyone dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 13/10/2005, 15h01
  5. gestion des stocks
    Par gekondo dans le forum Access
    Réponses: 1
    Dernier message: 30/09/2005, 11h41

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