conv_bal
watcha.h@almacom.co.th 2015-01-13 14:56:30 +07:00
parent da14324956
commit 4c783eccd8
7 changed files with 43 additions and 16 deletions

View File

@ -19,6 +19,7 @@
<field name="req_fee" span="2" invisible="1"/> <field name="req_fee" span="2" invisible="1"/>
<!-- enable show_company=1 --> <!-- enable show_company=1 -->
<field name="company_id" span="2" invisible="1"/> <field name="company_id" span="2" invisible="1"/>
<field name="hct_include" span="2" invisible="1"/>
</group> </group>
<tabs> <tabs>
<tab string="General"> <tab string="General">
@ -32,8 +33,8 @@
<newline/> <newline/>
<field name="wt_start" span="2" attrs='{"required":[["state","=","waiting_treatment"]]}'/> <field name="wt_start" span="2" attrs='{"required":[["state","=","waiting_treatment"]]}'/>
<field name="wt_stop" span="2"/> <field name="wt_stop" span="2"/>
<field name="hct" span="2" onchange="onchange_hct"/> <field name="hct" span="2" onchange="onchange_hct" attrs='{"invisible":[["hct_include","=",false]]}'/>
<field name="hct_msg" span="4" readonly="1"/> <field name="hct_msg" span="4" readonly="1" attrs='{"invisible":[["hct_include","=",false]]}'/>
<newline/> <newline/>
<field name="bp_start" span="2"/> <field name="bp_start" span="2"/>
<field name="bp_stop" span="2"/> <field name="bp_stop" span="2"/>

View File

@ -4,14 +4,14 @@
<button string="Options" dropdown="1"> <button string="Options" dropdown="1">
<item string="Generate Visit" action="clinic_gen_visit"/> <item string="Generate Visit" action="clinic_gen_visit"/>
<item string="New Dialyzer" method="new_dialyzer"/> <item string="New Dialyzer" method="new_dialyzer"/>
<item string="Simple Address" method="simple_address"/> <!--<item string="Simple Address" method="simple_address"/>-->
</button> </button>
</head> </head>
<field name="number"/> <field name="number"/>
<field name="trt_no"/> <field name="trt_no"/>
<field name="type_id"/> <field name="type_id"/>
<field name="name"/> <field name="name"/>
<field name="hn"/> <!--<field name="hn"/>-->
<field name="reg_date"/> <field name="reg_date"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="categ_id"/> <field name="categ_id"/>

View File

@ -4,7 +4,7 @@
</head> </head>
<field name="reg_date"/> <field name="reg_date"/>
<field name="number"/> <field name="number"/>
<field name="hn_no"/> <!--<field name="hn_no"/>-->
<field name="trt_no"/> <field name="trt_no"/>
<field name="name"/> <field name="name"/>
<field name="department_id"/> <field name="department_id"/>

View File

@ -4,9 +4,16 @@
<item string="New Contact" method="new_contact"/> <item string="New Contact" method="new_contact"/>
</button> </button>
</head> </head>
<field name="name"/> <tabs>
<field name="code"/> <tab string="General">
<field name="contact_id"/> <field name="name"/>
<field name="default"/> <field name="code"/>
<field name="company_id" invisible="1"/> <field name="contact_id"/>
<field name="default"/>
<field name="company_id" invisible="1"/>
</tab>
<tab string="Other">
<field name="hct_include"/>
</tab>
</tabs>
</form> </form>

View File

@ -58,6 +58,15 @@ class HDCase(Model):
res[obj.id]=patient.type_id.id res[obj.id]=patient.type_id.id
return res return res
def _get_hct_include(self,ids,context={}):
res={}
for obj in self.browse(ids):
include=False
if obj.patient_id.type_id.hct_include:
include=True
res[obj.id]=include
return res
_fields={ _fields={
"number": fields.Char("Number",required=True,search=True), "number": fields.Char("Number",required=True,search=True),
'sickbed_id': fields.Many2One("clinic.sickbed",'Sickbed'), 'sickbed_id': fields.Many2One("clinic.sickbed",'Sickbed'),
@ -81,6 +90,7 @@ class HDCase(Model):
"ultrafittration": fields.Float("Ultrafittration (kg.)"), "ultrafittration": fields.Float("Ultrafittration (kg.)"),
"hct": fields.Integer("Hct",required=True), "hct": fields.Integer("Hct",required=True),
"hct_msg" : fields.Char(""), "hct_msg" : fields.Char(""),
'hct_include': fields.Boolean("HCT Include", function="_get_hct_include",store=True),
"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",required=True), "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",required=True),
"staffs": fields.One2Many("clinic.hd.case.staff","hd_case_id","Staffs"), "staffs": fields.One2Many("clinic.hd.case.staff","hd_case_id","Staffs"),
"comments": fields.One2Many("message","related_id","Comments"), "company_id": fields.Many2One("company","Company"), "comments": fields.One2Many("message","related_id","Comments"), "company_id": fields.Many2One("company","Company"),
@ -977,6 +987,7 @@ class HDCase(Model):
patient=get_model("clinic.patient").browse(patient_id) patient=get_model("clinic.patient").browse(patient_id)
vals['branch_id']=patient.branch_id.id vals['branch_id']=patient.branch_id.id
new_id=super().create(vals,**kw) new_id=super().create(vals,**kw)
self.function_store([new_id])
return new_id return new_id
def write(self,ids,vals,**kw): def write(self,ids,vals,**kw):
@ -1045,6 +1056,7 @@ class HDCase(Model):
sb.write({ sb.write({
'state': 'not_available', 'state': 'not_available',
}) })
self.function_store(ids)
super().write(ids,vals,**kw) super().write(ids,vals,**kw)
def approve(self,ids,context={}): def approve(self,ids,context={}):

