def cancel(request, order_id): """ storniert einen Auftrag """ try: api = CreateApiResource('robotRock/Order') order = api.read(request.customer, order_id) if api.storno(request.customer, order): return render_to_json({'result': 'ok'}) else: return render_to_json({'result': 'error', 'msg': 'Der Auftrag konnte nicht storniert werden.'}) except: return render_to_json({'result': 'error', 'msg': 'Allgemeiner Fehler beim Stornieren.'})
def add_user(data): """Function for adding a user to the customer""" username = data.get('email') defaults = {'email': username, 'first_name': data.get('firstname'), 'last_name': data.get('lastname') } user, created = User.objects.get_or_create(username=username, defaults=defaults) if created: request.customer.users.add(user) return render_to_json({'result': 'ok'}) else: return render_to_json({'result': 'error', 'msg': 'Fehler beim Speichern des Benutzers!'})
def add_notification(data): """Function for adding a user to the customer""" api = CreateApiResource('robotRock/Notification') api.create(customer=request.customer.kundennr, recipient=data.get('email'), status=data.get('event')) return render_to_json({'result': 'ok'})
def notifications(request): # Check if given user is admin for customer def add_notification(data): """Function for adding a user to the customer""" api = CreateApiResource('robotRock/Notification') api.create(customer=request.customer.kundennr, recipient=data.get('email'), status=data.get('event')) return render_to_json({'result': 'ok'}) def delete_notifications(designators): """Function for removing a list of user_ids""" api = CreateApiResource('robotRock/Notification') for designator in designators: try: api.remove(customer=request.customer.kundennr, designator=designator) except Exception, ex: logger.error("unable to delete notification '%s': %s" % (designator, ex)) return render_to_json({'result': 'ok'})
def users(request): # Check if given user is admin for customer def add_user(data): """Function for adding a user to the customer""" username = data.get('email') defaults = {'email': username, 'first_name': data.get('firstname'), 'last_name': data.get('lastname') } user, created = User.objects.get_or_create(username=username, defaults=defaults) if created: request.customer.users.add(user) return render_to_json({'result': 'ok'}) else: return render_to_json({'result': 'error', 'msg': 'Fehler beim Speichern des Benutzers!'}) def delete_users(raw_ids): """Function for removing a list of user_ids""" ids = map(lambda id: int(id), raw_ids) result = request.customer.users.filter(id__in=ids).delete(); return render_to_json({'result': 'ok'}) # sollen wir eine Aktion durchfuehren? if request.method == "POST": what = request.POST.get('what') if what == 'create': return add_user(request.POST) elif what == 'delete': return delete_users(request.POST.getlist('ids[]')) else: return render_to_json({'result': 'error', 'msg': 'Ungueltige Aktion!'}) # oder nur die Seite anzeigen? row_count = request.customer.users.count() paginator = Paginator(request, 10, row_count) return render_to_response('beliza/customers/users.html', {'users': request.customer.users.all()[paginator.start():paginator.stop()], 'paginator': paginator}, context_instance=RequestContext(request))
def check_availability(request): """ Verfügbarkeit einer Bestellposition überprüfen. Wenn der entsprechende Artikel fuer den jeweiligen Kunden lieferbar ist wird ein HTML-Snippet mit der Orderline gerendert und zurueckgeliefert, damit es dann in der Tabelle der Bestellpositionen angezeigt werden kann. """ # ueberprueft die Parameter artnr = request.GET.get('artnr') try: menge = int(request.GET.get('menge')) except ValueError: return render_to_json({'result': 'does_not_exist', 'reason': 'invalid article or quantity'}) if not (menge and artnr): return render_to_json({'result': 'does_not_exist', 'reason': 'invalid article or quantity'}) # eap Infos holen api = CreateApiResource('inventory/EAP') eap = api.fetch(artnr) if not eap: return render_to_json({'result': 'does_not_exist', 'reason': 'invalid article or quantity'}) try: # zuerst die Verfuegbarkeit if not filter(lambda entry: entry['articles'] and entry['automatisch_moeglich'], CreateApiResource('inventory/Alternatives').read(menge, artnr)): NonAvailable.objects.create(menge=menge, artnr=artnr, customer=request.customer.designator) return render_to_json({'result': 'not_available'}) # jetzt den Preis und den Namen api = CreateApiResource('inventory/Price') preis = api.preis(artnr, request.customer.kundennr) * menge, form = OrderlineForm(prefix='form-%d' % int(time()), initial={'menge': menge, 'artnr': artnr, 'preis': '%.2f EUR' % preis, 'name': eap.get('name', '???')}); t = loader.get_template('beliza/orders/orderline.html') html = t.render(Context({'form': form})) return render_to_json({'result': 'ok', 'html': html}) except Exception, exc: print "------------> debug 100, %s" % exc if str(exc).find('unbekannt') != -1: return render_to_json({'result': 'does_not_exist'})
def delete_users(raw_ids): """Function for removing a list of user_ids""" ids = map(lambda id: int(id), raw_ids) result = request.customer.users.filter(id__in=ids).delete(); return render_to_json({'result': 'ok'})
try: api.remove(customer=request.customer.kundennr, designator=designator) except Exception, ex: logger.error("unable to delete notification '%s': %s" % (designator, ex)) return render_to_json({'result': 'ok'}) # sollen wir eine Aktion durchfuehren? if request.method == "POST": what = request.POST.get('what') if what == 'create': return add_notification(request.POST) elif what == 'delete': return delete_notifications(request.POST.getlist('ids[]')) else: return render_to_json({'result': 'error', 'msg': 'Ungueltige Aktion!'}) # oder nur die Seite anzeigen? api = CreateApiResource('robotRock/Notification') notifications = [] for notification in api.read(request.customer.kundennr): notifications.append({'designator': notification.designator, 'email': notification.recipient, 'event': NOTIFICATION_EVENTS.get(notification.status, '(Unbekanntes Ereignis)')}) paginator = Paginator(request, 10, len(notifications)) return render_to_response('beliza/customers/notifications.html', {'notifications': notifications[paginator.start():paginator.stop()], 'paginator': paginator}, context_instance=RequestContext(request))
api = CreateApiResource('inventory/EAP') eap = api.fetch(artnr) if not eap: return render_to_json({'result': 'does_not_exist', 'reason': 'invalid article or quantity'}) try: # zuerst die Verfuegbarkeit if not filter(lambda entry: entry['articles'] and entry['automatisch_moeglich'], CreateApiResource('inventory/Alternatives').read(menge, artnr)): NonAvailable.objects.create(menge=menge, artnr=artnr, customer=request.customer.designator) return render_to_json({'result': 'not_available'}) # jetzt den Preis und den Namen api = CreateApiResource('inventory/Price') preis = api.preis(artnr, request.customer.kundennr) * menge, form = OrderlineForm(prefix='form-%d' % int(time()), initial={'menge': menge, 'artnr': artnr, 'preis': '%.2f EUR' % preis, 'name': eap.get('name', '???')}); t = loader.get_template('beliza/orders/orderline.html') html = t.render(Context({'form': form})) return render_to_json({'result': 'ok', 'html': html}) except Exception, exc: print "------------> debug 100, %s" % exc if str(exc).find('unbekannt') != -1: return render_to_json({'result': 'does_not_exist'}) return render_to_json({'result': 'error_while_querying'})