Point of Sale System in database DB project using C#.NET and SQL Server with detail database design description article and ERD digram.
Point of Sale System that could be used for any sales system like a Provision Store, Pharmaceuticals, Departmental Store, Mobile Phones Outlet, Computers Sale etc.
Develop a Point of Sale System which could manage the stock and Inventory from Small Scale to Large Scale business in any Business Domain.
Source Code Download Click here
Project scope includes the following milestones:
1) Stock and Inventory Management
a. Purchase
b. Sale
c. Returns
d. Invoices
i. Purchase Invoice
ii. Sale Invoice
iii. Return Invoice
e. Reports
i. Stock Reports
ii. Daily Sale Report
iii. Monthly Sale Report
2) Accounts
a. Trial Balance
b. Balance Sheet
3) Barcode Enabled Product Codes
System Module
Following will be the modules of the System:
1 Item Detail Module
2 Purchase Module
3 Sale Module
4 Reporting Module
5 Accounts Module
1 Item Detail Module
The Item Detail Module will encode a new item of the business. It deals with the information as the item name, description and units of the item.
2 Purchase Module
Purchase Module will deal with the purchase of the items from a supplier, it will outline the details of the items purchased like the item name, quantity, cost per unit and discounts if any.
Purchase module will have sub parts, one will be Purchase and the other will be Purchase Return.
3 Sale Module
Sale Module will deal with the Sale of the items to customers. It will deal with the information of the items sold as the item name, packing, cost per unit and discounts if any.
4 Reporting Module
Reporting module will provide the different reports like the Itemized Stock Report, Item Specific Stock Report, and Sale Report.
5 Accounts Module
Accounts module will deal with the recording of Journal and General Ledger against the business transactions.
The reporting part of the Accounts Module will deal with the Trial Balance and Balance Sheet reports.
Users/Roles of the System
Following will be the users of the System:
1) Sales Person – a direct user of the system with expert level and a frequent use.
2) Business Owner – a direct user of the system with Novice/Intermediate/Expert level and a seldom/frequent use.
3) Customer – an indirect user of the system, concerned only with the invoice. Customer will be categorized as a frequent indirect user.
4) Administrator – a direct user of the system with expert level, concerned with the installation, maintenance and smooth running of the System.
Forms, Queries and Reports
Forms:
1) Purchase Invoice Form
2) Sale Invoice Form
3) Purchase Return Form
4) Sale Return Form
5) Item Details Form
6) Supplier Details Form
7) General Journal Form
8) Account Opening Form
Queries & Reports:
1) Stock Report
2) Purchase Report
3) Sale Report
4) Item Wise Sale Report
5) Item Wise Purchase Report
6) Profit Report
7) Trial Balance
8) Balance Sheet
Entity Relationship Digram
Table Description
Item
Table Name: Item
Primary Key: Code
Purpose: Store New Items
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
Code | Char(5) | Not Null | Primary Key | |
Item Name | varchar (30) | Not Null |
2.6.2 Item Details
Table Name: Item Details
Primary Key: Code
Purpose: Store New Items Details, like packing and units
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
Code | Char(5) | Not Null | Primary Key | |
Packing | Char(15) | Not Null | ||
Units | Int(4) | Not Null |
Invoice Master
Table Name: Invoice Master
Primary Key: Invoice Number
Purpose: Store Invoice attributes which are common in all invoices
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
InvoiceNo | Int(4) | Not Null | Primary Key | |
InvoiceDate | Date | Not Null | ||
SupplierID | Char(5) | Not Null | Foreign Key | |
TotalCost | Decimal | Not Null | ||
TotalDiscount | Decimal | Not Null | ||
TotalPrice | Decimal | Not Null |
2.6.4 Invoice Detail
Table Name: Invoice Detail
Primary Key: Invoice Number
Purpose: Store Invoice attributes which are specific to the Invoice
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
InvoiceNo | Int(4) | Not Null | ForeignKey | |
InvoiceType | Int(4) | Not Null | ||
ItemNo | Char(5) | Not Null | Foreign Key | |
Packing | Char(15) | Not Null | ||
Units | Int(4) | Not Null | ||
UnitPrice | Decimal | Not Null | ||
Discount | Int(4) | Not Null | Discount will be in Percentage, defaults to zero | |
TotalCost | Decimal | Not Null |
Customer
Table Name: Customer
Primary Key: CustomerID
Purpose: Stores information about customer
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
CustomerID | Char((12) | Not Null | Primary Key | |
FirstName | Char(10) | Not Null | ||
LastName | Char(10) | Not Null | ||
Address | Char(50) | Not Null | ||
Phone | Char(15) | Not Null | ||
Email | Char(20) | Not Null | Must be valid email address |
2.6.6 User
Table Name: User
Primary Key: User ID
Purpose: Store user information who will use the software
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
UserID | Int(4) | Not Null | Primary Key | |
Nick | Char(10) | Not Null | Secondary Key | Must be a unique name for all users |
Password | Char(10) | Not Null | ||
Name | Char(30) | Not Null | ||
Access | Char(50) | Not Null | Access of forms to users |
Journal
Table Name: Journal
Primary Key: Journal ID
Purpose: Record daily accounting transactions
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
JournalID | Int(4) | Not Null | Primary Key | |
Description | Varchar(50) | |||
Date | DateTime | Not Null | ||
Debit | Decimal | If Debit is null, credit will not be null | ||
Credit | Decimal | If Credit is null, debit will not be null | ||
Balance | Decimal | Debit and Credit Balance should be equal |
Cash Payment Voucher
Table Name: CachPayment
Primary Key: VoucherID
Purpose: Record cash payment made by company
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
VoucherID | Int(4) | Not Null | Primary Key | |
Description | Varchar(50) | |||
Date | DateTime | Not Null | ||
Amount | Decimal | |||
Party | Char(5) | Foreign Key |
Cash Receive Voucher
Table Name: CachReceive
Primary Key: VoucherID
Purpose: Record cash payment received by company
Column Name | Data Type and Domain | Null Constraint | Key Constraint | Application based Constraint |
VoucherID | Int(4) | Not Null | Primary Key | |
Description | Varchar(50) | |||
Date | DateTime | Not Null | ||
Amount | Decimal | |||
Party | Cahr(5) | ForeignKey |
Source Code Download Click here



