# Welcome to MBPOS

Multi Branch Stock, Sale, Inventory & Invoice Management Software

- ### Introduction

  - Name : MBPOS
  - Version : V 1.0
  - Author : Devintime
  - Email : rakibuddin101@gmail.com
  - Skype : rakibuddin101
  - WhatsApp : +880 1917948316

  MBPOS is a management software. It's serve multi branches invontaroy & sale system. The admin of this software can create multiple branches & he / she also create employee for those branches. Every employee login into the system using their user name & password. When he / she login then get a smart management panel for handle sale & purchase. MBPOS also manage product requisition system with other branches.

  Sale target set for every branch. Daily, weekly, monthly & yearly Sale reports. Individual stock for each branches & overall stock, manage supply chain and other lot of facilities.

- ### Technical Information

  The Development tools of MBPOS are latest verson of Laravel php framework, Vue.js, Bootstrap, MySQL Database and other web application development tools.

  Server Requirements of This Application
  - PHP >= 7.1.3
  - OpenSSL PHP Extension
  - PDO PHP Extension
  - Mbstring PHP Extension
  - Tokenizer PHP Extension
  - XML PHP Extension
  - Ctype PHP Extension
  - JSON PHP Extension
  - BCMath PHP Extension

  ### Installaition

  Please follow the instruction step by step.
  1. Create a MySQL Database in your hosting control panel.
  2. Note down your Database credentials - database name, username, password & database host.
  3. Upload it (MBPOS.zip) file to server in desired folder
  4. Right click on the (MBPOS.zip) and extract this file.
  5. After finished extracting you need to browse your domain. You will get a setup wizard. You have to input necessary basic information.
  6. Which should look like following:

  #### Installaition Step 1

  #### Installaition Step 2

  #### Installaition Step 3

  #### Installaition Complete

  ## After successfully done with all the steps, you will get a login page like below:

- ### Application Settings

  This is the most important section for this application. You can set the various settings from this section.

  1. App Name: Name of the application. This name will use in all invoices.
  2. Address: This address will use in all invoices.
  3. Phone Number: This phone number will use in all invoices.
  4. Default Customer: If there is no existing customer then this customer used as a default customer.
  5. Default Customer: If any one don't like to register as a customer then this customer will use as a default customer.
  6. Default Language: Default language of this application.
  7. Date Format: Application date format.
  8. Timezone: Set timezone.
  9. App Logo: Application logo. This logo will use in all invoices.
  10. Fav Icon: Application Fav Icon.

  #### Currency Setting

  1. Set Currency: This currency will use for whole application.

  #### Prefix Setting

  1. Product: Product SKU Prefix.
  2. Purchase Invoice: Purchase Invoice ID Prefix.
  3. Sale Invoice: Sale Invoice ID Prefix.
  4. Requisition ID: Requisition ID Prefix.
  5. Expense ID: Expense ID Prefix.
  6. Invoice Min Length: Minimum Length of Invoice ID.

Create admin account input your user credentials. After successfully register you will get admin panel. Then you get a application setting window.

1. Total sales amount of this mounth.
2. Total sales amount.
3. Total purchase amount of this mounth.
4. Total purchase amount.
5. Chart representation of last 30 days sales summary.
6. Branch sales target completion percentage for current month.

- ### Development Environment

  Follow the bellow instructions. Assuming you are running package on a local machine.

  1. Open Command Line Interface and browse to your project base folder
  2. Run: php -S 127.0.0.1:8000
  3. On your browser, type 127.0.0.1:8000 or http://localhost:8000
  4. We heavily use vue js JavaScript framework and if you want to edit any view, you need to run the following command after make any changes on any view files.
  5. npm run watch (run this command from same root directory).
  6. Reference for Vue.js

