<NME> README.md
<BEF> > *The old PHP version of inoERP is available @ https://github.com/php-inoerp/inoERP*

inoERP is an  **[OneApp](https://docs.rikdata.com)** (Go back-end & Flutter front-end) based enterprise management system. The ERP systems contain all the required modules for running small to midsize businesses. The features are similar to Oracle R12/ Cloud Application and SAP ECC/Hana S/4. 

The application uses MySQL database and OneApp JavaScript APIs to create business logic. All the database and javascript codes are available on GitHub.

The client is available for Andriod, iOS, macOS, Windows, and Web.

The server is available for Windows, macOS, and Linux.

Documentation: <http://docs.inoerp.com>

REST APIs <http://api.inoerp.com>

Web Demo:

- https <https://demo.inoerp.com:8090/>

- http <http://demo.inoerp.com:8085/>

Contact : contact@rikdata.com, rikdata.com@gmail.com

***The web client is experimental and doesn't have all functionalities of native clients (Windows/macOS/Andriod/iOS). The performance of the web is also not at the same level as a native client. So, try the application with a native client and use the above URL in your native client.***

## Server
------------
## MySQL

1. Install MySQL  Ver 8.0.+
2. Change MySQL settings on the config.json file
````
{
      "dbConnName": "Inoerp",
      "dbType": "MySQL",
      "host": "localhost",
      "portNumber": 3306,
      "dbName": "inoerp",
      "userName": "YourDbUserName",
      "password": "YourDbPassword",
      "connPoll": 5,
      "maxConnPoll": 10,
      "defaultRowLimit": 5
    }
== Requirements ==

1. HTTP web server Ex. Nginx, Apache, IIS, Oracle HTTP
2. PHP 5.5+ for versions upto 0.4.1 , and PHP 7+ for versions => 0.5.1   
3. Oracle 12c or MySQL(Server version: 5.6.17+) or MariaDB
    
== Auto Installation ==
````

database file is available @ assets\db\mysql folder

The import process will create the required inoerp schema.


````
CREATE DATABASE  IF NOT EXISTS `inoerp` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
USE `inoerp`;
SET GLOBAL log_bin_trust_function_creators = 1;
````

Ensure ***SET GLOBAL log_bin_trust_function_creators = 1;***

## Settings

1. Enter server hostname and port on the config.json file
````
  "application": {
    "protocol": "http://",
    "hostName": "localhost",
    "portNumber": 8085,
    "certFile": "",
    "keyFile": ""
  },

````

2. Change any other settings on the config.json file as per business requirement

## Start/Stop
 You can start the server like any other application. You can stop the server using OneApp Desktop/Mobile client. You can also send a REST request to Your host/stop to stop the application. To send a stop request, you must have admin authority.

````
 ./oneapp_win.exe
 
````

or in Linux

````
nohup ./oneapp_linux &
 
````


## Client

Access the application using any client of your choice. The clients are available for
* Andriod
* Windows
* macOS
* iOS
* Web


[Download Client](https://docs.rikdata.com/docs/download)

The console will show you a message stating the host and port when the server starts. Server start should not take more than 10-15 seconds.

````
Starting server @ localhost:8085
 
````

Open the application in a browser and test that you can login with the default username and password (admin/admin)

<img src="http://docs.inoerp.com/images/modules/admin/server/server_01.PNG" width="800"/>

Click on the sign-in button, and the system will redirect you to the dashboard.


:::caution

The web client is experimental and doesn't have all functionalities of native clients (Windows/macOS/Andriod/iOS). The performance of the web is also not at the same level as a native client. So, try the application with a native client and use the above URL in your native client.

:::

<img src="http://docs.inoerp.com/images/modules/admin/server/server_02.PNG" width="800"/>



Read how to configure and use 
any client @ [OneApp](https://docs.rikdata.com/docs/quickstart)

## Modules
------------

Below are the fully functional ERP Modules available in inoERP

###  General Ledger (GL)
Chart of Accounts
inoERP allows a multi-segment accounting structure that you can use to represent all segments of a business transaction.
      Ex : 001-100-1020202-0100-100
      Where 001 – Represents a specific company/business unit /legal entity
      100 – Represents a cost center
      1020202 – a Natural account such as Asset, Liability, Expense, Income, or Owners Equity

2. Calendars 
Define as many different financial calendars as required
Ex: One calendar INO_CORP for Corporate and INO_USA, INO_UK for specific countries
3. Account Combinations
4. Currency & Conversions
5. Ledger:  A set of a calendar, currency, and chart of accounts
6. Banks
7. Journal 


###  Accounts Payable(AP)
1. Suppliers
2. AP Transactions
 -  2.1 Invoices
 -  2.2 Debit Memo
 -  2.3 Credit Memo
3. PO/Transaction Matching 
4. Multi select matching
5. AP Payments
 -  5.1 Single Invoice Payment
 -  5.2 Multi select Payment
6. Transfer Journals to GL

###  Accounts Receivable(AR)
1.  Customer
2.  AR Transactions
 -  2.1 Invoices
 -  2.2 Debit Memo
 -  2.3 Credit Memo
 -  2.4 Deposit
 -  2.5 Guarantee
 -  2.6 Charge Back
3.  AR Payments
 -  3.1 Single Invoice Payment
 -  3.2 Multi select Payment
4. Transfer Journals to GL

###  Fixed Asset Accounting(FA)
1. Asset
2. Depreciation
3. Transactions
4. Configuration

### Organizations(ORG)
1. Enterprise Org
2. Legal Org
3. Business Org
4. Inventory Org
5   Address

### Inventory (INV)
1. Item Master
2. Unit of Measure
3. Sub inventory
4. Locator
5. Inventory Transactions
6. Material Receipts
     * PO Receipt  
     * IR Receipt  
     * RMA Receipt  
7. Onhand Value
8. Cycle Count
    * Cycle Count Adjustment
    * Cycle Count Approval 
9. ABC Analysis

### Purchasing (PO)
1. Purchase Order
    * Standard
    * Blanket Agreement
    * Planned PO
2. Requisitions
    * External
    * Internal

3. RFQ / Quote
4. Approval for PO, Requisition

### Sales & Distributions (SD)
1. Sales Order - Creation & Auto Booking
2. Sales Picking
3. Delivery & Shipment
4. Auto AR Invoice

### Bills Of Material (BOM)
1. Departments
2. Resources
3. Routing
4. BOM
5. Super BOM

### Costing (CST)
1. Material Element
2. Material OH 
3. Overhead
4. Resources
5. Standard Cost
6. Cost Roll Up
7. Cost Update

### Work in Process (WIP)
1. Work Order 
2. WIP Move Transactions
3. WIP Resource Transactions
4. WIP Material Transaction
5. WO Completion/Return

### Supply Chain Planning (SCP)
1. Forecast
2. MDS
3. MRP
4. Min-Max Planning
    * Multi Bin Min Max
    
### Human Resource (HR)
1. Employee
    * Education
    * Experience
    * Planned PO
2. Job
3. Position
4. Compensation & Payroll
4. Leave System
4. Approval Hierarchy
    
### Basic Features
1.   Options
2.   Value Groups
3.   Transaction Types
4.   Custom Reporting
5.   Search
5.   Multi Select
6.   Mass Upload    

### Admin
1. User 
2. Roles and Role Base Access Control
3. Notification
4. Document Approval

## Modules Under Development
------------
1. Project System
2. Asset Maintenance
3. HelpDesk


## Dynamic pull System
------------
The idea behind inoERP is to provide a dynamic pull-based system where the demand /supply changes frequently and traditional planning systems (such as MRP or Kanban) are incompetent to provide a good inventory turn.

A dynamic pull system is an advanced version of a pull system that encompasses the best feature of the traditional pull system & MRP. The major disadvantage of the conventional Kanban system is the fixed Kanban size and requirement of at least two bins for the entire operation. In a sudden demand decrease, the Kanban system can result in extra inventory, and the value of unused inventory can go up to 2 bin size. Similarly, In case of unexpected demand increases can result in a line down, and the issue will be severe if the lead times are not short.

The dynamic pull system overcomes this issue by recalculating the bucket size (Kanban size/lot size) before creating any supply (requisitions/purchase order/work order). Each time a new supply is created, the system automatically decides the best supply size per the actual demand.

<MSG> Update README.md
<DFF> @@ -44,7 +44,7 @@ Requirements & Installation
 == Requirements ==
 
 1. HTTP web server Ex. Nginx, Apache, IIS, Oracle HTTP
-2. PHP 5.5+ for versions upto 0.4.1 , and PHP 7+ for versions => 0.5.1   
+2. PHP 5.5+ for versions upto 0.4.1 , PHP 7+ for versions => 0.5.1  and PHP 7.1+ for versions => 0.6.1   
 3. Oracle 12c or MySQL(Server version: 5.6.17+) or MariaDB
     
 == Auto Installation ==

{'commit': 'diff --git a/README.md b/README.md\nindex 10e71ba8..393efe9e 100644\n--- a/README.md\n+++ b/README.md\n@@ -44,7 +44,7 @@ Requirements & Installation\n == Requirements ==\n \n 1. HTTP web server Ex. Nginx, Apache, IIS, Oracle HTTP\n-2. PHP 5.5+ for versions upto 0.4.1 , and PHP 7+ for versions => 0.5.1   \n+2. PHP 5.5+ for versions upto 0.4.1 , PHP 7+ for versions => 0.5.1  and PHP 7.1+ for versions => 0.6.1   \n 3. Oracle 12c or MySQL(Server version: 5.6.17+) or MariaDB\n     \n == Auto Installation ==\n', 'commit_subject': 'Update README.md', 'repo_name': 'inoerp/inoERP', 'committer': {'name': 'GitHub', 'email': '1505422b2465e9a84f6fdfaa161078890c593f06@github.com', 'time_sec': '1491063308', 'tz_offset': '60', 'date': {'seconds': '1491063308'}}, 'commit_tree': '282ff96bfda127aeb0fb36b0eec35c3bf46ed4ff', 'commit_message': 'Update README.md', 'language_name': 'HTML', 'license': 'mpl-2.0', 'hunks': '@@ -44,7 +44,7 @@ Requirements & Installation\n == Requirements ==\n \n 1. HTTP web server Ex. Nginx, Apache, IIS, Oracle HTTP\n-2. PHP 5.5+ for versions upto 0.4.1 , and PHP 7+ for versions => 0.5.1   \n+2. PHP 5.5+ for versions upto 0.4.1 , PHP 7+ for versions => 0.5.1  and PHP 7.1+ for versions => 0.6.1   \n 3. Oracle 12c or MySQL(Server version: 5.6.17+) or MariaDB\n     \n == Auto Installation ==\n', 'addition_count': 1, 'deletion_count': 1, 'src_file': 'a/README.md', 'tgt_file': 'b/README.md', 'file_extension': '.md', 'before_file': '> *The old PHP version of inoERP is available @ https://github.com/php-inoerp/inoERP*\n\ninoERP is an  **[OneApp](https://docs.rikdata.com)** (Go back-end & Flutter front-end) based enterprise management system. The ERP systems contain all the required modules for running small to midsize businesses. The features are similar to Oracle R12/ Cloud Application and SAP ECC/Hana S/4. \n\nThe application uses MySQL database and OneApp JavaScript APIs to create business logic. All the database and javascript codes are available on GitHub.\n\nThe client is available for Andriod, iOS, macOS, Windows, and Web.\n\nThe server is available for Windows, macOS, and Linux.\n\nDocumentation: <http://docs.inoerp.com>\n\nREST APIs <http://api.inoerp.com>\n\nWeb Demo:\n\n- https <https://demo.inoerp.com:8090/>\n\n- http <http://demo.inoerp.com:8085/>\n\nContact : contact@rikdata.com, rikdata.com@gmail.com\n\n***The web client is experimental and doesn\'t have all functionalities of native clients (Windows/macOS/Andriod/iOS). The performance of the web is also not at the same level as a native client. So, try the application with a native client and use the above URL in your native client.***\n\n## Server\n------------\n## MySQL\n\n1. Install MySQL  Ver 8.0.+\n2. Change MySQL settings on the config.json file\n````\n{\n      "dbConnName": "Inoerp",\n      "dbType": "MySQL",\n      "host": "localhost",\n      "portNumber": 3306,\n      "dbName": "inoerp",\n      "userName": "YourDbUserName",\n      "password": "YourDbPassword",\n      "connPoll": 5,\n      "maxConnPoll": 10,\n      "defaultRowLimit": 5\n    }\n== Requirements ==\n\n1. HTTP web server Ex. Nginx, Apache, IIS, Oracle HTTP\n2. PHP 5.5+ for versions upto 0.4.1 , and PHP 7+ for versions => 0.5.1   \n3. Oracle 12c or MySQL(Server version: 5.6.17+) or MariaDB\n    \n== Auto Installation ==\n````\n\ndatabase file is available @ assets\\db\\mysql folder\n\nThe import process will create the required inoerp schema.\n\n\n````\nCREATE DATABASE  IF NOT EXISTS `inoerp` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION=\'N\' */;\nUSE `inoerp`;\nSET GLOBAL log_bin_trust_function_creators = 1;\n````\n\nEnsure ***SET GLOBAL log_bin_trust_function_creators = 1;***\n\n## Settings\n\n1. Enter server hostname and port on the config.json file\n````\n  "application": {\n    "protocol": "http://",\n    "hostName": "localhost",\n    "portNumber": 8085,\n    "certFile": "",\n    "keyFile": ""\n  },\n\n````\n\n2. Change any other settings on the config.json file as per business requirement\n\n## Start/Stop\n You can start the server like any other application. You can stop the server using OneApp Desktop/Mobile client. You can also send a REST request to Your host/stop to stop the application. To send a stop request, you must have admin authority.\n\n````\n ./oneapp_win.exe\n \n````\n\nor in Linux\n\n````\nnohup ./oneapp_linux &\n \n````\n\n\n## Client\n\nAccess the application using any client of your choice. The clients are available for\n* Andriod\n* Windows\n* macOS\n* iOS\n* Web\n\n\n[Download Client](https://docs.rikdata.com/docs/download)\n\nThe console will show you a message stating the host and port when the server starts. Server start should not take more than 10-15 seconds.\n\n````\nStarting server @ localhost:8085\n \n````\n\nOpen the application in a browser and test that you can login with the default username and password (admin/admin)\n\n<img src="http://docs.inoerp.com/images/modules/admin/server/server_01.PNG" width="800"/>\n\nClick on the sign-in button, and the system will redirect you to the dashboard.\n\n\n:::caution\n\nThe web client is experimental and doesn\'t have all functionalities of native clients (Windows/macOS/Andriod/iOS). The performance of the web is also not at the same level as a native client. So, try the application with a native client and use the above URL in your native client.\n\n:::\n\n<img src="http://docs.inoerp.com/images/modules/admin/server/server_02.PNG" width="800"/>\n\n\n\nRead how to configure and use \nany client @ [OneApp](https://docs.rikdata.com/docs/quickstart)\n\n## Modules\n------------\n\nBelow are the fully functional ERP Modules available in inoERP\n\n###  General Ledger (GL)\nChart of Accounts\ninoERP allows a multi-segment accounting structure that you can use to represent all segments of a business transaction.\n      Ex : 001-100-1020202-0100-100\n      Where 001 – Represents a specific company/business unit /legal entity\n      100 – Represents a cost center\n      1020202 – a Natural account such as Asset, Liability, Expense, Income, or Owners Equity\n\n2. Calendars \nDefine as many different financial calendars as required\nEx: One calendar INO_CORP for Corporate and INO_USA, INO_UK for specific countries\n3. Account Combinations\n4. Currency & Conversions\n5. Ledger:  A set of a calendar, currency, and chart of accounts\n6. Banks\n7. Journal \n\n\n###  Accounts Payable(AP)\n1. Suppliers\n2. AP Transactions\n -  2.1 Invoices\n -  2.2 Debit Memo\n -  2.3 Credit Memo\n3. PO/Transaction Matching \n4. Multi select matching\n5. AP Payments\n -  5.1 Single Invoice Payment\n -  5.2 Multi select Payment\n6. Transfer Journals to GL\n\n###  Accounts Receivable(AR)\n1.  Customer\n2.  AR Transactions\n -  2.1 Invoices\n -  2.2 Debit Memo\n -  2.3 Credit Memo\n -  2.4 Deposit\n -  2.5 Guarantee\n -  2.6 Charge Back\n3.  AR Payments\n -  3.1 Single Invoice Payment\n -  3.2 Multi select Payment\n4. Transfer Journals to GL\n\n###  Fixed Asset Accounting(FA)\n1. Asset\n2. Depreciation\n3. Transactions\n4. Configuration\n\n### Organizations(ORG)\n1. Enterprise Org\n2. Legal Org\n3. Business Org\n4. Inventory Org\n5   Address\n\n### Inventory (INV)\n1. Item Master\n2. Unit of Measure\n3. Sub inventory\n4. Locator\n5. Inventory Transactions\n6. Material Receipts\n     * PO Receipt  \n     * IR Receipt  \n     * RMA Receipt  \n7. Onhand Value\n8. Cycle Count\n    * Cycle Count Adjustment\n    * Cycle Count Approval \n9. ABC Analysis\n\n### Purchasing (PO)\n1. Purchase Order\n    * Standard\n    * Blanket Agreement\n    * Planned PO\n2. Requisitions\n    * External\n    * Internal\n\n3. RFQ / Quote\n4. Approval for PO, Requisition\n\n### Sales & Distributions (SD)\n1. Sales Order - Creation & Auto Booking\n2. Sales Picking\n3. Delivery & Shipment\n4. Auto AR Invoice\n\n### Bills Of Material (BOM)\n1. Departments\n2. Resources\n3. Routing\n4. BOM\n5. Super BOM\n\n### Costing (CST)\n1. Material Element\n2. Material OH \n3. Overhead\n4. Resources\n5. Standard Cost\n6. Cost Roll Up\n7. Cost Update\n\n### Work in Process (WIP)\n1. Work Order \n2. WIP Move Transactions\n3. WIP Resource Transactions\n4. WIP Material Transaction\n5. WO Completion/Return\n\n### Supply Chain Planning (SCP)\n1. Forecast\n2. MDS\n3. MRP\n4. Min-Max Planning\n    * Multi Bin Min Max\n    \n### Human Resource (HR)\n1. Employee\n    * Education\n    * Experience\n    * Planned PO\n2. Job\n3. Position\n4. Compensation & Payroll\n4. Leave System\n4. Approval Hierarchy\n    \n### Basic Features\n1.   Options\n2.   Value Groups\n3.   Transaction Types\n4.   Custom Reporting\n5.   Search\n5.   Multi Select\n6.   Mass Upload    \n\n### Admin\n1. User \n2. Roles and Role Base Access Control\n3. Notification\n4. Document Approval\n\n## Modules Under Development\n------------\n1. Project System\n2. Asset Maintenance\n3. HelpDesk\n\n\n## Dynamic pull System\n------------\nThe idea behind inoERP is to provide a dynamic pull-based system where the demand /supply changes frequently and traditional planning systems (such as MRP or Kanban) are incompetent to provide a good inventory turn.\n\nA dynamic pull system is an advanced version of a pull system that encompasses the best feature of the traditional pull system & MRP. The major disadvantage of the conventional Kanban system is the fixed Kanban size and requirement of at least two bins for the entire operation. In a sudden demand decrease, the Kanban system can result in extra inventory, and the value of unused inventory can go up to 2 bin size. Similarly, In case of unexpected demand increases can result in a line down, and the issue will be severe if the lead times are not short.\n\nThe dynamic pull system overcomes this issue by recalculating the bucket size (Kanban size/lot size) before creating any supply (requisitions/purchase order/work order). Each time a new supply is created, the system automatically decides the best supply size per the actual demand.\n', 'message': 'Update README.md', 'author_name': 'GitHub', 'lang': 'md'}