Skip to content
Daniel Lindote edited this page Oct 28, 2019 · 12 revisions

Open source Point of Sale Solution

Manual

TechStack

Tools/Ides

  • Visual Studio 2019 Community

Directory Structure

  • docs (Minimal Documentation)
  • libs (Reference Libs)
    • fastreport (FastReport Dll Reference)
    • xpo_14_1_5 (Xpo Dll Reference)
  • logicpos (LogicPos Main Application)
  • logicpos.datalayer (DataLayer Project)
  • logicpos.documentviewer (Document Viewer Project)
    • logicpos.documentviewer (Document Viewer Window Project )
    • logicpos.documentviewer.source (Document Viewer Library Project )
  • logicpos.financial (Financial Projects)
    • logicpos.financial.console (Console Test Financial Project )
    • logicpos.financial.library (Financial Library Project )
    • logicpos.financial.service (Autoridade Tributária : WebService Financial Project )
    • logicpos.financial.servicewcf(Autoridade Tributária : Windows Communication Foundation WebService Project )
  • logicpos.hardware (Hardware Projects )
    • logicpos.printer.generic (Thermal Printer Base)
    • logicpos.printer.genericlinux (Thermal Printer Linux)
    • logicpos.printer.genericsocket (Thermal Printer Socket)
    • logicpos.printer.genericusb (Thermal Printer Usb)
    • logicpos.printer.genericwindows (Thermal Printer Windows)
  • logicpos.plugins (Plugins Projects and Plugin Implementations)
    • logicpos.plugin.contracts (Plugin Contracts/Interfaces)
    • logicpos.plugin.library (Plugin Main Library)
    • Medsphere.Widgets (Draw Graphics Plugin)
    • plugins (Plugin Implementations)
      • acme (Sample Plugins)
        • acme.softwarevendor.plugin (Sample Plugin SoftwareVendor Implementation)
  • logicpos.resources (Resources Project)
  • logicpos.shared (main Solution Shared Library Project)
  • others (Others)
    • windowsruntime (Windows Runtime/GTK)
  • packages (NuGet Packages)
    • LibUsbDotNet.2.2.8 (Used in Usb Hardware Devices)
    • log4net.2.0.5 (Used in Log)
    • MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3 (Required Dependency)
    • MySql.Data.6.9.9 (MySql Connector)
    • MySqlBackup.NET.2.0.9.4 (MySql Backup)
    • Newtonsoft.Json.9.0.1 (Used in Json Serialization)
    • System.Data.SQLite.Core.1.0.103 (Sqlite Dependency)
    • Unofficial.Ionic.Zip.1.9.1.8 (Zip Dependency, used in Backups)
  • tools (Helper Tools)
    • FastReport.Net (FastReports Runtime Designer) (FastReports Designer Runtime)

Install Development Environment

  • Install .NET 4.5 (If not already in system)

  • Install Visual Studio 2017 Community

  • Install GTK Runtime others\windowsruntime\gtk-sharp-2.12.22.msi

    • Download Windows Runtime

    • Copy libnodoka.dll (theme engine) to

      "c:\Program Files\GtkSharp\2.12\lib\gtk-2.0\2.10.0\engines\" (32bit)

      "c:\Program Files (x86)\GtkSharp\2.12\lib\gtk-2.0\2.10.0\engines\" (64bit)

  • Open Visual Studio Community 2019

    • Open Solution logicpos.sln or Folder Source Folder

    • Rebuild Solution

    • Rebuild Plugins ex acme.softwarevendor.plugin

    • Set logicpos as Startup Project

    • Set application settings on App.config

    • Run logicpos project

Database Requirements

To work with LogicPos we need a data store, currently we can use MySql Server, Miscrosoft SqlServer or Sqlite, bu technically we can use any data source comopatible with eXpressPersistent Objects™ (XPO)

> Note

To work with MySql Server or Miscrosoft SqlServer we need first to install server To Work With Sqlite we dont need to install anything Tip

### Recommended data sources: Mysql and SqlServer Configure LogicPos Database Connection After we choose a data store we need to configure it in application config

Open and edit config logicpos\bin\Debug\logicpos.exe.config

Configure Database

## Option #1 : Mysql

To work with MySql we need to edit xpoConnectionString to connect to local or remote MySql Server Instance

<add key="databaseType" value="MySql" />

<add key="xpoConnectionString" value="XpoProvider=MySql;server=localhost;database={0};user id=root;password=PASSWORD;persist security info=true;CharSet=utf8;" />

Note For remote server change localhost with remote ip, for ex 192.168.1.1

## Option #2 : SqlServer

To work with SqlServer we need to edit xpoConnectionString to point to our SqlServer Server Instance

<add key="databaseType" value="MSSqlServer" />

<add key="xpoConnectionString" value="XpoProvider=MSSqlServer;Data Source=SERVER\sql2008;Initial Catalog={0};User ID=sa;Password=PASSWORD;Persist Security Info=true;" />

## Option #3 : SqlServer Express

To work with SqlServer Express we need to edit xpoConnectionString to point to our SqlServer Express Instance, the connection string is a little diferent

<add key="databaseType" value="MSSqlServer" />

<add key="xpoConnectionString" value="XpoProvider=MSSqlServer;Data Source=.\SQLEXPRESS;Initial Catalog={0};User ID=username;Password=password;Persist Security Info=true;Integrated Security=SSPI;Pooling=false;" />

## Option #4 : Sqlite

<add key="databaseType" value="SQLite" />

<add key="xpoConnectionString" value="XpoProvider=MonoLite;uri=file:{0}.db" />

Notes Dont forget to change user id, password according your needs.

Manuals