- ### Categories

  Product category is the classification of product. You can find product easily by using this category.

  1. New Category: This is the button for add new category. When you click on this button then get add new category form.
  2. (Edit): This is edit button of the category. By clicking on this button you can able to edit existing category.
  3. (Delete): Delete button of this category.

  ### Taxes

  Tax for product.

  1. New Tax: This is the button for add new tax. When you click on this button then get add new tax add form.
  2. (Edit): This is edit button of the tax. By clicking on this button you can able to edit existing tax.
  3. (Delete): Delete button of this tax.

  ### Products

  Manage product from this section. Admin or authorized user create new product with necessary information.

  1. New Product: This is the button for add new product. When you click on this button then get add new product add form.
  2. (Edit): This is edit button of the priduct. By clicking on this button you can able to edit existing product.
  3. (Barcode): By clicking on this button you can able to download barcode for this product.
  4. (View): This is product view details button. By clicking on this button you can able to details information of this product. Product view details image below
  5. (Delete): Delete button of this product.
  6. Product Filter
  1. Here is the full information of this product. Product SKU, category, purchase price, Sale price & tax information and also contain inventory information of this product.
  2. Purchase quantity: The total number of purchase quantity of this product.
  3. Received from other branches: This number of quantity is how many quantity received from other branches. It's stock transfer using requisition.
  4. Sale quantity: Total number of Sale quantity of this product.
  5. Send to other branches: This number of quantity is how many quantity send to other branches.
  6. Stock quantity: Total number of available stock quantity.
  7. Total purchase amount: Total purchase amount of this product.
  8. Total Sale amount: Total Sale amount of this product.
  9. Current stock value: Total value of curent stock quantity.

- ### Manage Sale

  This is the importent section of this project. You can managed Sale of your product from this section. You can generate Sale invoice by selecting a customer, if there is no existing customer or new customer then you can create customer easily from this page. Follow the steps sequentially for managed Sale invoice.

  1. Create Invoice: Create new Sale invoice.
  2. Filter Invoice: Filter/search a invoice by using the invoice criteria as like (Invoice ID, Selecting a branch, Selecting a customer, Date range of invoice).
  3. Action: Three actions for each invoice (1. Edit, 2. View Details, 3. Delete)

  ### Create Sale Invoice

  Create new Sale invoice click on Create Invoice button from the top left site. Then you get the create invoice page.

  1. Select Customer: Select a customer. Here is a default customer selected.
  2. Add New Customer: Click on the plus button then you get new customer add form. When create a new customer then automatically select for invoice.
  3. Right Section: This is the product list section. You can select product for invoice. Here is a product filter field. You can find product by name or SKU. You can also find products by clicking on the product category from the right of this field.
  4. Left Section: This is the invoice section. The short brief of this section
     1. Row of items (Product Title / Name, Sale Price, Tax, Qty, Total Amount).
     2. Sale Price: here is a default Sale price that is selected from product create form. Here is two types of Sale price. 1. Fixed Sale price that user can not able to change. 2. Negotiable price that user can able to change.
     3. Tax is assigned from product create from.
     4. Qty: Number of Sale quantity. By default 1 is the Sale Qty. User can increase Qty if stock is available.
     5. This is the unit total for each product / row. Here is a remove button for removing any selected product row
     6. Total: Total amount of this invoice items list.
     7. Discount: Discount by default 0. If you need to provide discount just input discount amount here. Discount must be less than total amount.
     8. Grand Total: Grand total of this invoice. Grand total = total - discount.
     9. Here are four action buttons. 1. Payment, 2. Draft List, 3. Save as Draft and 4. Clear.
        1. Payment: When you click on payment button then you get a payment receved form.
        1. The right section of this payment window is invoice details with customer information.
        2. Left section of this window here are some informations. 1. Total: total amount of this invoice
        3. Paid: The default value of paid field is total amount of invoice. You can change this value namually. If you put less value of total then this generate invoice with due amount. You can able to collect this due amount in future. If you pull getter than total amount then you get automatically calculate change amount.
        4. Here are two types of payment methods 1. Cash & 2. Card. Cash payment is simple. If you select card then you get a field here you can input card information
        5. Then click on Confirm Payment Button. When you click on Payment Confirm Button then you get a invoice print button.
        2. Draft List: When you click on this button then you get a list that was saved for future.
        1. The top section of this list is you can find amy specific draft invoice for modification by typing date, customer name or phone number.
        2. When you click on a invoice from this list this draft will set for processing.
        3. You can delete draft list by clicking on remove button from the right section.
        3. Save as Draft: You can save any invoice as draft for future process by clicking on this button.
        4. Clear: You can clear infoice list items by clicking on this button.

