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

Odoo (ex-OpenERP) Discussion :

Decoder une date et reencoder


Sujet :

Odoo (ex-OpenERP)

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BXDSPORT
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 353
    Par défaut Decoder une date et reencoder
    Bonjour
    J'ai besoin de faire un calcul entre date
    J'aimerai d'abord décoder la date en Jour mois année et puis la reformer en jj/mm/aaaa.

    J'aurai besoin de vos lumières

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Le module datetime est là pour ça.

    Regarde aussi timedelta qui fait peut-être ce que tu recherches.

  3. #3
    Membre éclairé Avatar de BXDSPORT
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 353
    Par défaut
    Merci de cette piste
    J'ai essayé
    Vous pouvez me dire si cela est bon

    Code Python : 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
    # -*- coding: utf-8 -*-
     
    from openerp import models, fields, api
    from datetime import datetime
     
    class bxmenu(models.Model):
        _name = 'bxmenu.bxmenu'
     
        date_controle = fields.Date(string="Date de controle",required=True)
        date_futur = fields.Date(string="Date futur")
     
        def date_futur():
            jour=date_controle.day
            mois=date_controle.month
            annee=date_controle.year
            annee=annee+5
        return date_futur.date(jour,mois,annee)

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Heu, non c'est pas bon.

    Ta classe hérite de Model, il faut l'initialiser avec super()

    date_controle et date_futur sont des attributs de classe dont la valeur est partagée entre les différentes instances de cette classe. Est-ce voulu ?

    À quel niveau se trouve la fonction date_futur ? Dans l'espace global ou dans la classe bxmenu ? De toutes manières date_controle est inconnu dans cette fonction, tu auras une erreur.

    Il faut éviter d'utiliser un même nom (date_futur) pour deux usages différent (attribut et fonction)

    openerp, c'est encore distribué ça ?

  5. #5
    Membre éclairé Avatar de BXDSPORT
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 353
    Par défaut
    Oui, openerp est le coeur odoo (le nouveau nom) mais les modules utilises encore cette base.
    la def je l'ai changé par un onchange_datefutur() pour qui me calcule la future date car il y avait un conflit.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 168
    Par défaut
    Les dates sous OpenERP / Odoo sont stockées sous forme de chaînes de caractères (comme YYYY-MM-JJ).
    Odoo offre des méthodes pour faciliter la conversion de chaîne vers objet date Python et inversement (sous fields.Date).

    Votre champ date_futur devrait être un champ calculé (computed) dépendant de date_controle, se mettant donc à jour automatiquement dès que date_controle sera modifié.
    Le code suivant devrait être plus juste (je ne l'ai pas testé) :

    Code python : 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
     
    # -*- coding: utf-8 -*-
     
    from datetime import date
    from openerp import models, fields, api
     
    class bxmenu(models.Model):
        _name = 'bxmenu.bxmenu'
     
        date_controle = fields.Date(string="Date de controle",required=True)
        date_futur = fields.Date(string="Date futur", compute='_compute_date_futur')
     
        @api.depends('date_controle')
        def _compute_date_futur(self):
            for menu in self:
                dt_controle = fields.Date.from_string(menu.date_controle)
                dt_futur = date(dt_controle.year + 5, dt_controle.month, dt_controle.day)
                menu.date_futur = fields.Date.to_string(dt_futur)

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. Récupérer l'année d'une date
    Par delphim dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/01/2003, 16h33
  3. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  4. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

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