예제 #1
0
파일: utils.py 프로젝트: Betriebsrat/ecm
def get_item_id(request):
    querystring = request.GET.get('q', None)
    if querystring is not None:
        query = CatalogEntry.objects.filter(typeName__iexact=querystring)
        if query.filter(is_available=True).exists():
            
            item = query[0]
            
            if item.fixed_price is not None:
                price = item.fixed_price
            else:
                cost = item.production_cost or 0.0
                surcharge = PricingPolicy.resolve_surcharge(item, request.user, cost)
                price = cost + surcharge
            
            return HttpResponse(json.dumps([item.typeID, item.typeName, price]), mimetype=JSON)
        else:
            return HttpResponseNotFound('Item <em>%s</em> not available in the shop.' % querystring)
    else:
        return HttpResponseBadRequest('Missing "q" parameter.')
예제 #2
0
파일: utils.py 프로젝트: vanderheyde/ecm
def get_item_id(request):
    querystring = request.GET.get('q', None)
    if querystring is not None:
        query = CatalogEntry.objects.filter(typeName__iexact=querystring)
        if query.filter(is_available=True).exists():

            item = query[0]

            if item.fixed_price is not None:
                price = item.fixed_price
            else:
                cost = item.production_cost or 0.0
                surcharge = PricingPolicy.resolve_surcharge(
                    item, request.user, cost)
                price = cost + surcharge

            return HttpResponse(json.dumps([item.typeID, item.typeName,
                                            price]),
                                mimetype=JSON)
        else:
            return HttpResponseNotFound(
                'Item <em>%s</em> not available in the shop.' % querystring)
    else:
        return HttpResponseBadRequest('Missing "q" parameter.')
예제 #3
0
파일: utils.py 프로젝트: vanderheyde/ecm
    try:
        quantity = int(request.POST.get('quantity', 1))
    except ValueError, e:
        return HttpResponseBadRequest(str(e))

    eft_items = eft.parse_export(eft_block)

    query = CatalogEntry.objects.filter(typeName__in=eft_items.keys(),
                                        is_available=True)
    items = []
    for item in query:
        if item.fixed_price is not None:
            price = item.fixed_price
        else:
            cost = item.production_cost or 0.0
            surcharge = PricingPolicy.resolve_surcharge(
                item, request.user, cost)
            price = cost + surcharge
        items.append({
            'typeID': item.typeID,
            'typeName': item.typeName,
            'quantity': eft_items[item.typeName] * quantity,
            'price': price
        })
        eft_items.pop(item.typeName)  # we remove the item from the list

    for typeName, _ in eft_items.items():
        # we add the missing items to inform the user
        items.append({
            'typeID': 0,
            'typeName': typeName,
            'quantity': 0,
예제 #4
0
파일: utils.py 프로젝트: Betriebsrat/ecm
        return HttpResponseBadRequest('Empty EFT block')
    try:
        quantity = int(request.POST.get('quantity', 1))
    except ValueError, e:
        return HttpResponseBadRequest(str(e))

    eft_items = eft.parse_export(eft_block)

    query = CatalogEntry.objects.filter(typeName__in=eft_items.keys(), is_available=True)
    items = []
    for item in query:
        if item.fixed_price is not None:
            price = item.fixed_price
        else:
            cost = item.production_cost or 0.0
            surcharge = PricingPolicy.resolve_surcharge(item, request.user, cost)
            price = cost + surcharge
        items.append({
            'typeID': item.typeID,
            'typeName': item.typeName,
            'quantity': eft_items[item.typeName] * quantity,
            'price': price
        })
        eft_items.pop(item.typeName) # we remove the item from the list

    for typeName, _ in eft_items.items():
        # we add the missing items to inform the user
        items.append({
            'typeID': 0,
            'typeName': typeName,
            'quantity': 0,