show detail
parent
b1b71ff805
commit
37b9ce4315
|
@ -11,6 +11,7 @@
|
||||||
<field name="rate" onchange="onchange_vals"/>
|
<field name="rate" onchange="onchange_vals"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="pay_amount"/>
|
<field name="pay_amount"/>
|
||||||
|
<field name="cycle_item_id"/>
|
||||||
</tab>
|
</tab>
|
||||||
<tab string="Computation">
|
<tab string="Computation">
|
||||||
<field name="labor_cost_id"/>
|
<field name="labor_cost_id"/>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<list model="clinic.labor.cost.line">
|
<list model="clinic.labor.cost.line">
|
||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<field name="cycle_id"/>
|
<field name="cycle_id"/>
|
||||||
|
<field name="department_id"/>
|
||||||
<field name="staff_id"/>
|
<field name="staff_id"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
|
|
|
@ -25,6 +25,7 @@ class LaborCostLine(Model):
|
||||||
for obj in self.browse(ids):
|
for obj in self.browse(ids):
|
||||||
res[obj.id]={
|
res[obj.id]={
|
||||||
'pay_amount': round(obj.amount,0),
|
'pay_amount': round(obj.amount,0),
|
||||||
|
'cycle_item_id': obj.labor_cost_id.cycle_item_id.id,
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ class LaborCostLine(Model):
|
||||||
'rate': fields.Float("Rate",scale=2),
|
'rate': fields.Float("Rate",scale=2),
|
||||||
'amount': fields.Float("Amount",scale=2),
|
'amount': fields.Float("Amount",scale=2),
|
||||||
'pay_amount': fields.Float("Pay Amount",function="_get_all",function_multi=True),
|
'pay_amount': fields.Float("Pay Amount",function="_get_all",function_multi=True),
|
||||||
|
'cycle_item_id': fields.Many2One("clinic.cycle.item","Cycle Item",function="_get_all",function_multi=True),
|
||||||
'date': fields.Date("Date",search=True),
|
'date': fields.Date("Date",search=True),
|
||||||
'description': fields.Char("Description"),
|
'description': fields.Char("Description"),
|
||||||
'company_id': fields.Many2One('company','Company'),
|
'company_id': fields.Many2One('company','Company'),
|
||||||
|
@ -49,7 +51,7 @@ class LaborCostLine(Model):
|
||||||
_defaults={
|
_defaults={
|
||||||
"company_id": lambda *a: get_active_company(),
|
"company_id": lambda *a: get_active_company(),
|
||||||
}
|
}
|
||||||
_order="cycle_id,level_id"
|
_order="date,cycle_id,department_id"
|
||||||
|
|
||||||
def create(self,vals,**kw):
|
def create(self,vals,**kw):
|
||||||
new_id=super().create(vals,**kw)
|
new_id=super().create(vals,**kw)
|
||||||
|
|
|
@ -100,6 +100,10 @@ class ReportLaborCostOverTime(Model):
|
||||||
}
|
}
|
||||||
staffs[staff.name]['amount']+=amt # amount from formular
|
staffs[staff.name]['amount']+=amt # amount from formular
|
||||||
staffs[staff.name]['cycle_qty']+=1 # number of cycle
|
staffs[staff.name]['cycle_qty']+=1 # number of cycle
|
||||||
|
def replace_quote(dom=""):
|
||||||
|
dom=dom.replace("False","false")
|
||||||
|
dom=dom.replace("True","true")
|
||||||
|
return dom.replace("'","\"")
|
||||||
lines=[]
|
lines=[]
|
||||||
snames=sorted(staffs.keys()) #sort by staff name
|
snames=sorted(staffs.keys()) #sort by staff name
|
||||||
no=1
|
no=1
|
||||||
|
@ -115,12 +119,18 @@ class ReportLaborCostOverTime(Model):
|
||||||
ot_amount=ot_per_cycle*ot_qty
|
ot_amount=ot_per_cycle*ot_qty
|
||||||
net_pay=(vals['staff_wage'] or 0)+ot_amount
|
net_pay=(vals['staff_wage'] or 0)+ot_amount
|
||||||
net_diff=(vals['amount'] or 0)-net_pay
|
net_diff=(vals['amount'] or 0)-net_pay
|
||||||
|
dom=[
|
||||||
|
['date', '>=', date_from],
|
||||||
|
['date', '<=', date_to],
|
||||||
|
['staff_id','=', vals['staff_id']],
|
||||||
|
]
|
||||||
vals.update({
|
vals.update({
|
||||||
'no': no,
|
'no': no,
|
||||||
'ot_qty': ot_qty,
|
'ot_qty': ot_qty,
|
||||||
'ot_amount': ot_amount,
|
'ot_amount': ot_amount,
|
||||||
'net_pay': net_pay,
|
'net_pay': net_pay,
|
||||||
'net_diff': net_diff,
|
'net_diff': net_diff,
|
||||||
|
'action_options': 'mode=list&search_domain=%s&tab_no=0'%replace_quote('%s'%(dom)),
|
||||||
})
|
})
|
||||||
lines.append(vals)
|
lines.append(vals)
|
||||||
no+=1
|
no+=1
|
||||||
|
|
|
@ -161,8 +161,12 @@ class ClinicSetting(Model):
|
||||||
if user_id !=1:
|
if user_id !=1:
|
||||||
print("Only admin!!")
|
print("Only admin!!")
|
||||||
return
|
return
|
||||||
obj=self.browse(ids)[0]
|
for cost_line in get_model("clinic.labor.cost.line").search_browse([]):
|
||||||
obj.del_duplicate_staff()
|
cost_line.write({
|
||||||
|
'note': ' ',
|
||||||
|
})
|
||||||
|
#obj=self.browse(ids)[0]
|
||||||
|
#obj.del_duplicate_staff()
|
||||||
print("Done!")
|
print("Done!")
|
||||||
|
|
||||||
def del_duplicate_staff(self,ids,context={}):
|
def del_duplicate_staff(self,ids,context={}):
|
||||||
|
|
|
@ -29,8 +29,13 @@
|
||||||
<td style="text-align:right;">
|
<td style="text-align:right;">
|
||||||
<a href="#name=clinic_report_labor_cost_summary&defaults.date_from={{../date_from}}&defaults.date_to={{../date_to}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}">{{currency amount zero=""}}</a>
|
<a href="#name=clinic_report_labor_cost_summary&defaults.date_from={{../date_from}}&defaults.date_to={{../date_to}}&defaults.staff_type={{staff_type}}&defaults.staff_id={{staff_id}}">{{currency amount zero=""}}</a>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:right;">{{max_cycle}}</th>
|
<td style="text-align:right;">{{max_cycle}}</td>
|
||||||
|
<td style="text-align:right;">
|
||||||
|
{{view "link" string=cycle_qty action="clinic_labor_cost_item" action_options=action_options}}
|
||||||
|
</td>
|
||||||
|
<!--
|
||||||
<td style="text-align:right;">{{cycle_qty}}</th>
|
<td style="text-align:right;">{{cycle_qty}}</th>
|
||||||
|
-->
|
||||||
<td style="text-align:right;">{{ot_qty}}</th>
|
<td style="text-align:right;">{{ot_qty}}</th>
|
||||||
<td style="text-align:right;">{{currency ot_per_cycle zero=""}}</th>
|
<td style="text-align:right;">{{currency ot_per_cycle zero=""}}</th>
|
||||||
<td style="text-align:right;color:orange">{{currency ot_amount zero=""}}</th>
|
<td style="text-align:right;color:orange">{{currency ot_amount zero=""}}</th>
|
||||||
|
|
|
@ -3,3 +3,8 @@
|
||||||
- staff -> ok
|
- staff -> ok
|
||||||
- patient
|
- patient
|
||||||
|
|
||||||
|
> explain nurse
|
||||||
|
กรณีแก้ไขรายชื่อหมอให้ดูรายชื่อแพทย์ให้ดี
|
||||||
|
|
||||||
|
> note:
|
||||||
|
แก้ไขยาก หากมาเจอข้อผิดพลาดบางครั้ง
|
||||||
|
|
Loading…
Reference in New Issue