Beispiel #1
0
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberTrackingCode
        for member in Member.objects.filter(is_active=True):
            if not member.email:
                continue

            with transaction.atomic():
                uuid, created = MemberTrackingCode.objects.get_or_create(member=member,
                                                                         created_by=get_shackbureau_user())
                if uuid.validated:
                    continue

                # only send mail, when created
                # if not created:
                    # continue

                context = {
                    'uuid': uuid,
                    'member': member,
                }
                content = get_template('active_member_mail.txt').render(Context(context))

                print(member.email)

                email = EmailMessage('Deine Mitgliedsdaten',
                                     content,
                                     '*****@*****.**',
                                     [member.email])
                email.send()
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberDocument, MemberDocumentTag, AccountTransaction

        template = "documentmanagement/donationreceipt.tex"
        filename = "donationreceipt_{year}_{id:04d}_{surname}_{name}"
        additional_files = (('static/img/logo_shack_brightbg.pdf',
                             'img/logo_shack_brightbg.pdf'), )

        shackbureau_user = get_shackbureau_user()
        today = date.today()
        tag, created = MemberDocumentTag.objects.get_or_create(
            tag="Spendenbescheinigung",
            defaults={"created_by": shackbureau_user})

        member_id = options['member_id']
        year = options['year']
        member = Member.objects.get(member_id=member_id)

        amount = AccountTransaction.objects \
            .filter(transaction_type="membership fee") \
            .filter(Q(booking_type="deposit") | Q(booking_type="charge back")) \
            .filter(member=member, due_date__year=year) \
            .aggregate(Sum('amount')).get('amount__sum')

        context = {
            'address_of_donator': member.get_postal_address(),
            'amount': amount,
            'day_of_donation': year,
            'donation_type': 'allowance in money',
            'date': today,
            'place': 'Stuttgart'
        }
        base_filename = filename.format(year=year,
                                        id=member.member_id,
                                        surname=member.surname,
                                        name=member.name)

        with TemporaryDirectory() as tempdirectory:
            pdf = pdflatex(base_filename=base_filename,
                           template=template,
                           context=context,
                           tempdirectory=tempdirectory,
                           additional_files=additional_files)
            print(pdf)

            with open(pdf, 'rb') as f:
                memberdocument = MemberDocument()
                memberdocument.member = member
                memberdocument.created_by = shackbureau_user
                memberdocument.description = "Spendenbescheinigung {}".format(
                    today.isoformat())
                memberdocument.comment = "autogenerated at {}".format(
                    today.isoformat())
                memberdocument.data_file.save(path.basename(pdf), File(f))
                memberdocument.save()
                memberdocument.tag.add(tag)
        return
