Purchase Order System
Purchase Order System
Purchase Order System
PROJECT
REPORT
ON
PURCHASE ORDER
SYSTEM
Submitted to:
Kurukshetra University, Kurukshetra
In Partial Fulfillment of the Requirements for the Degree of
B.COM Computer Application (VOC) (V semester)
(SESSION - 2020-2021)
Under the Supervision of: Submitted By:
Mr. Randeep Jamba EKTA
Assistant Prof. B.Com. CA(VOC)V Semester
Deptt. of Computer Sc. & App. Class Roll No.2288620006
University Roll No. 191126821
Department of Computer Science and
Applications
Maharaja Agrasen College
Jagadhri-135003
CONTENTS
Introduction
Existing system
Proposed system
ER Diagram
Coding
Output
Testing
Advantages
Limitations
Further Scope
Conclusion
Bibliography
ACKNOWLEDGEMENT
In the present world of competition there is a race of existence in which those are
having will to come forward succeed. Project is like a bridge between theoretical and
practical working. With this willing I joined this particular project. First of all, I would
like to thank the supreme power the Almighty God who is obviously the one has always
guided me to work on the one has always guided me to work on the right path of life.
Without his grace this project could not become a reality. Next to him are my parents,
whom I am greatly indebted for me, brought up with love and encouragement to this
stage? I am feeling oblige in taking the opportunity to sincerely thanks
to Dr. P. K. Bajpai (Principal of Maharaja Agarsen College) and special thanks to
Mr. Randeep Jamba (H.O.D. Dept of Comp Sc & App) and my worthy teacher Mrs.
Randeep Jamba (H.O.D. Dept of Comp Sc & App) Moreover, I am highly obliged in
taking the opportunity to sincerely thanks to all the staff members of computer
department for their generous attitude and friendly behavior. At last but not the least I am
thankful to all my teachers and friends who have been always helping and encouraging
me though out the year. I have no valuable words to express my thanks, but my heart is
still full of the favors received from every person.
Ekta
B.Com.-V sem (C.A.)
PREFACE
In the ever widening modern world, the present system of education is facing new challenges.
It is well known fact that today is age of computers, the major achievement of science and
technology. Now a day, everybody is realizing the importance of computer, which is
achievement of 5th generation of computers.
In the modern era of Science and Technology, all powerful nations have their super
computer. Although, India today is one of the progressive nations, still we are lagging behind
from some of most advanced countries in the field of the science. This problem can
overcome only when youth of present generation will give full cooperation in rising India as
powerful nation.
So, realizing this fact and according to time demand computers are necessary achievement.
So I have chosen B.Com. with Computes as my stream.
The ability to do a project work is not merely the output of intelligence and hard work; it also
requires the patience and stability. While working on this project, apart from these qualities I
have developed the necessary communication skills and attributes, which are always required
in a professional field. It is through this phase of learning that an individual gain attitude to
work in a cooperative manner while working as a team member. Though the most part of the
work in his own efforts yet the person learn more by discussions and conclusions. Problems
are solved and more and more questions arise and with each and every solution there is a gain
in confidence.
DECLARATION
I hereby declare that the final Project Report “PURCHASE ORDER SYSTEM” submitted in
partial fulfillment of the award for the degree of Bachelor Of Commerce (B.Com) with Computer
Applications from Maharaja Agrasen College, Jagadhri affiliated to Kurukshetra University,
Kurukshetra is one of my original work and not submitted to any other Degree/Diploma,
fellowship or other similar title.
Ekta
Roll No. –
B.Com.-V sem. CA
STUDENT DECLARATION
I Ekta, student of Class B.com 3rd year Roll No. 3169920006. Hereby declare that the project
entitled PURCHASE ORDER SYSTEM is my individual work and not deposit for any other degree/
diploma etc.
Name : Ekta
Class: B.Com 3rd Year (Computer Application)
Roll No. 3169920006
Univ. Roll No. : 191126821
INTRODUTION
1
EKTA
What is a Purchase Order?
Purchase orders are documents sent from a buyer to a supplier with a request for an
order. Purchase orders outline the type and quantity of items being requested, the agreed
upon price and payment terms, and a purchase order (PO) number.
When a seller (aka, supplier, vendor, etc) accepts a purchase order, a legally binding contract is
formed between the two parties.
Although purchase orders add a few extra steps to the purchasing process, they help to ensure
a smooth transaction between the buyer and the seller. Purchase orders are an opportunity for
the buyer to clearly and explicitly communicate their request to the seller, which helps to
reduce the risk of an incomplete or incorrect order being fulfilled.
Also, in the event that the buyer refuses payment once the goods or services are delivered, the
seller is protected because the purchase order acts as a binding contract between both parties.
Lastly, some commercial lenders will use purchase orders as a reference to provide financial
assistance to an organization.
2
EKTA
Let’s break these steps down in detail.
When a company (i.e. the buyer) decides to buy a product or service, it creates a
purchase order that details what is being requested from the seller, along with pricing
and payment terms.
3
EKTA
supplier.Modern companies tend to facilitate this step by requiring (and approving)
purchase requisition first. This process eliminates the need for PO approval, and
streamlines the process for the purchasing team.
Once approved, the PO is sent to the seller. For software companies that buy online, this
step might seem redundant. However, POs also serve as an internal document that
streamlines reconciliation for the accounting team once the invoice is received. So
while it isn’t mandatory to send the PO to the vendor, it’s still good practice to keep it
for internal purposes.
The vendor/seller receives the purchase order. Once the vendor tells the company that it
can fill the order, the purchase order becomes a binding contract. E-procurement tools
like Procurify offer to send POs through an online procurement system, which makes it
easier to track that emails with POs were both sent by the company and received by the
vendor.
The seller ships the order, attaching the PO number to the packing list. This helps the
buyer know which order has arrived.
Invoicing
The seller also invoices for the order, making sure to include the PO number to the
invoice.
3-Way Matching
4
EKTA
The company uses three-way matching to confirm that the PO number and order details
(quantities and prices of the goods and services ordered) match up on the Purchase
Order, Invoice, and Packing Slip.
Provided everything checks out and the company is happy with the order, the company
approves the invoice and arranges payment to the seller (as per the agreed upon
payment terms).
5
EKTA
Who Issues a Purchase Order?
The buyer is responsible for creating and issuing a purchase order. In larger companies, a
procurement or purchasing department will typically issue the purchase order. In smaller
companies, the business owner, operations manager, or financial manager may issue the
purchase order.
It’s also important to note that the role of creating and issuing a purchase order can be
designated to a central purchaser for a specific team. For example, in a software company, an
office manager can create purchase orders.
Ultimately, who issues the purchase order comes down to how a company decides to set up its
purchasing process.
Purchase orders can be approved by one or several people, depending on the purchasing
process that’s in place. In larger companies that have defined purchasing processes, purchase
order approvals are typically structured around locations and departments, with specific dollar
thresholds attached.
In smaller companies, CFO or CEO could be the final approval for any kind of spend, which
can result in approval bottlenecks.
6
EKTA
Product(s) or service(s) being purchased
Quantity purchased
Specific brand names, SKUs, or model numbers
Price per unit
Delivery date
Delivery location
Company billing address
Agreed payment terms (e.g. on delivery, in 30 days, etc.)
7
EKTA
With e-procurement software like Procurify, account codes can also be added during the
requisition phase. Adding this information can streamline the reconciliation process once data
is transferred over to an accounting system.
If you’re new to using POs, you might be wondering: how are purchase orders different from
an invoice? The main differences between these two documents are found in who creates them
and when they’re sent.
Here’s a handy table that explains the key differences between purchase orders and
invoices:
each
item
What information – Invoice number
– Pricing
does it contain?
– Delivery date
– Itemized breakdown
of the order with the
– Delivery location
cost
Billing address
Payment terms
8
EKTA
EXISTING SYSTEM
9
EKTA
EXISTING SYSTEM
Purchasing is the most important function of the material management as the moment an
order is placed for the purchase of materials, a substantial of the company finance is
committed which affects cash flow position of the company there is a purchase
department and the responsibility for purchasing all type of material should be entrusted
to this department. The head of this department is known as purchase manager or the
supply manager or chief buyer.
These are:-
a. What type of material is to be purchased?
b. How much is a to be purchased at one time of placing an order?
10
EKTA
2. Exploring the source of supply and choosing the suppliers a source of supply of
material must be selected after the receipt of purchasing requisition. The purchase
manager usually maintained for every group of material a list of suppliers name and
address. Quotations may be invited from this supplier by issuing tender to them. On
receipt of quotations form the suppliers a comparative, statement of various
quotations received should be proposed and the desirable suppliers should be
selected.
11
EKTA
LIMITATIONS OF EXISTING SYSTEM
Manual system has many limitations. Following are the limitation of manual system.
1. Risk of issuing the same identity code to two or more employee which creates
problem later on.
2. In manual system it is no query system, so a person has to spend a lot of time and
effort search the ID of employee.
3. Manual record keeping of huge no. of record related to parties/suppliers,
PURCHASE ORDER , quantity of items received and ordered etc. is a
cumbersome task.
4. The other major problem is repetition of same details in so many papers and
resulting in redundancy.
5. It is time consuming and cumbersome to generate different lists like finalization
of quotations, issue &prepare PURCHASE ORDER and condition of item in
stock etc.
6. The records kept in registers can not be accurate and reliable.
7. The time consumption is very high while checking
8. In Manual System, there is a lack of accuracy and to store data, we need more space
9. This System cannot Survive After a period & again we have to device new system in the
face of changing Circumstances, i.e. advancement, Development and Requirements.
10. We have prepared this software/system with limited resources and information at our
disposal. It may not last long beyond a certain period.
12
EKTA
PROPOSED SYSTEM
13
EKTA
PROPOSED SYSTEM
After studying the manual system of material management and various information
requirement it has been proposed to develop the computerize system for purchase
department. As the computer is capable of processing large amount of data at a very high
speed with high degree accuracy. The data can be stored in small space for years together
without any trouble and can be retrieved whenever required in few seconds. Also it is a
powerful capability of sorting, merging and appending of records. It can work for hours
together without loosing efficiency. In the proposed system the data will be entered into
the computer online. A party data is entered by opening that particular party files after
checking a unique code is assigned to it .
All the particular like item name, code , party name, address etc. will be entered in the
computer. On the basis of information entered into the computer and various transactions
made, various reports can be generated. In this system the user cannot do any effort to
search, or update the records.
14
EKTA
HARDWARE
&
SOFTWARE
REQUIREMENT
15
EKTA
HARDWARE & SOFTWARE REQUIREMENTS
Hardware-
Hardware refers to the physical pieces of the system: the system unit, monitor, and
keyboard. We probably also have a mouse and printer and maybe a few bells and whistles.
Computer technology has evolved at an amazed rate during past few decades. Today a
computer cannot only compute, store information but at the same time it provides a variety
of software for entertainment purpose. This project has its hardware & software
requirements as follows:
System -
The system unit houses the heart of your computer. This Unit is where the microprocessor
chip, disk drives, and the power supply are located.
Microprocessor -
Co processor -
Your system also might have a math co processor handles math better than the main
processor does, significantly speeding up programs that must do a lot of heavy calculating.
Memory -
Your memory components store the programs and data currently in use. These components provide
short-term, high-speed storage closely linked to the microprocessor for fast retrieval.
Keyboard -
Your keyboard works much like a typewriter, with some important differences. In addition to the
16
EKTA
regular typing area, it has function keys, a keypad, and some special Purpose keys.
17
EKTA
REQUIREMENTS
HARDWARE SOFTWARE
REQUIREMENT REQUIREMENT
SSS S
18
EKTA
Hardware Requirements:-
The computer as a machine & all other equipment associated with it constitute hardware & the hardware
requirements for this project are as follows: -
Processor and above P-4
Resolutions 256 MB RAM
800 * 640
Keyboard 104 keys
Monitor Color
Software Requirements:-
The instructions that tell it what to do are called software. The software requirements for this project are:-
WINDOWS 9X/NT
Operating System DOS 6.22 (or above)
C compiler
19
EKTA
SYSTEM ANALYSIS
&
DESIGN
20
EKTA
SYSTEM ANALYSIS & DESIGN
System design is the process which has to be Rendered by the System Analyst. He studies
the manual system and the output coming then he designs output on graph chart for the
programmer. System analysis and design refers to the process of examining a business
situation with the intension of improving it through better procedure and methods.
System development can broadly be categorized in two major components- System
Analysis and System Design.
Besides this Analyst has to Document the existing system to design the input and codes,
which a programemer used to programs.
System Analysis is the process of gathering and interpreting facts, diagnose the problem,
and use the information to recommend improvement to the system. More specifically
analysis specifies what the system should do and design specifies how to accomplish the
object.
System Design is the process of planning a new business system or one to replace or
complement an existing system. But before this planning can be done, the old system
must be studied thoroughly and understood and determine how computer can be used to
make its operation more effective.
1. INPUT DESIGN
Once the analysis and design of the system has done, it would be necessary to identify the
data that are required to be processed to produce the outputs. Input is one of the most
important phase of the operation of the computerized system and sometimes creates a
major problem. The input data is lifeblood of a system and have to be analyzed and
designed with utmost care and consideration. Input design features can ensure the
reliability of the system and generate correct reports. Home user can interact efficiently
with the system.
An input is a raw data having movements towards the C.P.U.Input file specifies the
addition of New records for a unique code with detailed information and also permits
about modification and removal of existing records from file. Consideration of
21
EKTA
inspection of existing records have to be done with the option of screen and printer .
system involves other input areas within clear and understandable manner.
Entering input data is a responsible work and requires careful attention . If data going into
system is incorrect then processing and output will magnify these errors.
22
EKTA
Input of the consumer form:-
Account number: this is auto generated by the computer and hence cannot
be repeated.
First name: first name of the consumer.
Last name: last name of the consumer.
Address: Address of the consumer.
Date opened: the system date will be automatically inserted.
Pin code: automatically assigned to the consumer at the time of opening the account
BILL NO : 1
discription date |
||
S.Tax 0.00
23
EKTA
2. OUTPUT DESIGN
Outputs are required primarily to produce the result of the processing to the user. They
are also used to provide permanent copy of their results for the latest consultation.
Outputs are required to produce result of processing to the user. Output will be in the
form of a screen where different options will be displayed. In output designing there is
report menu. It is third option of main menu. It gives the output design of the system. It
has been providing a direct output view of goods sold. It come in following manner.
In this system all the information related to consumer about his name, address, phone no,
balance etc. is stored in a database. Similarly all the information related to the
transactions, about the transaction type, mode, date etc. is stored in another table. All the
information related to the consumer or about the transactions can be seen through reports
in six different ways in this project. Different reports are as follows:
Account report - in this according to the account no. And the pin code, information
about that particular account will be displayed. If pin code is not correctly entered then
error message will be given by the system.
Transaction report – in this according to the given transaction id complete information
about that transaction will be displayed.
Day report – all the transactions done on a given date will be displayed through this
report.
===============================================================================
Grand Total
24
EKTA
List of Goodss in Music Library
25
EKTA
=============================== Date:
=======================================================================
========
=======================================================================
========
26
EKTA
FILE DESIGN
In this project following attributes are used to maintain the record of Goodssconsumers.
int cas_code; // Goods code - film
char Cass_name[30]; // Title of the Goods
char Comp_name[30]; // Goods
company int tot_Goods; // Total Goods
purchased
int dd, mm, yy; // Date of
purchase float price; // Price per Goods
27
EKTA
Diagram For Purchase Order System
E-R Diagram
Type
Batch
Date
Qty Bill
ORDER
C_no
Conn_type
Ite
m
Circle No
C_no
Cost
Supply
28
EKTA
CODING
29
EKTA
CODING
/* PURCAHSE ORDER SYSTEM */
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<process.h>
#include<graphics.h>
#include<ctype.h>
struct
{ char pcode[5];
char pname[20];
char desc[20];
char type[3];
char unitp[5];
char qty[5];
char max[5];
char min[5];
}product,mproduct;
struct
{
char pcode[5];
char pname[20];
char desc[20];
char min[3];
char qty[5];
char max[5];
char unitp[5];
char type[3];
}item;
30
EKTA
struct
{ char vcode[5];
char vname[20];
char adde[20];
char city[15];
char contno[10];
char parti[15];
}vender,mvender;
struct
{ char ocode[5]; char
qty[8]; char icode[5];
char vcode[5]; char
vname[20]; char
qtyj[5]; char qtyr[5];
char topaid[5]; char
topay[5];
}order,order1,morder
;
void main()
{ char ch;
void pmenu(),omenu(),vmenu(),rmenu();
int gd=DETECT,gm=0;
initgraph(&gd,&gm," ");
clrscr();
settextstyle(1,0,4);
31
EKTA
outtextxy(170,50,"PROJECT");
outtextxy(250,140,"ON");
outtextxy(40,220,"PURCHSE ORDER SYSTEM");
settextstyle(1,0,3);
outtextxy(250,400,"press any key to continue");
getch();
closegraph();
clrscr();
initgraph(&gd,&gm," ");
settextstyle(1,0,4);
outtextxy(100,40,"PURCHASE ORDER SYSTEM");
settextstyle(1,0,3);
getch();
while(1)
{
clrscr(); setcolor(15);
setfillstyle(1,RED);
rectangle(50,30,550,350);
floodfill(30,50,15);
settextstyle(1,0,3);
outtextxy(100,50, "**** PURCHASE ORDER SYSTEM ****");
outtextxy(160,140," P: PURCHASE PRODUCT");
outtextxy(160,170, "O: ORDER PLACING"); outtextxy(160,200," V:
VENDOR DATA");
32
EKTA
{case
printf("%c",product.unitp[i]);
}
if(count==0)
fclose(fp); return;
}
*/
query()
while(toupper(ch)=='Y')
{closegraph();
count=0; clrscr();
rewind(fp);
gotoxy(10,5);printf(" *** DATA QUERY MODULE ***");
gotoxy(10,7);printf(" product code ");
gotoxy(10,8);printf(" product name ");
gotoxy(10,9);printf(" description ");
gotoxy(10,10);printf(" type(wt/no. ");
33
EKTA
gotoxy(10,11);printf(" quantity ");
gotoxy(10,12);printf(" unit price ");
gotoxy(38,7);gets(mpcode);
for(i=0;i<=4;++i)
mpcode[i]=toupper(mpcode[i]);
while(fread(&product,sizeof(product),1,fp)!=0)
{
n=strlen(mpcode);
if (scom(product.pcode,mpcode,n)==1)
{ ++count; gotoxy(38,8);for(i=0;i<20;++i)
printf("%c",product.pname[i]);
gotoxy(38,9);for(i=0;i<20;++i)
printf("%c",product.desc[i]);
gotoxy(38,10);for(i=0;i<3;++i)
printf("%c",product.type[i]);
gotoxy(38,11);for(i=0;i<5;++i)
printf("%c",product.qty[i]);
gotoxy(38,12);for(i=0;i<5;++i)
printf("%c",product.unitp[i]);
}
}
if(count==0)
34
EKTA
oentry()
{
char ch='Y',res;
int i;
FILE *fp;
fp=fopen("order.dat","ar+")
; while(toupper(ch)=='Y')
{closegraph();
clrscr();
gotoxy(38,7);gets(order.ocode);
gotoxy(38,8);gets(order.icode);
gotoxy(38,9);gets(order.vcode);
gotoxy(38,10);gets(order.vname);
gotoxy(38,11);gets(order.qty);
gotoxy(20,15);printf("Entries Correct Y/N");
res=getch();
if(toupper(res)=='Y')
{// clrscr();
for(i=0;i<=4;++i)
order.ocode[i]=toupper(order.ocode[i]);
for(i=0;i<=4;++i)
order.icode[i]=toupper(order.icode[i]);
for(i=0;i<=4;++i)
35
EKTA
order.vcode[i]=toupper(order.vcode[i]);
for(i=0;i<=19;++i)
order.vname[i]=toupper(order.vname[i]);
for(i=0;i<=7;++i)
order.qty[i]=toupper(order.qty[i]);
fwrite(&order,sizeof(order),1,fp);
}
fclose(fp); return;
}
omodi()
fp=fopen("order.dat","r+");
while(toupper(ch)=='Y')
{ closegraph();
clrscr();
rewind(fp);
gotoxy(10,5);printf(" *** DATA MODIFICATION MODULE *** ");
36
EKTA
gotoxy(10,7);printf(" ORDER CODE ");
gotoxy(10,8);printf(" ITEM CODE ");
gotoxy(10,9);printf(" VENDOR CODE ");
gotoxy(10,10);printf(" VENDOR NAME ");
gotoxy(10,11);printf(" QUANTITY ");
gotoxy(38,7);gets(mocode); for(i=0;i<=4;+
+i) mocode[i]=toupper(mocode[i]);
while(fread(&order,sizeof(order),1,fp)==1)
{ n=strlen(mocode);
if(scom(order.ocode,mocode,n)==1)
{++count;
gotoxy(38,8);for(i=0;i<5;++i)
printf("%c",order.icode[i]);
gotoxy(38,9);for(i=0;i<5;++i)
printf("%c",order.vcode[i]);
gotoxy(38,10);for(i=0;i<20;++i)
printf("%c",order.vname[i]);
gotoxy(38,11);for(i=0;i<8;++i)
printf("%c",order.qty[i]);
gotoxy(38,8);gets(micode);
gotoxy(38,9);gets(mvcode);
gotoxy(38,10);gets(mvname);
gotoxy(38,11);gets(mqty);
gotoxy(20,15);printf("Entries Are Correct Y/N. ..");
res=getche();
if(toupper(res)=='Y')
{ n=strlen(order.icode);
con(order.icode,n,5);
n=strlen(order.vcode);
con(order.vcode,n,5);
37
EKTA
n=strlen(order.vname);
con(order.vname,n,20);
n=strlen(order.qty);
con(order.qty,n,8);
fseek(fp,-recsize,SEEK_CUR);
fwrite(&order,sizeof(order),1,fp);
}
}
}
if(count==0)
{gotoxy(35,20);printf("RECORD NOT FOUND");}
fclose(fp); return;
}
oquery()
{
char ch='Y',res;
char
mocode[5];
FILE * fp;
int i,n,count=0;
fp=fopen("order.dat","r");
while(toupper(ch)=='Y')
{closegraph();
count=0;
clrscr();
38
EKTA
rewind(fp);
gotoxy(10,5);printf(" *** DATA QUERY MODULE ***");
gotoxy(10,7);printf(" ORDER CODE ");
gotoxy(10,8);printf(" ITEM CODE ");
gotoxy(10,9);printf(" VENDOR CODE ");
gotoxy(10,10);printf(" VENDOR NAME ");
gotoxy(10,11);printf(" QUANTITY ");
gotoxy(38,7);gets(mocode); for(i=0;i<=4;++i)
mocode[i]=toupper(mocode[i]);
while(fread(&order,sizeof(order),1,fp)!=0)
n=strlen(mocode);
if(scom(order.ocode,mocode,n)==1)
{ ++count; gotoxy(38,8);for(i=0;i<8;++i)
printf("%c",order.qty[i]);
gotoxy(38,9);for(i=0;i<5;++i)
printf("%c",order.icode[i]);
gotoxy(38,10);for(i=0;i<5;++i)
printf("%c",order.vcode[i]);
gotoxy(38,11);for(i=0;i<20;++i)
printf("%c",order.vname[i]);
}
if(count==0)
{ gotoxy(30,15);printf("Record not found");
}
gotoxy(1,23);printf("Press Y to Continue ");
ch=getch();
}
fclose(fp);
39
EKTA
return;
ventry()
{ char ch='Y',res;
int i;
FILE *fp;
fp=fopen("vender.dat","ar+");
while(toupper(ch)=='Y')
{closegraph();
clrscr();
gotoxy(10,5);printf(" *** DATA ENTRY MODULE ***
"); gotoxy(10,7);printf(" VENDOR CODE ");
gotoxy(10,8);printf(" VENDOR NAME ");
gotoxy(10,9);printf(" VENDOR ADDRESS ");
gotoxy(10,10);printf(" CITY ");
gotoxy(10,11);printf(" CONTACT NO. ");
gotoxy(10,12);printf(" PARTICULARS ");
gotoxy(38,7);gets(vender.vcode);
gotoxy(38,8);gets(vender.vname);
gotoxy(38,9);gets(vender.adde);
gotoxy(38,10);gets(vender.city);
gotoxy(38,11);gets(vender.contno);
gotoxy(38,12);gets(vender.parti);
gotoxy(20,15);printf("Entries Correct Y/N");
res=getch();
if(toupper(res)=='Y')
{for(i=0;i<=4;++i)
vender.vcode[i]=toupper(vender.vcode[i]);
for(i=0;i<=19;++i)
vender.vname[i]=toupper(vender.vname[i]);
for(i=0;i<=19;++i)
vender.adde[i]=toupper(vender.adde[i]);
40
EKTA
for(i=0;i<=14;++i)
vender.city[i]=toupper(vender.city[i]);
for(i=0;i<=9;++i)
vender.contno[i]=toupper(vender.contno[i]);
for(i=0;i<=14;++i)
vender.parti[i]=toupper(vender.parti[i]);
fwrite(&vender,sizeof(vender),1,fp);
}
gotoxy(1,23);printf("press Y to
continue ... "); ch=getch();close(fp);
eturn;
vmodi()
{
char
ch='Y',res;
char
mvcode[5]
; char
mvname[2
0]; char
madde[20]
; char
mcity[15];
char
FILE *fp;
fp=fopen("vender.dat","r+");
while(toupper(ch)=='Y')
{closegraph();
clrscr();
rewind(fp);
41
EKTA
gotoxy(10,5);printf(" *** DATA MODIFICATION MODULE *** ");
gotoxy(10,7);printf(" VENDOR CODE ");
gotoxy(10,8);printf(" VENDOR NAME ");
gotoxy(10,9);printf(" VENDOR ADDRESS ");
gotoxy(10,10);printf(" CITY ");
gotoxy(10,11);printf(" CONTACT NO. ");
gotoxy(10,12);printf(" PARTICULARS ");
gotoxy(38,7);gets(mvcode);
for(i=0;i<=4;++i)
mvcode[i]=toupper(mvcode[i]);
while(fread(&vender,sizeof(vender),1,fp)==1)
{n=strlen(mvcode);
if(scom(vender.vcode,mvcode,n)==1)
{++count;
gotoxy(38,8);puts(vender.vname);
gotoxy(38,9);puts(vender.adde);
gotoxy(38,10);puts(vender.city);
gotoxy(38,11);puts(vender.contno);
gotoxy(38,12);puts(vender.parti);
gotoxy(38,8);gets(mvname);
gotoxy(38,9);gets(madde);
gotoxy(38,10);gets(mcity);
gotoxy(38,11);gets(mcontno);
gotoxy(38,12);gets(mparti);
gotoxy(20,15);printf("Entries Are Correct Y/N. ..");
res=getch();
if(toupper(res)=='Y')
{n=strlen(mvcode);
fseek(fp,-recsize,SEEK_CUR);
fwrite(&vender,sizeof(vender),1,fp);
}
42
EKTA
}
}
if(count==0)
{ gotoxy(35,20);printf("RECORD NOT FOUND");}
gotoxy(1,23);printf("Press Y to continue");
ch=getche();
}
fclose(fp);
return;
}
vquery()
43
EKTA
mvcode[i]=toupper(mvcode[i]);
while(fread(&vender,sizeof(vender),1,fp)!=0)
if(strcmp(vender.vcode,mvcode)==0)
{ ++count;
gotoxy(38,8);puts(vender.vname);
gotoxy(38,9);puts(vender.adde);
gotoxy(38,10);puts(vender.city);
gotoxy(38,11);puts(vender.contno);
gotoxy(38,12);puts(vender.parti);
}
if(count==0)
{
gotoxy(30,15);printf("Record not found");
}
gotoxy(1,23);printf("Press Y to Continue");
ch=getch();
}
fclose(fp);
return;
}
oamount()
{
char ch='Y',res;
int i;
FILE *fp;
fp=fopen("order1.dat","ar+");
44
EKTA
while(toupper(ch)=='Y')
{ closegraph();
clrscr();
gotoxy(20,5);printf(" *** AMOUNT PAYMENT ENTRY ***
"); gotoxy(10,7);printf(" ORDER CODE ");
gotoxy(10,8);printf(" ITEM CODE ");
gotoxy(10,9);printf(" VENDOR CODE ");
gotoxy(10,10);printf(" QUANTITY ");
gotoxy(10,11);printf(" AMOUNT TO BE PAY ");
gotoxy(10,12);printf(" QUANTITY REJECTED ");
gotoxy(10,13);printf(" QUANTITY RECEIVED ");
gotoxy(10,14);printf(" AMOUNT TO BE PAID ");
gotoxy(40,7);gets(order.ocode);
gotoxy(40,8);gets(order.icode);
gotoxy(40,9);gets(order.vcode);
gotoxy(40,10);gets(order.qty);
gotoxy(40,11);gets(order.topay);
gotoxy(40,12);gets(order.qtyj);
gotoxy(40,13);gets(order.qtyr);
gotoxy(40,14);gets(order.topaid);
gotoxy(20,17);printf("Entries Correct Y/N");
res=getch();
if(toupper(res)=='Y')
{
for(i=0;i<=4;++i)
order.ocode[i]=toupper(order.ocode[i]);
for(i=0;i<=4;++i)
order.icode[i]=toupper(order.icode[i]);
for(i=0;i<=4;++i)
order.vcode[i]=toupper(order.vcode[i]);
for(i=0;i<=4;++i)
45
EKTA
order.qty[i]=toupper(order.qty[i]);
for(i=0;i<=4;++i)
order.topay[i]=toupper(order.topay[i]);
for(i=0;i<=4;++i)
order.qtyj[i]=toupper(order.qtyj[i]);
for(i=0;i<=4;++i)
order.qtyr[i]=toupper(order.qtyr[i]);
for(i=0;i<=4;++i)
order.topaid[i]=toupper(order.topaid[i]);
fwrite(&order,sizeof(order),1,fp);
}
gotoxy(1,23);printf("Press Y to continue");
ch=getche();
}
fclose(fp); return;
}
ogood()
{
while(toupper(ch)=='Y')
{ closegraph();
clrscr();
gotoxy(20,5);printf(" *** GOOD RECEVING ENTRY ***
"); gotoxy(10,7);printf(" ORDER CODE ");
gotoxy(10,8);printf(" ITEM CODE ");
46
EKTA
gotoxy(10,9);printf(" VENDOR CODE ");
gotoxy(10,10);printf(" QUANTITY ");
gotoxy(10,12);printf(" QUANTITY REJECTED ");
gotoxy(10,13);printf(" QUANTITY RECEIVED ");
gotoxy(10,14);printf(" AMOUNT TO BE PAID ");
gotoxy(38,7);gets(order.ocode);
gotoxy(38,8);gets(order.icode);
gotoxy(38,9);gets(order.vcode);
gotoxy(38,10);gets(order.qty);
gotoxy(38,11);gets(order.qtyj);
gotoxy(40,12);gets(order.qtyr);
gotoxy(40,13);gets(order.topay);
gotoxy(20,17);printf("Entries
Correct Y/N"); res=getch();
if(toupper(res)=='Y')
{
for(i=0;i<=4;++i)
order.ocode[i]=toupper(order.oco
de[i]); for(i=0;i<=4;++i)
order.icode[i]=toupper(order.icod
e[i]); for(i=0;i<=4;++i)
order.vcode[i]=toupper(order.vco
de[i]); for(i=0;i<=4;++i)
order.qty[i]=toupper(order.qty[i])
;
for(i=0;i<=4;++i)
order.qtyj[i]=toupper(order.qtyj[i]);
for(i=0;i<=4;++i)
order.qtyr[i]=toupper(order.qtyr[i]);
for(i=0;i<=4;++i)
order.topay[i]=toupper(order.topay[i]);
47
EKTA
fwrite(&order,sizeof(order),1,fp);
}
gotoxy(1,23);printf("Press Y to continue.......");
ch=getche();
}
fclose(fp);
return
;
}
irep()
{
gotoxy(1,6);printf("
"); r=8;
while(fread(&product,sizeof(product),1,fp) !=0)
{
gotoxy(1,r);for(i=0;i<5;++i)
printf("%c",product.pcode[i]);
gotoxy(16,r);for(i=0;i<20;++i)
printf("%c",product.pname[i]);
48
EKTA
gotoxy(30,r);for(i=0;i<5;++i)
printf("%c",product.max[i]);
gotoxy(39,r);for(i=0;i<5;++i)
printf("%c",product.qty[i]);
gotoxy(47,r);for(i=0;i<5;++i)
printf("%c",product.min[i]);
gotoxy(60,r);
if(atoi(product.qty)>atoi(product.max))
printf("Above");
else
{ if(atoi(product.qty)>=atoi(product.min))
printf("Normal");
else
printf("below");} if(r<=22)
r++;else
{
gotoxy(1,4);printf("");
gotoxy(1,5);printf("prod.codeprod namemaxqtymin");
gotoxy(1,6);printf(" ");
r=10;
}
}
++r;
gotoxy(1,r);printf(" ");
49
EKTA
getche();
}
orep()
{
FILE *fp;
int r,i;
fp=fopen("order.dat","r");
closegraph();
clrscr();
gotoxy(40,3);printf("order report");
gotoxy(1,4);printf(" ");
gotoxy(1,5);printf("order code icode vcode vname qty ");
gotoxy(1,6);printf(" ");
r=8;
while(fread(&order,sizeof(order),1,fp) !=0)
{ gotoxy(1,r);for(i=0;i<5;++i)
printf("%c",order.ocode[i]);
gotoxy(15,r);for(i=0;i<5;++i)
printf("%c",order.icode[i]);
gotoxy(24,r);for(i=0;i<5;++i)
printf("%c",order.vcode[i]);
gotoxy(34,r);for(i=0;i<20;++i)
printf("%c",order.vname[i]);
gotoxy(51,r);for(i=0;i<8;++i)
printf("%c",order.qty[i]);
if(r<=22)
r++;
else
{
gotoxy(2,22);printf("press any key to
continue"); getche();
50
EKTA
clrscr();
gotoxy(30,3);printf("ORDER REPORT");
gotoxy(1,4);printf(" ");
gotoxy(1,5);printf("order.code icode vcode vname qty ");
gotoxy(1,6);printf(" ");
r=10;
}
}++r;
gotoxy(1,r);printf("); getch();
}
vrep()
{
while(fread(&vender,sizeof(vender),1,fp) !=0)
{ gotoxy(1,r);puts(vender.vcode);
gotoxy(15,r);puts(vender.vname);
gotoxy(32,r);puts(vender.adde);
gotoxy(47,r);puts(vender.city);
gotoxy(57,r);puts(vender.contno);
51
EKTA
if(r<=22)
r++;
else
");
gotoxy(1,5);printf(" vender codevender name vender add.city
contactno")
; gotoxy(1,6);printf("
");
r=8;
}
} ++r;
gotoxy(1,r);printf(""); getche();
}
grep()
{
FILE *fp;
int r;
fp=fopen("order2.dat","r");
closegraph();
clrscr();
gotoxy(20,3);printf("**** GOOD RECEVING REPORT ****");
52
EKTA
gotoxy(1,4);printf(" ");
gotoxy(1,5);printf("order code icode vcode qty qtyr qtyj topay");
gotoxy(1,6);printf(" ");
r=8;
while(fread(&order,sizeof(order),1,fp) !=0)
{
gotoxy(1,r);puts(order.ocode);
gotoxy(15,r);puts(order.icode);
gotoxy(24,r);puts(order.vcode)
; gotoxy(32,r);puts(order.qty);
gotoxy(39,r);puts(order.qtyr);
gotoxy(48,r);puts(order.qtyj);
gotoxy(58,r);puts(order.topay);
if(r<=22) r++;
else
");
gotoxy(1,6);printf(" ");
r=10;
}
} ++r;
gotoxy(1,r);printf(" ");
getche();
53
EKTA
}
prep()
{
FILE *fp;
int r,i;
fp=fopen("order1.dat","r");
closegraph();
clrscr();
gotoxy(20,3);printf("**** PAYMENT REPORT ****");
gotoxy(1,4);printf(" ");
gotoxy(1,5);printf("icode vcode qty qtyr qtyj topay topaid ");
gotoxy(1,6);printf(" ");
r=8;
while(fread(&order1,sizeof(order1),1,fp) !=0)
{
gotoxy(1,r);for(i=0;i<5;++i)
printf("%c",order1.icode[i]);
gotoxy(10,r);for(i=0;i<5;++i)
printf("%c",order1.vcode[i]);
gotoxy(19,r);for(i=0;i<8;++i)
printf("%c",order1.qty[i]);
gotoxy(26,r);for(i=0;i<5;++i)
printf("%c",order1.qtyr[i]);
gotoxy(33,r);for(i=0;i<5;++i)
printf("%c",order1.qtyj[i]);
gotoxy(41,r);for(i=0;i<5;++i)
printf("%c",order1.topay[i]);
gotoxy(51,r);for(i=0;i<5;++i)
printf("%c",order1.topaid[i]);
54
EKTA
if(r<=22)
r++;
else
{
gotoxy(1,r);printf(""); getche();
}
55
EKTA
OUTPUTS
56
EKTA
OUTPUTS
57
EKTA
58
EKTA
59
EKTA
**** DATA ENTRY MODULE ****
CODE OF PRODUCT 01
NAME OF PRODUCT SWING MACHINE
DESCRIPTION DD
TYPE CRD
PRINCE PER UNIT 2510
QUANTITY 200
MAX. QTY. 20
MIN. QTY. 10
60
EKTA
*** DATA QUERY MODULE ***
CODE OF PRODUCT 01
NAME OF SWING MACHINE
PRODUCT DD
DESCRIPTION CRD
TYPE 200
QUANTITY 2510
PRINCE PER UNIT
Press Y to Continue
61
EKTA
62
EKTA
*** DATA ENTRY MODULE ***
ORDER CODE 01
ITEM CODE 01
VENDOR CODE 44
VENDOR NAME RAJESH AND SONS
QUANTITY 200
press Y to continue....
63
EKTA
*** GOOD RECEVING ENTRY ***
ORDER CODE 01
ITEM CODE 01
VENDOR CODE 44
QUANTITY 200
QUANTITY REJECTED 100
QUANTITY RECEIVED 100
AMOUNT TO BE PAID 20000
Press Y to continue.......
64
EKTA
*** DATA QUERY MODULE ***
ORDER CODE 01
ITEM CODE 200
VENDOR CODE 01
VENDOR NAME 44
QUANTITY RAJESH AND SONS
Press Y to Continue
65
EKTA
*** AMOUNT PAYMENT ENTRY ***
ORDER CODE 01
ITEM CODE 01
VENDOR CODE 44
QUANTITY 200
AMOUNT TO BE PAY 4000
QUANTITY REJECTED 25
QUANTITY RECEIVED 175
AMOUNT TO BE PAID 3800
Press Y to continue.......
66
EKTA
TESTING
67
EKTA
TESTING
The module interface is tested to ensure that the information is properly flows in to and
out of the program unit under test , the local data structure is examined to ensure that the
data stored temporarily maintains its integrity. Boundary condition are tested to ensure
that module operate properly. All independent paths through the control structure are
exercise to ensure that all the statements in a module have been executed at least once.
Different relationship flows to different tables where it is placed. If someone by default
put some invalid data inside the program it shows the proper error which is there to help
the particular person what is the mistake he has done like what is the thing he has
violated in respect to his requirement. Later on the dummy data is placed to ensure that
the things all the forms and there relationship , relation operator are working properly.
Right now the real time data is being putted in the system and the final testing is going on
so that the problem should be corrected.
Unit Testing:
Unit testing comprises the set of tests performed usually by the programmers prior to the
integration of the unit into a large program.
This is the lowest level of testing and is done by the programmer (esp. who develops it)
who can test it in great detail. The function is done in isolation. This is where the most
detailed investigation of the internal workings of the individual unit is carried out. The
situation is illustrated as follows:
68
EKTA
System Testing:
After integration testing is completed, the entire system is tested as a whole. The
functional specifications or requirement specifications are used to derive the test case. At
this level the system testing looks for errors in the end-to-end functionality of the system
and also errors for non-functional quality attributes such as performance, reliability,
volume, stress tolerance, usability, maintainability, security etc. This testing can be
carried out by independent testers.
Acceptance Testing:
After System testing was complete, the system was handed over to the Training section,
acceptance testing mark the transaction from ownership by the develop to the ownership
by the users. The acceptance test is different in nature to the development testing in three
ways.
Firstly, it is a responsibility of the accepting section rather than developing
department (computer center).
Secondly, the purpose of the acceptance testing was to find out whether the
software is working rather than trying to find errors.
Thirdly, it also includes the testing of user’s department’s working practices to ensure
that the computer software will fit into clerical & administrative procedures of the
concerned section well.
Acceptance testing gave confidence to the user that the system is ready for operational
use.
Functional Testing:
Functional Test cases involve exercising the code with nominal input values for which
the expected results are known, as well as boundary values (minimum values, maximum
values and values on just outside the functional boundary) and special values such as
logically related inputs, 1*1 matrices, and the identity matrices, file of identical elements
or empty files.
69
EKTA
Testing of PURCHASE ORDER :
In order to test PURCHASE ORDER , we have prepared some test data. Once
we found the program run satisfactory, and then the actual output was compared
with the expected output. When some discrepancy was noticed the sequence of
instruction were traced to determine the problem.
Since all the programs are invariably related to one another and interact in a
total system. Hence each program was tested to see whether it confirms to
related programs in the system. Each portion of the system was tested against
the entire module with both test and live data before the testing of entire system.
The total system was tested for recovery and fall back after various failures to
ensure that no data was lost. All this was done with the help of the old system that
was still in operation. After the candidate system passed the test, the old system
was discontinued.
All design and test documentation was finalized and entered the help library for
future reference. The library was the central location for the maintenance of the
new system.
Unit Testing
Unit testing focuses verification effort on the smallest unit of software design-the
software component or module. Using the component-level design description as a guide,
important control paths are tested to uncover errors within the boundary of the module.
The relative complexity of tests and uncovered errors is limited by the constrained scope
established for unit testing. The unit test is white – box oriented, and the step can be
conducted in parallel for multiple components.
70
EKTA
established to limit or restrict processing. All independent paths (basis paths) through the
control structure are exercised to ensure that all statements in a module have been
executed at least once. And finally, all error handling paths are tested.
71
EKTA
ADVANTAGES
72
EKTA
ADVANTAGES
The following are the merits of using this software application in every kind of purchase
department.
1. In computerized system, speed of calculating invoice is very high.
2 Record maintenance is easy because all records are stored in a separate file. Easy to make data
more secure. We can apply many security restrictions.
3. Standards can be fixed and computer will automatically check these standards. Duplicity can be
reduced in invoicing system.
4. Error detection is easy because data is stored at one place. More data can be
stored in computer then manual system.
5. Modification can be easily performed with computerized invoicing. We can retrieve a
number of copies.
6 We can retrieve a number of copies.
73
EKTA
LIMITATIONS
74
EKTA
LIMITATIONS
75
EKTA
FURTHER SCOPE
76
EKTA
FURTHER SCOPE
This project can be used in small companies of our city. This project is used on
those companies in which purchase department is established as a separate department.
And because my project is based on purchase department therefore it can be helpful in
1. It can give a great deal of relaxation in terms of enhancement.
2. The computer with the advanced technology software can be built which should
be used in company.
3. Almost all the department has computerized machines.
77
EKTA
CONCLUSION
78
EKTA
CONCLUSION
I developed this project in such a way that it will be user friendly software to handle the
calculations. This project used the number option to operate the other commands. I hope
user will find no difficulty while operating this software, as there will be no
complications user just has to press the appropriate number to perform the operation.
Hope user will learn from this project as much I have. This project is a learning
experience for me. By working on this project I will able to develop many skills and
knowledge about playing with graphics functions and many other functions used in C.
79
EKTA
BIBLIOGRAHY
80
EKTA
BIBLIOGRAPHY
During making this project, I learnt C in my college and for programming I took help
from various books and a project, which are as follows: -
81
EKTA