- ### Manage Stock

  All kinds of purchase and stock managed from this section. Purchase invoices, Create new purchase invoice, Manage requisition and related features managed from this section. Details of these features are below.

  1. Create Purchase: Create new purchase invoice.
  2. Filter Purchase Invoice: Filter/search a purchase invoice by using the invoice criteria as like (Invoice ID, Selecting a branch, Selecting a supplier, Date range of invoice).
  3. Action: Three actions for each invoice (1. Edit, 2. View Details, 3. Delete)
  4. Edit: used for update any existing invoice
  5. View Details: used for view full information of this invoice. You can able to print & download PDF format of this invoice.
  6. Delete: used for delete existing invoice.

- ### Create Purchase Invoice

  Create new purchase invoice click on Create Purchase Invoice button from the top left site. Then you get the create purchase invoice page.

  1. Right Section: This is the product list section. You can select product for purchase invoice. Here is a product filter field. You can find product by name or SKU. You can also find products by clicking on the product category from the right of this field. When you click on a product then you get a form and input product purchase price & total number of purchase quantity. When you click on save button then this product save in purchase invoice item. You can select another product with the same process.
  2. Select Supplier: For select a supplier click on Select Supplier then you get existing supplier list. You can select a supplier from this list.
  3. Left Section: Here is the list of purchased product. Every list item has Edit & Delete button. Edit use for change any information like quanty or purchade price & Delete use for remove item from invoice list.
  4. Total Amount: Total amount of this invoice
  5. Paid Amount: Total paid amount of this invoice
  6. Due Amount: Total due amount
  7. Save & Submit: Save & Submit is a button. You can create purchase invoice by clicking on this button. When you click on Save & Submit button then you get purchase invoice print button.
  8. Clear: You can clear invoice items by clicking on this button.

- ### Create Requisition

  Requisition is specially used for stock transfer between two branches. Branch1 create requisitiion to Branch2 then Branch2 get a new requisition notification. The user of Branch2 check the requisition. If products are available in stock then Branch2 can send product to Branch1. Branch2 can also cancel requisition. The details workflow of requisition is presented below.

  1. Right Section: This is the product list section. You can select product for requisition. Here is a product filter field. You can find product by name or SKU. When you click on a product this product automatically add requisition list.
  2. Left Section: You can select a branch from the top section of branches list. This branch received this requisition.
  3. Product List: This is the product list of this requisition. You can update product quantity or delete prodict from this list.
  4. Send Request: When you click on Send Request. Requsition send to selected branch. When you click on Send Request then you get a requisition print button.
  5. Branch1 can edit requisition by clicking on edit button from pending requisition list. If requisition processed by Branch2 then Branch1 can not able to edit.
  6. Clear: You can clear requsition list by clicking on Clear button.

  ### When Branch2 received requisition then this look like below

  1. Branch2 can update product quantity. Branch2 also able to delete amy item/product from requisition.
  2. Send: Branch2 send product to Branch1 by click on Send button. When click on Send button then you get requisition print button. This requisition is delivered for Branch2
  3. When Branch2 delivered requisition then Branch1 get a product received notification.
  4. Reject: Branch2 can reject requisition by click on Reject button.

  ### Branch1 get product received notification then this look like below

  1. Branch1 Received products by click on Received button.
  2. Branch1 Cancel requisition by click on Cancel button.
  3. When Branch1 click on Received button then requisition status will be complete. User can print requisition.

- ### Manage Requisition

  You can manage requisition from this section. Here are some important feature for manage requisition. Details are presented below.

  1. Filter: You can filter any requisition using filter parameter. There are available filter parameters like 1. Requisition ID, 2. Requisition From, 3. Requisition To, 4. Date Range (Start & End Date) & 5. Requisition Status (Pending, Delivered, Complete, Reject or Cancel).
  2. Search: After select necessary filter parameter just click on search button.
  3. Action: In the action column there are three buttons. 1. View, 2. Edit & 3. Delete. If requisition is new/pending then Edit & Delete buttons are available.

