]> git.parisson.com Git - teleforma.git/commitdiff
import: add payment to existing users
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 17 Mar 2021 11:53:31 +0000 (12:53 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 17 Mar 2021 11:53:31 +0000 (12:53 +0100)
teleforma/views/crfpa.py

index 6dc250c0ebc59e84f356974935fc8724374279fe..2377e5d9e6f71e6cc484ca04b0a63b5576b464f5 100644 (file)
@@ -427,37 +427,41 @@ class UserXLSBook(object):
         users = User.objects.filter(first_name=first_name, last_name=last_name, email=email)
 
         if not users:
-            print(last_name)
+            print(last_name + ' creating')
             username = get_unique_username(first_name, last_name)
             user = User(first_name=first_name, last_name=last_name, email=email, username=username)
             user.save()
-
             profile = Profile(user=user)
+            profile.save()
+            student = Student(user=user)
+            student.save()
+            if 'I - ' in training:
+                training = training.split(' - ')[1]
+                student.platform_only = True
+            student.trainings.add(Training.objects.get(code=training, period=period, platform_only=student.platform_only))
+            student.procedure = Course.objects.get(code=proc)
+            student.written_speciality = Course.objects.get(code=spe)
+            student.oral_1 = Course.objects.get(code=oral_1)
+            student.level = level
+            student.period = period
+            student.iej = IEJ.objects.get(name=iej)
+
+            student.save()
+
             profile.address = address
             profile.address_detail = address_detail
             profile.postal_code = cp
             profile.city = city
             profile.telephone = tel
+
             if birth:
                 try:
                     profile.birthday = self.date_str_to_date(birth)
                 except:
                     pass
+
             profile.save()
 
-            student = Student(user=user)
-            student.user = user
-            student.period = period
-            student.iej = IEJ.objects.get(name=iej)
-            student.save()
-            if 'I - ' in training:
-                training = training.split(' - ')[1]
-                student.platform_only = True
-            student.trainings.add(Training.objects.get(code=training, period=period, platform_only=student.platform_only))
-            student.procedure = Course.objects.get(code=proc)
-            student.written_speciality = Course.objects.get(code=spe)
-            student.oral_1 = Course.objects.get(code=oral_1)
-            student.level = level
             if register_date:
                 student.date_subscribed = self.date_str_to_datetime(register_date)
 
@@ -474,13 +478,20 @@ class UserXLSBook(object):
 
             student.save()
 
-            i = 24
-            for month in months_choices:
-                amount = row[i]
-                payment_type = row[i+1]
+        else:
+            print(last_name + ' updating')
+            user = users[0]
+            student = user.student.get()
+
+        i = 24
+        for month in months_choices:
+            amount = row[i]
+            payment_type = row[i+1]
+            payments = Payment.objects.filter(student=student, month=month[0])
+            if not payments and amount:
                 payment = Payment(student=student, value=float(amount), month=month[0], type=payment_type)
                 payment.save()
-                i += 2
+            i += 2
 
 
     def read(self, path, period):