clinic/netforce_clinic/migrations/repost_invoice.py

62 lines
2.1 KiB
Python
Raw Normal View History

2015-08-10 14:38:19 +00:00
from netforce.model import get_model
from netforce import migration
from netforce.access import set_active_user, set_active_company
class Migration(migration.Migration):
_name="clinic.repos.invoice"
_version="2.10.0"
def migrate(self):
set_active_user(1)
set_active_company(1)
2015-08-19 09:24:29 +00:00
dom=[
2015-08-19 11:39:20 +00:00
#['department_id','=',2],
#['date','>=','2015-08-18'],
#['date','<=','2015-08-18'],
2015-08-19 09:24:29 +00:00
]
hdcase_ids=set()
for hdcase in get_model('clinic.hd.case').search_browse(dom):
reset=False
2015-08-10 14:38:19 +00:00
for inv in hdcase.invoices:
2015-08-26 15:56:02 +00:00
if inv.state=='paid':
inv.write({
'state': 'waiting_payment',
})
for pm_line in get_model("account.payment.line").search_browse([['invoice_id','=',inv.id]]):
pm=pm_line.payment_id
pm.to_draft()
pm.delete()
inv.to_draft()
inv.delete()
elif inv.state=='waiting_payment':
2015-08-10 14:38:19 +00:00
inv.to_draft()
2015-08-19 09:24:29 +00:00
inv.delete()
reset=True
hdcase_ids.update({hdcase.id})
if reset:
for line in hdcase.lines:
line.write({
'state': 'draft',
2015-08-11 04:35:46 +00:00
})
2015-08-19 09:24:29 +00:00
ids=list(hdcase_ids)
2015-08-26 15:56:02 +00:00
2015-08-26 15:01:45 +00:00
for seq in get_model("sequence").search_browse([['type','in',['cust_invoice','clinic_invoice_noclaim']]]):
2015-08-26 15:56:02 +00:00
for run in seq.running:
run.delete()
2015-08-27 01:03:34 +00:00
dom2=[
['date','>=','2015-07-01'],
['state','=','waiting_payment'],
]
#for hdcase in get_model('clinic.hd.case').browse(ids):
for hdcase in get_model('clinic.hd.case').search_browse(dom2):
2015-08-19 09:24:29 +00:00
print('remake_invoice ---> ', hdcase.number)
ctx={
'is_migrate': True,
}
hdcase.make_invoices(context=ctx)
2015-08-26 15:01:45 +00:00
hdcase.post_invoices()
2015-08-11 04:35:46 +00:00
print("Done!")
2015-08-10 14:38:19 +00:00
return True
Migration.register()