paid invoice on hdcase
parent
25e453232a
commit
1062124931
|
@ -55,6 +55,7 @@
|
||||||
<field name="cash_account_id"/>
|
<field name="cash_account_id"/>
|
||||||
<field name="income_account_id" string="Account Receivable"/>
|
<field name="income_account_id" string="Account Receivable"/>
|
||||||
<field name="import_account_id"/>
|
<field name="import_account_id"/>
|
||||||
|
<field name="hdcase_payment_account_id"/>
|
||||||
</tab>
|
</tab>
|
||||||
<tab string="Reporting">
|
<tab string="Reporting">
|
||||||
<field name="helper_categ_id"/>
|
<field name="helper_categ_id"/>
|
||||||
|
|
|
@ -135,6 +135,7 @@
|
||||||
<list colors='{"#9f9":[["state","=","paid"]]}'>
|
<list colors='{"#9f9":[["state","=","paid"]]}'>
|
||||||
<head>
|
<head>
|
||||||
<button string="Print" action="clinic_hdcase_invoice_print" action_options="convert=pdf" icon="print"/>
|
<button string="Print" action="clinic_hdcase_invoice_print" action_options="convert=pdf" icon="print"/>
|
||||||
|
<button string="Pay" method="pay_invoice" type="success"/>
|
||||||
</head>
|
</head>
|
||||||
<field name="number"/>
|
<field name="number"/>
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
|
|
|
@ -434,4 +434,36 @@ class AccountInvoice(Model):
|
||||||
data['signature']=get_file_path(cst.signature)
|
data['signature']=get_file_path(cst.signature)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def pay_invoice(self, ids, context={}):
|
||||||
|
paid_inv=[]
|
||||||
|
for obj in self.browse(ids):
|
||||||
|
if obj.state!='waiting_payment':
|
||||||
|
continue
|
||||||
|
rel=obj.related_id
|
||||||
|
if rel and rel._model=='clinic.hd.case':
|
||||||
|
clinic_setting=get_model("clinic.setting").browse(1)
|
||||||
|
if not clinic_setting.hdcase_payment_account_id:
|
||||||
|
raise Exception("Missing HDCase Payment Account in setting!")
|
||||||
|
inv_pm_id=get_model("invoice.payment").create({
|
||||||
|
'date': time.strftime("%Y-%m-%d"),
|
||||||
|
'invoice_id': obj.id,
|
||||||
|
'account_id': clinic_setting.hdcase_payment_account_id.id,
|
||||||
|
'ref': rel.number,
|
||||||
|
'amount': obj.amount_due,
|
||||||
|
})
|
||||||
|
inv_pm=get_model("invoice.payment").browse(inv_pm_id)
|
||||||
|
inv_pm.add_payment(context)
|
||||||
|
for pm_line in obj.payments:
|
||||||
|
pm=pm_line.payment_id
|
||||||
|
pm.write({
|
||||||
|
'related_id': "clinic.hd.case,%s"%rel.id,
|
||||||
|
})
|
||||||
|
paid_inv.append(obj.number)
|
||||||
|
if not paid_inv:
|
||||||
|
raise Exception("Nothing to paid!")
|
||||||
|
return {
|
||||||
|
'flash': 'Invoice: %s has been paid'%(','.join(paid_inv)),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
AccountInvoice.register()
|
AccountInvoice.register()
|
||||||
|
|
|
@ -58,6 +58,7 @@ class ClinicSetting(Model):
|
||||||
"cash_account_id": fields.Many2One("account.account","Cash Account",multi_company=True),
|
"cash_account_id": fields.Many2One("account.account","Cash Account",multi_company=True),
|
||||||
"income_account_id": fields.Many2One("account.account","Income Account",multi_company=True),
|
"income_account_id": fields.Many2One("account.account","Income Account",multi_company=True),
|
||||||
"import_account_id": fields.Many2One("account.account","Import Account",multi_company=True),
|
"import_account_id": fields.Many2One("account.account","Import Account",multi_company=True),
|
||||||
|
"hdcase_payment_account_id": fields.Many2One("account.account","HDCase Payment Account",multi_company=True),
|
||||||
'helper_categ_id': fields.Many2One("clinic.staff.categ","Helper Category"),
|
'helper_categ_id': fields.Many2One("clinic.staff.categ","Helper Category"),
|
||||||
'base_salary_day': fields.Float("Base Salary Day"),
|
'base_salary_day': fields.Float("Base Salary Day"),
|
||||||
'next_date': fields.DateTime("Next Gen"),
|
'next_date': fields.DateTime("Next Gen"),
|
||||||
|
|
Loading…
Reference in New Issue