conv_bal
watcha.h@almacom.co.th 2015-06-19 16:35:29 +07:00
parent 7071d8d5c8
commit 774c96225d
8 changed files with 58 additions and 18 deletions

View File

@ -15,7 +15,7 @@
<field name="last_name" required="1"/> <field name="last_name" required="1"/>
<field name="doctor_id" required="1"/> <field name="doctor_id" required="1"/>
<field name="department_id" required="1"/> <field name="department_id" required="1"/>
<field name="walkin"/> <field name="walkin" onchange="onchange_walkin"/>
<field name="vascular_acc"/> <field name="vascular_acc"/>
<field name="location" readonly="1"/> <field name="location" readonly="1"/>
<field name="active" invisible="1"/> <field name="active" invisible="1"/>

View File

@ -2,5 +2,6 @@
<field name="date" required="1" span="2"/> <field name="date" required="1" span="2"/>
<field name="staff_type" onchange="onchange_type" span="2"/> <field name="staff_type" onchange="onchange_type" span="2"/>
<field name="staff_id" domain='[["type","=",type]]' span="2"/> <field name="staff_id" domain='[["type","=",type]]' span="2"/>
<field name="department_id" span="2"/> <field name="branch_id" span="2"/>
<field name="department_id" domain='[["branch_id","=",branch_id]]' span="2"/>
</form> </form>

View File

@ -351,7 +351,7 @@ class Patient(Model):
datenow=time.strftime("%Y-%m-%d") datenow=time.strftime("%Y-%m-%d")
vdom=[ vdom=[
['patient_id','in',ids], ['patient_id','in',ids],
['visit_date','>',datenow], ['visit_date','>=',datenow],
['state','=','pending'], ['state','=','pending'],
['manual','=',False], ['manual','=',False],
] ]
@ -564,4 +564,14 @@ class Patient(Model):
return data return data
def onchange_walkin(self,context={}):
data=context['data']
if data['walkin']=='yes':
res=get_model('clinic.staff').search([['number','=','walkin'],['type','=','doctor']])
if res:
data['doctor_id']=res[0]
else:
data['doctor_id']=None
return data
Patient.register() Patient.register()

View File

@ -13,6 +13,7 @@ class ReportLaborCostDaily(Model):
"staff_type": fields.Selection([["doctor","Doctor"],["nurse","Nurse"],["staff","Staff"]],"Type"), "staff_type": fields.Selection([["doctor","Doctor"],["nurse","Nurse"],["staff","Staff"]],"Type"),
'staff_id': fields.Many2One("clinic.staff","Staff"), 'staff_id': fields.Many2One("clinic.staff","Staff"),
'department_id': fields.Many2One("clinic.department",'Department'), 'department_id': fields.Many2One("clinic.department",'Department'),
'branch_id': fields.Many2One("clinic.branch","Branch"),
} }
def default_get(self,field_names=None,context={},**kw): def default_get(self,field_names=None,context={},**kw):
@ -21,11 +22,13 @@ class ReportLaborCostDaily(Model):
staff_type=defaults.get("staff_type","doctor") staff_type=defaults.get("staff_type","doctor")
staff_id=int(defaults.get('staff_id', "0")) staff_id=int(defaults.get('staff_id', "0"))
department_id=int(defaults.get('department_id', "0")) department_id=int(defaults.get('department_id', "0"))
branch_id=int(defaults.get('branch_id', "0"))
res={ res={
'date': date, 'date': date,
'staff_type': staff_type, 'staff_type': staff_type,
'staff_id': staff_id and staff_id or None, 'staff_id': staff_id and staff_id or None,
'department_id': department_id and department_id or None, 'department_id': department_id and department_id or None,
'branch_id': branch_id and branch_id or None,
} }
print("res ", res) print("res ", res)
return res return res
@ -37,6 +40,7 @@ class ReportLaborCostDaily(Model):
date=defaults.get("date") date=defaults.get("date")
staff_id=defaults.get("staff_id") staff_id=defaults.get("staff_id")
staff_type=defaults.get("staff_type") staff_type=defaults.get("staff_type")
branch_id=defaults.get("branch_id")
dpt_id=defaults.get("department_id") dpt_id=defaults.get("department_id")
dom=[] dom=[]
if ids: if ids:
@ -44,6 +48,7 @@ class ReportLaborCostDaily(Model):
date=obj.date date=obj.date
staff_id=obj.staff_id.id staff_id=obj.staff_id.id
staff_type=obj.staff_type staff_type=obj.staff_type
branch_id=obj.branch_id.id
dpt_id=obj.department_id.id dpt_id=obj.department_id.id
dom.append(['date','>=',date]) dom.append(['date','>=',date])
dom.append(['date','<=',date]) dom.append(['date','<=',date])
@ -55,6 +60,8 @@ class ReportLaborCostDaily(Model):
dom.append(['staff_id','=',staff_id]) dom.append(['staff_id','=',staff_id])
if staff_type: if staff_type:
dom.append(['type','=',staff_type]) dom.append(['type','=',staff_type])
if branch_id:
dom.append(['labor_cost_id.cycle_item_id.branch_id','=',branch_id])
if dpt_id: if dpt_id:
dom.append(['labor_cost_id.cycle_item_id.department_id','=',dpt_id]) dom.append(['labor_cost_id.cycle_item_id.department_id','=',dpt_id])
print('dom ', dom) print('dom ', dom)

