def generate_contract_requests( total_participation, transferring_user: GooseUser, character_with_profit: Character, transfer, ): command = (f"Your loot has been sold!\n Please send a contract in-game to " f"'{character_with_profit.ingame_name}' for the amount " f"of ISK you are owed shown below:\n\n") deposit_total = 0 for user_id, isk in total_participation.items(): floored_isk = m.floor(isk.amount) if user_id != transferring_user.id: user = GooseUser.objects.get(id=user_id) command = command + f"<@!{user.discord_uid()}> {floored_isk} \n" Contract.create( user, character_with_profit, System.objects.first(), "requested", -floored_isk, transfer, ) deposit_total = deposit_total + floored_isk return deposit_total, command
def create_contract_item_stack(request, pk): stack = get_object_or_404(StackedInventoryItem, pk=pk) if request.method == "POST": form = ItemMoveAllForm(request.POST) if form.is_valid(): if not stack.has_admin(request.gooseuser): messages.error( request, f"You do not have permission to move stack {stack}") return forbidden(request) if stack.quantity() == 0: messages.error( request, "You cannot contract an stack which is being or has been sold", ) return forbidden(request) system = form.cleaned_data["system"] character = form.cleaned_data["character"] contract = Contract.create( from_user=request.gooseuser, to_char=character, system=system, status="pending", ) for item in stack.items(): if item.contract: messages.error( request, f"An item ({item}) in the stack is already in a contract, " f"all items in the stack must not be in a contract before you " f"can contract the entire stack. ", ) return forbidden(request) item.contract = contract item.full_clean() item.save() return HttpResponseRedirect( reverse("contracts") + "?status_filter=sent") else: form = ItemMoveAllForm() return render( request, "contracts/item_move_all.html", { "form": form, "title": f"Contract Individual Stack: {stack}" }, )
def create_contract_for_fleet(request, fleet_pk, loc_pk): f = get_object_or_404(Fleet, pk=fleet_pk) loc = get_object_or_404(ItemLocation, pk=loc_pk) if request.method == "POST": form = ItemMoveAllForm(request.POST) if form.is_valid(): if not loc.has_admin(request.gooseuser): messages.error( request, f"You do not have permission to move items from {loc}") return forbidden(request) system = form.cleaned_data["system"] character = form.cleaned_data["character"] items_in_location = InventoryItem.objects.filter( contract__isnull=True, loot_group__fleet_anom__fleet=f, location=loc, quantity__gt=0, marketorder__isnull=True, solditem__isnull=True, ) if items_in_location.count() == 0: messages.error(request, "You have no items to contract :'(") return forbidden(request) contract = Contract.create( from_user=request.gooseuser, to_char=character, system=system, status="pending", ) items_in_location.update(contract=contract) return HttpResponseRedirect( reverse("contracts") + "?status_filter=sent") else: form = ItemMoveAllForm() return render( request, "contracts/item_move_all.html", { "form": form, "title": f"Contract Your Items From Fleet:{f} {loc}" }, )
def create_contract_item(request, pk): item = get_object_or_404(InventoryItem, pk=pk) if request.method == "POST": form = ItemMoveAllForm(request.POST) if form.is_valid(): if not item.has_admin(request.gooseuser): messages.error( request, f"You do not have permission to move item {item}") return forbidden(request) if item.quantity == 0: messages.error( request, "You cannot contract an item which is being or has been sold", ) return forbidden(request) system = form.cleaned_data["system"] character = form.cleaned_data["character"] contract = Contract.create( from_user=request.gooseuser, to_char=character, system=system, status="pending", ) item.contract = contract item.full_clean() item.save() return HttpResponseRedirect( reverse("contracts") + "?status_filter=sent") else: form = ItemMoveAllForm() return render( request, "contracts/item_move_all.html", { "form": form, "title": f"Contract Individual Item: {item}" }, )
def item_move_all(request): if request.method == "POST": form = ItemMoveAllForm(request.POST) if form.is_valid(): system = form.cleaned_data["system"] character = form.cleaned_data["character"] all_your_items = InventoryItem.objects.filter( contract__isnull=True, location__character_location__character__user=request. gooseuser, quantity__gt=0, marketorder__isnull=True, solditem__isnull=True, ) if all_your_items.count() == 0: messages.error(request, "You have no items to contract :'(") return forbidden(request) contract = Contract.create( from_user=request.gooseuser, to_char=character, system=system, status="pending", ) all_your_items.update(contract=contract) return HttpResponseRedirect( reverse("contracts") + "?status_filter=sent") else: form = ItemMoveAllForm() return render( request, "contracts/item_move_all.html", { "form": form, "title": "Contract All Your Items" }, )
def create_contract_for_loc(request, pk): loc = get_object_or_404(ItemLocation, pk=pk) if request.method == "POST": form = ItemMoveAllForm(request.POST) if form.is_valid(): if not loc.has_admin(request.user): messages.error( request, f"You do not have permission to move items from {loc}" ) return forbidden(request) system = form.cleaned_data["system"] character = form.cleaned_data["character"] items_in_location = InventoryItem.objects.filter( contract__isnull=True, location=loc, quantity__gt=0, marketorder__isnull=True, solditem__isnull=True, ) if items_in_location.count() == 0: messages.error(request, "You have no items to contract :'(") return forbidden(request) contract = Contract( from_user=request.user, to_char=character, system=system, created=timezone.now(), status="pending", ) contract.full_clean() contract.save() items_in_location.update(contract=contract) return HttpResponseRedirect(reverse("contracts")) else: form = ItemMoveAllForm() return render( request, "contracts/item_move_all.html", {"form": form, "title": f"Contract All Your Items In {loc}"}, )