Coder Social home page Coder Social logo

apinprastya / sultan Goto Github PK

View Code? Open in Web Editor NEW
212.0 22.0 112.0 2.92 MB

Minimarket Point Of Sales (POS) software writen in C++ with Qt framework

License: GNU General Public License v3.0

C++ 96.63% QMake 2.39% C 0.31% Batchfile 0.02% Shell 0.07% Go 0.13% CMake 0.45%
pos kasir minimarket-pos retail sultan-pos qt-framework point-of-sale

sultan's Introduction

Sultan POS

Minimarket POS (Point Of Sales) software writen in C++ with Qt Framework. The main target of Sultan POS is minimarket and able to run on Raspberry Pi.

Feature

  • Networked (uses tcp socket)
  • Multi prices
  • Item categories
  • Supliers
  • Multi user and permission
  • Databases SQLite / MySQL
  • Sales report
  • Item sales report
  • Money report
  • Margin calculation using average
  • Customer database
  • Customer reward
  • Customer credit
  • Purchase and purchase return
  • Cashier and sold return
  • Stock Card
  • Box / Package item
  • Export / import database
  • And many

Compile

Note

Please consider to give a star when clone this repository

Third party library

  • Reading and writing Xlsx file using QXlsx

License

GPL. See LICENSE

Contribution

Any contribution are welcome

sultan's People

Contributors

apinprastya avatar arifinab avatar wilsontulus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sultan's Issues

Add dashboard

Dashboard will be consist :

  1. Tile : Nilai stock, hutang, piutang, penjualan 1 bulan, margin 1 bulan
  2. Graph Sales : dailiy, weekly, monthly
  3. 50 fast moving stock and the current stock
  4. Hutang jatuh tempo
  5. Graph Margin : daily, weekly, monthly

Note : the feature will be on fea_dashboard barnch

Automatic search server

When any new client want to connect, should be automatic search the server.
If the server within the network only 1, it will directly connect to the server. When the server more than 1, it should be a list appear and client choose which server to connect to.

Superseding Items (Feature request)

Have function that replaces old item number with new (for obsolete or discontinued items), With the item history of sales, purchases or returns.

Add SSL to websocket

Add on setting to define the ssl certificates. Possible self generate certificate is used.

Empty refering data

When item data removed, the report does not have name and other items attribute.

How can i test it on Raspberry Pi 3 Model B?

I tested your image on Raspberry Pi 3 Model B and it failed to boot. I haven't ever used buildroot so can you please mention the method to make a custom image for Raspberry Pi 3 Model B or at least how you came up with your own image for Raspberry Pi?

Voucher

Voucher will has :

  1. Lifetime (start and end date)
  2. Global voucher : will be affected the total shopping chart
  3. Item specific voucher : only affected if there is an item on the chart

Again Sultan is not compiling on Windows

I am using Qt5.9.1 MSVC and webenginewidgets.
When compiling i get these errors:

  • mainwindow.obj:- 1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl LibG::AbstractSultanGUI::~AbstractSultanGUI(void)" (_imp??1AbstractSultanGUI@LibG@@UEAA@XZ) referenced in function "int public: __cdecl LibGUI::MainWindow::MainWindow(class LibG::MessageBus *,class QWidget *)'::1'::dtor$2" (?dtor$2@?0???0MainWindow@LibGUI@@qeaa@PEAVMessageBus@LibG@@PEAVQWidget@@@z@4HA)
    File not found mainwindow.obj

  • mainwindow.obj:- 1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl LibG::AbstractSultanGUI::AbstractSultanGUI(void)" (_imp??0AbstractSultanGUI@LibG@@qeaa@XZ) referenced in function "public: __cdecl LibGUI::MainWindow::MainWindow(class LibG::MessageBus *,class QWidget *)" (??0MainWindow@LibGUI@@qeaa@PEAVMessageBus@LibG@@PEAVQWidget@@@z)
    File not found mainwindow.obj

  • ..\bin\gui.dll:- 1: error: LNK1120: 2 unresolved externals

Promo

