def excel_colonne(self): anno = self.modulo_riempito.cleaned_data['anno'] return super(ElencoQuote, self).excel_colonne() + ( ("Importo quota", lambda p: ', '.join([testo_euro(q.importo_totale) for q in p.quote_anno(anno, stato=Quota.REGISTRATA)])), ("Data versamento", lambda p: ', '.join([q.data_versamento.strftime('%d/%m/%y') for q in p.quote_anno(anno, stato=Quota.REGISTRATA)])), ("Registrata da", lambda p: ', '.join([q.registrato_da.nome_completo for q in p.quote_anno(anno, stato=Quota.REGISTRATA)])), )
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 euro(context, numero): return mark_safe(testo_euro(numero, simbolo_html=True))