- ### Manage Expense

  User can manage expense for his/her branch. It contain expense list for every day. Expense managed by different expense category. Full description of expense category & expense are below.

  ##### Expense Category

  1. New Category: You can create new category by clicking on New Category button from the top right section.
  2. Category List: This is the expense category list. In the action column of this list there are two action buttons 1. Edit & 2. Delete.
  3. Edit: Edit button used for update existing category.
  4. Delete: Delete button used for delete existing any category.

  ##### Expense List

  1. Filter: You can filter any expense using filter parameter. There are available filter parameters like 1. Expense ID, 2. Expense Category, 3. Branch, 4. Date Range (Start & End Date).
  2. Search: After select necessary filter parameter just click on search button.
  3. New Expense: This is new expense create button
  4. Expense List: This is the existing expense list. In the action column of this list there are three action buttons 1. Edit, 2. View & 3. Delete.
  5. Edit: Edit button used for update existing expense.
  6. View: View button for view details for of any expense.
  7. Delete: Delete button used for delete existing any expense.

  ##### New Expense (Create New)

  1. Expense Date: Select date of expese.
  2. Expense Category: Select a expense category.
  3. Amount : Input total expese amount.
  4. Note: Note is a optional field. If you need any small note for this expense then input expense note.
  5. Save: Save this expense.

- ### Manage Payment

  This is the payment section. You can pay for your supplier. You can also receive due amount from customer. There are two section 1. Payment to Supplier & 2. Received from Customer.

  ##### Payment to Supplier

  1. Filter: You can filter any payment record using filter parameter. There are available filter parameters like 1. Supplier, 2. Branch & 3. Date Range (Start & End Date).
  2. Search: After select necessary filter parameter just click on search button.
  3. New Payment: This is new payment create button
  4. Payment List: This is the existing payment list. You can view supplier details by clicking on supplier name from this list. In the action column of this list there are three action buttons 1. Edit, 2. View & 3. Delete.
  5. Edit: Edit button used for update existing payment.
  6. View: View button for view details for of any payment.
  7. Delete: Delete button used for delete existing any payment.

  ##### New Payment (Create Payment)

  1. Payment Date: Select date of payment.
  2. Supplier: Select supplier. When you select a supplier then show total due of this supplier.
  3. Amount : Input total payment amount. Payment amount does not biggest of total due amount.
  4. Note: Note is a optional field. If you need any small note for this payment then input expense note.
  5. Save: Save this payment.

  ##### Receive from Customer

  1. Filter: You can filter any due Sale invoice using filter parameter. There are available filter parameters like 1. Customers & 2. Date Range (Start & End Date).
  2. Search: After select necessary filter parameter just click on search button.
  3. Invoice List: This is the due Sale invoice list. In the action column there is a Pay Now button. You can received amount from customer by clicking on this button.

- ### Manage Employees

  User can manage employee from this section. There are two classifications for each employee (1. Department & 2. Designation).

  ##### Manage Departments

  1. New Department: You can create new department by clicking on New Department button from the top right section.
  2. Department List: This is the department list. In the action column of this list there are two action buttons 1. Edit & 2. Delete.
  3. Edit: Edit button used for update existing department.
  4. Delete: Delete button used for delete existing any department.

  ##### Manage Designations

  1. New Designation: You can create new designation by clicking on New Designation button from the top right section.
  2. Designation List: This is the designation list. In the action column of this list there are two action buttons 1. Edit & 2. Delete.
  3. Edit: Edit button used for update existing designation.
  4. Delete: Delete button used for delete existing any designation.

  ##### Manage Employee

  1. New Employee: You can create new employee by clicking on New Employee button from the top right section.
  2. Employee List: This is the designation list. In the action column of this list there are three action buttons 1. Edit, 2. View & 3. Delete.
  3. Edit: Edit button used for update existing employee.
  4. View: View button used for view details of this employee.
  5. Delete: Delete button used for delete existing any employee.

  ##### Add New Employee

  1. Personal Information : This section contain personal information of a employee. The fields of this section are Name, Gender, Date of Birth, Blood Group, Phone Number, Address, Educational Background, Profile Picture
  2. Employment Info: This section contain employment information. The fields of this section are Department, Designation, Branch, Role, Employee ID, Joning Date.
  3. Login Information: This section contain login information of this employee. The fields of this section are Email, Password, Re-type Password
  4. Save: Finally save the employee information by clicking on Save button.

