mirror of
https://github.com/brmlab/brmbar.git
synced 2025-06-07 21:04:00 +02:00
Added support for cashchange command
This commit is contained in:
parent
06e1e15b7e
commit
0528a50769
2 changed files with 32 additions and 6 deletions
|
@ -34,12 +34,8 @@ Usage: brmbar-cli.py COMMAND ARGS...
|
|||
Inventory recounting (fixing the number of items)
|
||||
inventory-interactive
|
||||
Launches interactive mode for performing inventory with barcode reader
|
||||
! changecash +-AMT
|
||||
Create a custom transaction that updates nominal cash
|
||||
balance based on the actual cash balance counted
|
||||
in the cash box. If you found more money than expected,
|
||||
use +amt, if you found less money than expected,
|
||||
use -amt.
|
||||
changecash AMT
|
||||
Fixes the cash and puts money difference into excess or deficit account
|
||||
|
||||
USER and ITEM may be barcodes or account ids. AMT may be
|
||||
both positive and negative amount (big difference to other
|
||||
|
@ -184,6 +180,17 @@ elif sys.argv[1] == "inventory-interactive":
|
|||
else:
|
||||
print ("No action needed amount is correct.")
|
||||
print("End of processing. Bye")
|
||||
elif sys.argv[1] == "changecash":
|
||||
if (len(sys.argv) != 3):
|
||||
print ("Invalid number of parameters, check your parameters.")
|
||||
else:
|
||||
print("Current Cash is : {}".format(shop.cash.balance_str()))
|
||||
iamt = int(sys.argv[2])
|
||||
if shop.fix_cash(amount = iamt):
|
||||
print("New Cash is : {}".format(shop.cash.balance_str()))
|
||||
else:
|
||||
print ("No action needed amount is the same.")
|
||||
|
||||
|
||||
else:
|
||||
help()
|
||||
|
|
|
@ -163,5 +163,24 @@ class Shop:
|
|||
self.deficit.debit(transaction, buy_total, "Inventory fix deficit " + item.name)
|
||||
self.db.commit()
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
def fix_cash(self, amount):
|
||||
amount_in_reality = amount
|
||||
amount_in_system = self.cash.balance()
|
||||
|
||||
diff = abs(amount_in_reality - amount_in_system)
|
||||
if amount_in_reality > amount_in_system:
|
||||
transaction = self._transaction(description = "BrmBar cash inventory fix of {} in system to {} in reality".format(amount_in_system, amount_in_reality))
|
||||
self.cash.debit(transaction, diff, "Inventory fix excess")
|
||||
self.excess.credit(transaction, diff, "Inventory cash fix excess.")
|
||||
self.db.commit()
|
||||
return True
|
||||
elif amount_in_reality < amount_in_system:
|
||||
transaction = self._transaction(description = "BrmBar cash inventory fix of {} in system to {} in reality".format(amount_in_system, amount_in_reality))
|
||||
self.cash.credit(transaction, diff, "Inventory fix deficit")
|
||||
self.deficit.debit(transaction, diff, "Inventory fix deficit.")
|
||||
self.db.commit()
|
||||
return True
|
||||
else:
|
||||
return False
|
Loading…
Add table
Add a link
Reference in a new issue