54 lines
1.5 KiB
Python
54 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,
|
|
},
|
|
}
|
|
|
|
AccountPayment.register()
|