clinic/netforce_clinic/models/hd_case_staff.py

55 lines
2.5 KiB
Python
Raw Permalink Normal View History

2015-04-30 09:41:34 +00:00
import time
2015-05-06 15:23:16 +00:00
from netforce.model import Model, fields, get_model
2014-11-01 03:48:22 +00:00
2015-01-14 04:31:24 +00:00
class HDCaseStaff(Model):
_name="clinic.hd.case.staff"
2014-12-04 15:26:20 +00:00
_name_field="staff_id"
2015-01-14 05:30:22 +00:00
def _get_all(self,ids,context={}):
res={}
for obj in self.browse(ids):
hd_case=obj.hd_case_id
patient=hd_case.patient_id
res[obj.id]={
'sickbed_id': hd_case.sickbed_id.id,
'patient_id': patient.id,
'patient_type_id': patient.type_id.id,
'cycle_id': hd_case.cycle_id.id,
'department_id': hd_case.department_id.id,
'state': hd_case.state,
}
return res
2014-11-01 03:48:22 +00:00
_fields={
2015-04-30 09:41:34 +00:00
"hd_case_id": fields.Many2One("clinic.hd.case","HD Case",required=True,on_delete="cascade",search=True),
2014-12-20 18:55:26 +00:00
"staff_id": fields.Many2One("clinic.staff","Doctor",search=True),
2015-04-30 09:41:34 +00:00
"type": fields.Selection([("doctor","Doctor"),('nurse','Nurse'),("staff","Staff")],"Type",required=True,search=True),
"priop": fields.Selection([("personal","Personal"),('other','Other')],"Priority",search=True),
2014-11-01 03:48:22 +00:00
'note': fields.Char("Note"),
2015-01-14 05:30:22 +00:00
'sickbed_id': fields.Many2One("clinic.sickbed","Sickbed",function="_get_all",function_multi=True),
2015-03-02 04:03:07 +00:00
'patient_id': fields.Many2One("clinic.patient","Patient",domain=[['state','=','admit']], function="_get_all",function_multi=True),
2015-01-14 05:30:22 +00:00
'patient_type_id': fields.Many2One("clinic.patient.type","Patient Type",function="_get_all",function_multi=True),
'cycle_id': fields.Many2One("clinic.cycle","Cycle",function="_get_all",function_multi=True),
'department_id': fields.Many2One("clinic.department","Department",function="_get_all",function_multi=True),
2015-04-30 09:41:34 +00:00
'date': fields.Date("Date",search=True),
2015-01-14 05:30:22 +00:00
"state": fields.Selection([("draft","Draft"),('waiting_treatment','Waiting Treatment'),("in_progress","In Progress"),("completed","Finish Treatment"),('paid','Paid'),("waiting_payment","Waiting Payment"),("discountinued","Discountinued"),("cancelled","Cancelled")],"Status",function="_get_all",function_multi=True),
2014-11-01 03:48:22 +00:00
}
_defaults={
2014-12-20 18:55:26 +00:00
'type': 'doctor',
2015-04-29 01:36:05 +00:00
'priop': 'personal',
2015-04-30 09:41:34 +00:00
'date': lambda *a: time.strftime("%Y-%m-%d"),
2014-11-01 03:48:22 +00:00
}
2015-05-06 15:23:16 +00:00
def recompute_cost(self,ids,context={}):
obj=self.browse(ids)[0]
hdcase=obj.hd_case_id
citem=hdcase.cycle_item_id
for lc in get_model('clinic.labor.cost').search_browse([['cycle_item_id','=',citem.id]]):
lc.compute()
print("Done!")
2014-11-01 03:48:22 +00:00
2015-01-14 04:31:24 +00:00
HDCaseStaff.register()
2014-11-01 03:48:22 +00:00