def check_in(request, **kwargs): if request.method == 'POST': form = InventoryCheckInForm(request.POST) if form.is_valid(): purchase = form.cleaned_data['purchase'] quantity = form.cleaned_data['quantity'] is_new = form.cleaned_data['condition'] == 'True' buy_only = form.cleaned_data.get('buy_only', False) for _q in range(quantity): inventory = Inventory() inventory.dropship = form.cleaned_data['dc'] inventory.item = form.cleaned_data['upc'] inventory.purchase_item = form.cleaned_data['purchase_item'] inventory.buy_only = buy_only inventory.fill_barcode() inventory.is_new = purchase.is_new if purchase else is_new inventory.save() return redirect('staff:page', 'Inventory/Check-In'), None item = Item.find_by_upc(form['upc'].data) else: form = InventoryCheckInForm() item = None return { 'title': 'Check-In', 'form': form, 'item': item, }, None
def order_details_item(request, order_id, item_id): order = get_object_or_404(TradeOrder, id=order_id) item = get_object_or_404(TradeOrderItem, order__id=order_id, id=item_id) if request.method=='POST': form = TradeGameForm(request.POST, instance=item) if form.is_valid(): item = form.save() item.original_item = item.item if item.is_match: if item.is_damaged and not item.is_refurblished: item.declined = True else: if request.POST.get('is_accepted') == 'True': accepted_item = get_object_or_404(Item, id=request.POST.get('accepted_id')) item.item = accepted_item item.hot_trade = False if item.is_complete: item.price = accepted_item.trade_price else: item.price = accepted_item.trade_price_incomplete else: item.declined = True item.processed = True item.processed_date = datetime.now() item.processed_by = request.user for c in item.claims().filter(type=ClaimType.GamemineNotReceiveTradeGame): c.status = CaseStatus.AutoClosed c.save() if not item.declined: inventory = Inventory() inventory.item = item.item inventory.is_new = False # inventory.buy_only = request.POST.get('is_desctination') == 'buy'; inventory.save() item.inventory = inventory item.save() amount = item.price + item.get_shipping_reimbursements() profile = order.user.get_profile() if order.items.filter(processed=False).count() == 0: hot_trades = 0 for i in order.items.filter(declined=False, hot_trade=True): if i.item == i.original_item: hot_trades += 1 if hot_trades >= 3: debug('Add bonus') profile.store_credits += order.bonus or 0 profile.bonus_store_credits += order.bonus or 0 if not item.declined: profile.store_credits += amount profile.bonus_store_credits += item.get_shipping_reimbursements() description = 'Trade game. Order#: %s. UPC: %s' % (order.order_no(), item.item.upc) BillingHistory.log(order.user, '', description, credit=amount, reason='trade', status=TransactionStatus.Passed, type=TransactionType.TradePayment) profile.save() if item.order.is_processed(): item.order.send_order_processed() transaction.commit() return redirect('staff:trade_order_details', order_id) else: form = TradeGameForm(instance=item) transaction.rollback() return { 'title': 'TRADE ORDER ID: %s' % order.order_no(), 'order': order, 'item': item, 'form': form, 'page_class': 'staff-trade-order-details', }