View File

@ -128,9 +128,10 @@ class ReportLaborCostDetail(Model):
qty=0 qty=0
if staff.type=='doctor': if staff.type=='doctor':
for hdcase in citem.hd_cases: for hdcase in citem.hd_cases:
doctor_id=hdcase.doctor_id.id if hdcase.state in ('waiting_payment','paid'):
if staff.id==doctor_id: doctor_id=hdcase.doctor_id.id
qty+=1 if staff.id==doctor_id:
qty+=1
elif staff.type=='nurse': elif staff.type=='nurse':
qty=citem.pt_total or 0 # qty of patient qty=citem.pt_total or 0 # qty of patient
else: else:
@ -141,6 +142,7 @@ class ReportLaborCostDetail(Model):
'staff_id': staff.id, 'staff_id': staff.id,
'staff_name': staff.name or "", 'staff_name': staff.name or "",
'staff_type': staff.type, 'staff_type': staff.type,
'department_id': department_id,
dpt.name: { dpt.name: {
'amt': 0, 'amt': 0,
'qty': 0, 'qty': 0,
@ -153,6 +155,7 @@ class ReportLaborCostDetail(Model):
'staff_id': staff.id, 'staff_id': staff.id,
'staff_name': staff.name or '', 'staff_name': staff.name or '',
'staff_type': staff.type, 'staff_type': staff.type,
'department_id': department_id,
dpt.name: { dpt.name: {
'amt': 0, 'amt': 0,
'qty': 0, 'qty': 0,
@ -199,7 +202,8 @@ class ReportLaborCostDetail(Model):
'date': kdate, 'date': kdate,
'staff_type': vals.get("staff_type"), 'staff_type': vals.get("staff_type"),
'staff_id': vals.get("staff_id"), 'staff_id': vals.get("staff_id"),
'labor_cost_id': vals.get("labor_cost_id") 'labor_cost_id': vals.get("labor_cost_id"),
'department_id': vals.get('department_id'),
} }
total_qty, total_amt=0, 0 total_qty, total_amt=0, 0
lvals['sub_lines']=[] lvals['sub_lines']=[]
@ -229,6 +233,8 @@ class ReportLaborCostDetail(Model):
# summary as footer # summary as footer
dpt_lines=[{'qty': 0, 'amt': 0} for dpt in dpts] dpt_lines=[{'qty': 0, 'amt': 0} for dpt in dpts]
for line in lines: for line in lines:
line['branch_id']=branch_id
line['department_id']=department_id
i=0 i=0
for sub_line in line['sub_lines']: for sub_line in line['sub_lines']:
dpt_lines[i]['qty']+=sub_line['qty'] or 0 dpt_lines[i]['qty']+=sub_line['qty'] or 0
@ -271,7 +277,8 @@ class ReportLaborCostDetail(Model):
'dpt_lines': dpt_lines, 'dpt_lines': dpt_lines,
'show_all': show_count <=1 and True or False, 'show_all': show_count <=1 and True or False,
} }
print('.... ', data['show_name']) print('department_id ', department_id)
print('branch_id ', branch_id)
return data return data
def onchange_date(self,context={}): def onchange_date(self,context={}):

View File

