add report invoice matching

conv_bal
watcha.h 2015-03-13 07:44:12 +07:00
parent e358bea6c9
commit 4dc53d6ae3
10 changed files with 71 additions and 8 deletions

View File

@ -0,0 +1,6 @@
<action>
<field name="type">report_xls</field>
<field name="model">clinic.matching.payment</field>
<field name="method">get_data_match</field>
<field name="template">matching_payment_invoice</field>
</action>

View File

@ -1,6 +1,6 @@
<action>
<field name="type">report_xls</field>
<field name="model">clinic.matching.payment</field>
<field name="method">get_data</field>
<field name="template">matching_payment_invoice_unmatch</field>
<field name="method">get_data_unmatch</field>
<field name="template">matching_payment_invoice</field>
</action>

View File

@ -2,6 +2,7 @@
<head>
<field name="state"/>
<button string="Print" dropdown="1" icon="print">
<item string="Invoice Match" action="clinic_matching_payment_match_invoice"/>
<item string="Invoice Unmatch" action="clinic_matching_payment_unmatch_invoice"/>
</button>
<button string="Options" dropdown="1">

View File

@ -68,6 +68,7 @@ class Department(Model):
'perms': perms,
'other_perms': [('set',other_perms)],
'login_company_id': get_active_company(),
'home_action': 'clinic_board',
})
print("create profile %s"%(code))
return profile_id

View File

@ -563,7 +563,44 @@ class MatchingPayment(Model):
super().write(ids,vals,**kw)
self.function_store(ids)
def get_data(self,context={}):
def get_data_match(self,context={}):
ref_id=int(context.get("refer_id","0"))
obj=self.browse(ref_id)
inv_match_ids=[]
for line in obj.lines:
invoice=line.invoice_id
if invoice and line.state=='match':
inv_match_ids.append(invoice.id)
dom=[
['partner_id','=',obj.partner_id.id],
['date', '>=', obj.date_from],
['date', '<=', obj.date_to],
['state','=','waiting_payment'],
]
lines=[]
no=1
for invoice in get_model('account.invoice').search_browse(dom):
if invoice.id not in inv_match_ids:
continue
vals={
'no': no,
'date': invoice.date,
'number': invoice.number,
'ref': invoice.ref,
'amount_due': invoice.amount_due or 0,
}
lines.append(vals)
no+=1
data={
'ptype': obj.patient_type_id.name or "",
'title': 'Invoice Match',
'lines': lines,
'date_from': obj.date_from,
'date_to': obj.date_to,
}
return data
def get_data_unmatch(self,context={}):
ref_id=int(context.get("refer_id","0"))
obj=self.browse(ref_id)
inv_match_ids=[]
@ -592,6 +629,8 @@ class MatchingPayment(Model):
lines.append(vals)
no+=1
data={
'ptype': obj.patient_type_id.name or "",
'title': 'Invoice Unmatch',
'lines': lines,
'date_from': obj.date_from,
'date_to': obj.date_to,
@ -606,7 +645,16 @@ class MatchingPayment(Model):
'mode': 'form',
'active_id': obj.id,
},
#'flash': 'TODO',
}
def print_invoice_match(self,ids,context={}):
obj=self.browse(ids)[0]
return {
'next':{
'name': 'clinic_matching_payment',
'mode': 'form',
'active_id': obj.id,
},
}
MatchingPayment.register()

View File

@ -83,6 +83,9 @@ class ReportAccountHDCaseSummary(Model):
lines=[]
for hdcase in get_model("clinic.hd.case").search_browse(dom):
items={}
mdc_name=(hdcase.epo or "").split("-")
if mdc_name:
mdc_name=mdc_name[0].title()
for line in hdcase.lines:
amt=line.amount or 0
categ=line.product_categ_id
@ -117,6 +120,7 @@ class ReportAccountHDCaseSummary(Model):
'cycle_item_id': cycle_item.id,
'pm_number': pm_number,
'inv_number': inv_number,
'mdc_name': mdc_name,
}
for code, item in items.items():
vals.update({

View File

@ -30,6 +30,7 @@
<th>ค่ายา</th>
<th>ค่าฉีดยา</th>
<th>HCT</th>
<th>ยา</th>
{{#ifeq reimbursable "no"}}
<th>Rc.</th>
<th>Inv.</th>
@ -53,6 +54,7 @@
<td>{{currency epo zero=""}}</td>
<td>{{currency srv zero=""}}</td>
<td>{{hct}}</td>
<td>{{mdc_name}}</td>
{{#ifeq ../reimbursable "no"}}
<td>{{pm_number}}</td>
<td>{{inv_number}}</td>

View File

@ -1,7 +1,8 @@
- sickbed -> can not see sickbed because mix patient
- permission
- sickbed -> can not see sickbed because mix patient
- fixme:
- see deparment from sickbed => hd_case => and update department of patient (manymany)
hd case => can not click next page
- hd case => can not click next page
report cycle item :
- sunanna can not see