diff --git a/netforce_clinic/layouts/clinic_cust_invoice_form.xml b/netforce_clinic/layouts/clinic_cust_invoice_form.xml
index f185557..fcc409b 100644
--- a/netforce_clinic/layouts/clinic_cust_invoice_form.xml
+++ b/netforce_clinic/layouts/clinic_cust_invoice_form.xml
@@ -3,4 +3,8 @@
+
+
+
+
diff --git a/netforce_clinic/layouts/fin_account_settings.xml b/netforce_clinic/layouts/fin_account_settings.xml
index e6ae90d..498c3bd 100644
--- a/netforce_clinic/layouts/fin_account_settings.xml
+++ b/netforce_clinic/layouts/fin_account_settings.xml
@@ -1,5 +1,7 @@
+
diff --git a/netforce_clinic/migrations/repost_invoice.py b/netforce_clinic/migrations/repost_invoice.py
index 40b2b92..401fb53 100644
--- a/netforce_clinic/migrations/repost_invoice.py
+++ b/netforce_clinic/migrations/repost_invoice.py
@@ -9,18 +9,31 @@ class Migration(migration.Migration):
def migrate(self):
set_active_user(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 inv in hdcase.invoices:
if inv.state=='waiting_payment':
- print('repost ---> ', inv.number)
+ print('hdcase:repost ---> ', inv.number)
inv.to_draft()
+ inv.write({
+ 'hdcase_reconcile': True,
+ })
inv.post()
- print("Done!")
for shop in get_model('clinic.shop').search_browse([]):
for inv in shop.invoices:
- print('repost ---> ', inv.number)
+ print('shop:repost ---> ', inv.number)
inv.to_draft()
+ inv.write({
+ 'hdcase_reconcile': True,
+ })
inv.post()
+ print("Done!")
return True
Migration.register()
diff --git a/netforce_clinic/models/account_invoice.py b/netforce_clinic/models/account_invoice.py
index 7e40169..817f7dd 100644
--- a/netforce_clinic/models/account_invoice.py
+++ b/netforce_clinic/models/account_invoice.py
@@ -9,6 +9,7 @@ class AccountInvoice(Model):
'department_id': fields.Many2One("clinic.department","Department",search=True),
'patient_partner_id': fields.Many2One("partner","Patient",search=True),
'hdcase_credit': fields.Boolean("HD Case Credit"),
+ 'hdcase_reconcile': fields.Boolean("HD Case Reconcile"),
}
def _get_number(self,context={}):
@@ -240,13 +241,16 @@ class AccountInvoice(Model):
line["credit"]=-amt
is_match=False
- if settings.acc_prod_match and obj.type=='out':
+ if obj.hdcase_reconcile and obj.type=='out':
print("#POST: clinic customize")
cst=get_model('clinic.setting').browse(1)
prod_acc=cst.get_product_account
move_vals["lines"]=[]
for line in group_lines:
desc=line['description']
+ if not desc:
+ print("skip no description ", obj.number)
+ continue
ar_debit_id=None
#ar_credit_id=None
# search from patient_type
@@ -266,7 +270,6 @@ class AccountInvoice(Model):
if ar_debit_id:
break
if not ar_debit_id:
- import pdb; pdb.set_trace()
raise Exception("Missing AR Debit Account for product %s"%(desc), partner.id, partner.name)
line_vals={
"description": desc,
diff --git a/netforce_clinic/models/hd_case.py b/netforce_clinic/models/hd_case.py
index 787d705..82ecec2 100644
--- a/netforce_clinic/models/hd_case.py
+++ b/netforce_clinic/models/hd_case.py
@@ -681,6 +681,7 @@ class HDCase(Model):
"lines": [],
"company_id": company_id,
'hdcase_credit': False,
+ 'hdcase_reconcile': True,
}
vals["partner_id"]=partner.id
vals['lines']=rmb_lines
@@ -710,6 +711,7 @@ class HDCase(Model):
"company_id": company_id,
'partner_id':partner.id,
'hdcase_credit': True,
+ 'hdcase_reconcile': True,
}
vals['lines']=normb_lines
if patient_partner:
diff --git a/netforce_clinic/models/shop.py b/netforce_clinic/models/shop.py
index 028d799..41467df 100644
--- a/netforce_clinic/models/shop.py
+++ b/netforce_clinic/models/shop.py
@@ -333,6 +333,7 @@ class Shop(Model):
"currency_id": currency_id,
"company_id": company_id,
'partner_id': partner.id,
+ 'hdcase_reconcile': True,
"lines": [],
}
track_id=obj.branch_id.track_id.id