clinic/netforce_clinic/models/account_payment.py

55 lines
1.5 KiB
Python

from pprint import pprint
from netforce.model import Model, fields, get_model
class AccountPayment(Model):
_inherit="account.payment"
_fields={
'number': fields.Char("Number",required=True,search=True),
}
def _get_number(self,context={}):
type=context.get("type")
if type=="in":
seq_type="pay_in"
elif type=="out":
seq_type="pay_out"
else:
return
seq_id=get_model("sequence").find_sequence(type=seq_type,context=context) # force to use context
if not seq_id:
return None
while 1:
num=get_model("sequence").get_next_number(seq_id,context=context)
res=self.search([["number","=",num]])
if not res:
return num
get_model("sequence").increment_number(seq_id,context=context)
_defaults={
'number': _get_number,
}
def run_report(self,ids,context={}):
obj=self.browse(ids)[0]
hd_case_id=obj.related_id.id
hd_case=get_model("clinic.hd.case").browse(hd_case_id)
# TODO
# set payment_id on hd case
# send to action print form payment
hd_case.write({
'payment_id': obj.id,
})
return {
'next': {
'name': 'report_clinic_payment_form',
'refer_id': hd_case_id,
'payment_id': obj.id,
'convert': 'pdf',
},
}
AccountPayment.register()