Posted by : Unknown

#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();
}


Powered by Blogger.

© Information Technology