clinic/netforce_clinic/models/setting.py

130 lines
4.6 KiB
Python
Raw Normal View History

2014-09-11 03:21:52 +00:00
from netforce.model import Model, fields, get_model
2014-11-25 14:20:30 +00:00
from netforce.utils import get_file_path, get_data_path
2014-11-21 16:11:57 +00:00
from netforce.access import get_active_company
2014-09-11 03:21:52 +00:00
class ClinicSetting(Model):
_name="clinic.setting"
_string="Setting"
2014-12-03 11:40:37 +00:00
2014-09-11 03:21:52 +00:00
_fields={
2014-10-26 08:48:51 +00:00
"var_k": fields.Float("K"),
2014-10-27 14:17:22 +00:00
'file': fields.File("File"),
2014-11-21 02:39:26 +00:00
'levels': fields.One2Many("clinic.setting.level","setting_id","Levels"),
2014-11-26 11:22:17 +00:00
'products': fields.One2Many("clinic.setting.product","setting_id","Products"),
2014-11-27 15:14:31 +00:00
'invoice_policies': fields.One2Many("clinic.setting.policy","setting_id","Invoice Policies"),
2014-11-21 16:11:57 +00:00
'cost_per_case': fields.Float("Cost Per Case"),
'company_id': fields.Many2One("company", 'Company'),
2014-11-27 15:14:31 +00:00
'period_id': fields.Many2One("clinic.period","Period"),
2014-12-04 14:08:29 +00:00
'waiting_approval': fields.Boolean("Waiting Approval"), # HD Case
'real_time': fields.Boolean("Real Time"), # HD Case
'patient_type_id': fields.Many2One("clinic.patient.type","Default Type"), # Import payment
2014-12-21 18:00:54 +00:00
'imp_patient_type_id': fields.Many2One("clinic.patient.type","Import UC Type"), # Import payment
2014-12-04 14:08:29 +00:00
'find_dlz': fields.Boolean("Find Dialyzer After Confirm Visit"), # Visit
2014-12-14 11:15:14 +00:00
'stock_journal_id': fields.Many2One("stock.journal","Default Journal"),
2014-12-16 09:53:36 +00:00
'auto_gen': fields.Boolean("Auto Gen") # HD Case
2014-09-11 03:21:52 +00:00
}
2014-10-27 19:01:18 +00:00
2014-11-21 16:11:57 +00:00
_defaults={
"company_id": lambda *a: get_active_company(),
}
2014-11-25 14:20:30 +00:00
def onchange_line(self,context={}):
data=context['data']
path=context['path']
line=get_data_path(data,path,parent=True)
var_a=line['var_a'] or ''
var_b=line['var_b'] or ''
op=line['op'] or ''
line['formular']='%sX%s%s'%(var_a,op,var_b)
return data
2014-09-11 03:21:52 +00:00
2014-11-26 11:22:17 +00:00
def onchange_product(self,context={}):
data=context['data']
path=context['path']
line=get_data_path(data,path,parent=True)
product_id=line['product_id']
if product_id:
prod=get_model("product").browse(product_id)
uom=prod.uom_id
if not uom:
uom=get_model("uom").browse(1)
if not uom:
raise Exception("Not found uom 'Unit'")
line['uom_id']=uom.id
line['description']=prod.name
2014-11-27 15:14:31 +00:00
price=prod.sale_price or 0.0
line['price']=price
2014-12-21 02:54:45 +00:00
categ=prod.categ_id
if categ:
line['product_categ_id']=categ.id
2014-12-02 07:08:20 +00:00
qty=1
2014-11-27 15:14:31 +00:00
amt=qty*price
2014-11-26 11:22:17 +00:00
line['amount']=amt
return data
2014-11-27 15:14:31 +00:00
def onchange_setting_line(self,context={}):
data=context['data']
path=context['path']
line=get_data_path(data,path,parent=True)
qty=line['qty'] or 0
price=line['price'] or 0
amt=qty*price
line['amount']=amt
return data
2014-12-21 13:29:25 +00:00
def update_date(self,ids,context={}):
2014-12-21 17:24:08 +00:00
for inv in get_model("account.invoice").search_browse([]):
amount_total=0
for line in inv.lines:
amount_total+=line.amount
inv.write({
'amount_total': amount_total,
'amount_due': amount_total,
})
print("Done!")
2014-12-21 13:29:25 +00:00
#for hd_case in get_model("clinic.hd.case").search_browse([]):
#if hd_case.state!='waiting_treatment':
#continue
#for line in hd_case.lines:
#categ=line.product_categ_id
#if categ:
#if categ.code=='SRV':
#line.delete()
#for vs in get_model("clinic.visit").search_browse([]):
#if vs.state=='pending':
#vs.confirm()
#print(vs.number)
#obj=self.browse(ids)[0]
#for hd_case in get_model("clinic.hd.case").search_browse([]):
#number='/'
#if hd_case.number=='/':
#number=get_model("clinic.hd.case")._get_number()
#if hd_case.state=='waiting_treatment':
#hd_case.complete()
#date,time=hd_case.time_start.split(" ")
#hd_case.write({
#'date': date,
#'number': number,
#})
#for inv in hd_case.invoices:
#inv.write({
#'date': date,
#'due_date': date,
#})
#for pick in hd_case.pickings:
#pick.write({
#'date': date,
#})
#for exp in get_model('clinic.hd.case.expense').search_browse([]):
#exp.write({
#'date': exp.hd_case_id.date,
#})
#print('done')
2014-11-27 15:14:31 +00:00
2014-09-11 03:21:52 +00:00
ClinicSetting.register()