def _order_feedback(sender, **kwargs): rows = [ 'Utente: "%s" (%s)' % (sender.user.name(), sender.user.user.email), 'Ragione sociale: "%s"' % (sender.card_name,), 'Metodo di pagamento: "%s"' % (sender.method,), 'Nazione: "%s"' % (sender.country.name if sender.country else '',), 'Indirizzo: "%s"' % (sender.address,), 'Note di fatturazione:\n%s\n' % (sender.billing_notes,), 'Biglietti acquistati:', ] for x in sender.orderitem_set.order_by('ticket__fare__code').select_related(): rows.append('%-5s %-47s %6.2f' % (x.code, x.description, x.price)) rows.append('-' * 60) rows.append('%54s%6.2f' % ('', sender.total())) send_email( subject='New order: %s, from "%s"' % (sender.code, sender.user.name(),), message='\n'.join(rows), )
def _order_feedback(sender, **kwargs): rows = [ 'Ordering person: "%s" (%s)' % (sender.user.name(), sender.user.user.email), 'Card name: "%s"' % (sender.card_name,), 'Payment method: "%s"' % (sender.method,), 'Nationality: "%s"' % (sender.country.name if sender.country else '',), 'Address: "%s"' % (sender.address,), 'Billing notes:\n%s\n' % (sender.billing_notes,), 'Billing summary:', ] for x in sender.orderitem_set.order_by('ticket__fare__code').select_related(): rows.append('%-5s %-47s %6.2f' % (x.code, x.description, x.price)) rows.append('-' * 60) rows.append('%54s%6.2f' % ('', sender.total())) send_email( subject='New order: %s, from "%s"' % (sender.code, sender.user.name(),), message='\n'.join(rows), )
def on_refund_changed(sender, **kw): if sender.status == kw['old']: return if not kw['tickets']: return tpl = 'refund-' + sender.status from django.http import Http404 items = list(sender.items.all().select_related('order__user__user')) ctx = { 'items': items, 'name': items[0].order.user.name(), 'refund': sender, 'tickets': kw['tickets'], 'credit_note': sender.credit_note, } try: utils.email(tpl, ctx, to=[items[0].order.user.user.email]).send() except Http404: pass uid = items[0].order.user.user_id order = items[0].order mail_items = '\n'.join([ u' * %s - € %s' % (x.description, x.price) for x in items ]) if sender.status == 'pending': message = ''' User: %s (%s) Reason: %s Order: %s Items: %s Internal Notes: %s Manage link: %s ''' % ( ctx['name'], dsettings.DEFAULT_URL_PREFIX + reverse('admin:auth_user_change', args=(uid,)), sender.reason, order.code, mail_items, sender.internal_note, dsettings.DEFAULT_URL_PREFIX + reverse('admin:assopy_refund_change', args=(sender.id,)), ) send_email( subject='Refund request from %s' % ctx['name'], message=message, recipient_list=settings.REFUND_EMAIL_ADDRESS['approve'], ) elif sender.status == 'approved': message = ''' User: %s (%s) Order: %s Items: %s Payment method: %s Manage link: %s ''' % ( ctx['name'], dsettings.DEFAULT_URL_PREFIX + reverse('admin:auth_user_change', args=(uid,)), order.code, mail_items, order.method, dsettings.DEFAULT_URL_PREFIX + reverse('admin:assopy_refund_change', args=(sender.id,)), ) emails = settings.REFUND_EMAIL_ADDRESS['execute'] send_email( subject='Refund for %s approved' % ctx['name'], message=message, recipient_list=emails.get(order.method, emails[None]), ) elif sender.status == 'refunded': if settings.GENRO_BACKEND: message = ''' User: %s (%s) Order: %s assopy id: %s Items: %s Payment method: %s Manage link: %s ''' % ( ctx['name'], dsettings.DEFAULT_URL_PREFIX + reverse('admin:auth_user_change', args=(uid,)), order.code, order.assopy_id, mail_items, order.method, dsettings.DEFAULT_URL_PREFIX + reverse('admin:assopy_refund_change', args=(sender.id,)), ) send_email( subject='Refund for %s done, credit note needed' % ctx['name'], message=message, recipient_list=settings.REFUND_EMAIL_ADDRESS['credit-note'], ) else: sender.emit_credit_note()
def on_refund_changed(sender, **kw): if sender.status == kw['old']: return if not kw['tickets']: return tpl = 'refund-' + sender.status from django.http import Http404 items = list(sender.items.all().select_related('order__user__user')) ctx = { 'items': items, 'name': items[0].order.user.name(), 'refund': sender, 'tickets': kw['tickets'], 'credit_note': sender.credit_note, } try: utils.email(tpl, ctx, to=[items[0].order.user.user.email]).send() except Http404: pass uid = items[0].order.user.user_id order = items[0].order mail_items = '\n'.join([ u' * %s - € %s' % (x.description, x.price) for x in items ]) if sender.status == 'pending': message = ''' User: %s (%s) Reason: %s Order: %s Items: %s Internal Notes: %s Manage link: %s ''' % ( ctx['name'], dsettings.DEFAULT_URL_PREFIX + reverse('admin:auth_user_change', args=(uid,)), sender.reason, order.code, mail_items, sender.internal_note, dsettings.DEFAULT_URL_PREFIX + reverse('admin:assopy_refund_change', args=(sender.id,)), ) send_email( subject='Refund request from %s' % ctx['name'], message=message, recipient_list=settings.REFUND_EMAIL_ADDRESS['approve'], ) elif sender.status == 'approved': message = ''' User: %s (%s) Order: %s Items: %s Payment method: %s Manage link: %s ''' % ( ctx['name'], dsettings.DEFAULT_URL_PREFIX + reverse('admin:auth_user_change', args=(uid,)), order.code, mail_items, order.method, dsettings.DEFAULT_URL_PREFIX + reverse('admin:assopy_refund_change', args=(sender.id,)), ) emails = settings.REFUND_EMAIL_ADDRESS['execute'] send_email( subject='Refund for %s approved' % ctx['name'], message=message, recipient_list=emails.get(order.method, emails[None]), ) elif sender.status == 'refunded': sender.emit_credit_note()