Пример #1
0
    def clean_quota(self, data):

        volontario = data.get('volontario', None)
        riduzione = data.get('riduzione', None)
        importo = data.get('importo', None)
        data_versamento = data.get('data_versamento', None)
        if not volontario or not data_versamento or not importo:
            return data

        anno_corrente = data_versamento.year

        try:
            tesseramento = Tesseramento.objects.get(anno=anno_corrente)
        except Tesseramento.DoesNotExist:
            tesseramento = None

        if tesseramento:
            if importo < tesseramento.importo_quota_volontario(riduzione):
                self.add_error('importo', 'L\'importo minimo per il %d e\' di EUR %s.' % (
                    anno_corrente, testo_euro(tesseramento.importo_quota_volontario(riduzione))
                ))

            elif data_versamento.year != anno_corrente or data_versamento > now().date():
                self.add_error('data_versamento', 'La data di versamento deve essere nel %d e '
                                                  'non può essere nel futuro.' % anno_corrente)

            elif not Tesseramento.aperto_anno(
                    data_versamento, volontario.iv, volontario.volontario_da_meno_di_un_anno
            ):
                if volontario.iv:
                    data_fine = tesseramento.fine_soci_iv
                elif volontario.volontario_da_meno_di_un_anno:
                    data_fine = tesseramento.fine_soci_nv
                else:
                    data_fine = tesseramento.fine_soci
                if data_fine:
                    self.add_error('data_versamento',
                                   "Spiacente, non è possibile registrare una "
                                   "quota con data di versamento successiva al "
                                   "%s" % data_fine)
                else:
                    self.add_error('data_versamento',
                                   "Spiacente, non è possibile registrare una "
                                   "quota perché il tesseramento %s è chiuso" % anno_corrente)

            elif tesseramento.pagante(volontario, attivi=True, ordinari=False):
                self.add_error('volontario', 'Questo volontario ha già pagato la Quota '
                                             'associativa per l\'anno %d' % anno_corrente)

            elif not tesseramento.non_pagante(volontario, attivi=True, ordinari=False):
                self.add_error('volontario', 'Questo volontario non è passibile al pagamento '
                                             'della Quota associativa come Volontario presso '
                                             'una delle tue Sedi, per l\'anno %d.' % anno_corrente)

        return data
Пример #2
0
    def clean_quota(self, data):

        volontario = data.get('volontario', None)
        riduzione = data.get('riduzione', None)
        importo = data.get('importo', None)
        data_versamento = data.get('data_versamento', None)
        if not volontario or not data_versamento or not importo:
            return data

        anno_corrente = data_versamento.year

        try:
            tesseramento = Tesseramento.objects.get(anno=anno_corrente)
        except Tesseramento.DoesNotExist:
            tesseramento = None

        if tesseramento:
            if importo < tesseramento.importo_quota_volontario(riduzione):
                self.add_error('importo', 'L\'importo minimo per il %d e\' di EUR %s.' % (
                    anno_corrente, testo_euro(tesseramento.importo_quota_volontario(riduzione))
                ))

            elif data_versamento.year != anno_corrente or data_versamento > now().date():
                self.add_error('data_versamento', 'La data di versamento deve essere nel %d e '
                                                  'non può essere nel futuro.' % anno_corrente)

            elif not Tesseramento.aperto_anno(
                    data_versamento, volontario.iv, volontario.volontario_da_meno_di_un_anno
            ):
                if volontario.iv:
                    data_fine = tesseramento.fine_soci_iv
                elif volontario.volontario_da_meno_di_un_anno:
                    data_fine = tesseramento.fine_soci_nv
                else:
                    data_fine = tesseramento.fine_soci
                if data_fine:
                    self.add_error('data_versamento',
                                   "Spiacente, non è possibile registrare una "
                                   "quota con data di versamento successiva al "
                                   "%s" % data_fine)
                else:
                    self.add_error('data_versamento',
                                   "Spiacente, non è possibile registrare una "
                                   "quota perché il tesseramento %s è chiuso" % anno_corrente)

            elif tesseramento.pagante(volontario, attivi=True, ordinari=False):
                self.add_error('volontario', 'Questo volontario ha già pagato la Quota '
                                             'associativa per l\'anno %d' % anno_corrente)

            elif not tesseramento.non_pagante(volontario, attivi=True, ordinari=False):
                self.add_error('volontario', 'Questo volontario non è passibile al pagamento '
                                             'della Quota associativa come Volontario presso '
                                             'una delle tue Sedi, per l\'anno %d.' % anno_corrente)

        return data
Пример #3
0
    def clean(self):
        data = self.cleaned_data
        tesseramento = Tesseramento.ultimo_tesseramento()
        if (self.cleaned_data['tipo_ricevuta'] == Quota.QUOTA_SOSTENITORE and
                self.cleaned_data['importo'] < tesseramento.quota_sostenitore):
            self.add_error(
                'importo',
                'L\'importo minimo per la quota sostenitore per l\'anno {} è di {} €'
                .format(tesseramento.anno, tesseramento.quota_sostenitore))

        return data
Пример #4
0
    def clean(self):
        data = self.cleaned_data
        tesseramento = Tesseramento.ultimo_tesseramento()
        if (self.cleaned_data['tipo_ricevuta'] == Quota.QUOTA_SOSTENITORE and
                self.cleaned_data['importo'] < tesseramento.quota_sostenitore):
            self.add_error(
                'importo', 'L\'importo minimo per la quota sostenitore per l\'anno {} è di {} €'.format(
                    tesseramento.anno, tesseramento.quota_sostenitore
                )
            )

        return data
Пример #5
0
 def __init__(self, *args, **kwargs):
     super(ModuloElencoRicevute, self).__init__(*args, **kwargs)
     self.fields['anno'].choices = Tesseramento.anni_scelta()
     self.fields['anno'].initial = Tesseramento.ultimo_anno()
Пример #6
0
 def __init__(self, *args, **kwargs):
     super(ModuloElencoRicevute, self).__init__(*args, **kwargs)
     self.fields['anno'].choices = Tesseramento.anni_scelta()
     self.fields['anno'].initial = Tesseramento.ultimo_anno()