- Back to Home »
- Medical Store Management System (C Program)
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
#include<dos.h>
#include<time.h>
#include<ctype.h>
#include<windows.h>
COORD coord = {0, 0};
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int i;
//function for auto increment customer & supplier Id.
int getcust_id();
int getsupp_id();
//function for welcome & main menu
void welcome();
void main_menu();
//function for all box
void main_box();
void box1();
void wbox();
//function for bill slip
void bill();
//function for about menu
void about();
//function for medicine menu
void medicine();
void medi_sale();
void stock();
void update_stock();
void medi_entry();
void medi_search();
void remainder();
//function for supplier menu
void supplier();
void supp_entry();
void supp_list();
void sup_update();
void search();
void search_id();
void search_name();
//function for customer menu
void customer();
void cust_search();
void search_cid();
void search_cname();
void cust_entry();
void cust_list();
void cust_update();
//function for report menu
void report_menu();
void report();
void sale_rpt();
void sale_rpt_daily();
void profit_rpt();
void pur_rpt();
void pur_rpt_daily();
//===================================structures =========================
struct medical
{
char id[6];
char medi_name[20];
int rack;
char cabnit[2];
int quantity;
float sale;
float total;
float unit;
float cost;
float profit;
float bye;
int qty;
char pur_date[15];
char exp_date[15];
char manu_date[15];
int bill_no;
char comp_name[20];
char supp_name[30];
};
struct medical temp;
struct medical x[20];
FILE *ptr;
char a[10];
struct supplier
{
int supp_id;
char supp_name[25];
char city[20];
char mob_no[11];
char email[30];
};
struct supplier temp1;
struct customer
{
int cust_id;
char cust_name[30];
char city[20];
char mob_no[11];
char email[50];
};
struct customer temp_c;
FILE *ptr1;
struct bill
{
char billno[6];
char cname[30];
char mediname[30];
int medi_qty;
float medi_rate;
float total;
int day;
int month;
int year;
};
struct bill bil;
FILE *ptrbill;
struct sales_report
{
char medi_id[6];
char medir_name[20];
char cust_name[30];
int sDay,sMonth,sYear;
int qty;
float rate;
float total;
};
struct sales_report s_r;
FILE *ptrs_r;
struct purchase_report
{
char medi_id[6];
char medir_name[20];
char supp_name[30];
int sDay,sMonth,sYear;
int qty;
float rate;
float total;
};
struct purchase_report p_r;
FILE *ptrp_r;
struct profit_report
{
char medi_id[6];
char medir_name[20];
int sDay,sMonth,sYear;
int qty;
float rate;
float unit;
float profit;
};
struct profit_report pr_r;
FILE *ptrpr_r;
void linkfloat()
{
float f,*p;
p=&f;
f=*p;
}
//=========================Time & Date ====================
int t(void)
{
//struct date d;
//struct time t;
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
//getdate(&d);
//gettime(&t);
gotoxy(55,46);
printf("Date: %d-%d-%d ",now->tm_mday,now->tm_mon,now->tm_year);
gotoxy(55,48);
printf("Time: %d:%d:%d",now->tm_hour, now->tm_min,now->tm_sec);
return 0;
}
//=======================Animation ==========================
void animation()
{
for (i=45; i>=1; i--)
{
Sleep(30);
gotoxy(1,i);
//clreol();
}
for (i=1; i<=20; i++)
{
//clreol();
Sleep(40);
gotoxy(1,i);
}
}
//=========================== validation =========================
void ventry(char t[],int code)
{
int i=0;
if(code==0)
{
while((t[i]=getch())!='\r' && i<30)
if((t[i]>=97 && t[i]<=122) || (t[i]>=65 && t[i]<=90) || t[i]==32 || t[i]=='_')
{
printf("%c",t[i]);
i++;
}
else if(t[i]==8 && i>0)
{
printf("%c%c%c",8,32,8);
i--; //Length counter is decremented.
}
}
else if(code==1)
{
while((t[i]=getch())!='\r' && i<10 )
if((t[i]>=48 && t[i]<=57) || t[i]==46 || t[i]=='-')
{
printf("%c",t[i]);
i++;
}
else if(t[i]==8 && i>0)
{
printf("%c%c%c",8,32,8);
i--; //Length counter is decremented.
}
}
else if(code==2)
{
while((t[i]=getch())!='\r' && i<30 )
if((t[i]>=97 && t[i]<=122) || (t[i]>=65 && t[i]<=90) ||(t[i]>=48 && t[i]<=57) || t[i]==32 || t[i]==8 ||t[i]=='@'||t[i]=='.')
{
printf("%c",t[i]);
i++;
}
else if(t[i]==8 && i>0)
{
printf("%c%c%c",8,32,8);
i--; //Length counter is decremented.
}
}
t[i]='\0';
}
//============================================================================
void box()
{
for(i=3;i<=79;i++) //This 'FOR' loop will print a combination of
{
gotoxy(i,3); //the 79th column is reached.
printf("%c",219);
gotoxy(78,45);
printf("%c",219);
gotoxy(i,45);
printf("%c",219);
}
for(i=3;i<=45;i++) //This 'FOR' loop will print asteriks 'I'
{ //vertically till the 3th row is reached.
gotoxy(3,i);
printf("%c",219);
gotoxy(79,i);
printf("%c",219);
}
}
void wbox()
{
for(i=5;i<=75;i++) //This 'FOR' loop will print a combination of
{
gotoxy(i,5); //the 75th column is reached.
printf("%c",219);
gotoxy(74,40);
printf("%c",219);
gotoxy(i,40);
printf("%c",219);
}
for(i=5;i<=40;i++) //This 'FOR' loop will print asteriks 'I'
{ //vertically till the 17th row is reached.
gotoxy(5,i);
printf("%c",219);
gotoxy(75,i);
printf("%c",219);
}
}
//=========================getsupp_id =======================
int getsupp_id()
{
FILE *fp;
fp=fopen("supplier.dat","r");
if(fp==NULL)
{
gotoxy(22,15);
printf("Data not Found.....");
getch();
}
else
{
temp1.supp_id=100;
rewind(fp);
while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.city, temp1.mob_no,temp1.email)!=EOF)
{
}
}
fclose(fp);
return temp1.supp_id+1;
}
//=========================getcust_id =======================
int getcust_id()
{
FILE *fp;
fp=fopen("customer.dat","r");
if(fp==NULL)
{
gotoxy(22,15);
printf("Data not Found.....");
getch();
}
else
{
temp_c.cust_id=100;
rewind(fp);
while(fscanf(fp,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
}
}
fclose(fp);
return temp_c.cust_id+1;
}
//=========================welcome screen ==============
void welcome()
{
int j,k,l,m;
system("cls");
for(m=0;m<16;m++)
{
//textcolor(m);
wbox();
for(i=0;i<16;i++)
{
//textcolor(i);
gotoxy(35,20);
printf("WELCOME");
k=i+2;
//textcolor(k);
gotoxy(38,22);
printf("TO");
l=i+3;
//textcolor(l);
gotoxy(28,24);
printf("MEDICAL");
//textcolor(l);
gotoxy(36,24);
printf("STORE");
//textcolor(l);
gotoxy(42,24);
printf("SYSTEM");
gotoxy(52,45);
j=i+1;
//textcolor(j);
printf("Loading......");
Sleep(40);
}
}
}
//============================ box for label ==========
void lbox()
{
gotoxy(25,6);
printf("%c",201);
for(i=26;i<55;i++)
{
gotoxy(i,6);
printf("%c",205);
}
gotoxy(55,6);
printf("%c",187);
gotoxy(25,6);
for(i=6;i<8;i++)
{
gotoxy(25,i+1);
printf("%c",186);
}
gotoxy(25,9);
printf("%c",200);
for(i=26;i<55;i++)
{
gotoxy(i,9);
printf("%c",205);
}
gotoxy(55,9);
printf("%c",188);
gotoxy(55,6);
for(i=6;i<8;i++)
{
gotoxy(55,i+1);
printf("%c",186);
}
}
//============================small box ===============
void box1()
{
gotoxy(1,3);
printf("%c",201);
for(i=1;i<79;i++)
{
gotoxy(1+i,3);
printf("%c",205);
}
gotoxy(80,3);
printf("%c",187);
gotoxy(1,3);
for(i=4;i<10;i++)
{
gotoxy(1,i);
printf("%c",186);
}
gotoxy(1,9);
for(i=4;i<8;i++)
{
gotoxy(80,i);
printf("%c",186);
}
}
//===========================main ===================
int main()
{
char name[15];
char pass[15];
int count=0,i;
system("cls");
/*start:
//textcolor(5);
wbox();
lbox();
//textcolor(GREEN);
gotoxy(35,8);
printf(" LOGIN ");
//textcolor(RED);
gotoxy(32,18);
printf("Enter user name :");
gotoxy(32,22);
printf("Enter password :");
gotoxy(51,18);
strcpy(gets(name),name);
gotoxy(51,22);
i=0;
do
{
pass[i] = getch();
if(pass[i] == 13 )
{
break;
}
else if(pass[i]==8 && i>0)
{
printf("%c%c%c",8,32,8);
i--;
}
else
{
printf("*");
i++;
}
}while(pass[i]!=13);
pass[i] = '\0';
if(strcmp(name,"rana") || strcmp(pass,"singh"))
{
system("cls");
gotoxy(20,20);
printf("Please Enter vailid Username & Passward!!!!!");
count++;
gotoxy(20,23);
printf("%d chance left!!!!",3-count);
getch();
system("cls");
if(count==3)
exit(0);
else
goto start;
}
else
{*/
//welcome();
main_menu();
//}
}
void main_box()
{
gotoxy(1,6);
printf("%c",201);
for(i=1;i<79;i++)
{
gotoxy(1+i,6);
printf("%c",205);
}
gotoxy(80,6);
printf("%c",187);
gotoxy(1,6);
for(i=5;i<35;i++)
{
gotoxy(1,2+i);
printf("%c",186);
}
gotoxy(1,37);
printf("%c",200);
for(i=1;i<79;i++)
{
gotoxy(1+i,37);
printf("%c",205);
}
gotoxy(80,37);
printf("%c",188);
gotoxy(80,6);
for(i=5;i<35;i++)
{
gotoxy(80,2+i);
printf("%c",186);
}
}
void main_menu()
{
char ch;
do
{
//window(1,1,80,50);
//textbackground(BLACK);
system("cls");
//textcolor(4+BLINK);
gotoxy(3,5);
printf("S");
//textcolor(WHITE);
gotoxy(4,5);
printf("upplier Info");
//textcolor(4+BLINK);
gotoxy(19,5);
printf("C");
//textcolor(15);
gotoxy(20,5);
printf("ustomer Info");
//textcolor(4+BLINK);
gotoxy(36,5);
printf("M");
//textcolor(15);
gotoxy(37,5);
printf("edicine");
//textcolor(4+BLINK);
gotoxy(48,5);
printf("R");
//textcolor(15);
gotoxy(49,5);
printf("Report");
//textcolor(4+BLINK);
gotoxy(57,5);
printf("B");
//textcolor(15);
gotoxy(58,5);
printf("ill");
//textcolor(4+BLINK);
gotoxy(64,5);
printf("A");
//textcolor(15);
gotoxy(65,5);
printf("bout");
//textcolor(4+BLINK);
gotoxy(72,5);
printf("E");
//textcolor(15);
gotoxy(73,5);
printf("xit");
t(); //this function display date & time
box1();
main_box();
gotoxy(30,10);
//textcolor(GREEN);
printf("Welcome To Medical Store ");
gotoxy(2,28);
//textcolor(15);
remainder();//this function is active when medicine qty is less then 10.
gotoxy(10,40);
//textcolor(RED+BLINK);
printf("Press ");
gotoxy(16,40);
//textcolor(15);
printf("First Character for further Menu ");
ch=toupper(getche());
switch(ch)
{
case 'S':supplier();
break;
case 'C':customer();
break;
case 'M':medicine();
break;
case 'R':report_menu();
break;
case 'B':bill();
break;
case 'A':about();
break;
case 'E':gotoxy(23,20);
//textcolor(4);
printf("Do you want to exit now? Y/N :");
Sleep(100);
ch=(getche());
ch=toupper(ch);
if(ch=='Y')
{
animation();
system("cls");
//textcolor(2);
gotoxy(35,20);
printf(" Please wait.....");
Sleep(2000);
exit(0);
}
else
{
main_menu();
}
default://textcolor(4+BLINK);
gotoxy(11,34);
printf("Plese Enter right character ONLY (S,C,M,R,B,A).");
getch();
}
}while(ch!='E');
}
//=========================For supplier ===========================
void supplier()
{
char ch;
do
{
system("cls");
gotoxy(34,3);
//textcolor(GREEN);
printf("----------------");
gotoxy(35,4);
//textcolor(GREEN);
printf("Supplier MENU");
gotoxy(34,5);
//textcolor(GREEN);
printf("----------------");
gotoxy(25,11);
//textcolor(4+BLINK);
printf("A");
gotoxy(26,11);
//textcolor(15);
printf("dd New Supplier");
gotoxy(25,15);
//textcolor(4+BLINK);
printf("U");
gotoxy(26,15);
//textcolor(15);
printf("pdate Supplier");
gotoxy(25,19);
//textcolor(4+BLINK);
printf("S");
gotoxy(26,19);
//textcolor(15);
printf("earch Supplier");
gotoxy(25,23);
//textcolor(4+BLINK);
printf("L");
gotoxy(26,23);
//textcolor(15);
printf("ist of Existing Supplier");
gotoxy(25,27);
//textcolor(4+BLINK);
printf("M");
gotoxy(26,27);
//textcolor(15);
printf("ain Menu");
main_box();
gotoxy(10,40);
//textcolor(15);
printf("Press First Character for further Operation ");
ch=toupper(getche());
switch(ch)
{
case 'A':animation();
supp_entry();
break;
case 'U':animation();
sup_update();
break;
case 'L':animation();
supp_list();
break;
case 'S':search();
break;
case 'M':main_menu();
break;
default://textcolor(4+BLINK);
gotoxy(11,34);
printf("Plese Enter right character ONLY (A,L,U,S,M).");
getch();
}
}while(ch!='M');
}
//=========================For customer ===========================
void customer()
{
char ch;
do
{
system("cls");
gotoxy(34,3);
//textcolor(GREEN);
printf("---------------");
gotoxy(35,4);
printf("Customer Menu.");
gotoxy(34,5);
printf("---------------");
gotoxy(25,11);
//textcolor(4+BLINK);
printf("A");
gotoxy(26,11);
//textcolor(15);
printf("dd New Customer");
gotoxy(25,15);
//textcolor(4+BLINK);
printf("U");
gotoxy(26,15);
//textcolor(15);
printf("pdate Customer");
gotoxy(25,19);
//textcolor(4+BLINK);
printf("S");
gotoxy(26,19);
//textcolor(15);
printf("earch Customer");
gotoxy(25,23);
//textcolor(4+BLINK);
printf("L");
gotoxy(26,23);
//textcolor(15);
printf("ist of Existing Customer");
gotoxy(25,27);
//textcolor(4+BLINK);
printf("M");
gotoxy(26,27);
//textcolor(15);
printf("ain Menu");
main_box();
gotoxy(10,40);
//textcolor(15);
printf("Press First Character for further Operations ");
ch=toupper(getche());
switch(ch)
{
case 'A':animation();
cust_entry();
break;
case 'U':animation();
cust_update();
break;
case 'L':animation();
cust_list();
break;
case 'S':cust_search();
break;
case 'M':main_menu();
break;
default://textcolor(4+BLINK);
gotoxy(11,34);
printf("Plese Enter right character ONLY (A,L,U,S,M).");
getch();
}
}while(ch!='M');
}
//=========================For Medicine ===========================
void medicine()
{
char ch;
do
{
system("cls");
gotoxy(34,3);
//textcolor(GREEN);
printf("---------------");
gotoxy(35,4);
printf("Medicine Menu.");
gotoxy(34,5);
printf("---------------");
gotoxy(25,15);
//textcolor(4+BLINK);
printf("P");
gotoxy(26,15);
//textcolor(15);
printf("urchase New Medicine");
gotoxy(25,19);
//textcolor(4+BLINK);
printf("S");
gotoxy(26,19);
//textcolor(15);
printf("ale Medicine");
gotoxy(25,23);
//textcolor(15);
printf("Sto");
gotoxy(28,23);
//textcolor(4+BLINK);
printf("c");
gotoxy(29,23);
//textcolor(15);
printf("k of Medicine");
gotoxy(25,27);
//textcolor(15);
printf("Se");
gotoxy(27,27);
//textcolor(4+BLINK);
printf("a");
gotoxy(28,27);
//textcolor(15);
printf("rch Medicine");
gotoxy(25,31);
//textcolor(4+BLINK);
printf("M");
gotoxy(26,31);
//textcolor(15);
printf("ain Menu");
main_box();
gotoxy(10,40);
//textcolor(15);
printf("Press First Character for further Operations ");
ch=toupper(getche());
switch(ch)
{
case 'P':medi_entry();
break;
case 'S':medi_sale();
break;
case 'C':stock();
break;
case 'A':medi_search();
break;
case 'M':main_menu();
break;
default://textcolor(4+BLINK);
gotoxy(11,34);
printf("Plese Enter right character ONLY (P,S,C,M).");
getch();
}
}while(ch!='M');
}
//=========================For Report ===========================
void report_menu()
{
char ch;
do
{
system("cls");
gotoxy(34,3);
//textcolor(GREEN);
printf("---------------");
gotoxy(35,4);
printf("Report Menu.");
gotoxy(34,5);
printf("---------------");
gotoxy(25,12);
//textcolor(4+BLINK);
printf("P");
gotoxy(26,12);
//textcolor(15);
printf("urchase Report");
gotoxy(25,16);
//textcolor(4+BLINK);
printf("S");
gotoxy(26,16);
//textcolor(15);
printf("ale Report");
gotoxy(25,20);
//textcolor(15);
printf("Pr");
gotoxy(27,20);
//textcolor(4+BLINK);
printf("o");
gotoxy(28,20);
//textcolor(15);
printf("fit Report");
gotoxy(25,24);
//textcolor(15);
printf("D");
gotoxy(26,24);
//textcolor(4+BLINK);
printf("a");
gotoxy(27,24);
//textcolor(15);
printf("ily Sale Report");
gotoxy(25,28);
//textcolor(4+BLINK);
printf("D");
gotoxy(26,28);
//textcolor(15);
printf("aily Purchase Report");
gotoxy(25,32);
//textcolor(4+BLINK);
printf("M");
gotoxy(26,32);
//textcolor(15);
printf("ain Menu");
main_box();
gotoxy(10,40);
//textcolor(15);
printf("Press First Character for further Operations ");
ch=toupper(getche());
switch(ch)
{
case 'P':pur_rpt();
break;
case 'S':sale_rpt();
break;
case 'A':sale_rpt_daily();
break;
case 'O':profit_rpt();
break;
case 'D':pur_rpt_daily();
break;
case 'M':main_menu();
break;
default://textcolor(4+BLINK);
gotoxy(11,34);
printf("Plese Enter right character ONLY (P,S,O,M).");
getch();
}
}while(ch!='M');
}
void about()
{ int c;
system("cls");
do
{
// window(1,1,80,50);
//textcolor(LIGHTGRAY);
gotoxy(28,4);
//textcolor(RED+BLINK);
printf("***** MEDICAL STORE *****");
gotoxy(10,8);
printf("=> This Project Is About Medical Store ");
gotoxy(10,10);
printf("=> In This Project we Can Add Medicine ,Customer,Supplier Details");
gotoxy(10,12);
printf("=> We Can Modifed & Delete Existing Record");
gotoxy(10,14);
printf("=> We Can Also Search Medicine ,Customer,Supplier Details");
gotoxy(10,16);
printf("=> It's Helpfull For Display Stock Of Medicine ");
printf("<<<<-Press 1 for main menu->>>>");
c = (getche());
switch (c) //This 'SWITCH' structure will ask the user for input from [1] to [7] and will display error on Invalid Entry.
{
case '1':animation(); main_menu();
gotoxy(26,24);
puts("<<--ENTER FROM 1 PLEASE-->>"); //This message will only print on INVALID ENTRY and Will ask again for input.
getch();
}
}while(c != '1');
}
//======================Remainder for medicine stock ===============
void remainder()
{
ptr1=fopen("medical.dat","r");
if(ptr1==NULL)
{
// printf("\n\t Can not open File! ");
}
while((fread(&temp,sizeof(temp),1,ptr1))==1)
{
if(temp.quantity<10)
{
gotoxy(10,45);
//textcolor(RED);
printf("%s : ",temp.medi_name);
printf("Quantity of this medicine is less then 10");
}
}
}
//========================for bill =============================
void bill()
{
//struct date d;
time_t td = time(0); // get time now
struct tm * now = localtime( & td );
FILE *ptrbill;
char id[6];
int j=1,d1,m,y,k;
float netamt=0.0;
//getdate(&d);
d1=now->tm_mday;
m=now->tm_mon;
y=now->tm_year;
system("cls");
ptrbill=fopen("dbbill.dat","r");
gotoxy(13,4);
printf("Enter bill no : ");
scanf("%s",&id);
system("cls");
gotoxy(25,3);
////textcolor(YELLOW+BLINK);
// printf("***** CareWell Medico *****");
box();
gotoxy(7,7);
printf("Bill No: ");
printf(" %s",id);
gotoxy(7,9);
printf("Customer Name: ");
gotoxy(50,7);
printf("Date : ");
printf("%d-%d-%d",d1,m,y);
gotoxy(7,12);
printf("Sr.No Medicine Name Qty Rate Total ");
gotoxy(6,14);
printf("---------------------------------------------------------------------");
i=15;
while(fscanf(ptrbill,"%s %s %s %d %f %f %d %d %d",bil.billno,bil.cname,bil.mediname,&bil.medi_qty,&bil.medi_rate,&bil.total,&bil.day,&bil.month,&bil.year)!=EOF)
{
do
{
if(strcmp(id,bil.billno)==0)
{
gotoxy(7,i);
printf(" %d",j);
gotoxy(14,i);
printf(" %s",bil.mediname);
gotoxy(22,9);
printf(" %s",bil.cname);
gotoxy(35,i);
printf(" %d",bil.medi_qty);
gotoxy(47,i);
printf(" %.2f",bil.medi_rate);
gotoxy(60,i);
printf(" %.2f",bil.total);
netamt=netamt+bil.total;
i++;
j++;
gotoxy(35,32);
printf(" ");
gotoxy(20,50);
//textcolor(YELLOW+BLINK);
printf("Press Any key to go to MENU ...........");
// break;
}
}while(feof(ptrbill));
}
gotoxy(6,35);
printf("---------------------------------------------------------------------");
gotoxy(50,37);
printf("Net Amount : ");
printf("%.2f",netamt);
fclose(ptrbill);
getch();
}
//========FOR SUPPLIERS ENTRY=================
void supp_entry()
{
int id;
char ch;
FILE *fp;
system("cls");
fp=fopen("supplier.dat","a");
if(fp==NULL)
{
printf("\n Can not open file!!");
exit(0);
}
system("cls");
ch='y';
while(ch=='y')
{
system("cls");
//textcolor(14);
t();
box();
lbox();
gotoxy(30,8);
printf(" SUPPLIER ENTRY ");
gotoxy(8,13);
// //flushall();
temp1.supp_id=getsupp_id();
printf("SUPPLIER ID : %d ",temp1.supp_id);
//ventry(temp1.supp_id,1);
//flushall();
gotoxy(39,13);
printf("SUPPLIER NAME : ");
gotoxy(8,18);
printf("CITY : ");
gotoxy(39,18);
printf("CONTACT NO. : ");
gotoxy(8,23);
printf("EMAIL ID : ");
gotoxy(55,13);
//flushall();
ventry(temp1.supp_name,0);
gotoxy(22,18);
ventry(temp1.city,0);
//flushall();
gotoxy(55,18);
ventry(temp1.mob_no,1);
//flushall();
gotoxy(22,23);
gets(temp1.email);
//flushall();
gotoxy(20,30);
//textcolor(RED+BLINK);
printf("S");
//textcolor(WHITE);
gotoxy(21,30);
printf("ave");
gotoxy(28,30);
//textcolor(RED+BLINK);
printf("C");
//textcolor(WHITE);
gotoxy(29,30);
printf("ancel");
gotoxy(18,36);
printf("Press First charecter for the operation : ");
ch=getch();
if(ch=='s' || ch=='S')
{
fprintf(fp,"%d %s %s %s %s\n\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email);
fprintf(fp,"\n");
//flushall();
system("cls");
gotoxy(20,20);
printf("Supplier Added successfully!!!!!");
//textcolor(10);
gotoxy(20,25);
printf("More entries [y/n]");
ch=getche();
}
}
fclose(fp);
}
//=========FOR SUPPLIER DISPLAY LIST ==========
void supp_list()
{
char ch;
int j;
system("cls");
ptr1=fopen("supplier.dat","r");
if(ptr1==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
box();
t();
//textcolor(GREEN+BLINK);
gotoxy(8,48);
printf("Press Anykey to go to SUPPLIER MENU !!!");
//textcolor(GREEN);
lbox();
gotoxy(30,8);
printf(" SUPPLIER LIST ");
//textcolor(WHITE);
gotoxy(5,10);
printf("ID. SUPPLIER NAME. PH.NO. CITY. EMAIL");
gotoxy(4,12);
i=14;
printf("=================================================================");
while(fscanf(ptr1,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.city,temp1.mob_no,temp1.email)!=EOF)
{
gotoxy(4,i);
printf(" %d",temp1.supp_id);
gotoxy(9,i);
printf(" %s",temp1.supp_name);
gotoxy(29,i);
printf(" %s",temp1.city);
gotoxy(41,i);
printf(" %s",temp1.mob_no);
gotoxy(54,i);
printf(" %s",temp1.email);
i=i+2;
}
getche();
}
//======================search supplier==================
void search()
{
int ch;
do
{
system("cls");
//textcolor(WHITE);
gotoxy(17,10);
printf(" Two options Available for searching ");
gotoxy(15,15);
printf("Search by");
gotoxy(25,15);
//textcolor(RED+BLINK);
printf("I");
//textcolor(WHITE);
gotoxy(26,15);
printf("D number");
gotoxy(15,18);
printf("Search by");
gotoxy(25,18);
//textcolor(RED+BLINK);
printf("N");
//textcolor(WHITE);
gotoxy(26,18);
printf("ame");
gotoxy(15,21);
//textcolor(RED+BLINK);
printf("R");
//textcolor(WHITE);
gotoxy(16,21);
printf("eturn");
main_box();
gotoxy(17,24);
printf("Press First charecter for the operation : ");
ch=toupper(getche());
switch(ch)
{
case 'I':
animation();
search_id();
break;
case 'N':
animation();
search_name();
break;
case 'R':
animation();
supplier();
break;
default:
gotoxy(22,18);
printf("You entered wrong choice!!!!!");
getch();
}
}while(ch!='R');
}
//=============================== Search by id =============================
void search_id()
{
int id;
FILE *fp;
fp=fopen("supplier.dat","r");
if(fp==NULL)
{
printf("file can't open!!!!");
}
system("cls");
box();
gotoxy(13,8);
printf("Enter id to be searched:");
scanf("%d",&id);
gotoxy(20,35);
//textcolor(YELLOW);
printf("Press Any key to Return Back Menu ....");
gotoxy(12,14);
printf("ID. SUPPLIER NAME. CITY. PH.NO. EMAIL");
gotoxy(12,16);
i=18;
printf("==============================================================");
while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email)!=EOF)
{
if(temp1.supp_id==id)
{
gotoxy(10,i);
printf(" %d",temp1.supp_id);
gotoxy(15,i);
printf(" %s",temp1.supp_name);
gotoxy(30,i);
printf(" %s",temp1.city);
gotoxy(40,i);
printf(" %s",temp1.mob_no);
gotoxy(53,i);
printf(" %s",temp1.email);
i++;
break;
}
}
if(temp1.supp_id!=id)
{
gotoxy(20,30);
printf("Record not found!");
}
fclose(fp);
getche();
}
//============================ Search by name =============================
void search_name()
{
char name[20];
FILE *fp;
fp=fopen("supplier.dat","r");
if(fp==NULL)
{
printf("file can't open!!!!");
}
system("cls");
box();
fp=fopen("supplier.dat","rb");
gotoxy(13,8);
printf(" Enter Supplier Name to be searched : ");
scanf("%s",&name);
gotoxy(20,35);
//textcolor(YELLOW);
printf("Press Any key to Return Back Menu ....");
gotoxy(12,14);
printf("ID. SUPPLIER NAME. CITY. PH.NO. EMAIL");
gotoxy(12,16);
i=18;
printf("==============================================================");
while(fscanf(fp,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email)!=EOF)
{
if(strcmp(temp1.supp_name,name)==0)
{
gotoxy(11,i);
printf(" %d",temp1.supp_id);
gotoxy(15,i);
printf(" %s",temp1.supp_name);
gotoxy(30,i);
printf(" %s",temp1.city);
gotoxy(40,i);
printf(" %s",temp1.mob_no);
gotoxy(53,i);
printf(" %s",temp1.email);
i++;
break;
}
}
if(strcmp(temp1.supp_name,name)!=0)
{
gotoxy(20,30);
//textcolor(YELLOW);
printf("Record not found!!!");
}
fclose(ptr1);
getche();
}
//============supp update=================
void sup_update()
{
int i;
char ch;
int sid;
FILE *ft;
system("cls");
box();
ptr1=fopen("supplier.dat","rb+");
if(ptr1==NULL )
{
printf("\n\t Can not open file!! ");
exit(0);
}
lbox();
gotoxy(30,8);
printf(" Modifying Supplier ");
gotoxy(12,13);
printf("Enter supplier ID : ");
// //flushall();
scanf("%d",&sid);
gotoxy(12,15);
ft=fopen("temp.dat","w");
if(ft==NULL)
{
printf(" Can not open file");
exit(1);
}
else
{
while(fscanf(ptr1,"%d %s %s %s %s",&temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email)!=EOF)
{
if(temp1.supp_id==sid)
{
gotoxy(18,17);
printf(" Existing Record ");
gotoxy(10,19);
printf("%d\t %s \t%s \t%s \t%s",temp1.supp_id,temp1.supp_name,temp1.mob_no, temp1.city,temp1.email);
gotoxy(12,22);
printf("Enter New Name : ");
//flushall();
ventry(temp1.supp_name,0);
gotoxy(12,24);
printf("Enter New mobile no : ");
//flushall();
ventry(temp1.mob_no,1);
gotoxy(12,26);
printf("Enter New City : ");
//flushall();
ventry(temp1.city,0);
gotoxy(12,28);
printf("Enter New email : ");
//flushall();
ventry(temp1.email,2);
gotoxy(20,32);
//textcolor(RED+BLINK);
printf("U");
gotoxy(21,32);
//textcolor(WHITE);
printf("pdate");
gotoxy(30,32);
//textcolor(RED+BLINK);
printf("C");
gotoxy(31,32);
//textcolor(WHITE);
printf("ancel");
gotoxy(18,36);
printf("Press First charecter for the operation : ");
ch=getch();
if(ch=='u' || ch=='U')
{
fprintf(ft,"%d %s %s %s %s\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email);
//flushall();
gotoxy(20,38);
printf("Supplier updated successfully...");
remove("supplier.dat");
rename("temp.dat","supplier.dat");
}
}
else
{
fprintf(ft,"%d %s %s %s %s\n",temp1.supp_id,temp1.supp_name,temp1.mob_no,temp1.city,temp1.email);
fflush(stdin);
}
}
fclose(ft);
fclose(ptr1);
}
}
//===============================END OF SUPPLIER FUNCTION===================
//========FOR CUSTOMER ENTRY=================
void cust_entry()
{
char ch;
int id;
FILE *fp;
system("cls");
fp=fopen("customer.dat","a");
if(fp==NULL)
{
printf("\n Can not open file!!");
exit(0);
}
system("cls");
ch='y';
while(ch=='y')
{
system("cls");
//textcolor(14);
t();
box();
lbox();
gotoxy(30,8);
printf(" CUSTOMER ENTRY ");
gotoxy(8,13);
//flushall();
temp_c.cust_id=getcust_id();
printf("CUSTOMER ID :%d",temp_c.cust_id);
//ventry(temp_c.cust_id,1);
//flushall();
gotoxy(39,13);
printf("CUSTOMER NAME : ");
gotoxy(8,18);
printf("CITY : ");
gotoxy(39,18);
printf("CONTACT NO. : ");
gotoxy(8,23);
printf("EMAIL ID : ");
gotoxy(55,13);
//flushall();
ventry(temp_c.cust_name,0);
gotoxy(22,18);
ventry(temp_c.city,0);
//flushall();
gotoxy(55,18);
ventry(temp_c.mob_no,1);
//flushall();
gotoxy(22,23);
gets(temp_c.email);
//flushall();
gotoxy(20,30);
//textcolor(RED+BLINK);
printf("S");
//textcolor(WHITE);
gotoxy(21,30);
printf("ave");
gotoxy(28,30);
//textcolor(RED+BLINK);
printf("C");
//textcolor(WHITE);
gotoxy(29,30);
printf("ancel");
gotoxy(18,36);
printf("Press First charecter for the operation : ");
ch=getch();
if(ch=='s' || ch=='S')
{
fprintf(fp,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email);
fprintf(fp,"\n");
fflush(stdin);
system("cls");
gotoxy(20,20);
printf("Customer Added Successfully!!!!!");
//textcolor(10);
gotoxy(20,25);
printf("More entries [y/n] ");
ch=getche();
}
}
fclose(fp);
}
//=========FOR CUSTOMER DISPLAY LIST ==========
void cust_list()
{
char ch;
system("cls");
ptr1=fopen("customer.dat","r");
if(ptr1==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
box();
//textcolor(GREEN+BLINK);
gotoxy(8,48);
printf("Press Anykey to go to CUSTOMER MENU!!!");
//textcolor(GREEN);
lbox();
gotoxy(30,8);
printf(" CUSTOMER LIST ");
//textcolor(WHITE);
i=14;
gotoxy(5,10);
printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL");
gotoxy(4,12);
printf("==============================================================");
while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
gotoxy(4,i);
printf(" %d",temp_c.cust_id);
gotoxy(11,i);
printf(" %s",temp_c.cust_name);
gotoxy(28,i);
printf(" %s",temp_c.city);
gotoxy(40,i);
printf(" %s",temp_c.mob_no);
gotoxy(53,i);
printf(" %s",temp_c.email);
i=i+2;
}
getche();
}
//======================search CUSTOMER==================
void cust_search()
{
int ch;
do
{
system("cls");
//textcolor(WHITE);
gotoxy(17,10);
printf(" Two options Available for searching ");
gotoxy(15,15);
printf("Search by");
gotoxy(25,15);
//textcolor(RED+BLINK);
printf("I");
//textcolor(WHITE);
gotoxy(26,15);
printf("D number");
gotoxy(15,18);
printf("Search by");
gotoxy(25,18);
//textcolor(RED+BLINK);
printf("N");
//textcolor(WHITE);
gotoxy(26,18);
printf("ame");
gotoxy(15,21);
//textcolor(RED+BLINK);
printf("R");
//textcolor(WHITE);
gotoxy(16,21);
printf("eturn");
main_box();
gotoxy(17,24);
printf("Press First charecter for the operation : ");
ch=toupper(getche());
switch(ch)
{
case 'I':
animation();
search_cid();
break;
case 'N':
animation();
search_cname();
break;
case 'R':
animation();
customer();
break;
default:
gotoxy(22,18);
printf("You entered wrong choice!!!!!");
getch();
}
}while(ch!='R');
getche();
}
//===========================Search by CustomerId=========================
void search_cid()
{
int id;
system("cls");
box();
ptr1=fopen("customer.dat","rb");
gotoxy(13,8);
printf("\xDB\xDB\xB2 Enter id to be searched:");
scanf("%d",&id);
//textcolor(GREEN);
//textcolor(WHITE);
i=18;
gotoxy(9,15);
printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL");
gotoxy(8,16);
printf("==============================================================");
while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
if(temp_c.cust_id==id)
{
gotoxy(8,i);
printf(" %d",temp_c.cust_id);
gotoxy(15,i);
printf(" %s",temp_c.cust_name);
gotoxy(28,i);
printf(" %s",temp_c.city);
gotoxy(40,i);
printf(" %s",temp_c.mob_no);
gotoxy(54,i);
printf(" %s",temp_c.email);
gotoxy(20,35);
//textcolor(YELLOW);
printf("Press Any key to go to CUSTOMER MENU ...........");
break;
}
}
if(temp_c.cust_id!=id)
{
gotoxy(20,30);
printf("Record not found!");
}
fclose(ptr1);
getche();
}
/*****************************search by CUSTOMERname******************************/
void search_cname()
{
char name[20];
system("cls");
box();
ptr1=fopen("customer.dat","rb");
gotoxy(12,8);
printf("\xDB\xDB\xB2 Enter Customer Name to be searched:");
scanf("%s",&name);
//textcolor(GREEN);
//textcolor(WHITE);
i=18;
gotoxy(9,15);
printf(" ID. CUSTOMER NAME. CITY. MOBILE.NO. EMAIL");
gotoxy(8,16);
printf("==============================================================");
while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
if(strcmp(temp_c.cust_name,name)==0)
{
gotoxy(8,i);
printf(" %d",temp_c.cust_id);
gotoxy(15,i);
printf(" %s",temp_c.cust_name);
gotoxy(28,i);
printf(" %s",temp_c.city);
gotoxy(40,i);
printf(" %s",temp_c.mob_no);
gotoxy(54,i);
printf(" %s",temp_c.email);
gotoxy(20,35);
//textcolor(YELLOW);
printf("Press Any key to go to CUSTOMER MENU ...........");
break;
}
}
if(strcmp(temp_c.cust_name,name)!=0)
{
gotoxy(5,10);
//textcolor(YELLOW);
printf("Record not found!");
}
fclose(ptr1);
getche();
}
//============CUSTOMER update=================
void cust_update()
{
int i;
char ch;
int cid;
FILE *ft;
system("cls");
box();
ptr1=fopen("customer.dat","rb+");
if(ptr1==NULL)
{
printf("\n\t Can not open file!! ");
exit(0);
}
lbox();
gotoxy(30,8);
printf(" Modifying customer ");
gotoxy(12,13);
printf("Enter the CUSTOMER ID : ");
scanf("%d",&cid);
gotoxy(12,15);
ft=fopen("temp.txt","w");
if(ft==NULL)
{
printf("\n Can not open file");
exit(0);
}
else
{
while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
if(temp_c.cust_id==cid)
{
gotoxy(25,17);
printf("*** Existing Record ***");
gotoxy(10,19);
printf("%d\t %s \t%s \t%s \t%s",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email);
gotoxy(12,22);
printf("Enter New Name : ");
//flushall();
ventry(temp_c.cust_name,0);
gotoxy(12,24);
printf("Enter New mobile no : ");
//flushall();
ventry(temp_c.mob_no,1);
gotoxy(12,26);
printf("Enter New City : ");
//flushall();
ventry(temp_c.city,0);
gotoxy(12,28);
printf("Enter New email : ");
//flushall();
scanf("%s",temp_c.email);
gotoxy(20,32);
//textcolor(RED+BLINK);
printf("U");
gotoxy(21,32);
//textcolor(WHITE);
printf("pdate");
gotoxy(30,32);
//textcolor(RED+BLINK);
printf("C");
gotoxy(31,32);
//textcolor(WHITE);
printf("ancel");
gotoxy(18,35);
printf("Press First charecter for the operation : ");
ch=getche();
if(ch=='u' || ch=='U')
{
fprintf(ft,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email);
// fprintf(ft,"\n");
fflush(stdin);
gotoxy(20,36);
printf("Customer updated successfully...");
remove("customer.dat");
rename("temp.txt","customer.dat");
} }
else
{
fprintf(ft,"%d %s %s %s %s\n",temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email);
fflush(stdin);
}
}
fclose(ft);
fclose(ptr1);
}
}
//============================ END OF CUSTOMER FUNCTION ===================
//============================ FOR MEDICINE PURCHASE ===================
void medi_entry()
{
char ch,id[6];
// struct date d;
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
int f;
FILE *fp;
system("cls");
//getdate(&d);
ptrp_r=fopen("purreport.dat","a");
ch='Y';
while(ch=='Y')
{
system("cls");
box();
//textcolor(14);
// t(); // THIS FUN IS USED FOR DISPLAY DATE & TIME.......
lbox();
gotoxy(30,8);
////textcolor(GREEN+BLINK);
printf(" MEDICINE PURSHASE ");
{
//textcolor(WHITE);
gotoxy(7,11);
printf("MEDICINE ID : ");
gotoxy(40,11);
printf("MEDICINE NAME : ");
gotoxy(7,14);
printf("ENTER RACK NO : ");
gotoxy(40,14);
printf("CABNIT NO : ");
gotoxy(7,18);
printf("COMPANY NAME : ");
gotoxy(40,18);
printf("SUPPLIER NAME : ");
gotoxy(7,21);
printf("UNIT COST Rs.: ");
gotoxy(40,21);
printf("SALE COST Rs.: ");
gotoxy(7,24);
printf("QUANTITY : ");
gotoxy(7,27);
printf("MFG.DATE(dd-mm-yyyy): ");
gotoxy(7,29);
printf("EXP.DATE(dd-mm-yyyy): ");
gotoxy(25,11);
ventry(temp.id,1);
strcpy(id,temp.id);
fp=fopen("medical.dat","r");
while((fread(&temp,sizeof(temp),1,fp))==1)
{
if(strcmp(id,temp.id)==0)
{
f=1;
break;
}
}
fclose(fp);
if(f==1)
{
gotoxy(20,31);
printf("ID Allready Exists");
getche();
system("cls");
medi_entry();
}
else
{
ptr=fopen("medical.dat","a+b");
strcpy(temp.id,id);
strcpy(p_r.medi_id,temp.id);
}
//flushall();
gotoxy(58,11);
ventry(temp.medi_name,0);
strcpy(p_r.medir_name,temp.medi_name);
//flushall();
gotoxy(25,14);
ventry(a,1);
temp.rack= atoi(a);//atoi() used for convert str to int.
//flushall();
gotoxy(58,14);
ventry(temp.cabnit,2);
//flushall();
gotoxy(25,18);
ventry(temp.comp_name,0);
//flushall();
gotoxy(58,18);
ventry(temp.supp_name,0);
strcpy(p_r.supp_name,temp.supp_name);
//flushall();
gotoxy(25,21);
ventry(a,1);
temp.unit= atof(a);
//flushall();
p_r.rate=temp.unit;
gotoxy(58,21);
ventry(a,1);
temp.sale= atof(a);
//flushall();
gotoxy(25,24);
ventry(a,1);
temp.quantity= atoi(a);
p_r.qty=temp.quantity;
//flushall();
gotoxy(29,27);
//flushall();
ventry(temp.manu_date,1);
gotoxy(29,29);
//flushall();
ventry(temp.exp_date,1);
gotoxy(7,31);
printf("==========================================================");
temp.total=temp.quantity*temp.sale;
//textcolor(10);
gotoxy(10,33);
printf("TOTAL SALE COST = Rs. %.2f",temp.total);
temp.cost=(temp.unit*temp.quantity);
gotoxy(40,33);
printf("TOTAL UNIT COST = Rs. %.2f",temp.cost);
p_r.total=temp.cost;
p_r.sDay=now->tm_mday;
p_r.sMonth=now->tm_mon;
p_r.sYear=now->tm_year;
}
gotoxy(20,35);
//textcolor(RED+BLINK);
printf("S");
//textcolor(WHITE);
gotoxy(21,35);
printf("ave");
gotoxy(28,35);
//textcolor(RED+BLINK);
printf("C");
//textcolor(WHITE);
gotoxy(29,35);
printf("ancel");
gotoxy(18,38);
printf("Press First charecter for the operation : ");
ch=toupper(getche());
if(ch=='S')
{
fwrite(&temp,sizeof(temp),1,ptr);
fflush(stdin);
//textcolor(10);
fprintf(ptrp_r,"%s %s %s %d %.2f %.2f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,p_r.qty,p_r.rate,p_r.total,p_r.sDay,p_r.sMonth,p_r.sYear);
system("cls");
gotoxy(20,20);
printf("Medicine Added sucessfully!!!!!!");
gotoxy(20,25);
printf("More entries [y/n]");
ch=toupper(getche());
/* if(ch=='Y')
{
system("cls");
medi_entry();
}*/
}
}
fclose(ptr);
fclose(ptrp_r);
}
//===========FOR MEDICINE SALE=========================
void medi_sale()
{
struct bill bil;
//struct date d;
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
int j,n,i,a,billno;
int d1,m,y;
float b,total,rate;
char tar[30],ch,mediname[30],c_name[30],cname[30];
FILE *fp,*fpc;
int count=0;
//getdate(&d);
d1=now->tm_mday;
m=now->tm_mon;
y=now->tm_year;
ch='y';
while(ch=='y')
{
fp = fopen("dbbill.dat","a");
ptr1 = fopen("customer.dat","r");
ptr = fopen("medical.dat","r");
ptrs_r=fopen("saleRpt.dat","a");
ptrpr_r=fopen("profitRpt.dat","a");
system("cls");
box();
for(i=3;i<=45;i++) //This 'FOR' loop will print asteriks 'I'
{ //vertically till the 3th row is reached.
gotoxy(50,i);
printf("%c",219);
}
i=9;
gotoxy(52,7);
printf("Cust_ID Cust_Name");
//flushall();
while(fscanf(ptr1,"%d %s %s %s %s",&temp_c.cust_id,temp_c.cust_name,temp_c.mob_no, temp_c.city,temp_c.email)!=EOF)
{
gotoxy(53,i);
printf("%d",temp_c.cust_id);
gotoxy(64,i);
printf("%s",temp_c.cust_name);
i+=2;
}
gotoxy(9,7);
printf("ENTER MEDICINE ID TO BE SOLD : ");
ventry(tar,1);
//scanf("%s",&tar);
j=0;
while((fread(&temp,sizeof(temp),1,ptr))==1)
{
if((strcmp(temp.id,tar)<0) || (strcmp(temp.id,tar)>0))
{
x[j] = temp;
j++;
}
else if((strcmp(temp.id,tar)==0))
{
gotoxy(8,10);
printf(" Medicine Name : %s",temp.medi_name);
gotoxy(8,12);
printf(" Quantity in stock : %d",temp.quantity);
gotoxy(8,14);
printf(" Sales price : %.2f",temp.sale);
gotoxy(8,16);
printf("Enter bill number : ");
//flushall();
ventry(bil.billno,1);
//scanf("%s",&bil.billno);
gotoxy(8,18);
printf("Enter customer Name : ");
//flushall();
ventry(c_name,0);
//scanf("%s",&c_name);
gotoxy(8,20);
printf("Quantity want to sale : ");
//ventry(a,1);
scanf("%d",&a);
pr_r.profit=(temp.sale-temp.unit)*a;
x[j]=temp;
x[j].quantity=(x[j].quantity-a);
x[j].total=(x[j].quantity*temp.sale);
x[j].cost=(x[j].quantity*temp.unit);
x[j].bye=(x[j].sale*a);
b=x[j].bye;
x[j].qty=a;
j++;
count++;
strcpy(bil.cname,c_name);
strcpy(s_r.cust_name,c_name);
strcpy(bil.mediname,temp.medi_name);
bil.medi_qty=a;
bil.medi_rate=temp.sale;
bil.total=temp.sale*a;
bil.day=d1;
bil.month=m;
bil.year=y;
fprintf(fp,"%s %s %s %d %.2f %.2f %d %d %d\n",bil.billno,bil.cname,bil.mediname,bil.medi_qty,bil.medi_rate,bil.total,bil.day,bil.month,bil.year);
fflush(stdin);
fclose(fp);
s_r.sDay=d1;
s_r.sMonth=m;
s_r.sYear=y;
strcpy(s_r.medi_id,tar);
strcpy(s_r.medir_name,temp.medi_name);
s_r.qty=a;
s_r.rate=temp.sale;
s_r.total=temp.sale*a;
//sale report
fprintf(ptrs_r,"%s %s %s %d %.2f %.2f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,s_r.qty,s_r.rate,s_r.total,s_r.sDay,s_r.sMonth,s_r.sYear);
fflush(stdin);
fclose(ptrs_r);
//profit report
pr_r.sDay=d1;
pr_r.sMonth=m;
pr_r.sYear=y;
strcpy(pr_r.medi_id,tar);
strcpy(pr_r.medir_name,temp.medi_name);
pr_r.qty=a;
pr_r.rate=temp.sale;
pr_r.unit=temp.unit;
fprintf(ptrpr_r,"%s %s %d %d %d %d %.2f %.2f %.2f\n",pr_r.medi_id,pr_r.medir_name,d1,pr_r.sMonth,pr_r.sYear,pr_r.qty,pr_r.unit,pr_r.rate,pr_r.profit);
fflush(stdin);
fclose(ptrpr_r);
}
}
if (count==0)
{
system("cls");
gotoxy(33,10);
printf("Not in stock!!!!!");
getch();
return;
}
fclose(ptr1);
fclose(ptr);
n = j;
system("cls");
ptr=fopen("medical.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
system("cls");
box();
gotoxy(8,15);
printf("* Price paid by customer = %.2f",b);
gotoxy(8,17);
printf("* Quantity sold = %d",a);
getch();
gotoxy(10,20);
printf("more enteries=(y/n) :");
ch=getche();
}
}
//===========================MEDICINE STOCK=====================================
void stock()
{
char ch;
int i,c;
do
{
system("cls");
ptr1=fopen("medical.dat","r");
if(ptr1==NULL)
{
printf("\n\t Can not open File! ");
exit(1);
}
system("cls");
box();
lbox();
//textcolor(GREEN);
gotoxy(30,8);
////textcolor(GREEN+BLINK);
printf(" STOCK OF MEDICINE ");
//textcolor(WHITE);
i=14;
gotoxy(9,10);
printf("ID. MEDICINE NAME. QTY Supplier Name Exp.Date");
gotoxy(9,12);
printf("==================================================================\n");
while((fread(&temp,sizeof(temp),1,ptr1))==1)
{
gotoxy(9,i);
printf(" %s",temp.id);
gotoxy(15,i);
printf(" %s",temp.medi_name);
gotoxy(32,i);
printf(" %d",temp.quantity);
gotoxy(43,i);
printf(" %s",temp.supp_name);
gotoxy(60,i);
printf(" %s",temp.exp_date);
i++;
}
gotoxy(10,42);
printf("Press [1] for Update Medicine Stock & [0] for main menu ");
c = (getche());
switch (c)
{
case '0':animation();
main_menu();
break;
case '1':update_stock();
break;
}
}while(c != '1');
getche();
}
//=============================== FOR MEDICINE SEARCH ====================
void medi_search()
{
char mid[6];
int i,c;
system("cls");
ptr1=fopen("medical.dat","r");
if(ptr1==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
box();
gotoxy(10,7);
printf("Enter Medicine Id to be searched : ");
scanf("%s",&mid);
system("cls");
box();
lbox();
//textcolor(GREEN);
gotoxy(30,8);
//textcolor(GREEN+BLINK);
printf(" MEDICINE ");
//textcolor(WHITE);
i=14;
gotoxy(9,10);
printf("ID. MEDICINE NAME. QTY Supplier Name Exp.Date");
gotoxy(9,12);
printf("==================================================================\n");
while((fread(&temp,sizeof(temp),1,ptr1))==1)
{
if(strcmp(mid,temp.id)==0)
{
gotoxy(9,i);
printf(" %s",temp.id);
gotoxy(15,i);
printf(" %s",temp.medi_name);
gotoxy(32,i);
printf(" %d",temp.quantity);
gotoxy(43,i);
printf(" %s",temp.supp_name);
gotoxy(60,i);
printf(" %s",temp.exp_date);
i++;
break;
}
}
if(strcmp(mid,temp.id)!=0)
{
gotoxy(20,20);
printf("Not in Stock.....");
}
getche();
}
//============================ FOR MEDICINE UPDATE =====================
void update_stock()
{
char mid[6];
int j,a,count=0,n;
system("cls");
ptr=fopen("medical.dat","rb");
if(ptr==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
box();
gotoxy(20,45);
printf("Press Enter to go to MENU ...........");
//textcolor(GREEN);
gotoxy(27,8);
////textcolor(GREEN+BLINK);
printf(" UPDATE MEDICINE QUANTITY ");
//textcolor(WHITE);
gotoxy(9,10);
printf("Enter medicine id to be update qty: ");
scanf("%s",&mid);
j=0;
while((fread(&temp,sizeof(temp),1,ptr))==1)
{
if((strcmp(temp.id,mid)<0) || (strcmp(temp.id,mid)>0))
{
x[j] = temp;
j++;
}
else
{
gotoxy(8,12);
printf("Medicine Name : %s",temp.medi_name);
gotoxy(8,14);
printf("Quantity in stock : %d",temp.quantity);
gotoxy(8,16);
printf("Quantity want to update : ");
scanf("%d",&a);
x[j]=temp;
x[j].quantity=(x[j].quantity+a);
x[j].total=(x[j].quantity*temp.sale);
x[j].cost=(x[j].quantity*temp.unit);
x[j].bye=(x[j].sale*a);
x[j].qty=a;
j++;
count++;
}
}
if (count==0)
{
system("cls");
gotoxy(33,10);
printf("Not in stock!!!!!!");
getch();
return;
}
fclose(ptr);
n = j;
system("cls");
ptr=fopen("medical.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
}
//===================== view report =============================/
void sale_rpt()
{
char ch;
int j;
system("cls");
ptrs_r=fopen("saleRpt.dat","r");
if(ptrs_r==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
box();
gotoxy(20,50);
printf("Press any key to go to REPORT MENU ...........");
lbox();
//textcolor(GREEN);
gotoxy(30,8);
////textcolor(GREEN+BLINK);
printf("Sales Report");
//textcolor(WHITE);
gotoxy(7,10);
printf("ID. Medicine Name. Customer Name. Qty. Rate. Total. Date");
gotoxy(7,12);
printf("===================================================================");
j=14;
while(fscanf(ptrs_r,"%s %s %s %d %f %f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,&s_r.qty,&s_r.rate,&s_r.total,&s_r.sDay,&s_r.sMonth,&s_r.sYear)!=EOF)
{
gotoxy(6,j);
printf("%s",s_r.medi_id);
gotoxy(11,j);
printf("%s",s_r.medir_name);
gotoxy(28,j);
printf("%s",s_r.cust_name);
gotoxy(44,j);
printf("%d",s_r.qty);
gotoxy(50,j);
printf("%.2f",s_r.rate);
gotoxy(57,j);
printf("%.2f",s_r.total);
gotoxy(65,j);
printf("%d-%d-%d",s_r.sDay,s_r.sMonth,s_r.sYear);
j=j+2;
}
getche();
}
//======================= VIEW PURCHASE REPORT ===========================
void pur_rpt()
{
char ch;
int j;
system("cls");
t();
box();
ptrp_r=fopen("purreport.dat","r");
if(ptrp_r==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
gotoxy(20,50);
printf("Press Enter to go to REPORT MENU ...........");
lbox();
//textcolor(GREEN);
gotoxy(30,8);
printf("Purchase Report");
//textcolor(WHITE);
gotoxy(7,10);
printf("ID. Medicine Name. Supplier Name. Qty. Rate. Total. Date");
gotoxy(7,12);
printf("===================================================================");
j=14;
while(fscanf(ptrp_r,"%s %s %s %d %f %f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,&p_r.qty,&p_r.rate,&p_r.total,&p_r.sDay,&p_r.sMonth,&p_r.sYear)!=EOF)
{
gotoxy(6,j);
printf("%s",p_r.medi_id);
gotoxy(11,j);
printf("%s",p_r.medir_name);
gotoxy(28,j);
printf("%s",p_r.supp_name);
gotoxy(44,j);
printf("%d",p_r.qty);
gotoxy(50,j);
printf("%.2f",p_r.rate);
gotoxy(57,j);
printf("%.2f",p_r.total);
gotoxy(65,j);
printf("%d-%d-%d",p_r.sDay,p_r.sMonth,p_r.sYear);
j+=2;
}
getche();
}
//========================= report of profit ===========================
void profit_rpt()
{
char ch;
int j;
system("cls");
t();
box();
ptrpr_r=fopen("profitRpt.dat","r");
if(ptrpr_r==NULL)
{
printf("\n\t Can not open File! ");
// exit(0);
}
gotoxy(20,50);
printf("Press Enter to go to REPORT MENU ...........");
lbox();
//textcolor(GREEN);
gotoxy(30,8);
printf("Profit Report");
//textcolor(WHITE);
gotoxy(7,10);
printf("ID. Medicine Name. Date Qty. Unit Price Sale Price. Profit. ");
gotoxy(7,12);
printf("===================================================================");
j=14;
while(fscanf(ptrpr_r,"%s %s %d %d %d %d %f %f %f \n",pr_r.medi_id,pr_r.medir_name,&pr_r.sDay,&pr_r.sMonth,&pr_r.sYear,&pr_r.qty,&pr_r.unit,&pr_r.rate,&pr_r.profit)!=EOF)
{
gotoxy(6,j);
printf("%s",pr_r.medi_id);
gotoxy(11,j);
printf("%s",pr_r.medir_name);
gotoxy(28,j);
printf("%d-%d-%d",pr_r.sDay,pr_r.sMonth,pr_r.sYear);
gotoxy(40,j);
printf("%d",pr_r.qty);
gotoxy(48,j);
printf("%.2f",pr_r.unit);
gotoxy(60,j);
printf("%.2f",pr_r.rate);
gotoxy(70,j);
printf("%.2f",pr_r.profit);
gotoxy(10,j);
printf("%c",124);
j+=2;
}
getche();
}
void sale_rpt_daily()
{
char ch;
int j,d,m,y;
float total=0.00;
system("cls");
ptrs_r=fopen("saleRpt.dat","r");
if(ptrs_r==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
gotoxy(15,10);
printf("Enter Date(dd-mm-yyyy): ");
scanf("%d-%d-%d",&d,&m,&y);
system("cls");
gotoxy(20,50);
printf("Press any key to go to REPORT MENU ...........");
box();
lbox();
//textcolor(GREEN);
gotoxy(30,8);
////textcolor(GREEN+BLINK);
printf("Sales Report");
//textcolor(WHITE);
gotoxy(7,10);
printf("ID. Medicine Name. Customer Name. Qty. Rate. Total. Date");
gotoxy(7,12);
printf("===================================================================");
j=14;
while(fscanf(ptrs_r,"%s %s %s %d %f %f %d %d %d\n",s_r.medi_id,s_r.medir_name,s_r.cust_name,&s_r.qty,&s_r.rate,&s_r.total,&s_r.sDay,&s_r.sMonth,&s_r.sYear)!=EOF)
{
if(d==s_r.sDay &&m== s_r.sMonth && y==s_r.sYear)
{
gotoxy(6,j);
printf("%s",s_r.medi_id);
gotoxy(11,j);
printf("%s",s_r.medir_name);
gotoxy(28,j);
printf("%s",s_r.cust_name);
gotoxy(44,j);
printf("%d",s_r.qty);
gotoxy(50,j);
printf("%.2f",s_r.rate);
gotoxy(57,j);
printf("%.2f",s_r.total);
gotoxy(65,j);
printf("%d-%d-%d",s_r.sDay,s_r.sMonth,s_r.sYear);
j=j+2;
total=total+s_r.total;
}
}
gotoxy(7,42);
printf("-------------------------------------------------------------------");
gotoxy(45,43);
printf("Total: %.2f",total);
getche();
}
void pur_rpt_daily()
{
char ch;
int j,d,m,y;
float total=0.00;
ptrp_r=fopen("purreport.dat","r");
if(ptrp_r==NULL)
{
printf("\n\t Can not open File! ");
exit(0);
}
system("cls");
gotoxy(15,10);
printf("Enter Date(dd-mm-yyyy): ");
scanf("%d-%d-%d",&d,&m,&y);
system("cls");
gotoxy(20,50);
printf("Press Enter to go to REPORT MENU ...........");
t();
box();
lbox();
//textcolor(GREEN);
gotoxy(30,8);
printf("Purchase Report");
//textcolor(WHITE);
gotoxy(7,10);
printf("ID. Medicine Name. Supplier Name. Qty. Rate. Total. Date");
gotoxy(7,12);
printf("===================================================================");
j=14;
while(fscanf(ptrp_r,"%s %s %s %d %f %f %d %d %d\n",p_r.medi_id,p_r.medir_name,p_r.supp_name,&p_r.qty,&p_r.rate,&p_r.total,&p_r.sDay,&p_r.sMonth,&p_r.sYear)!=EOF)
{
if(d==p_r.sDay &&m== p_r.sMonth && y==p_r.sYear)
{
gotoxy(6,j);
printf("%s",p_r.medi_id);
gotoxy(11,j);
printf("%s",p_r.medir_name);
gotoxy(28,j);
printf("%s",p_r.supp_name);
gotoxy(44,j);
printf("%d",p_r.qty);
gotoxy(50,j);
printf("%.2f",p_r.rate);
gotoxy(57,j);
printf("%.2f",p_r.total);
gotoxy(65,j);
printf("%d-%d-%d",p_r.sDay,p_r.sMonth,p_r.sYear);
j+=2;
total=total+p_r.total;
}
}
gotoxy(7,42);
printf("-------------------------------------------------------------------");
gotoxy(45,43);
printf("Total: %.2f",total);
getche();
}