Giter Club home page Giter Club logo

dionysus's People

Contributors

gbaudic avatar

Watchers

 avatar

dionysus's Issues

Multiple vendors support

Replace the password authentication by a login/password one to be able to have several vendors.

"Credit" button

The "credit" operation (adding money on an account), although being one of the most common operations to be performed in the so-called original software, is currently not possible. You need to use the Users panel and the Edit button, which means that no operation is recorded. A 'credit' button would instead record a transaction in the event log.

Use non-integer quantities

Allow non-integer article quantities, useful when dealing with weights or volumes... Also, be able to mark articles depending on the supported format (i.e., you cannot buy 0.384 beer but you can buy 0.384 kg of tomatoes)

Form validation

Currently, dialogs to add/edit users, articles or categories have no validation of any kind. There should be some validation to check coherence and validity of data.

  • User dialog
  • Article dialog
  • Category dialog

Refreshing JTables

The software features JTable's listing users, transactions and articles. Although the databases behind them are updated at each modification, the tables get refreshed only by closing and opening the software again. This should be changed.

I18n

  • Externalize strings,
  • Make numbers and currencies locale-dependent.
  • Also consider different decimal separators.

Annoying Password Bug

Clicking "Cancel" on the password prompt gives access to the software instead of closing it.

Edit and Delete buttons

In Accounts, Articles and Transactions views, buttons labeled Edit, Delete and Cancel do not complain when clicked when no entry is selected.

Barcode support

Add ability to read barcodes through a webcam, using sarxos webcam example and zxing.

Right-click contextual menu on tables

On Users, Transactions and Articles views, provide a right-click menu with the following options (when applicable):

  • add
  • edit
  • delete/revert
  • export as legacy format (Users view only)
  • export as csv format (all views)

Special discounts and offers

Add support for special discounts (3 for 2, -50%...). This is going to be a tough one...

A Discount has

  • a name (required -- will appear on ticket)
  • a boolean value indicating if it is currently active or not
  • an action to do
  • a scope of products 1..*, which can be articles or whole categories
  • 0..* Discounts which are incompatible with it. For example, if you have -15% up to 2 articles and -30 above, you do not want to end up with -45% if you buy 3 articles.

Example of actions :

  • -x%
  • -x amount
  • x articles for the price of y
  • -x% on the y-th article bought
  • x articles bought, y offered (typically the cheapest one, but this may vary)
  • -x% if at least y articles are purchased

Cash desk pane redesign

Redesign the GUI, especially in the Cash desk view, to make a better use of screen space.

Auto-select quantity

To speed up the workflow, set the default quantity to 1 and give an option to change the quantity later.

VAT

Support VAT.

Default user

Make an easier and clearer management of the 'default' user, which is the customer being charged when the real customer does not have an account in the system.

Search boxes

Search boxes on Accounts, Transactions and Articles do not have any effect.

Interoperability with CSV

Currently, databases are stored as binary files which cannot be exported.

  • Users
  • Articles
  • Transactions

Categories

Add Categories to manage articles better and save some screen real estate.

A Category should have :

  • a name (required)
  • 0..* articles
  • a path to an image on the filesystem (optional)

An Article can belong to 0..* Categories (useful to implement #14).

Ticket view

Change the component displaying the ticket so each article can be edited and deleted if needed. A JTable seems a good choice.

State-based execution flow in Ticket view

As far as I recall, the execution flow when adding items to a Ticket is coded very poorly, with a lot of if-then-else clauses which could be made much more readable by using a state-based system.

Envisioned states:

  • IDLE: software does nothing, no ticket open
  • TICKET IDLE: a user is selected (it can be the default one) and a ticket is open
  • PAYMENT: the ticket is frozen and awaiting payment from the customer, no item can be edited any more at this point(?)
  • EDIT ITEM: not supported at the moment, but in the future the cash desk assistant may want to correct or delete an entry in the ticket
  • ARTICLE: an article has been chosen
  • QUANTITY: an article has been chosen and its quantity has been set
  • PRICE: an article has been chosen, quantity set, price code set

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.