Beispiel #3
0
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberDocument, MemberDocumentTag

        template = "documentmanagement/letter.tex"
        content = """
        beim Abgleich deiner Mitgliedsdaten konnten wir dich per Email unter \\url{{{email}}} nicht erreichen.

        Bitte melde dich bei uns unter \\url{{[email protected]}}, damit wir deine Daten abgleichen können.
        """
        opening = "Hallo {name},"
        subject = "Deine Mitgliedsdaten"
        filename = "membertracking_{date}_{id:04d}_{surname}_{name}"
        additional_files = (('static/img/logo_shack_brightbg.pdf',
                             'img/logo_shack_brightbg.pdf'), )

        shackbureau_user = get_shackbureau_user()
        today = date.today()
        tag, created = MemberDocumentTag.objects.get_or_create(
            tag="Membertracking", defaults={"created_by": shackbureau_user})
        for member in Member.objects.filter(is_active=True)\
                                    .filter(membertrackingcode__validated=False):
            context = {
                'closing': "Mit freundlichen Grüßen",
                'signature': "Der Vorstand",
                'place': "Stuttgart",
                'date': today,
                'subject': subject,
                'opening': opening.format(name=member.name),
                'content': content.format(email=member.email),
                'address': member.get_postal_address()
            }

            base_filename = filename.format(date=today.isoformat(),
                                            id=member.member_id,
                                            surname=member.surname,
                                            name=member.name)

            with TemporaryDirectory() as tempdirectory:
                pdf = pdflatex(base_filename=base_filename,
                               template=template,
                               context=context,
                               tempdirectory=tempdirectory,
                               additional_files=additional_files)
                print(pdf)

                with open(pdf, 'rb') as f:
                    memberdocument = MemberDocument()
                    memberdocument.member = member
                    memberdocument.created_by = shackbureau_user
                    memberdocument.description = "Member tracking {}".format(
                        today.isoformat())
                    memberdocument.comment = "autogenerated at {}".format(
                        today.isoformat())
                    memberdocument.data_file.save(path.basename(pdf), File(f))
                    memberdocument.save()
                    memberdocument.tag.add(tag)
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberDocument, MemberDocumentTag

        template = "documentmanagement/letter.tex"
        content = """
        beim Abgleich deiner Mitgliedsdaten konnten wir dich per Email unter \\url{{{email}}} nicht erreichen.

        Bitte melde dich bei uns unter \\url{{[email protected]}}, damit wir deine Daten abgleichen können.
        """
        opening = "Hallo {name},"
        subject = "Deine Mitgliedsdaten"
        filename = "membertracking_{date}_{id:04d}_{surname}_{name}"
        additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), )

        shackbureau_user = get_shackbureau_user()
        today = date.today()
        tag, created = MemberDocumentTag.objects.get_or_create(tag="Membertracking",
                                                               defaults={"created_by": shackbureau_user})
        for member in Member.objects.filter(is_active=True)\
                                    .filter(membertrackingcode__validated=False):
            context = {'closing': "Mit freundlichen Grüßen",
                       'signature': "Der Vorstand",
                       'place': "Stuttgart",
                       'date': today,
                       'subject': subject,
                       'opening': opening.format(name=member.name),
                       'content': content.format(email=member.email),
                       'address': member.get_postal_address()
                       }

            base_filename = filename.format(date=today.isoformat(),
                                            id=member.member_id,
                                            surname=member.surname,
                                            name=member.name)

            with TemporaryDirectory() as tempdirectory:
                pdf = pdflatex(base_filename=base_filename,
                               template=template,
                               context=context,
                               tempdirectory=tempdirectory,
                               additional_files=additional_files)
                print(pdf)

                with open(pdf, 'rb') as f:
                    memberdocument = MemberDocument()
                    memberdocument.member = member
                    memberdocument.created_by = shackbureau_user
                    memberdocument.description = "Member tracking {}".format(today.isoformat())
                    memberdocument.comment = "autogenerated at {}".format(today.isoformat())
                    memberdocument.data_file.save(path.basename(pdf), File(f))
                    memberdocument.save()
                    memberdocument.tag.add(tag)
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberDocument, MemberDocumentTag, AccountTransaction

        template = "documentmanagement/donationreceipt.tex"
        filename = "donationreceipt_{year}_{id:04d}_{surname}_{name}"
        additional_files = (('static/img/logo_shack_brightbg.pdf', 'img/logo_shack_brightbg.pdf'), )

        shackbureau_user = get_shackbureau_user()
        today = date.today()
        tag, created = MemberDocumentTag.objects.get_or_create(tag="Spendenbescheinigung",
                                                               defaults={"created_by": shackbureau_user})

        member_id = options['member_id']
        year = options['year']
        member = Member.objects.get(member_id=member_id)

        amount = AccountTransaction.objects \
            .filter(transaction_type="membership fee") \
            .filter(Q(booking_type="deposit") | Q(booking_type="charge back")) \
            .filter(member=member, due_date__year=year) \
            .aggregate(Sum('amount')).get('amount__sum')

        context = {'address_of_donator': member.get_postal_address(),
                   'amount': amount,
                   'day_of_donation': year,
                   'donation_type': 'allowance in money',
                   'date': today,
                   'place': 'Stuttgart'
                   }
        base_filename = filename.format(year=year,
                                        id=member.member_id,
                                        surname=member.surname,
                                        name=member.name)

        with TemporaryDirectory() as tempdirectory:
            pdf = pdflatex(base_filename=base_filename,
                           template=template,
                           context=context,
                           tempdirectory=tempdirectory,
                           additional_files=additional_files)
            print(pdf)

            with open(pdf, 'rb') as f:
                memberdocument = MemberDocument()
                memberdocument.member = member
                memberdocument.created_by = shackbureau_user
                memberdocument.description = "Spendenbescheinigung {}".format(today.isoformat())
                memberdocument.comment = "autogenerated at {}".format(today.isoformat())
                memberdocument.data_file.save(path.basename(pdf), File(f))
                memberdocument.save()
                memberdocument.tag.add(tag)
        return
 def handle(self, *args, **options):
     shackbureau_user = get_shackbureau_user()
     for debitor in Debitor.objects.all():
         print(debitor)
         DistrictcourtBalance.objects.update_or_create(debitor=debitor,
                                                       defaults={'created_by': shackbureau_user})
Beispiel #7
0
    def handle(self, *args, **options):
        from usermanagement.models import Member, MemberTrackingCode

        for member in Member.objects.filter(is_active=True).filter(membertrackingcode__validated=False):
            if not member.email:
                continue

            uuid, created = MemberTrackingCode.objects.get_or_create(member=member, created_by=get_shackbureau_user())
            context = {"uuid": uuid, "member": member}
            content = get_template("active_member_mail.txt").render(Context(context))

            print(member.email)

            email = EmailMessage("Deine Mitgliedsdaten", content, "*****@*****.**", [member.email])
            email.send()
Beispiel #8
0
 def handle(self, *args, **options):
     shackbureau_user = get_shackbureau_user()
     for debitor in Debitor.objects.all():
         print(debitor)
         DistrictcourtBalance.objects.update_or_create(
             debitor=debitor, defaults={'created_by': shackbureau_user})