From 7d48d0b10d8ad1c20538ef3d062ad805063c6b0d Mon Sep 17 00:00:00 2001 From: "watcha.h" Date: Tue, 3 Mar 2015 23:53:31 +0700 Subject: [PATCH] update level nurse --- .../layouts/clinic_dialyzer_form.xml | 2 +- netforce_clinic/layouts/clinic_make_apt.xml | 6 +-- netforce_clinic/models/cycle_item.py | 2 +- netforce_clinic/models/patient.py | 4 +- netforce_clinic/models/setting.py | 52 ++++++++++++++----- netforce_clinic/models/staff.py | 9 ++-- 6 files changed, 53 insertions(+), 22 deletions(-) diff --git a/netforce_clinic/layouts/clinic_dialyzer_form.xml b/netforce_clinic/layouts/clinic_dialyzer_form.xml index 3dc7190..faa3a0d 100644 --- a/netforce_clinic/layouts/clinic_dialyzer_form.xml +++ b/netforce_clinic/layouts/clinic_dialyzer_form.xml @@ -3,7 +3,7 @@ diff --git a/netforce_clinic/layouts/clinic_make_apt.xml b/netforce_clinic/layouts/clinic_make_apt.xml index c656474..9f2371d 100644 --- a/netforce_clinic/layouts/clinic_make_apt.xml +++ b/netforce_clinic/layouts/clinic_make_apt.xml @@ -3,9 +3,9 @@ - - - + + + diff --git a/netforce_clinic/models/cycle_item.py b/netforce_clinic/models/cycle_item.py index d68062c..d251b08 100644 --- a/netforce_clinic/models/cycle_item.py +++ b/netforce_clinic/models/cycle_item.py @@ -139,7 +139,7 @@ class CycleItem(Model): nurse_id=line['nurse_id'] nurse=get_model('clinic.staff').browse(nurse_id) line['level_id']=nurse.level_id.id - line['categ_id']=nurse.categ_id.id + line['categ_id']=nurse.categ_id #XXX return data def view_schedule(self,ids,context={}): diff --git a/netforce_clinic/models/patient.py b/netforce_clinic/models/patient.py index 64d3552..ea762e8 100644 --- a/netforce_clinic/models/patient.py +++ b/netforce_clinic/models/patient.py @@ -55,9 +55,9 @@ class Patient(Model): if obj.last_name: name+=obj.last_name or "" if not obj.active: - name+='not_use' + name+='__' elif context.get('active'): - name+='not_use' + name+='__' res[obj.id]={ 'name': name, 'name_check': name.replace(" ",""), # remove all space for make sure diff --git a/netforce_clinic/models/setting.py b/netforce_clinic/models/setting.py index d3630c9..0f1a3bb 100644 --- a/netforce_clinic/models/setting.py +++ b/netforce_clinic/models/setting.py @@ -126,18 +126,46 @@ class ClinicSetting(Model): if user_id !=1: print("Only admin!!") return - for pt in get_model("clinic.patient").search_browse([]): - dates=[] - print("="*50) - for visit in pt.visits: - if visit.state=='confirmed': - continue - if visit.visit_date in dates: - print(pt.name, ' delete ', visit.visit_date) - visit.to_draft() - visit.delete() - dates.append(visit.visit_date) - print("="*50) + for citem in get_model("clinic.cycle.item").search_browse([]): + for line in citem.lines: + nurse=line.nurse_id + categ_id=nurse.categ_id.id + level_id=nurse.level_id + line.write({ + 'categ_id': categ_id, + 'level_id': level_id, + }) + print("Done!") + return + # run below before above! + import csv + f=open("/tmp/update_rotation.csv","r") + rd=csv.reader(f) + headers=next(rd) + headers=[h.lower().replace(" ","") for h in headers] + lines=[] + for row in rd: + vals=dict(zip(headers,row)) + lines.append(vals) + levels={} + for level in get_model("clinic.staff.level").search_read([]): + levels[level['name']]=level['id'] + categories={} + for categ in get_model("clinic.staff.categ").search_read([]): + categories[categ['name']]=categ['id'] + for line in lines: + db_id=int(line['databaseid']) + level=line['level'] + level_id=levels.get(level,None) + catetory=line['category'] + categ_id=categories.get(catetory,None) + rt=get_model('clinic.staff.rotation').browse(db_id) + rt.write({ + 'level_id': level_id, + 'categ_id': categ_id, + }) + #print(line) + print("Done!") return diff --git a/netforce_clinic/models/staff.py b/netforce_clinic/models/staff.py index a8375e5..f0b9683 100644 --- a/netforce_clinic/models/staff.py +++ b/netforce_clinic/models/staff.py @@ -37,17 +37,20 @@ class Staff(Model): max_cycle=0 ot_per_cycle=0 level_id=None + categ_id=None for rotate in obj.rotations: if rotate.state=='approved': level_id=rotate.level_id.id wage=rotate.wage max_cycle=rotate.max_cycle ot_per_cycle=rotate.ot_per_cycle or 0 + categ_id=rotate.categ_id.id res[obj.id]={ 'wage': wage, 'max_cycle': max_cycle, 'ot_per_cycle': ot_per_cycle, 'level_id': level_id, + 'categ_id': categ_id, } return res @@ -82,9 +85,9 @@ class Staff(Model): if obj.last_name: name+=obj.last_name or "" if not obj.active: - name+='not_use' + name+='__' elif context.get('active'): - name+='not_use' + name+='__' res[obj.id]={ 'name': name, 'name_check': name.replace(" ",""), # remove all space for make sure @@ -126,7 +129,7 @@ class Staff(Model): "user_id": fields.Many2One("base.user","User",search=True), 'image': fields.File("Image"), 'note': fields.Text("Note"), - 'categ_id': fields.Many2One("clinic.staff.categ", "Category",search=True), + 'categ_id': fields.Many2One("clinic.staff.categ", "Category",function="_get_rotation",function_multi=True), 'level_id': fields.Many2One("clinic.staff.level", "Level", function="_get_rotation",function_multi=True), 'active': fields.Boolean("Active"), 'date': fields.Date("Register Date"),