コード例 #1
0
ファイル: forms.py プロジェクト: nanyang1985/ebusiness.old
 def clean(self):
     count = 0
     project_members = []
     for form in self.forms:
         try:
             if form.cleaned_data:
                 member = form.cleaned_data.get("member")
                 start_date = form.cleaned_data.get("start_date")
                 end_date = form.cleaned_data.get("end_date")
                 project_members.append((member, start_date, end_date))
                 count += 1
         except AttributeError:
             pass
     for member, start_date, end_date in project_members:
         dates = [(s, e) for m, s, e in project_members
                  if m.pk == member.pk]
         if len(dates) > 1:
             for i, period in enumerate(dates):
                 start_date, end_date = period
                 if common.is_cross_date(dates, start_date, i):
                     raise forms.ValidationError(u"メンバー%sの開始日が重複している。" %
                                                 (member.__unicode__(), ))
                 if end_date and common.is_cross_date(dates, end_date, i):
                     raise forms.ValidationError(u"メンバー%sの終了日が重複している。" %
                                                 (member.__unicode__(), ))
コード例 #2
0
ファイル: forms.py プロジェクト: nanyang1985/ebusiness.old
 def clean(self):
     count = 0
     dates = []
     for form in self.forms:
         try:
             if form.cleaned_data:
                 start_date = form.cleaned_data.get("start_date")
                 end_date = form.cleaned_data.get("end_date")
                 dates.append((start_date, end_date))
                 count += 1
         except AttributeError:
             pass
     if count > 1:
         dates.sort(key=lambda date: date[0])
         for i, period in enumerate(dates):
             start_date, end_date = period
             if common.is_cross_date(dates, start_date, i):
                 raise forms.ValidationError(u"営業対象外期間の開始日が重複している。")
             if end_date and common.is_cross_date(dates, end_date, i):
                 raise forms.ValidationError(u"営業対象外期間の終了日が重複している。")
コード例 #3
0
 def clean(self):
     cleaned_data = super(InsuranceLevelPeriodForm, self).clean()
     start_date = cleaned_data.get('start_date', None)
     end_date = cleaned_data.get('end_date', None)
     if end_date and start_date > end_date:
         self.add_error('end_date', u"終了日は開始日の前になっている、開始日の以降に設定してください。")
     # 期間が重複されているかどうかをチェック
     dates = [(start_date, end_date)]
     if self.instance and self.instance.pk:
         queryset = models.InsuranceLevelPeriod.objects.exclude(pk=self.instance.pk)
     else:
         queryset = models.InsuranceLevelPeriod.objects.public_all()
     for obj in queryset:
         dates.append((obj.start_date, obj.end_date))
     if len(dates) > 1:
         dates.sort(key=lambda date: date[0])
         for i, period in enumerate(dates):
             start_date, end_date = period
             if common.is_cross_date(dates, start_date, i):
                 self.add_error('start_date', u"期間の開始日が重複している。")
             if end_date and common.is_cross_date(dates, end_date, i):
                 self.add_error('end_date', u"期間の終了日が重複している。")
     return cleaned_data
コード例 #4
0
 def clean(self):
     cleaned_data = super(BpContractForm, self).clean()
     member = cleaned_data.get('member', None)
     company = cleaned_data.get('company', None)
     start_date = cleaned_data.get('start_date', None)
     end_date = cleaned_data.get('end_date', None)
     if end_date and start_date > end_date:
         self.add_error('end_date', u"終了日は開始日の前になっている、開始日の以降に設定してください。")
     if not company and member and self.instance:
         self.instance.company = member.subcontractor
     # 契約期間が重複されているかどうかをチェック
     dates = [(start_date, end_date)]
     queryset = models.BpContract.objects.public_filter(member=member).exclude(pk=self.instance.pk)
     for contract in queryset:
         dates.append((contract.start_date, contract.end_date))
     if len(dates) > 1:
         dates.sort(key=lambda date: date[0])
         for i, period in enumerate(dates):
             start_date, end_date = period
             if common.is_cross_date(dates, start_date, i):
                 self.add_error('start_date', u"契約期間の開始日が重複している。")
             if end_date and common.is_cross_date(dates, end_date, i):
                 self.add_error('end_date', u"契約期間の終了日が重複している。")