Beispiel #1
0
    def bestellung_versenden(cls, request):
        nutzer = request.user
        from Produkte.views import Warenkorb
        text_warenkorb = ''
        for pk, ware in Warenkorb(request).items.items():
            text_warenkorb += "%s x %s\n" % (ware.quantity,
                                             Kauf.obj_aus_pk(pk))
        text = '''Hallo Georg!

Ein Nutzer hat Waren zum Versand bestellt.

Adresse:
%s
eMail für Rückfragen:
%s

Waren:
%s
''' % (nutzer.my_profile.adresse_ausgeben(), request.user.email,
        text_warenkorb)
        send_mail(
            subject='[website] Bestellung zum Versand eingegangen',
            message=text,
            from_email='*****@*****.**',
            recipient_list=['*****@*****.**', cls.mailadresse],
            fail_silently=False,
        )
def izo_dump(id_zu_objekt):
    with open('id_zu_objekt.txt', 'w') as f:
        datei = {
            str(k): (Kauf.obj_zu_pk(v[0]), v[1])
            for k, v in id_zu_objekt.items()
        }
        json.dump(datei, f)
Beispiel #3
0
    def teilnahme_gebucht(cls, request):
        # nutzer = request.user
        from Produkte.views import Warenkorb
        text_warenkorb = ''
        for pk, ware in Warenkorb(request).items.items():
            text_warenkorb += "%s x %s\n" % (ware.quantity,
                                             Kauf.obj_aus_pk(pk))
        text = '''Hallo Georg!

Ein Nutzer hat Teilnahmen an kommenden Veranstaltungen gebucht.

Waren:
%s

Mailadresse für eventuelle Rückfragen:
%s

''' % (text_warenkorb, request.user.email)
        send_mail(
            subject='[website] Bestellung Teilnahmen eingegangen',
            message=text,
            from_email='*****@*****.**',
            recipient_list=['*****@*****.**', cls.mailadresse],
            fail_silently=False,
        )
Beispiel #4
0
    def studiumdings_gebucht(cls, request):
        # nutzer = request.user
        from Produkte.views import Warenkorb
        text_warenkorb = ''
        for pk, ware in Warenkorb(request).items.items():
            text_warenkorb += "%s x %s\n" % (ware.quantity,
                                             Kauf.obj_aus_pk(pk))
        text = '''Hallo Georg!

Ein Nutzer hat Studiendinger gebucht.

Waren:
%s

Vermutlich muss er eine händische Mail zur weiteren Vorgehensweise bekommen:
%s

''' % (text_warenkorb, request.user.email)
        send_mail(
            subject='[website] Bestellung Studiendinger eingegangen',
            message=text,
            from_email='*****@*****.**',
            recipient_list=['*****@*****.**', cls.mailadresse],
            fail_silently=False,
        )
def izo_load():
    with open('id_zu_objekt.txt', 'r') as f:
        datei = json.load(f)
        id_zu_objekt = {}
        for k, v in datei.items():
            #print("versuche %s, %s zu importieren" % (k, v[0]))
            try:
                id_zu_objekt[int(k)] = (Kauf.obj_aus_pk(v[0]), v[1])
            except:
                print("nicht geklappt bei " + k)
    return id_zu_objekt
def eintragen_kaeufe(kliste, id_zu_objekt, id_zu_profil):
    """ bekommt eine Liste von dicts mit dem Inhalt von je einer Zeile der
    registration-Tabelle der alten db. Außerdem ein mapping der produkt_id 
    der alten db zu model-Instanzen der neuen. Trägt entsprechende Käufe ein
    und gibt dict produkt_id -> model-Instanz zurück 
    
    kompliziert ist die Zuordnung von format zu art; es gibt in der alten
    db folgende formate der Käufe abhängig vom type vom produkt:
    scholie: PDF, Kindle, ePub, Druck
    antiquariat: Druck
    programm: ''
    seminar: '', vorOrt
    salon: '', vorOrt, vor Ort, Stream 
    media-salon: '', Stream
    media-vortrag: ''
    media-vorlesung: '' """
    def reg_zu_kauf(kauf):
        """ nimmt eine Zeile der kliste und gibt objekt und art für den 
        zu erstellenden Kauf aus """
        objekt, type_alt = id_zu_objekt[kauf['event_id']]
        if type_alt in ['programm', 'seminar']:
            art = 'teilnahme'
        elif type_alt == 'antiquariat':
            art = 'kaufen'
        elif type_alt in ['scholie', 'buch']:
            art = {
                'Druck': 'druck',
                'PDF': 'pdf',
                '': 'spam',
                'ePub': 'epub',
                'Kindle': 'mobi'
            }[kauf['format']]
            if art == 'spam':
                if kauf['quantity'] == 1:
                    art = 'pdf'
                else:
                    art = 'druck'
        elif type_alt[:5] == 'media':
            art = 'aufzeichnung'
        elif type_alt == 'salon':
            art = 'aufzeichnung'  # ist falsch, aber zum Wohl des Kunden

        return objekt, art

    with transaction.atomic():
        for kauf in kliste:
            if kauf['reg_datetime'][0] == '0':
                datum = '1111-11-11 11:11:11'
            else:
                datum = kauf['reg_datetime']
            if kauf['reg_notes']:
                kommentar = "Alte reg_id %s, notes %s" % (kauf['reg_id'],
                                                          kauf['reg_notes'])
            else:
                kommentar = "Aus alter DB mit reg_id %s" % kauf['reg_id']
            objekt, art = reg_zu_kauf(kauf)
            kunde = id_zu_profil[kauf['user_id']]
            menge = kauf['quantity']
            neu = Kauf.neuen_anlegen(objekt, art, menge, kunde, kommentar)
            neu.zeit = datum
            neu.save()
            print('Kauf von %s durch %s angelegt' % (objekt, kunde.user))
Beispiel #7
0
def art_aus_pk(pk):
    return Kauf.tupel_aus_pk(pk)[2]