Promo will have fields :

  1. Lifetime
  2. Requirements, sample : buy item A and B, valid
  3. Results, sample : get discount of buy item C

Cashier GUI for restaurant

The restaurant GUI should be different than the mini market (current) one.
As the restaurant will be a grid view with the menu as item with the picture.

Credit Customers

Have provision for credit customers with credit balances linked to customer details

Assign Id's to the Tiles Elements

Hello,
I think that adding id (fx:id and fx:class) would help styling and customising the different elements (like: text color, size and font)
Thank you

Solds item number

Solds item number can have more than one, it shoud be unique. Right?

Capture

Sultan doesn't build anymore with Qt5.9 MinGW

I am trying to build the project in Windows 10, Qt 5.9.

When i try to build the project with CONFIG += USE_WEBENGINE then I get this error: Project ERROR: Unknown module(s) in QT: webenginewidgets.
But if i don't use CONFIG += USE_WEBENGINE then I get this error: Project ERROR: Unknown module(s) in QT: webkitwidgets

For me the sultan has just stopped working.

GitHub allows to create releases

I find your updates very helpful. But i wonder why you don't create a release before updating the code. It will be much useful for you to track your project and keep copies of the older code in the GitHub!
The following is the procedure to create releases:

  • Log-in to GitHub

  • Click on releases

image

  • In new page you will see all releases you already have created. If found none then the following message will be shown to you:

image

  • Now simply click on Create a new release In the next page you will be shown the following content:
    image

  • Now you can give any value to your Tag Version like 1.0, 1.1 etc. Optionally you can check This is a pre-release and then click on Publish release

  • Done Enjoy!

Use dot as comma

Use dot as comma for typing qty. (because comma key is to far from numeric keypad)

Error compile on Manjaro Linux

suplier/suplierwidget.cpp:63:53: error: invalid use of incomplete type ‘class QHeaderView’ mTableWidget->getTableView()->horizontalHeader()->setStretchLastSection(true); ![Screenshot_20190420_120453](https://user-images.githubusercontent.com/35197443/56452998-87ef5800-6364-11e9-943e-d4d27f7a7c1c.png)

I need your help

Your code is very complex please tell me in detail how could you send and receive SQLite quarries over the network?
I mean how could you make SQLite support server and client.
sorry for the bad English

Stock Report (Feature request)

Based on a manually entered reorder level and minimum inventory level.. a report should be generated for stock items with stock level below order level / minimum inventory level.

Print barcode

Print barcode using ZPL. This will be implement when I have zebra printer.

Customize print layout

  1. Customize print order (1 logo. 2 price items, 3 footer) ==> 2 3 1
  2. Each items (name, qty, price) printed in one line (CP10 33)
  3. Add image logo

Add new variety for windows build

  1. Current build -> save setting to the regedit
  2. Full portable build -> save setting to file

This probably not used in the future, since some setting will be move to database.

Move some setting to databases

There are some setting that share between server and client. So, we don't need to setting every single client who connect to server.
Some of setting are :

  1. Market Name
  2. Setting for printer title, sub title, and footer

Sultan fails to build on windows

Hi apinprastya,
I am trying to test your awesome project on my Qt5.9.0 MinGW Windows 10 but i get this error in libgui:

1: error: [copytr] Error 4

cmd /c xcopy /S /I /Y C:\Shujaat Ali Khan\sultan-master\sultan-master\libgui\libgui_id.qm C:\Shujaat Ali Khan\sultan-master\build-sultan-Desktop_Qt_5_9_0_MinGW_32bit-Release\libgui..\bin\

Invalid number of parameters
Makefile.Release:407: recipe for target 'copytr' failed

Negative Sales

Item setting that either allows or prevents sale of negative stock (stock not available or loaded)

Customer Balance Report

A report showing a list of customers with balances due (debtors) and the overall total amount due.

Separate server

It would be great to have a separate server program rather than mixed with Client. It can be a simple console app handling only database.

QML GUI

Use full QML as the GUI, this will be possible ported to Android, IOS, and linux desktop with touch screen.

Note : the branch for working will be on gui_qml

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.