post-migration.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # -*- coding: utf-8 -*-
  2. # © 2016 Esther Martín - AvanzOSC
  3. # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
  4. def assign_contract_in_partner_calendar(cr):
  5. contracts = []
  6. sql = ("SELECT c.id as contract_id, r.id as partner_id, "
  7. "c.date_start, c.date_end "
  8. "FROM hr_contract c, res_partner r "
  9. "where c.employee_id = r.employee_id")
  10. cr.execute(sql)
  11. for contract in cr.fetchall():
  12. vals = {'contract_id': contract[0],
  13. 'partner': contract[1],
  14. 'date_start': contract[2],
  15. 'date_end': contract[3]}
  16. contracts.append(vals)
  17. for contract in contracts:
  18. if contract.get('date_end', False):
  19. cr.execute(("UPDATE res_partner_calendar_day "
  20. "set contract = %s "
  21. "where partner = %s "
  22. "and date >= '%s' "
  23. "and date <= '%s'") %
  24. (contract.get('contract_id'), contract.get('partner'),
  25. contract.get('date_start'), contract.get('date_end')))
  26. else:
  27. cr.execute(("UPDATE res_partner_calendar_day "
  28. "set contract = %s "
  29. "where partner = %s "
  30. "and date >= '%s'") %
  31. (contract.get('contract_id'), contract.get('partner'),
  32. contract.get('date_start')))
  33. def migrate(cr, version):
  34. if not version:
  35. return
  36. assign_contract_in_partner_calendar(cr)