Compare commits
4
Commits
08da460517
...
6eda77cc88
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6eda77cc88 | ||
|
|
4e93e266c1 | ||
|
|
7b19f6163d | ||
|
|
bc9769a2df |
@@ -0,0 +1,84 @@
|
||||
def get_valid_input():
|
||||
global failed_attempts
|
||||
|
||||
while True:
|
||||
user_input = input("Enter stock quantity: ").strip()
|
||||
|
||||
if user_input.lower() == "quit":
|
||||
return "quit"
|
||||
|
||||
if not user_input.isdigit():
|
||||
print("Error: Invalid input. Please enter a non-negative integer.\n")
|
||||
failed_attempts += 1
|
||||
continue
|
||||
|
||||
quantity = int(user_input)
|
||||
|
||||
if quantity < 0:
|
||||
print("Error: Negative numbers are not allowed.\n")
|
||||
failed_attempts += 1
|
||||
continue
|
||||
|
||||
return quantity
|
||||
|
||||
|
||||
def process_delivery(current_total, new_value):
|
||||
return current_total + new_value
|
||||
|
||||
|
||||
def calculate_tax(amount):
|
||||
return amount * 0.10
|
||||
|
||||
|
||||
def generate_report(total_units, failed_attempts):
|
||||
print("\n--- Audit Report ---")
|
||||
print(f"Total Units Processed: {total_units}")
|
||||
print(f"Failed/Rejected Entries: {failed_attempts}")
|
||||
|
||||
|
||||
def load_inventory():
|
||||
try:
|
||||
with open("inventory.txt", "r") as inventory_file:
|
||||
inventory = int(inventory_file.readline().strip())
|
||||
history_line = inventory_file.readline().strip()
|
||||
history = [] if not history_line else [int(value) for value in history_line.split(",")]
|
||||
return inventory, history
|
||||
except FileNotFoundError:
|
||||
return 0, []
|
||||
|
||||
|
||||
def save_inventory(inventory, transaction_history):
|
||||
with open("inventory.txt", "w") as inventory_file:
|
||||
inventory_file.write(f"{inventory}\n")
|
||||
inventory_file.write(",".join(str(quantity) for quantity in transaction_history))
|
||||
inventory_file.write("\n")
|
||||
|
||||
|
||||
inventory, transaction_history = load_inventory()
|
||||
total_units = 0
|
||||
failed_attempts = 0
|
||||
|
||||
print("=== Stock Auditor ===")
|
||||
print("Type 'quit' to exit.\n")
|
||||
|
||||
while True:
|
||||
quantity = get_valid_input()
|
||||
|
||||
if quantity == "quit":
|
||||
save_inventory(inventory, transaction_history)
|
||||
break
|
||||
|
||||
tax = calculate_tax(quantity)
|
||||
|
||||
transaction_history.append(quantity)
|
||||
inventory = process_delivery(inventory, quantity)
|
||||
total_units = process_delivery(total_units, quantity)
|
||||
|
||||
print(f"Stock added. Current inventory: {inventory}")
|
||||
print(f"Tax on this delivery: ${tax:.2f}\n")
|
||||
|
||||
if inventory > 500:
|
||||
print(f"ALERT: Overstock detected! Inventory ({inventory}) exceeds 500 units.")
|
||||
break
|
||||
|
||||
generate_report(total_units, failed_attempts)
|
||||
Reference in New Issue
Block a user