diff --git a/apps/establishment/management/commands/update_employee.py b/apps/establishment/management/commands/update_employee.py new file mode 100644 index 00000000..dfe8b5a0 --- /dev/null +++ b/apps/establishment/management/commands/update_employee.py @@ -0,0 +1,37 @@ +from django.core.management.base import BaseCommand +from django.db import connections +from establishment.management.commands.add_position import namedtuplefetchall +from establishment.models import Employee +from django.db.models import Q + + +class Command(BaseCommand): + help = 'Add employee from old db to new db.' + + def employees_sql(self): + with connections['legacy'].cursor() as cursor: + cursor.execute(''' + select t.profile_id, t.name + from + ( + select + DISTINCT + a.profile_id, + trim(CONCAT(p.firstname, ' ', p.lastname) + ) as name + from affiliations as a + join profiles p on p.id = a.profile_id + ) t + where t.name is not null + ''') + return namedtuplefetchall(cursor) + + def handle(self, *args, **options): + objects = [] + for e in self.employees_sql(): + empl = Employee.objects.filter(old_id=e.profile_id) + if empl.exists(): + empl.name = e.name + empl.save() + + self.stdout.write(self.style.WARNING(f'Update employee name objects.'))