def mobile_add_discount(request, company_id): # edit an existing contact try: c = Company.objects.get(id=company_id) except Company.DoesNotExist: return JsonError(_("Company does not exist")) # check permissions: needs to be at least manager if not has_permission(request.user, c, 'discount', 'edit'): return JsonError(_("add discounts")) data = JsonParse(request.POST['data']) valid = validate_discount(data, request.user, c, android=True) if not valid.get('status'): return JsonError(valid['message']) form = valid['form'] d = Discount( description=form.cleaned_data.get('description'), code=form.cleaned_data.get('code'), type=form.cleaned_data.get('type'), amount=form.cleaned_data.get('amount'), start_date=form.cleaned_data.get('start_date'), end_date=form.cleaned_data.get('end_date'), enabled=form.cleaned_data.get('enabled'), created_by=request.user, company=c ) d.save() return JsonOk(extra=discount_to_dict(request.user, c, d, android=True))
def mobile_edit_discount(request, company_id): # edit an existing contact try: c = Company.objects.get(id=company_id) except Company.DoesNotExist: return JsonError(_("Company does not exist")) # check permissions: needs to be at least manager if not has_permission(request.user, c, 'discount', 'edit'): return JsonError(_("edit discounts")) data = JsonParse(request.POST['data']) try: d = Discount.objects.get(id=data['id']) except Discount.DoesNotExist: return JsonError(_("Discount does not exist")) # check if contact actually belongs to the given company if d.company != c: return JsonError(_("failed")) if request.method == 'POST': data = JsonParse(request.POST['data']) valid = validate_discount(data, request.user, c, android=True, discount=d) if not valid.get('status'): return JsonError(valid['message']) form = valid['form'] # d = form.save(False) d.description = form.cleaned_data.get('description') d.code = form.cleaned_data.get('code') d.type = form.cleaned_data.get('type') d.amount = form.cleaned_data.get('amount') d.start_date = form.cleaned_data.get('start_date') d.end_date = form.cleaned_data.get('end_date') d.enabled = form.cleaned_data.get('enabled') d.save() # d.save() return JsonOk(extra=discount_to_dict(request.user, c, d, android=True))