View File

@ -3,13 +3,15 @@ import time
from netforce.model import Model, fields, get_model from netforce.model import Model, fields, get_model
from netforce.access import get_active_company, get_active_user, set_active_user from netforce.access import get_active_company, get_active_user, set_active_user
from . import utils
class Patient(Model): class Patient(Model):
_name="clinic.patient" _name="clinic.patient"
_string="Patient" _string="Patient"
_audit_log=True _audit_log=True
_multi_company=True _multi_company=True
_key=['name'] _key=['number']
def _get_age(self,ids,context): def _get_age(self,ids,context):
res={} res={}
@ -35,15 +37,15 @@ class Patient(Model):
def _get_hn_no(self,ids,context={}): def _get_hn_no(self,ids,context={}):
res={} res={}
for obj in self.browse(ids): for obj in self.browse(ids):
hn=''.join(x for x in (obj.hn or "") if x.isdigit()) hn=''.join(x for x in (obj.number or "") if x.isdigit())
res[obj.id]=hn res[obj.id]=hn
return res return res
_fields={ _fields={
'type_id': fields.Many2One("clinic.patient.type","Type",search=True,required=True), 'type_id': fields.Many2One("clinic.patient.type","Type",search=True,required=True),
"number": fields.Char("Number",required=True,search=True), "number": fields.Char("HN",required=True,search=True),
"trt_no": fields.Char("TRT. No",search=True), "trt_no": fields.Char("TRT. No",search=True),
"hn_no": fields.Char("HN",function="_get_hn_no"), "hn_no": fields.Char("HN Number",function="_get_hn_no"),
"hn": fields.Char("REF/HN",search=True), "hn": fields.Char("REF/HN",search=True),
"name": fields.Char("Name",required=True,search=True), "name": fields.Char("Name",required=True,search=True),
"reg_date": fields.Date("Register Date",required=False,search=True), "reg_date": fields.Date("Register Date",required=False,search=True),
@ -109,6 +111,11 @@ class Patient(Model):
return None return None
user_id=get_active_user() user_id=get_active_user()
set_active_user(1) set_active_user(1)
# reformat number: month-running num-year thai(2 digit)
monthnow=int(time.strftime("%m"))
yearnow=utils.date2thai(time.strftime("%Y-%m-%d"),"%(By)s")
num="%s-%s-%s"%(monthnow,num,yearnow)
res=self.search([["number","=",num]]) res=self.search([["number","=",num]])
set_active_user(user_id) set_active_user(user_id)
if not res: if not res:
@ -226,7 +233,6 @@ class Patient(Model):
def name_get(self,ids,context={}): def name_get(self,ids,context={}):
vals=[] vals=[]
for obj in self.browse(ids): for obj in self.browse(ids):
#name="%s [%s]"%(obj.name, obj.hn_no)
name=obj.name or '' name=obj.name or ''
if obj.hn_no: if obj.hn_no:
name+=" (HN: %s)"%obj.hn_no name+=" (HN: %s)"%obj.hn_no
@ -238,7 +244,7 @@ class Patient(Model):
if domain: if domain:
dom=[dom,domain] dom=[dom,domain]
ids1=self.search(dom) ids1=self.search(dom)
dom=[["hn","ilike","%"+name+"%"]] dom=[["number","ilike","%"+name+"%"]]
if domain: if domain:
dom=[dom,domain] dom=[dom,domain]
ids2=self.search(dom) ids2=self.search(dom)

View File

@ -11,6 +11,7 @@ class PatientType(Model):
"code": fields.Char("Code",required=True,search=True), "code": fields.Char("Code",required=True,search=True),
'contact_id': fields.Many2One("partner","Contact",domain=[['type','=','org']],search=True), 'contact_id': fields.Many2One("partner","Contact",domain=[['type','=','org']],search=True),
'default': fields.Boolean("Default"), 'default': fields.Boolean("Default"),
'hct_include': fields.Boolean("HCT Include"),
'company_id': fields.Many2One("company","Company"), 'company_id': fields.Many2One("company","Company"),
} }