conv_bal
watcha.h 2015-03-18 08:39:03 +07:00
parent be291d21a2
commit 1a712b1203
8 changed files with 87 additions and 9 deletions

View File

@ -1,6 +1,7 @@
<inherit model="base.user" inherit="user_form"> <inherit model="base.user" inherit="user_form">
<field name="pin_code" position="after"> <field name="pin_code" position="after">
<field name="department_profile_id"/> <field name="department_profile_id"/>
<field name="branch_id"/>
<field name="old_profile_id"/> <field name="old_profile_id"/>
</field> </field>
</inherit> </inherit>

View File

@ -1,5 +1,3 @@
import time
from netforce.model import Model, fields, get_model from netforce.model import Model, fields, get_model
class AccountInvoice(Model): class AccountInvoice(Model):
@ -10,5 +8,45 @@ class AccountInvoice(Model):
'patient_partner_id': fields.Many2One("partner","Patient",search=True), 'patient_partner_id': fields.Many2One("partner","Patient",search=True),
} }
def _get_number(self,context={}):
defaults=context.get("defaults")
if defaults: # XXX
type=defaults.get("type")
inv_type=defaults.get("inv_type")
else:
type=context.get("type")
inv_type=context.get("inv_type")
seq_type=None
if type=="out":
if inv_type in ("invoice","prepay"):
seq_type="cust_invoice"
elif inv_type=="credit":
seq_type="cust_credit"
elif inv_type=="debit":
seq_type="cust_debit"
elif type=="in":
if inv_type in ("invoice","prepay"):
seq_type="supp_invoice"
elif inv_type=="credit":
seq_type="supp_credit"
elif inv_type=="debit":
seq_type="supp_debit"
if not seq_type:
return
seq_id=get_model("sequence").find_sequence(type=seq_type,context=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,
}
AccountInvoice.register() AccountInvoice.register()

View File

@ -4,8 +4,32 @@ class AccountPayment(Model):
_inherit="account.payment" _inherit="account.payment"
_fields={ _fields={
'rd_cust': fields.Boolean("RD Customize"), 'rd_cust': fields.Boolean("RD Customize"),
'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={}): def run_report(self,ids,context={}):
obj=self.browse(ids)[0] obj=self.browse(ids)[0]
hd_case_id=obj.related_id.id hd_case_id=obj.related_id.id

View File

@ -5,6 +5,7 @@ class User(Model):
_fields={ _fields={
'department_profile_id': fields.Many2One("clinic.department.profile","Department Profile"), 'department_profile_id': fields.Many2One("clinic.department.profile","Department Profile"),
'department_id': fields.Many2One("clinic.department","Current Department"), 'department_id': fields.Many2One("clinic.department","Current Department"),
'branch_id': fields.Many2One("clinic.branch","Branch"),
'old_profile_id': fields.Many2One('profile', "Old Profile"), 'old_profile_id': fields.Many2One('profile', "Old Profile"),
} }

View File

@ -10,8 +10,11 @@ class Login(Model):
user_id=get_active_user() user_id=get_active_user()
user=get_model('base.user').browse(user_id) user=get_model('base.user').browse(user_id)
department=user.department_id department=user.department_id
branch=user.branch_id
if department: if department:
cookies['company_name']='%s (%s)'%(cookies['company_name'], department.name or "") cookies['company_name']='%s (%s)'%(cookies['company_name'], department.name or "")
elif branch:
cookies['company_name']='%s (%s)'%(cookies['company_name'], branch.name or "")
return res return res
Login.register() Login.register()

View File

@ -171,10 +171,12 @@ class SelectCompany(Model):
'profile_id': pf_id, 'profile_id': pf_id,
}) })
res=super().select(ids,context) res=super().select(ids,context)
if department_name: cookies=res.get("cookies")
cookies=res.get("cookies") if cookies:
if cookies: if department_name:
cookies['company_name']='%s (%s)'%(cookies['company_name'], department_name) cookies['company_name']='%s (%s)'%(cookies['company_name'], department_name)
elif user.branch_id:
cookies['company_name']='%s (%s)'%(cookies['company_name'], user.branch_id.name or "")
return res return res
def get_select(self,context={}): def get_select(self,context={}):

View File

@ -64,11 +64,16 @@ class Sequence(Model):
user_id=get_active_user() user_id=get_active_user()
user=get_model('base.user').browse(user_id) user=get_model('base.user').browse(user_id)
dpt=user.department_id dpt=user.department_id
branch=user.branch_id
if dpt: if dpt:
branch_id=dpt.branch_id.id branch_id=dpt.branch_id.id
comp_dom=comp_dom+[["branch_id","=",branch_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'): elif context.get('branch_id'):
comp_dom=comp_dom+[["branch_id","=",context['branch_id']]] comp_dom=comp_dom+[["branch_id","=",context['branch_id']]]
print('com_dom ', comp_dom)
res=self.search(comp_dom,order="id") res=self.search(comp_dom,order="id")
if res: if res:
return res[0] return res[0]

View File

@ -273,6 +273,7 @@ class Shop(Model):
due_date=obj.date[1:10] # XXX due_date=obj.date[1:10] # XXX
context['type']='out' context['type']='out'
context['inv_type']='invoice' context['inv_type']='invoice'
context['branch_id']=obj.branch_id.id
cst=get_model('clinic.setting').browse(1) cst=get_model('clinic.setting').browse(1)
prod_acc=cst.get_product_account prod_acc=cst.get_product_account
partner=obj.contact_id partner=obj.contact_id
@ -310,8 +311,7 @@ class Shop(Model):
'account_id': account_id, 'account_id': account_id,
'ar_debit_id': ar_debit_id, 'ar_debit_id': ar_debit_id,
})) }))
inv_id=get_model("account.invoice").create(vals,context=context)
inv_id=get_model("account.invoice").create(vals,context)
inv=get_model("account.invoice").browse(inv_id) inv=get_model("account.invoice").browse(inv_id)
inv.post() inv.post()
obj.make_pickings() obj.make_pickings()
@ -390,6 +390,7 @@ class Shop(Model):
context={ context={
'pick_type': 'out', 'pick_type': 'out',
'journal_id': pick_vals['journal_id'], 'journal_id': pick_vals['journal_id'],
'branch_id': obj.branch_id.id,
} }
pick_id=picking_obj.create(pick_vals,context=context) pick_id=picking_obj.create(pick_vals,context=context)
pick=picking_obj.browse(pick_id) pick=picking_obj.browse(pick_id)
@ -406,7 +407,6 @@ class Shop(Model):
raise Exception("No Cash Account") raise Exception("No Cash Account")
if not income_account_id: if not income_account_id:
raise Exception("No Income Account") raise Exception("No Income Account")
company_id=get_active_company() company_id=get_active_company()
vals={ vals={
"partner_id": partner.id, "partner_id": partner.id,
@ -438,7 +438,11 @@ class Shop(Model):
'account_id': account_id, 'account_id': account_id,
})) }))
payment_id=get_model("account.payment").create(vals,context={"type":"in"}) context={
'type': 'in',
'branch_id': obj.branch_id.id,
}
payment_id=get_model("account.payment").create(vals,context=context)
payment=get_model('account.payment').browse(payment_id) payment=get_model('account.payment').browse(payment_id)
payment.post() payment.post()
obj.make_pickings() obj.make_pickings()