Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formater une date

1 réponse
Avatar
Boa Guy Serge
Bonjour , je veux formater une date prit sur le formulaire et le
passer en paramettre, (quelque soit la date sur le formulaire)
l'objectif de mon algo c'est de recuperer la dur=E9e du contrat qui est
dans une autre classe (je le recuper et je le passe en paramettre, lui
il est bon) et prendre la date saisie (par forcement la date du jour,
je le recuper)
la date recuperer est sous cette forme (2006-01-21) et je le veux sous
cette forme (2006,01,21). C'est id qui me donne la date sur le
formulaire que je passe en paramettre datetime.date('id')

Voici mon code

def onchange_duree(self,cr,uid,ids,duree,id):
res =3D {}
if duree:
ctr_obj =3D
self.pool.get('production.duree').browse(cr,uid,duree)
nbj =3D int(ctr_obj.duree)
dat_obj =3D
self.pool.get('production.contrat').browse(cr,uid,id)
res['date_echeance'] =3D datetime.date('id') +
datetime.timedelta(days=3Dnbj)

return {'value':res}

Il me donne comme message: la fonction prend 3 arguments et tu lui
donne 1

Merci pour l'aide

1 réponse

Avatar
Boa Guy Serge
On 23 juil, 08:29, Boa Guy Serge wrote:
Bonjour , je veux  formater une date prit sur le formulaire et le
passer en paramettre, (quelque soit la date sur le formulaire)
l'objectif de mon algo c'est de recuperer la durée du contrat qui est
dans une autre classe (je le recuper et je le passe en paramettre, lui
il est bon) et prendre la date saisie (par forcement la date du jour,
je le recuper)
la date recuperer est sous cette forme (2006-01-21) et je le veux sous
cette forme (2006,01,21). C'est id qui me donne la date sur le
formulaire que je passe en paramettre datetime.date('id')

Voici mon code

def onchange_duree(self,cr,uid,ids,duree,id):
        res = {}
        if duree:
            ctr_obj =
self.pool.get('production.duree').browse(cr,uid,duree)
            nbj = int(ctr_obj.duree)
            dat_obj =
self.pool.get('production.contrat').browse(cr,uid,id)
            res['date_echeance'] = datetime.date('id') +
datetime.timedelta(days=nbj)

        return {'value':res}

Il me donne comme message: la fonction prend 3 arguments et tu lui
donne 1

Merci pour l'aide



J'ai trouver la reponse et voici le code final


def onchange_duree(self,cr,uid,ids,duree,date_effet):
res = {}
if duree:
import sys
ctr_obj =
self.pool.get('production.duree').browse(cr,uid,duree)
nbj = int(ctr_obj.duree)
#res['date_echeance'] = datetime.datetime.now().date() +
datetime.timedelta(days=nbj)
ct_obj =
self.pool.get('production.contrat').browse(cr,uid,date_effet)
sys.stderr.write(str(duree))
sys.stderr.write(str(date_effet))
res['date_echeance'] =
datetime.datetime.fromtimestamp(time.mktime(time.strptime(date_effet,"%Y-
%m-%d %H:%M:%S"))) + datetime.timedelta(days=nbj)
return {'value':res}

Merci à tous