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 :

créer un serveur de facturation


Sujet :

Python

  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut créer un serveur de facturation
    Bonjour,

    Je développe en ce moment un serveur de facturation qui sera, si tout va bien. proposé dans openErp. Il ne s'agit encore que d'un prototype Les règle ont été défini dans la rubrique licence mais je ne sais pas a quelle licence elle correspond exactement C'est l'une des raison pour laquelle je ne souhaite pas pour le moment publier la conception.

    Question : A quelle licence corresponde ces règles ?

    Pour le moment, l'idée consiste en un simpe thread qui gère un compte à rebours dont l'état pourra être afficher a tout moment et au bout duquel un signal sonore (beep code ascii 7) retentira et le programme se terminera.

    Ci-joint le code.

    Question :

    Pourquoi la différence de temps est-elle incorrecte ?

    Merci pour votre aide.

    Salutations
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Salut,

    Pourquoi la différence de temps est-elle incorrecte ?
    La différence est correcte! Car c'est une machine qui a fait l’opération.
    Si le résultat ne correspond pas a vos attentes, désole, mais vous voulez obtenir quoi au juste?
    - W
    PS: Si la question porte sur la différence de datetime poster 5 lignes de code suffit.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut
    Bonjour,

    Citation Envoyé par wiztricks Voir le message
    Salut,


    La différence est correcte! Car c'est une machine qui a fait l’opération.
    Si le résultat ne correspond pas a vos attentes, désole, mais vous voulez obtenir quoi au juste?
    - W
    PS: Si la question porte sur la différence de datetime poster 5 lignes de code suffit.

    Oui, La valeur que j'attends n'est que la différence que je peux mettre dans un compte à rebours. Ensuite on vérifie que la date et l'heure et bien correcte. Si c'est le cas, on émet un beep.

    Comment feriez-vous cela ?

    Merci pour votre aide.

    Salutations

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Salut,
    Citation Envoyé par Battant Voir le message
    Comment feriez-vous cela ?
    Le flou des informations que vous donnez permet difficilement de traduire cela en "code". A votre place, je prendrai une feuille de papier et un crayon pour essayez de formuler cela plus clairement. Et si vous savez ce que vous voulez le traduire en Python ne devrait vous posez aucun problème.
    - W
    PS: si vous cherchez du monde pour écrire des specs et écrire du code a votre place, peut être que vous vous êtes trompe de forum.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut
    Bonjour,

    L'idée est tout a fait claire dans ma tête.

    La voici en quelque ligne.

    Fixer la date et l'heure de l'alarme dans des variable
    Calculer le temp qui sépare le moment présent de l'alarme pour programmer le compte à rebours
    Démarrer le compte à rebourt dans un thread séparer
    Lorsque le compte à rebours est à 0 :
    Vérifier à nouveau si la date et l'heure corresponde à l'ararme.
    Si c'est le cas :
    émettre un beep
    Quitter avec le code 0
    sinon
    Afficher un message (Erreur : l'heure ne correspond malheureusement pas à l'alarme)
    quitter avec le code -1
    Maintenant, pourquoi la différence ne correspond pas a ce qui est prévu ci-dessus ?

    Merci pour votre aide.

    Salutations

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par Battant Voir le message
    L'idée est tout a fait claire dans ma tête.
    Tant que vous n'arriverez pas a la traduire en quelques lignes de (pseudo-)code (ou mieux en Python) ce ne sera pas si "clair".

    Illustration:
    Maintenant, pourquoi la différence ne correspond pas a ce qui est prévu ci-dessus ?
    Relisez votre prose et expliquez a quoi correspondent ce que vous nommez /la différence/ et /ce qui est prévu/.

    Reformule de façon plus programmatique, on pourrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def function (duree):
         start = now()
         attendre (duree)
         action...
    Impossible d’exécuter /action.../ avant le retour de la fonction /attendre/ qui, si elle est bien construite (ou choisie), n'aura lieu qu’après /durée/.

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

  7. #7
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Par défaut Problème à la fin du timer et signal termeted 15 à l'arrêt brutal
    Bonjour,

    Alors depuis le code a un peu changer

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    # Licence : Vous avez le droit de faire usage libre de ce code a des fin privé mais vous devez citer la source. L'usage commercial est interdit mais sera autoriser moyennant payement toute version dérivée de ce code doit rester consultable en ligne et open source même après paiment avec l'obligation de me citer comme auteur. L'ajout d'un autre auteur est autorisé mais pas l'effacement.
     
    import datetime
    from threading import *
     
       # code from http://domeu.blogspot.fr/2011/04/time-datetime-manipulation-du-temps-en.html
     
            # Conversion de la date en datetime
            #self.now_datetime =  datetime.datetime(self.now.year, self.now.month, self.now.day,.time. )
            print("Maintenant nous some le : ",self.now.strftime('%d/%m/%y %H:%M'))
     
            # code from http://domeu.blogspot.fr/2011/04/time-datetime-manipulation-du-temps-en.html
     
            # Evalutation de la difference
            self.diff = self.alarme - self.now
     
            print ("La différence totale : ",self.diff)
            print( "Différence en secondes = %i" % (self.diff.seconds) )
            print( "Différence en minutes = %i" % (self.diff.seconds // 60) )
            print( "Différence en heures = %i" % (self.diff.seconds // 3600) )
     
            print( "Différence en jours = %i" % (self.diff.days) )
        # code from http://docs.python.org/2.7/library/threading.html#timer-objects
        # Settings timer
     
            timer = Timer(self.diff.seconds,0,sonnerie)
            timer.start()
     
    sonnerie() :
            print chr(7)
            print chr(7)
            print ("timer terminé")
    Malheureusement, maintenant, voilà ce qui se passe.

    1. Le tread principal se termine et la console affiche par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ('Maintenant nous some le : ', '18/08/13 19:59')
    ('La diff\xc3\xa9rence totale : ', datetime.timedelta(0, 9, 697096))
    Différence en secondes = 9
    Différence en minutes = 0
    Différence en heures = 0
    Différence en jours = 0
    terminer
    Le programme attend l'heure l'alarme mais a ce moment arrivé, au lieu de faire retentir l'alarme, l'exception suivante est levée et le programme s'arrête brutalement. :

    [code]
    Traceback (most recent call last):
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
    self.run()
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 1080, in run
    self.function(*self.args, **self.kwargs)
    TypeError: int object argument after * must be a sequence, not function

    Que se passe-t-il ?

    Si j'arrête brutalement le serveur durant l'attente, l'écran affiche :
    Dans le cas ou justement le serveur s'arrête brutalement ou anormalement, j'aurais besoin d'enregistrer l'heure et la date un fichier log afin de pouvoir reprendre correctement la tâche qu'il est a laquelle ce serveur et dédié à savoir gérer un agenda sur open erp avec des patient qui ont des rendez-vous de physiothérapie (kinésithérapie) récurent et facturés.
    Comme tous les rendez-vous sont marqué comme effectués et candidat à la date et l'heure de la fin du rendez-vous a moins qu'il n'aie été annulé sans facturation, il est très important que le serveur puisse reprendre correctement son travail en cas de panne.

    Mais voilà, puis-je intercepter ce signal Terminated: 15 comme j'intercepterais une exception ?

    Merci pour votre aide

    Salutations

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par Battant Voir le message
    TypeError: int object argument after * must be a sequence, not function

    Que se passe-t-il ?
    Comme cela vous a déjà été dit dans l'autre post que vous avez ouvert sur le même sujet, relisez la doc. de threading.Timer pour assurez que vous passez les bons paramètres d'appels.

    - W
    PS: Python est facile a apprendre si vous avez acquis des bases de programmation "apprendre", c'est passer du temps a comprendre les constructions de base, l'organisation de la doc.,...
    Personne ne pourra faire cela a votre place!
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Socket] Créer un serveur FTP.
    Par marchand_de_sable dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 04/10/2006, 18h05
  2. créer deux serveur web avec un seul adresse ip?
    Par Djo00 dans le forum Apache
    Réponses: 3
    Dernier message: 23/08/2006, 09h13
  3. Comment créer un serveur FTP avec Indy ?
    Par Matt2094 dans le forum Delphi
    Réponses: 2
    Dernier message: 03/06/2006, 12h23
  4. Comment créer son serveur web ?
    Par AsmCode dans le forum Apache
    Réponses: 7
    Dernier message: 01/04/2006, 02h54
  5. Réponses: 2
    Dernier message: 13/02/2006, 10h53

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