ADempiere POS, newly redesigned POS with support for Swing , ZK and Vaadin.
The ADempiere POS functionality now is part of ADempiere core (org.adempiere.pos) package , and will be released along with 3.9.0. This repository is deprecated.
[DEPRECATED] The ADempiere POS functionality now is part of ADempiere core (org.adempiere.pos) 390 package.
Set maximized vertical window for payment when is launced the window for payment
When the order line table is resized, the split panel must be resized also
In the ZK product info panel, both List Price and Standard Price should be displayed, as it is in swing.
Now when the quantity , Unit Price and Discount Percentage are change the Table Panel change
Some logic launch NPE when new button not is push , it happen when POS window is open first time.
When a order is created, its is add to order list like new, but is not changed from original document
Trying the POS for the first time without setup causes an exception org.adempiere.pos.AdempierePOSException: No POS Terminal defined for User and the application hangs.
The main class needs to catch this exception and exit gracefully.
Now when have more 3 option of payment window not show all payment method
In POS must be created the migrations script with Central ID
Now only is posible delete from table
When it is sent to the printer does not detect print client side in zk
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.adempiere.pos.service.CPOS.deleteLine(CPOS.java:933)
at org.adempiere.pos.POSOrderLinePanel.updateLine(POSOrderLinePanel.java:216)
at org.adempiere.pos.VPOS.updateLineTable(VPOS.java:493)
at org.adempiere.pos.POSUpDownPanel.actionPerformed(POSUpDownPanel.java:165)
at org.compiere.grid.ed.VNumber.fireActionPerformed(VNumber.java:830)
at org.compiere.grid.ed.VNumber.commitChanges(VNumber.java:694)
at org.compiere.grid.ed.VNumber.focusLost(VNumber.java:652)
at java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:230)
at java.awt.Component.processFocusEvent(Component.java:6427)
at java.awt.Component.processEvent(Component.java:6291)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:995)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4762)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.SentEvent.dispatch(SentEvent.java:70)
at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:217)
at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:244)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:731)
at java.awt.Component.dispatchEventImpl(Component.java:4762)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
09:36:19.802 MRole.get: AD_Role_ID=102, AD_User_ID=100, reload=false [90]
In ZK, the buttons for grid control is not the same that the swing client
To select the product of a credit note the field of history was used and pressed the button to process the refund credit note
When calling a virtual keyboard in ZK either for selecting a product, a business partner, a document etc., the keys of the virtual keyboard do not work.
In swing the virtual keyboards work well.
Add toolbar to navigate between the lines, remove and increase lines, subtract and add quantities of products, change prices
When is created the order in pos, is nice to have a choice a document type
Currently the POS Query's are maked in ZK and Swing interface, it must be change to MVC for create a parent controller that contain query and data for both views
Currently ADempiere POS not support physical keyboard all current functionality is for virtual keyboard and touchscreen.
In generar the process when add a new producto the sequence of action should be:
1.- When scanner a product this is add in line , next immediate posible event is delete line
2.- If not need delete line must posible is that you need increase of quantity
3.- if you increase of quantity and need reduce then next possibility is reduce of quantity
4.- Is posible change between lines as last possibility
5.- Is posible that when you use product with a lot quantity you need entry quantity manually
6.- The last possibility is change of price but this should be using supervisor pin
09:40:05.071 MiniTable.loadTable: Row(array)=0 [111]
09:40:05.397 MiniTable.loadTable: Row(rs)=0 [111]
09:40:05.397 VPOS.init: PosPanel.init - java.awt.Dimension[width=1011,height=804] [111]
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -1
at java.util.Vector.removeElementAt(Vector.java:562)
at javax.swing.table.DefaultTableModel.removeRow(DefaultTableModel.java:462)
at org.adempiere.pos.POSOrderLinePanel.updateLine(POSOrderLinePanel.java:217)
at org.adempiere.pos.VPOS.updateLineTable(VPOS.java:493)
at org.adempiere.pos.POSUpDownPanel.actionPerformed(POSUpDownPanel.java:165)
at org.compiere.grid.ed.VNumber.fireActionPerformed(VNumber.java:830)
at org.compiere.grid.ed.VNumber.commitChanges(VNumber.java:694)
at org.compiere.grid.ed.VNumber.focusLost(VNumber.java:652)
at java.awt.AWTEventMulticaster.focusLost(AWTEventMulticaster.java:230)
at java.awt.Component.processFocusEvent(Component.java:6427)
at java.awt.Component.processEvent(Component.java:6291)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:995)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4762)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
09:41:04.285 MRole.get: AD_Role_ID=102, AD_User_ID=100, reload=false [90]
Let lookup product based on Search Kay , UPC/EAN , SKU , Vendor Product , Partner Product Key
When you want delete order, find a message without translation
In the original POS, it was possible to select a Credit Note issued for the client to (partially) pay a sales order. This functionality has been eliminated during the development of the project adempierePOS.
Now, it has to be included (developed) again.
When navigating between lines, product images have to be displayed in the product info panel.
But: when there is an additional POS Key Layout panel with images, the images from this underlying POS Key LAyout Panel are not displayed.
The reason: POSInfoProduct.refreshProduct() looks for the image with posPanel.getC_POSKeyLayout_ID() .
In case the product is in another POS Key Layout, the image is not found.
12:26:50.679 MChangeLog.fillChangeLog: #62 [31]
===========> AMenuStartItem.run: ID=419 [31]
java.lang.NullPointerException
at org.adempiere.pos.service.CPOS.getPOSName(CPOS.java:476)
at org.adempiere.pos.VPOS.dynInit(VPOS.java:309)
at org.adempiere.pos.VPOS.init(VPOS.java:147)
at org.compiere.apps.form.FormFrame.openForm(FormFrame.java:360)
at org.compiere.apps.form.FormFrame.openForm(FormFrame.java:333)
at org.compiere.apps.AMenuStartItem.startForm(AMenuStartItem.java:352)
at org.compiere.apps.AMenuStartItem.run(AMenuStartItem.java:184)
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.