- ### Manage Branch

  You can manage branch from this section.

  1. Create Branch: You can create new branch by clicking on Create Branch button from the top right section.
  2. Branch List: This is the branch list. In the action column of this list there are two action buttons 1. Edit & 2. Delete.
  3. Edit: Edit button used for update existing branch.
  4. Delete: Delete button used for delete existing any branch.

  ##### Create Branch

  1. Branch Information : This section contain branch information. The fields of this section are Branch Name, Contact Person, Phone Number, Address, Short Description.
  2. Save: Finally save the branch information by clicking on Save button.

- ### Manage Sale Target

  You can manage monthly Sale target from this section for each branch.

  1. Create Sale Target: You can create new Sale target by clicking on Create Sale Target button from the top right section.
  2. Sale Target List: This is monthly Sale target list. There are two action buttons Edit & Delete stay in the right section.
  3. Edit: Edit button used for update existing Sale target.
  4. Delete: Delete button used for delete existing any Sale target.

  ##### Create Sale Target

  1. Select Month : Target month of Sale.
  2. Branch List: There are two sections 1. Left contain branch name & 2. Right input Sale target amount of this branch.
  3. Save: Finally save monthly Sale target for each branch by clicking on Save button.

- ### CRM

  You can manage customer & supplier from this section.

  ##### Manage Coustomer

  1. New Customer: You can create new customer by clicking on New Customer button from the top right section.
  2. Customer List: This is the customer list. In the action column of this list there are three action buttons 1. Edit, 2. View & 3. Delete.
  3. Edit: Edit button used for update existing customer.
  4. View: View button used for view details existing customer.
  5. Delete: Delete button used for delete existing any customer.

  ##### Add New Customer

  1. Customer Information : This section contain customer information. The fields of this section are Name, Phone Number, Email, Address, Profile Photo.
  2. Save: Finally save the customer information by clicking on Save button.

  ##### Manage Supplier

  1. New Supplier: You can create new supplier by clicking on New Supplier button from the top right section.
  2. Supplier List: This is the supplier list. In the action column of this list there are three action buttons 1. Edit, 2. View & 3. Delete.
  3. Edit: Edit button used for update existing supplier.
  4. View: View button used for view details existing supplier.
  5. Delete: Delete button used for delete existing any supplier.

  ##### Add New Supplier

  1. Supplier Information : This section contain supplier information. The fields of this section are Supplier Name, Contact Person, Phone Number, Email, Address, Logo.
  2. Save: Finally save the supplier information by clicking on Save button.

- ### Sale Report

  You can view Sale report from this section. There are four types of Sale report 1. Sale Summary, 2. Sale Statistics, 3. Product Wise Sale & 4. Sale

  ##### Sale Summary

  1. Sale List: By default this is the last 30 days Sale summary. Sale classified by date. Sale report with branch name, Invoice ID, Total amoint, Discount, Grand total Paid amount, Due amount
  2. Filter: You can filter Sale report summary using filter parameter. There are available filter parameters like 1. Date Range (Start & End Date), 2. Branch & 3. Time Period (Daily, Weekly, Monthly or Yearly).
  3. Search: After select necessary filter parameter just click on search button.
  4. Invoice ID Click on this ID for view invoice details.

  ##### Sale Statistics

  1. Sale Chart: Daily Sale summary presented by graphical chart. By default this is the last 30 days Sale summary.
  2. Filter 1: You can filter Sale report using filter parameter. There are available filter parameters like 1. Month & 2. Branch.
  3. Filter 2: You can filter Sale report using filter parameter. There are available filter parameters like 1. Year & 2. Branch.
  4. Search: After select necessary filter parameter just click on search button.
  5. Last ** Days: This is a special filter option. You can select specific last number date then you get report for last number of days. It is located in the right section of report filter bar.

  ##### Product Wise Sale Report

  1. Sale List: By default this is total products Sale report. You can see which product how many Sale, total Sale price & total Sale quantity.
  2. Filter: You can filter Sale report using filter parameter. There are available filter parameters like 1. Product, 2. Branch & 3. Date Range (Start & End Date).
  3. Search: After select necessary filter parameter just click on search button.

  ##### Sale History

  1. Sale List: Here is the total Sale history. Sale report with Invoice ID, Branch name, Sale Date, Total amount, Discount, Grand total, Paid amount, Due amount
  2. Filter: You can filter Sale report using filter parameter. There are available filter parameters like 1.. Branch & 2. Date Range (Start & End Date).
  3. Search: After select necessary filter parameter just click on search button.

