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
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
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
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()