improve report

conv_bal
watcha.h 2015-02-27 14:43:12 +07:00
parent ee291c7e87
commit 9b82b6f0b2
7 changed files with 70 additions and 22 deletions

View File

@ -1,5 +1,6 @@
<form model="clinic.matching.hdcase">
<field name="date" span="2"/>
<field name="date_from" onchange="onchange_date" span="2"/>
<field name="date_to" span="2"/>
<field name="file" span="3"/>
<field name="state" span="3"/>
</form>

View File

@ -1,6 +1,7 @@
<form model="clinic.staff.categ" show_company="1">
<field name="name"/>
<field name="type"/>
<field name="note"/>
<field name="parent_id" domain="[['type','=',type]]"/>
<field name="company_id" invisible="1"/>
</form>

View File

@ -1,5 +1,6 @@
<list model="clinic.staff.categ">
<field name="name"/>
<field name="note"/>
<field name="type"/>
<field name="parent_id"/>
</list>

View File

@ -8,17 +8,22 @@ class MatchingHDCase(Model):
_transient=True
_fields={
"date": fields.Date("Date", required=True),
"date_from": fields.Date("From", required=True),
"date_to": fields.Date("To", required=True),
'file': fields.File("File"),
'state': fields.Selection([["match","Math"],["not_match","Not Match"]],"State"),
}
def _get_date(self,context={}):
return time.strftime("%Y-%m-%d")
_defaults={
'date': _get_date,
}
def default_get(self,field_names=None,context={},**kw):
defaults=context.get("defaults",{})
datenow=time.strftime("%Y-%m-%d")
date_from=defaults.get('date_from',datenow)
date_to=defaults.get('date_to',datenow)
res={
'date_from': date_from,
'date_to': date_to,
}
return res
def get_rows(self,fpath=None):
if not fpath:
@ -57,13 +62,16 @@ class MatchingHDCase(Model):
def get_report_data(self,ids,context={}):
hdcases={}
date=time.strftime("%Y-%m-%d")
defaults=self.default_get(context=context)
date_from=defaults.get("date_from")
date_to=defaults.get("date_to")
lines=[]
state="all"
if ids:
obj=self.browse(ids)[0]
state=obj.state
date=obj.date
date_from=obj.date_from
date_to=obj.date_to
if obj.file:
fpath=get_file_path(obj.file)
rows=self.get_rows(fpath)
@ -105,8 +113,8 @@ class MatchingHDCase(Model):
name=name.upper()
products[name]=prod['id']
dom=[]
dom.append(['date',">=",obj.date])
dom.append(['date',"<=",obj.date])
dom.append(['date',">=",date_from])
dom.append(['date',"<=",date_to])
dom.append(['state','!=','cancelled'])
hdcases={}
hdcases2={}
@ -122,14 +130,15 @@ class MatchingHDCase(Model):
categ=prod.categ_id
if categ and line.reimbursable=='yes':
if categ.code=='EPO':
#prod_line.append((prod.name or "").upper())
prod_name=(prod.name or "").split("-")
if len(prod_name) > 1:
if len(prod_name) >= 1:
prod_name=prod_name[0]
prod_line.append(prod_name)
elif categ.code=='FEE':
fee_amt=line.amount or 0
prod_name='-'.join(prod_line)
prod_name=''
if prod_line:
prod_name='-'.join(prod_line)
key1='%s-%s-%s-%s'%(date,hn,prod_name,fee_amt)
hdcases[key1]={
'id': hdcase.id,
@ -214,8 +223,16 @@ class MatchingHDCase(Model):
lines.append(line_vals)
no=1
lines2=[]
total=0
total_match=0
total_unmatch=0
for line in sorted(lines,key=lambda x: x['hn']):
is_match=line.get('is_match',False)
if is_match:
total_match+=1
else:
total_unmatch+=1
total+=1
if state=='not_match' and is_match:
continue
elif state=='match' and not is_match:
@ -226,10 +243,23 @@ class MatchingHDCase(Model):
lines2.append(line)
no+=1
lines=lines2
date=''
if date_from==date_to:
date=date_from
data={
'lines': lines,
'date_from': date_from,
'date_to': date_to,
'date': date,
'total': total,
'total_match': total_match,
'total_unmatch': total_unmatch,
}
return data
def onchange_date(self,context={}):
data=context['data']
data['date_to']=data['date_from']
return data
MatchingHDCase.register()

View File

@ -110,14 +110,21 @@ class ClinicSetting(Model):
if user_id !=1:
print("Only admin!!")
return
for citem in get_model("clinic.cycle.item").search_browse([]):
for line in citem.lines:
nurse=line.nurse_id
level=nurse.level_id
if level:
line.write({
'level_id': level.id
for st in get_model("clinic.staff").search_browse([]):
level=st.level_id
if level:
if level.name=='TH':
st.write({
'categ_id': 3,
})
#for citem in get_model("clinic.cycle.item").search_browse([]):
#for line in citem.lines:
#nurse=line.nurse_id
#level=nurse.level_id
#if level:
#line.write({
#'level_id': level.id
#})
print("Done!")
def update_departments(self,ids,context={}):

View File

@ -12,6 +12,7 @@ class StaffCategory(Model):
"type": fields.Selection([("doctor","Doctor"),("nurse","Nurse"),('others','Others')],"Type"),
'parent_id': fields.Many2One("clinic.staff.categ","Parent"),
'company_id': fields.Many2One("company","Company"),
'note': fields.Text("Description"),
}
_defaults={

View File

@ -4,6 +4,13 @@
<!--<table class="table table-bordered">-->
<table class="table table-condensed table-striped">
<thead>
<tr>
<th colspan="15" style="text-align:center">
<span class="label label-primary">Total: {{total}}</span>
<span class="label label-success">Match: {{total_match}}</span>
<span class="label label-default">Not Match: {{total_unmatch}}</span>
</th>
</tr>
<tr>
<th colspan="10" style="text-align:center;background-color:#f9e37d;">Import File</th>
<th colspan="5" style="text-align:center;background-color:#2d6ed2;color:white">Netforce</th>