SambaPOS 5.1.60 Release


#43

So in this case, you can just setup server and use RDP on tablets to connect to server. Search forum you can find info on this.

There won’t be any native Android app anytime soon. The PM POS is one option but still being developed to a complete solution, and once that’s the case, I’m sure a fully usable version of it will be posted on the forum for everyone to use.

EDIT: Regarding RDP connections, if you are using Windows 7 or above (non server OS) on your main server / terminal, one way is to use a hack “workaround” to enable RDP those OS, but it is an unreliable setup. Someone just posted on beta forum about using this to do RDP and is far more reliable and doesn’t break when using Windows Update: https://github.com/stascorp/rdpwrap


#44

Thanks!

I have done this as well with my personal tablet to test everything and to kind of play around. I do understand it’s all still under development but this would not be the best option for us to use. I don’t feel too comfortable doing it that way even though it is another option.

Thanks a million though! :grinning:


#45

PMPOS was simple proof of concept and is far from fully functional. The JS/GQL code for that was only capable of putting Orders (no modifiers) on a Ticket, selecting ticket Entities (Table/Customer) and submitting the Ticket for creation.

The SambaPOS Team is making great strides with PMPOS right now, and it might be possible sooner than I think, but it is probably further away than 2 weeks.

So your options right now are Windows Tablets, or RDP from Android and iPad devices.


#46

Awesome to know! :grinning:

My original post was more of a “my opinion for needing something”. I’ve gotten to know SambaPOS reasonably well over the past two weeks with the limited time I’ve had. Hehe.

Thanks for the awesome work!


#47

we recently bought the version 5,
we need o connect two terminals and we are stuck on the connection string.
We have done all the stps detailed here
https://sambapos.org/wiki/doku.php/en/installing_sql_express_2012_for_sambapos_v3

can you please send us the step by step guide for the version 5 as there seem to be none.
or if you would configure it for us, we would highly appreciate your help.

thank
Ab


#48

##Database Connection String

Your Terminals need to have their Connection Strings configured to access the Hostname or IP Address of the “Server” where the Database is installed.

So your connection string should look something like the following on all Terminals (including the Server):

General sting parameters:

Data Source=<serverName or IP>\<sql Instance Name>; User Id=<sql server user account>; Password=<password>; Database=<database name>;

Using server computer/host name:

Data Source=SERVERNAME\SQLEXPRESS; User Id=sa; Password=sambapos; Database=SambaPOS5;

Using server IP Address:

Data Source=192.168.1.5\SQLEXPRESS; User Id=sa; Password=sambapos; Database=SambaPOS5;

##Message Server

For multi-terminal operation, you also need to run the Message Server service on the server, and set the clients to connect to it. For the most recent version of SambaPOS5 (5.1.60), the Message Server parameter would look like this:

http://SERVERNAME

Or by IP:

http://192.168.1.5

And the Message Server Port need to be set as well, in general to 9000

To install and set the Message Server Port, run this tool on the Server machine:

C:\Program Files (x86)\SambaPOS5\Samba.MessagingServerServiceTool.exe


##Allowing Remote Connections to SQL Server and setting Authentication mode

You should also enable Mixed Authentication on SQL Server, so that you can use SQL Authentication with something like the “sa” SQL User Account, since Windows Authentication can cause some headaches.

As well, you need to configure SQL Server to allow Remote Connections.

##SQL Browser service, TCP/IP Protocol, Port and IP

By default, the SQL Browser service is disabled, so you need to enable this service, and set it to start automatically. In addition, ensure the TCP/IP Protocol is enabled, and it is good to set a static IP and Port for this protocol.

:bulb: Configuration is done only on the Server. Other Terminals do not need this configuration, since they are not running the SQL Service.

###Run the SQL Configuration Tool:

C:\Windows\SysWOW64\SQLServerManager11.msc (SQL 2012)
C:\Windows\SysWOW64\SQLServerManager12.msc (SQL 2014)
C:\Windows\SysWOW64\SQLServerManager13.msc (SQL 2016)

The following screenshots are from SQL Express 2014 64-bit.

###Set SQL Browser to Enabled

###Enable TCP/IP protocol for SQL and set the IP and Port


##Firewall Rules for:

  • SQL Service port (1433)
  • SQL Browser port (1434)
  • Message Server port (9000)

:bulb: Firewall Rules only need to be set on the Server. Other Terminals do not need these rules.


##Other Topics


#49

There are several for v5 additionally you might want to check out the v5 tutorials category of this forum.


#50

Menu list update problem and also API getMenuCategories and getMenuItems

When I change product name in product list and this item is in menu.
On sell screen is still old name. Also when I read items from API getMenuCategories and getMenuItems

I must remove from menu list the product, save, put back to same position, save. And after is on sell screen correct name.
For API are steps same and I must update port on samba messaging server service tool.

Is there some trick how refresh, reload data in one click?


#51

Menu Items are cached in memory for speed.

After making changes to certain things like Products or Menu Items:

  • when using SambaPOS UI, you may need to Logout and Login.
  • when using GraphQL, you need to restart the Messaging Service.

There is a GQL Mutation that causes a Cache Reset, but where you would use this, I don’t know:

mutation m {postResetCacheMessage {id}}

#52

That works for menu changes I tried it.


#53

Is there any proper documentation on this yet?

Im searching for the following:

  1. Search Entity: Customer
  2. Create Entity: Customer
  3. Create Ticket for Customer (Table Entity does not exist in my setup)
  4. add ticket tags, calculations and order tags.

It would be awesome if someone can help me figure out how to call a DB view and get it back as a json using this GraphQL.


#54

GraphQl is self documenting. Connect to localhost:9000 to enable it. On right you can see documented syntax on left you can try it and see results.


#55

That is not how it works. New syntax is added all the time and when added it will automatically be available in the documentation that I shared above. What were you planning to do with the db view?


#56

Thanks!

I should have noticed the Docs part on the right side! my bad.

I think i have almost all my needs covered in these docs bit. I have some some DB views created in my sql server to get some data out in a particular order and was thinking it would be awesome if i could query those view via GraphQL. Mostly to generate some really customised reports.
But im gonna spend some time with these docs before i research further into that.


#57

So if you would need another mutation added simply ask here and tag @emre to think about adding it


#58

Yeah! that would be an extremely helpful feature to make this a lot more customizable.
Searching and adding a new Customer was a breeze! im starting to enjoy this GraphQL!

however, I hit one small roadblock. Might need to bother @emre after all.
How do i edit/update and entity ?
I cant seem to find any mutation that allows me to edit/update an entity.


#59

You cant currently use GQL for that. We do have jscript api however.

https://sambapos.com/wiki/doku.php?id=jscript_api

Likely GQL will replace this eventually.


#60

Can you share what types? Chances are we can make those with custom reports.


#61

Nothing too specific yet. Just playing around with possibilities at the moment.

I created a cumulative view that gives me everything related to a ticket, so i can filter it for Entity type, particular entity, dates or other fields. Some of the details like tags were JSON objects so could not directly filter them via SQL.


#62

Kool! any examples on how exactly i use it?
What is the scope on this API?

I basically opened port 9000 for external connections to my server, and samba messaging server is on that port.

So currently im able to call GQL from my external machine over http. Im building a website integration for it.
Hence, i need to be able to update a client’s profile in sambapos if they updated their profile online.