2016-12-14 1 views
1

기능 뺄셈 2 개의 float 필드에 방법 "마침 - 시작"뺄셈 플로트 필드 odoo 9

start = fields.Float(string='Star') 
finish = fields.Float(string='Fin') 
total = fields.Float(string='Total') 

    @api.one 
     def total_sum(self): 
     ?????? 
+0

요 UR 질문? 이 넓은 맥락에서 대답하기는 어렵습니다. – CZoellner

+0

@CZoellner 필자는 간단한 솔루션을 필요로한다. oodoo를 통해 import 한 후 excel import start와 finish date (시작 : 08:00:00, finish : 16:00:00)를 입력해야한다. 결과는 finish - start (08:00) . 필드 datetime 또는 float 또는 string을 설정하고 시간을 변환하는 방법이 필요하지 않습니다. 어떤 해결책? 또한 가져 오기 시작 후 끝내기가 가능하며 시작과 끝이 비어 있지 않으면 필드 합계를 자동으로 채 웁니다. – Pointer

+0

Odoo에서 새 필드를 정의한 다음 Excel 파일에서 올바른 결과를 얻으려면 어떻게해야합니까? – CZoellner

답변

2

그것은 것과 같아야합니다,

total = fields.Float(string='Total', compute=_set_total) 

@api.multi 
def _set_total(self): 
    for rec in self: 
     rec.total = float(rec.finish or 0.0) - float(rec.start or 0.0) 

당신은 또한 해당 필드를 만들 수 있습니다 그러나 정상 작동하지 않음

total = fields.Float(string='Total') 

@api.onchange('finish','start') 
def _set_total(self): 
    self.total = float(self.finish or 0.00) - float(self.start or 0.00) 
+0

안녕하세요, 귀하의 코드를 실행 한 후 오류가 발생 - "https://postimg.org/image/5y4cfucn1/ – Pointer

+0

나는 대답을 업데이 트했습니다, 이것을 시도하십시오. –

+0

@Empiro Tech -> https://postimg.org/image/d3o91x049/ – Pointer

0
def total_sum(self, cr, uid, ids, start, finish, context=None): 
    res = {} 
    res['total'] = finish - start 
    return {'value': res}