epse / eppos Goto Github PK
View Code? Open in Web Editor NEWSimple Django-based POS system
Home Page: https://epse.github.io/EpPos
License: Apache License 2.0
Simple Django-based POS system
Home Page: https://epse.github.io/EpPos
License: Apache License 2.0
Show warnings when stock drops under a specified amount
This should allow new front-ends to be developed (as well as possible native clients).
What we currently miss:
And way of using the current API's (like reset_order) that return the entire page, without getting the entire page.
By adding
Order_Item.objects.filter(order=current_order).delete()
in pos/views.py, after line 181, in reset_order() method, Clear Order button works for real, deleting Item_Order objects of associated Order object.
helper.setup_handling(request) returns 3 value tuple.
This raises the ValueError exception (python3.6.4) on line 181 of pos/views.py.
Just by adding an underscore for currency unpacking (there's no need to save currency value in reset order) the bug is fixed.
from
cash, current_order = helper.setup_handling(request)
to
cash, current_order, _ = helper.setup_handling(request)
The Clear Order button should ask for confirmation.
make it only visible for admins, and allow users to enter a custom amount of change left in the register
There is no way to cancel after pressing the button for cash payment. This is not good.
Add a new code' field. This field can be used for short mnemonic codes or barcodes. You will be able to add products to a running tab by
code`. E.g. by scanning a barcode.
the paid notification does not show the amount that was paid, and the new total is empty
System settings with everything that I doubt about configurable
I am happy to explore implementing this. Just creating an issue to track. For now, the subject says enough. Will flesh this out as progress happens.
Doing all the setup and when running make setup getting this error.
failed to load cache key: invalid empty config file resolved for docker.io/tutum/nginx@sha256:69a727916ab40de88f66407fb0115e35b759d7c6088852d901208479bec47429
Help Appreciated.
Get the object the QuerySet refers to. Please fix quickly this is embarrasing.
This would allow details of an order to be amended should an error occur. And then a new invoice generated.
As part of this, it would be useful to be able to auto-generate all invoices at the end of the business day for book-keeping.
Potentially, a well formatted text file is simpler than difficult to parse pdf?
Time of sale becomes important feature to catch, because it cannot be assumed that the time of invoice equals time of sale.
I've Installed docker and docker-compose, downloaded EpPos and navigated into the directory. Now when I run docker-compose up -d --build
, it fails giving the following messages and errors:
Building web
Step 1/3 : FROM python:3.5-onbuild
Step 1/1 : COPY requirements.txt /usr/src/app/
---> Using cache
Step 1/1 : RUN pip install --no-cache-dir -r requirements.txt
---> Using cache
Step 1/1 : COPY . /usr/src/app
---> Using cache
---> 2f0952866368
Step 2/3 : WORKDIR /usr/src/app
---> Using cache
---> 6887784cd6b3
Step 3/3 : RUN python manage.py migrate
---> Running in 2b5f4d83629e
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 198, in get_new_connection
conn = Database.connect(**conn_params)
sqlite3.OperationalError: unable to open database file
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/init.py", line 363, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.5/site-packages/django/core/management/init.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 83, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/usr/local/lib/python3.5/site-packages/django/db/migrations/executor.py", line 20, in init
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python3.5/site-packages/django/db/migrations/loader.py", line 52, in init
self.build_graph()
File "/usr/local/lib/python3.5/site-packages/django/db/migrations/loader.py", line 209, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
self.ensure_schema()
File "/usr/local/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 254, in cursor
return self._cursor()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 229, in _cursor
self.ensure_connection()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/utils.py", line 94, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 198, in get_new_connection
conn = Database.connect(**conn_params)
django.db.utils.OperationalError: unable to open database file
ERROR: Service 'web' failed to build: The command '/bin/sh -c python manage.py migrate' returned a non-zero code: 1
Docker makes it a lot easier to deploy EpPos.
The Pay button should show a dialog box with payment methods.
Right now I'm not planning on getting any online payment going, but if a client pays by card in-store, that amount should not get added to the Cash amount, for example.
With our current food-truck-like focus, I think adding Card and Cash payments as options should be enough.
Hello
docker-compose up seems to have worked fine. There was no db
folder in web
folder so I added one before running docker-compose up.
docker-compose run is yielding the following :
/usr/bin/env: ‘python3\r’: No such file or directory
which I understand is probably super simple to solve, but I am noob and stumped looking through stackExchange etc...
tia
Hello, just trying out EpPos (great name :-)). I get an error when adding cash. It seems the master branch has a typo. Pull request coming up.
/pos/addition/cashpayment
NameError name 'productInDatabase' is not defined
./pos/views.py in addition, line 53
I immediately download it but I do not know which version of django you use and what libraries you install. It is good when you create the requirements.txt
file to make it easier for others to use your application. Thanks
You can add a product to an Order, even if its stock is 0.
System for counting the amount of cash in the register with logging.
Additional permission to view log
Orders will be changed to stay in the database forever as a means of being able to look at previous orders. They will get fleshed out more and instead of having a JSON array of product titles and ID's, prices will be added as well.
I can't just make the order store a list with product ID's and quantitiies since an archived order may be made with different product pricing that the current.
When a new update is released, a (non-intrusive) notification should be shown to users with admin permissions.
basic POS interface
Only on my phone, which is an Android running Chrome.
Potentially something in the javascript is not compatible? I need help knowing how to give back the relevant debug information.
I have an instance running live at the moment, I can give credentials out if you want them. My twitter handle is the same as my github, so if you want, you can DM me and I will provide credentials.
Products in a POS system are often colour-coded.
We want to add a colour property to the Product
model, a dropdown to select a colour in the admin, order the products in the Order
screen by colour and show the colours.
Cannot jump into "./manage.py shell".
It simply returns "No module named admin_views".
Did I miss something?
Just make the /
route redirect to /pos
. Right now, getting back from the admin page is a nightmare.
If I add
Burger
Coke
Burger
and I want to delete the last Burger because some guest canceled the order, I would like to be able to have the item disappear where I clicked the "X". Right now we search for the product name and delete a random one.
Saw this project posted to /r/coolgithubprojects. Currently your README is very lacking, which will make people just ignore your project.
some things I suggest to add to the README are
not trying to be annoying, just don't want your effort to go to waste!
I would like to know if this project is still alive and worth making pull requests?
When clearing an order, all items in an order's stock should be added back. Right now this can make stock disappear.
Also, make a unit test for this.
With support for multiple concurrent baskets
As it stands, there's quite a bit of JS, and I'm feeling the jQuery spaghetti. Maybe we should use something like Vue
There should be a dashboard in admin where you can see your sales in different periods of time and in different categories shown in some graph or table.
it turns out to 404. Figure out the regex, possibly a filter for new product names
RIght now, we dynamically load all javascript and bootstrap, which is fine for testing, but it would be better to locally bundle and send it. If there is no network connection (or it is slow) our POS would not work anymore (besides privacy issues).
I don't know why I don't know how this if really weird.
Great Work!
Cash Objects :
It's great you are able to capture the total value of the products paid for.
However I advice that you will need to be able to view Transactions, This would include the timestamp and items sold, total cost.
Order :
The current order shows the Product Name only, will be great to include the product Price, just so the customer knows what they paid for.
This would link with the new Transactions class, where you are able in future to link to a printer for receipt.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.