migrate post invoice
parent
e20d25029f
commit
e26aa9de2c
|
@ -3,4 +3,8 @@
|
||||||
<field name="department_id" span="2"/>
|
<field name="department_id" span="2"/>
|
||||||
<field name="patient_partner_id" span="2"/>
|
<field name="patient_partner_id" span="2"/>
|
||||||
</field>
|
</field>
|
||||||
|
<field name="memo" position="after">
|
||||||
|
<field name="account_id" span="2"/>
|
||||||
|
<field name="hdcase_reconcile" span="2"/>
|
||||||
|
</field>
|
||||||
</inherit>
|
</inherit>
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<inherit inherit="fin_settings">
|
<inherit inherit="fin_settings">
|
||||||
|
<!--
|
||||||
<field name="rounding_account_id" position="after">
|
<field name="rounding_account_id" position="after">
|
||||||
<field name="acc_prod_match"/>
|
<field name="acc_prod_match"/>
|
||||||
</field>
|
</field>
|
||||||
|
-->
|
||||||
</inherit>
|
</inherit>
|
||||||
|
|
|
@ -9,18 +9,31 @@ class Migration(migration.Migration):
|
||||||
def migrate(self):
|
def migrate(self):
|
||||||
set_active_user(1)
|
set_active_user(1)
|
||||||
set_active_company(1)
|
set_active_company(1)
|
||||||
|
for hdcase_line in get_model('clinic.hd.case.line').search_browse([['description','=',None]]):
|
||||||
|
prod=hdcase_line.product_id
|
||||||
|
if prod:
|
||||||
|
hdcase_line.write({
|
||||||
|
'description': prod.name,
|
||||||
|
})
|
||||||
|
|
||||||
for hdcase in get_model('clinic.hd.case').search_browse([]):
|
for hdcase in get_model('clinic.hd.case').search_browse([]):
|
||||||
for inv in hdcase.invoices:
|
for inv in hdcase.invoices:
|
||||||
if inv.state=='waiting_payment':
|
if inv.state=='waiting_payment':
|
||||||
print('repost ---> ', inv.number)
|
print('hdcase:repost ---> ', inv.number)
|
||||||
inv.to_draft()
|
inv.to_draft()
|
||||||
|
inv.write({
|
||||||
|
'hdcase_reconcile': True,
|
||||||
|
})
|
||||||
inv.post()
|
inv.post()
|
||||||
print("Done!")
|
|
||||||
for shop in get_model('clinic.shop').search_browse([]):
|
for shop in get_model('clinic.shop').search_browse([]):
|
||||||
for inv in shop.invoices:
|
for inv in shop.invoices:
|
||||||
print('repost ---> ', inv.number)
|
print('shop:repost ---> ', inv.number)
|
||||||
inv.to_draft()
|
inv.to_draft()
|
||||||
|
inv.write({
|
||||||
|
'hdcase_reconcile': True,
|
||||||
|
})
|
||||||
inv.post()
|
inv.post()
|
||||||
|
print("Done!")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
Migration.register()
|
Migration.register()
|
||||||
|
|
|
@ -9,6 +9,7 @@ class AccountInvoice(Model):
|
||||||
'department_id': fields.Many2One("clinic.department","Department",search=True),
|
'department_id': fields.Many2One("clinic.department","Department",search=True),
|
||||||
'patient_partner_id': fields.Many2One("partner","Patient",search=True),
|
'patient_partner_id': fields.Many2One("partner","Patient",search=True),
|
||||||
'hdcase_credit': fields.Boolean("HD Case Credit"),
|
'hdcase_credit': fields.Boolean("HD Case Credit"),
|
||||||
|
'hdcase_reconcile': fields.Boolean("HD Case Reconcile"),
|
||||||
}
|
}
|
||||||
|
|
||||||
def _get_number(self,context={}):
|
def _get_number(self,context={}):
|
||||||
|
@ -240,13 +241,16 @@ class AccountInvoice(Model):
|
||||||
line["credit"]=-amt
|
line["credit"]=-amt
|
||||||
|
|
||||||
is_match=False
|
is_match=False
|
||||||
if settings.acc_prod_match and obj.type=='out':
|
if obj.hdcase_reconcile and obj.type=='out':
|
||||||
print("#POST: clinic customize")
|
print("#POST: clinic customize")
|
||||||
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
|
||||||
move_vals["lines"]=[]
|
move_vals["lines"]=[]
|
||||||
for line in group_lines:
|
for line in group_lines:
|
||||||
desc=line['description']
|
desc=line['description']
|
||||||
|
if not desc:
|
||||||
|
print("skip no description ", obj.number)
|
||||||
|
continue
|
||||||
ar_debit_id=None
|
ar_debit_id=None
|
||||||
#ar_credit_id=None
|
#ar_credit_id=None
|
||||||
# search from patient_type
|
# search from patient_type
|
||||||
|
@ -266,7 +270,6 @@ class AccountInvoice(Model):
|
||||||
if ar_debit_id:
|
if ar_debit_id:
|
||||||
break
|
break
|
||||||
if not ar_debit_id:
|
if not ar_debit_id:
|
||||||
import pdb; pdb.set_trace()
|
|
||||||
raise Exception("Missing AR Debit Account for product %s"%(desc), partner.id, partner.name)
|
raise Exception("Missing AR Debit Account for product %s"%(desc), partner.id, partner.name)
|
||||||
line_vals={
|
line_vals={
|
||||||
"description": desc,
|
"description": desc,
|
||||||
|
|
|
@ -681,6 +681,7 @@ class HDCase(Model):
|
||||||
"lines": [],
|
"lines": [],
|
||||||
"company_id": company_id,
|
"company_id": company_id,
|
||||||
'hdcase_credit': False,
|
'hdcase_credit': False,
|
||||||
|
'hdcase_reconcile': True,
|
||||||
}
|
}
|
||||||
vals["partner_id"]=partner.id
|
vals["partner_id"]=partner.id
|
||||||
vals['lines']=rmb_lines
|
vals['lines']=rmb_lines
|
||||||
|
@ -710,6 +711,7 @@ class HDCase(Model):
|
||||||
"company_id": company_id,
|
"company_id": company_id,
|
||||||
'partner_id':partner.id,
|
'partner_id':partner.id,
|
||||||
'hdcase_credit': True,
|
'hdcase_credit': True,
|
||||||
|
'hdcase_reconcile': True,
|
||||||
}
|
}
|
||||||
vals['lines']=normb_lines
|
vals['lines']=normb_lines
|
||||||
if patient_partner:
|
if patient_partner:
|
||||||
|
|
|
@ -333,6 +333,7 @@ class Shop(Model):
|
||||||
"currency_id": currency_id,
|
"currency_id": currency_id,
|
||||||
"company_id": company_id,
|
"company_id": company_id,
|
||||||
'partner_id': partner.id,
|
'partner_id': partner.id,
|
||||||
|
'hdcase_reconcile': True,
|
||||||
"lines": [],
|
"lines": [],
|
||||||
}
|
}
|
||||||
track_id=obj.branch_id.track_id.id
|
track_id=obj.branch_id.track_id.id
|
||||||
|
|
Loading…
Reference in New Issue