예제 #1
0
def finish_order(request, buying_item_id):
    ORDER_LIMIT = settings.ORDER_LIMIT
    ORDER_UNIT = settings.ORDER_UNIT
    
    member = getMemberByUser(request.user)

    if member is None:
        return HttpResponseRedirect('/')

    buying_items = BuyingItem.objects.filter(id=buying_item_id)

    if len(buying_items) == 0:
        return HttpResponseRedirect('/')

    buying_item = buying_items[0]

    if buying_item.to_member.id != member.id:
        return HttpResponseRedirect('/')
    else:
        buying_item.item.count = int(buying_item.item.count) - int(buying_item.count)
        
        if (buying_item.item.count < 0):
            variables = RequestContext(request, {
                'finish_order_error': True
                })
            return render_to_response('finish_order_error.html',
                                      variables)
        
        buying_item.item_state = "finish"
        buying_item.save()

        if (member.member_type == "wholesaler" or member.member_type == "factory"):
            child_item = get_object_or_404(Item, parent_item=buying_item.item)
            if member.member_type == "factory":
                child_item.count = child_item.count + settings.FACTORY_ORDER_UNIT
            else:
                child_item.count = child_item.count + settings.ORDER_UNIT
                
            child_item.save()

        if (buying_item.item.count <= ORDER_LIMIT) :
            if len(BuyingItem.objects.filter(item=buying_item.item).filter(item_state="accept")) == 0:
                retailer_buying_item = BuyingItem(from_member = member,
                                                  to_member = buying_item.item.parent_item.member,
                                                  count = ORDER_UNIT,
                                                  item_state = "accept",
                                                  account = getVirtualAccount(),
                                                  item = buying_item.item.parent_item)
                retailer_buying_item.save()
        
        buying_item.item.save()
        return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
예제 #2
0
def request_factory_item(request, item_id):
    member = getMemberByUser(request.user)
    item = get_object_or_404(Item, id=item_id)

    existing_items = BuyingItem.objects.filter(item=item.parent_item).filter(from_member=member).filter(item_state="accept")
    if len(existing_items) != 0:
        return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))

    buying_item = BuyingItem(count = settings.FACTORY_ORDER_UNIT,
                             account = getVirtualAccount(),
                             item_state = "accept",
                             from_member = member,
                             to_member = item.parent_item.member,
                             item = item.parent_item)
    buying_item.save()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
예제 #3
0
def order(request):
    member = None
    user = request.user
    item = None

    if request.method == 'POST':
        form = OrderForm(request.POST)
        item_id = request.POST['item_id']

        items = SellingItem.objects.filter(id=item_id)
        user = request.user

        if not user.is_anonymous():
            members = Member.objects.filter(user=user)
            if (len(members) != 0):
                member = members[0]
            else :
                return HttpResponseRedirect('/')
        else :
            return HttpResponseRedirect('/')

        if (len(items) == 0):
            return HttpResponseRedirect('/')
        else:
            item = items[0]


        if form.is_valid():
            error = None
            count = form.cleaned_data['count']

            if int(count) > int(item.count):
                error = '요청 수량이 제품 보유량보다 큽니다.'
            if int(count) <= 0:
                error = '제품 요청은 0보다 큰 수량으로 하셔야 합니다'

            if error is not None:
                variables = RequestContext(request, {
                    'form': form,
                    'error': error,
                    'item': item,
                    'member': member,
                })
                return render_to_response('itemview.html',
                                          variables,
                                          context_instance=RequestContext(request)
                                          )
            

            # 정상일때 저장
            item.count = str(int(item.count) - int(count))
            item.save()

            buying_item = BuyingItem(count = int(count),
                                     account = getVirtualAccount(),
                                     item_state = "accept",
                                     from_member = member,
                                     to_member = item.member,
                                     item = item.item)
            buying_item.save()
                                     
            return HttpResponseRedirect('/')

        variables = RequestContext(request, {
            'form': form,
            'item': item,
            'member': member,
            })
        return render_to_response('itemview.html',
                                  variables,
                                  context_instance=RequestContext(request)
                                  )
    else:
        return HttpResponseRedirect('/')