clinic/netforce_clinic/models/sequence.py

92 lines
3.6 KiB
Python

from netforce.model import Model, fields, get_model
from netforce.access import get_active_company, get_active_user
class Sequence(Model):
_inherit="sequence"
_fields={
'branch_id': fields.Many2One("clinic.branch","Branch"),
"type": fields.Selection([
["cust_invoice","Customer Invoice"],
["supp_invoice","Supplier Invoice"],
["cust_credit","Customer Credit Note"],
["supp_credit","Supplier Credit Note"],
["cust_debit","Customer Debit Note"],
["supp_debit","Supplier Debit Note"],
["pay_in","Incoming Payment"],
["pay_out","Outgoing Payment"],
["transfer","Transfer"],
["tax_no","Tax No"],
["wht_no","WHT No"],
["account_move","Journal Entry"],
["pick_in","Goods Receipt"],
["pick_internal","Goods Transfer"],
["pick_out","Goods Issue"],
["stock_count","Stock Count"],
["stock_lot","Lot / Serial Number"],
["stock_container","Container"],
["shipping_rates","Shipping Rates"],
["sale_quot","Sales Quotations"],
["sale_order","Sales Order"],
["ecom_sale_order","Ecommerce Sales Order"],
["purchase_order","Purchase Order"],
["purchase_request","Purchase Request"],
["pos_closure","POS Register Closure"],
["production","Production Order"],
["bom","Bill of Material"],
["service_item","Service Item"],
["job","Service Order"],
["service_contract","Service Contract"],
["employee","Employee"],
["payrun","Payrun"],
["leave_request","Leave Request"],
["expense","Expense Claim"],
["fixed_asset","Fixed Asset"],
["claim","Product Claims"],
["borrow","Product Borrowings"],
["clinic_patient","Patient"],
["clinic_staff","Staff"],
["clinic_visit","Visit"],
["clinic_hdcase","HD Case"],
["clinic_dlz","Dialyzer"],
["clinic_rdshop","RD Shop"],
["clinic_rdshop_credit","RD Shop Credit"],
["clinic_rdshop_cash","RD Shop Cash"],
["clinic_invoice_noclaim","Invoice No Claim"],
["other","Other"]],"Type",required=True,search=True),
}
def find_sequence(self,type=None,name=None,context={}):
print('name ', name, type, context)
if type and name:
dom=[["type","=",type],["name","=",name]]
elif type:
dom=[["type","=",type]]
elif name:
dom=[["name","=",name]]
company_id=get_active_company()
comp_dom=dom+[["company_id","=",company_id]]
user_id=get_active_user()
user=get_model('base.user').browse(user_id)
dpt=user.department_id
branch=user.branch_id
if context.get('branch_id'):
comp_dom=comp_dom+[["branch_id","=",context['branch_id']]]
elif dpt:
branch_id=dpt.branch_id.id
comp_dom=comp_dom+[["branch_id","=",branch_id]]
elif branch:
branch_id=branch.id
comp_dom=comp_dom+[["branch_id","=",branch_id]]
#elif context.get('branch_id'):
#comp_dom=comp_dom+[["branch_id","=",context['branch_id']]]
print('com_dom ', comp_dom)
res=self.search(comp_dom,order="id")
if res:
return res[0]
res=self.search(dom,order="id")
if res:
return res[0]
return None
Sequence.register()