- ### Purchase Report

  You can view purchase report from this section. There are four types of purchase report 1. Purchase Summary, 2. Purchase Statistics, 3. Product Wise Purchase & 4. Purchase

  ##### Sale Summary

  1. Purchase List: By default this is the last 30 days purchase summary. Purchase classified by date. Purchase report with branch name, Invoice ID, Total amoint, Paid amount, Due amount
  2. Filter: You can filter purchase report summary using filter parameter. There are available filter parameters like 1. Date Range (Start & End Date), 2. Supplier, 3. Branch & 4. Time Period (Daily, Weekly, Monthly or Yearly).
  3. Search: After select necessary filter parameter just click on search button.
  4. Invoice ID Click on this ID for view invoice details.

  ##### Purchase Statistics

  1. Purchase Chart: Daily purchase summary presented by graphical chart. By default this is the last 30 days purchase summary.
  2. Filter 1: You can filter purchase report using filter parameter. There are available filter parameters like 1. Month & 2. Branch.
  3. Filter 2: You can filter purchase report using filter parameter. There are available filter parameters like 1. Year & 2. Branch.
  4. Search: After select necessary filter parameter just click on search button.
  5. Last ** Days: This is a special filter option. You can select specific last number date then you get report for last number of days. It is located in the right section of report filter bar.

  ##### Product Wise Purchase

  1. Purchase List: By default this is total products purchase report. You can see which product how many purchase, total purchase price & total purchase quantity.
  2. Filter: You can filter Sale report using filter parameter. There are available filter parameters like 1. Product, 2. Branch & 3. Date Range (Start & End Date).
  3. Search: After select necessary filter parameter just click on search button.

  ##### Purchase History

  1. Purchase List: Here is the total purchase history. Purchase report with Invoice ID, Branch name, Purchase Date, Total amount, Paid amount, Due amount
  2. Filter: You can filter Sale report using filter parameter. There are available filter parameters like 1. Supplier & 2. Date Range (Start & End Date).
  3. Search: After select necessary filter parameter just click on search button.

- ### Stock Report

  You can view stock report from this section. Stock report with 1. Purchase Quantity, 2. Sales Quantity, 3. Current Qty & 4. Current Stock Quantity

  1. Stock List: Stock report for all prodicts
  2. Yellow Row: When a product stock quantity is leesthen 20. then this product row show with red color background.
  3. Red Row: When a product stock quantity is 0. then this product row show with red color background.
  4. Filter: You can filter stock by branch.

- ### Role & Permission

  This is access control for user. You can manage user role & permission from this section. There are two classifications (1. Role & 2. Permission).

  ##### Roles

  1. New Role: You can create new role by clicking on New Role button from the top right section.
  2. Role List: This is the role list. In the action column of this list there are two action buttons 1. Edit & 2. Delete.
  3. Edit: Edit button used for update existing role.
  4. Delete: Delete button used for delete existing any role.

  ##### Permissiom

  1. You can select access permission for every role & save permission. When you set permission for role then this user just get access of those featires.

- ### Trash

  When you delete any kind of reference data then this data stay in this trash section. If you have need to use this data then you can able to restore.

  ##### Trast Data List

  1. Categories
  2. Taxes
  3. Expense Categories
  4. Departments
  5. Designations
  6. Branches