@ -142,8 +142,9 @@ class ReportLaborCostSummary(Model):
if staff.level_id: if staff.level_id:
level=get_model("clinic.staff.level").browse(staff.level_id.id) level=get_model("clinic.staff.level").browse(staff.level_id.id)
level_name=level.name or "" level_name=level.name or ""
if not staffs.get(staff.name): staff_name='%s %s'%(staff.first_name, staff.last_name)
staffs[staff.name]={ if not staffs.get(staff_name):
staffs[staff_name]={
'number': staff.number or '', 'number': staff.number or '',
'first_name': staff.first_name or "", 'first_name': staff.first_name or "",
'staff_id': staff.id, 'staff_id': staff.id,
@ -156,14 +157,14 @@ class ReportLaborCostSummary(Model):
'qty': qty, 'qty': qty,
}, },
} }
if not staffs[staff.name].get(dpt.name): if not staffs[staff_name].get(dpt.name):
staffs[staff.name].update({ staffs[staff_name].update({
dpt.name: { dpt.name: {
'amt': 0, 'amt': 0,
'qty': qty, 'qty': qty,
}}) }})
staffs[staff.name][dpt.name]['amt']+=amt staffs[staff_name][dpt.name]['amt']+=amt
staffs[staff.name][dpt.name]['qty']+=qty staffs[staff_name][dpt.name]['qty']+=qty
if not citems.get(citem.id): if not citems.get(citem.id):
qty=0 qty=0
@ -252,7 +253,13 @@ class ReportLaborCostSummary(Model):
# run no # run no
nlines=[] nlines=[]
no=1 no=1
for line in sorted(lines, key=lambda x: (x['staff_name'],x['first_name'])): sort_key='staff_name'
if staff_type=='nurse' and categ_id:
categ=get_model('clinic.staff.categ').browse(categ_id)
if categ.name in ("FT","HP"):
sort_key='number'
for line in sorted(lines, key=lambda x: (x[sort_key])):
line['no']=no line['no']=no
nlines.append(line) nlines.append(line)
no+=1 no+=1

View File

@ -79,7 +79,15 @@
</td> </td>
{{/each}} {{/each}}
<td style="text-align:right;"> <td style="text-align:right;">
<a href="#name=clinic_report_labor_cost_daily&defaults.date={{date}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}">{{currency total_qty zero=""}}</a> {{#if ../../department_id}}
<a href="#name=clinic_report_labor_cost_daily&defaults.date={{date}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}&defaults.department_id={{../../department_id}}&defaults.branch_id={{../../branch_id}}">{{currency total_qty zero=""}}</a>
{{else}}
{{#if ../../branch_id}}
<a href="#name=clinic_report_labor_cost_daily&defaults.date={{date}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}&defaults.branch_id={{../../branch_id}}">{{currency total_qty zero=""}}</a>
{{else}}
<a href="#name=clinic_report_labor_cost_daily&defaults.date={{date}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}">{{currency total_qty zero=""}}</a>
{{/if}}
{{/if}}
</td> </td>
<td style="text-align:right;">{{currency total_amt zero=""}}</th> <td style="text-align:right;">{{currency total_amt zero=""}}</th>
</tr> </tr>

View File

@ -19,8 +19,8 @@
</tr> </tr>
<tr> <tr>
<th rowspan="3">#</th> <th rowspan="3">#</th>
<th rowspan="3">รหัส</th>
{{#ifeq staff_type "nurse"}} {{#ifeq staff_type "nurse"}}
<th rowspan="3">รหัส</th>
<th rowspan="3">ชื่อ-สกุล</th> <th rowspan="3">ชื่อ-สกุล</th>
<th rowspan="3">ตำแหน่ง</th> <th rowspan="3">ตำแหน่ง</th>
<th rowspan="3">หมวดหมู่</th> <th rowspan="3">หมวดหมู่</th>
@ -38,8 +38,8 @@
{{#each lines }} {{#each lines }}
<tr> <tr>
<td>{{no}}</th> <td>{{no}}</th>
<td>{{number}}</th>
{{#ifeq ../staff_type "nurse"}} {{#ifeq ../staff_type "nurse"}}
<td>{{number}}</th>
<td> <td>
{{view "link" string=staff_name action="clinic_staff" action_options="mode=form" active_id=staff_id}} {{view "link" string=staff_name action="clinic_staff" action_options="mode=form" active_id=staff_id}}
</td> </td>