clinic/netforce_clinic/models/:w

54 lines
1.8 KiB
Plaintext

import time
from netforce.model import Model, fields, get_model
from netforce.access import get_active_company
class CycleItem(Model):
_name="clinic.cycle.item"
_string="Cycle Item"
def _get_x(self,ids,context):
res={}
for obj in self.browse(ids):
hd_total=len([hd_case for hd_case in obj.hd_cases if hd_case.state=='completed']) # XXX
pt=(hd_total or 0.0)
k=(obj.var_k or 0.0)
pt_k=pt*k
x=(pt_k + 1275)/13.5
res[obj.id]=x
return res
_fields={
'company_id': fields.Many2One("company", "Company"),
'cycle_id': fields.Many2One("clinic.cycle", "Cycle",search=True),
'date': fields.Date("Date",search=True),
'var_k': fields.Float("K"),
'var_x': fields.Float("X", function="_get_x"),
"state": fields.Selection([("draft","Draft"),("done","Done")],"Status",required=True),
'hd_cases': fields.One2Many("clinic.hd.case","cycle_item_id", "HD Cases"),
'lines': fields.One2Many('clinic.cycle.item.line', 'cycle_item_id', 'Lines'),
}
_defaults={
'state': 'draft',
'company_id': lambda *a: get_active_company(),
'date': lambda *a: time.strftime("%Y-%m-%d"),
'var_k': 450,
}
def compute(self,ids,context={}):
for obj in self.browse(ids):
nurer_categ_ids=[line.nurse_categ.id for line in obj.lines]
vals={
'lines': [],
}
for nurse_categ in get_model("clinic.nurse.categ").search_browse([]):
vals['lines'].append(('create',{
'nurse_categ': nurse_categ.id,
'formular': nurse_categ.formular or "",
'qty': 1,
}))
pass
obj.write(vals)
CycleItem.register()