clinic/netforce_clinic/migrations/repost_invoice.py

42 lines
1.3 KiB
Python

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)
dom=[
#['department_id','=',2],
#['date','>=','2015-08-18'],
#['date','<=','2015-08-18'],
]
hdcase_ids=set()
for hdcase in get_model('clinic.hd.case').search_browse(dom):
reset=False
for inv in hdcase.invoices:
if inv.state=='waiting_payment':
inv.to_draft()
inv.delete()
reset=True
hdcase_ids.update({hdcase.id})
if reset:
for line in hdcase.lines:
line.write({
'state': 'draft',
})
ids=list(hdcase_ids)
for hdcase in get_model('clinic.hd.case').browse(ids):
print('remake_invoice ---> ', hdcase.number)
ctx={
'is_migrate': True,
}
hdcase.make_invoices(context=ctx)
print("Done!")
return True
Migration.register()