Endret adferd for AddStockMenu, nå tar den en linje med syntaks 'tall produkt'
This commit is contained in:
parent
1efe8d5238
commit
9dbe4b9dc6
|
@ -243,6 +243,32 @@ class Menu():
|
||||||
result = self.search_for_thing(search_str, permitted_things, add_nonexisting)
|
result = self.search_for_thing(search_str, permitted_things, add_nonexisting)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def input_multiple(self, prompt=None, permitted_things=('user','product'),
|
||||||
|
add_nonexisting=(), empty_input_permitted=False):
|
||||||
|
result=None
|
||||||
|
while result == None:
|
||||||
|
search_str = self.input_str(prompt)
|
||||||
|
search_lst = search_str.split(" ")
|
||||||
|
print search_lst
|
||||||
|
if search_str == '' and empty_input_permitted:
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
result = self.search_for_thing(search_str, permitted_things, add_nonexisting)
|
||||||
|
num = 1
|
||||||
|
|
||||||
|
if (result == None) and (len(search_lst) > 1):
|
||||||
|
print 'Interpreting input as "<number> <product>"'
|
||||||
|
try:
|
||||||
|
num = int(search_lst[0])
|
||||||
|
result = self.search_for_thing(" ".join(search_lst[1:]), permitted_things,add_nonexisting)
|
||||||
|
# Her kan det legges inn en except ValueError,
|
||||||
|
# men da blir det fort mye plaging av brukeren
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return (result,num)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def search_for_thing(self, search_str, permitted_things=('user','product'),
|
def search_for_thing(self, search_str, permitted_things=('user','product'),
|
||||||
add_nonexisting=()):
|
add_nonexisting=()):
|
||||||
search_fun = {'user': search_user,
|
search_fun = {'user': search_user,
|
||||||
|
@ -1160,9 +1186,12 @@ much money you're due in credits for the purchase when prompted.
|
||||||
}[not not self.user,len(self.products) > 0])
|
}[not not self.user,len(self.products) > 0])
|
||||||
|
|
||||||
# Read in a 'thing' (product or user):
|
# Read in a 'thing' (product or user):
|
||||||
thing = self.input_thing(add_nonexisting=('user',),
|
tres = self.input_multiple(add_nonexisting=('user',),
|
||||||
empty_input_permitted=True)
|
empty_input_permitted=True)
|
||||||
|
if tres:
|
||||||
|
(thing, amount) = tres
|
||||||
|
else:
|
||||||
|
thing = None
|
||||||
# Possibly exit from the menu:
|
# Possibly exit from the menu:
|
||||||
if thing == None:
|
if thing == None:
|
||||||
if not self.complete_input():
|
if not self.complete_input():
|
||||||
|
@ -1179,7 +1208,7 @@ much money you're due in credits for the purchase when prompted.
|
||||||
|
|
||||||
|
|
||||||
# Add the thing to the pending adjustments:
|
# Add the thing to the pending adjustments:
|
||||||
self.add_thing_to_pending(thing)
|
self.add_thing_to_pending(thing,amount)
|
||||||
self.perform_transaction()
|
self.perform_transaction()
|
||||||
|
|
||||||
def complete_input(self):
|
def complete_input(self):
|
||||||
|
@ -1199,7 +1228,7 @@ much money you're due in credits for the purchase when prompted.
|
||||||
print (6+Product.name_length)*'-'
|
print (6+Product.name_length)*'-'
|
||||||
|
|
||||||
|
|
||||||
def add_thing_to_pending(self,thing):
|
def add_thing_to_pending(self,thing,amount):
|
||||||
if isinstance(thing,User):
|
if isinstance(thing,User):
|
||||||
if self.user:
|
if self.user:
|
||||||
print "Only one user may be credited for a purchase, transfer credit manually afterwards"
|
print "Only one user may be credited for a purchase, transfer credit manually afterwards"
|
||||||
|
@ -1207,16 +1236,10 @@ much money you're due in credits for the purchase when prompted.
|
||||||
else:
|
else:
|
||||||
self.user = thing
|
self.user = thing
|
||||||
elif thing in self.products.keys():
|
elif thing in self.products.keys():
|
||||||
print 'Already added this product, enter new amount or an empty line to keep current stock'
|
print 'Already added this product, rewriting amount'
|
||||||
amount = self.input_int("New amount?> ", (0,100000),True)
|
|
||||||
if amount:
|
|
||||||
self.products[thing] = amount
|
self.products[thing] = amount
|
||||||
else:
|
else:
|
||||||
amount = self.input_int('How many items were purchased?> ', (0,100000),True)
|
|
||||||
if amount:
|
|
||||||
self.products[thing] = amount
|
self.products[thing] = amount
|
||||||
else:
|
|
||||||
self.products[thing] = 1
|
|
||||||
|
|
||||||
def perform_transaction(self):
|
def perform_transaction(self):
|
||||||
# self.user.credit += self.price
|
# self.user.credit += self.price
|
||||||
|
|
Loading…
Reference in New Issue