Projet

Général

Profil

« Précédent | Suivant » 

Révision c56057b4

Ajouté par Mikaël Ates il y a presque 10 ans

agenda: check in reccurrent event form that reccurrency bound dates won't exclude already_billed acts.

Voir les différences:

calebasse/agenda/forms.py
8 8

  
9 9
from ..dossiers.models import PatientRecord
10 10
from ..personnes.models import Worker
11
from ..actes.models import Act
11 12
from ..ressources.models import ActType
12 13
from ..middleware.request import get_request
13 14

  
......
153 154
            choices=Event.PERIODICITIES, required=True)
154 155

  
155 156
    def clean(self):
157
        '''
158
            Check that reccurrency bound dates
159
            won't exclude already_billed acts.
160
        '''
156 161
        cleaned_data = super(UpdatePeriodicAppointmentForm, self).clean()
157
        acts = self.instance.act_set.filter(is_billed=True).order_by('-date')
158
        if acts and cleaned_data.get('recurrence_end_date'):
159
            recurrence_end_date = cleaned_data['recurrence_end_date']
160
            if recurrence_end_date < acts[0].date:
162
        start_datetime = cleaned_data.get('start_datetime')
163
        if start_datetime:
164
            acts = Act.objects.filter(
165
                Q(parent_event=self.instance,
166
                    already_billed=True, date__lt=start_datetime) | \
167
                Q(parent_event__exception_to=self.instance,
168
                    already_billed=True, date__lt=start_datetime))
169
            if acts:
170
                self._errors['start_datetime'] = self.error_class([
171
                    u"La date de début doit être antérieure au premier acte déja facturé de la récurrence"])
172
        recurrence_end_date = cleaned_data.get('recurrence_end_date')
173
        if recurrence_end_date:
174
            acts = Act.objects.filter(
175
                Q(parent_event=self.instance,
176
                    already_billed=True, date__gt=recurrence_end_date) | \
177
                Q(parent_event__exception_to=self.instance,
178
                    already_billed=True, date__gt=recurrence_end_date))
179
            if acts:
161 180
                self._errors['recurrence_end_date'] = self.error_class([
162
                            u"La date doit être supérieur au dernier acte facturé de la récurrence"])
181
                    u"La date de fin doit être postérieure au dernier acte déja facturé de la récurrence"])
163 182
        return cleaned_data
164 183

  
165 184
class DisablePatientAppointmentForm(UpdateAppointmentForm):
......
279 298
        cleaned_data = super(PeriodicEventsSearchForm, self).clean()
280 299
        if cleaned_data.get('start_date') and cleaned_data.get('end_date'):
281 300
            if cleaned_data['start_date'] > cleaned_data['end_date']:
282
                raise forms.ValidationError(u'La date de début doit être supérieure à la date de fin')
301
                raise forms.ValidationError(u'La date de début doit être antérieure à la date de fin')
283 302
        return cleaned_data

Formats disponibles : Unified diff