INVEN.C

 // Inventory.c
// Author : Mr. Jake Rodriguez Pomperada, MAED-IT
// Date   : Februay 26, 2009
// Email  : jakerpomperada@yahoo.com


#include    <stdio.h>
#include    <conio.h>
#include    <ctype.h>
#include    <string.h>
#include    <dos.h>
#include    <math.h>
#include    <time.h>
#include<stdlib.h>
#include <bios.h>
void show_mouse();
int t();
void edit();
void infor();
void entry();
void display();
void search();
void search_id();
void search_name();
void del();
void deletion();
void deletion_id();
void print();
void help();
void eat();
void general();
void exit();
void seteefect(int, int);
void graph();
void bar(int inscor);
void graph2();
void bar2(int inscore2);
void report();
void report2();
void report3();
void pur();
void graph1();
void design();
void bbox();
void ventry(char t[],int);

struct shop
{
char desc[20];
int rack;
char ch;
int cabnit;
int quantity;
float sale;
char id[6];
float total;
float unit;
float cost;
float profit;
float bye;
int qty;
int ost;
int b;
    };

struct shop temp;
struct shop x[20];
FILE *ptr;
//int age;
char a[10];
/************************************displays information about the cars***************************/

void infor()
{
      int sher;
      clrscr();
      textcolor(WHITE);
      gotoxy(13,3);
      printf("\xDB\xDB\xDB\xDB\xB2  INFORMATION ABOUT PRODUCTS  \xB2\xDB\xDB\xDB\xDB");
      gotoxy(2,5);
      printf("THIS SECTION IS TO TELL WHAT KIND OF PRODUCTS ARE THERE IN STORE");
      printf("\n\nENTER THE OPTION WHICH SUITS YOU.\n");
      printf("\n\n1.EDIBLES.\n\n");
      printf("\n2.GENERAL ITEMS.\n\n");
      printf("\n\n\n\n\nOPTION:");
      sher=toupper(getch());
       //

  switch(sher)
  {
      case '1':
      eat();
      break;

      case '2':
      general();
      break;

      default:
      gotoxy(8,21);
      cprintf("\awrong entry press any key to go main menu..");
    }
   getche();

   }

void eat()
{
clrscr();
printf("***************************************************************\n");
printf("  ID : 123.  JAM      COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 124.  HONEY    COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 125.  MILK     COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 126.  BREAD    COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 127.  CHEES    COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 128.  JUICE    COMPANY : SONS       RACK NO 29\n");
printf("  ID : 129.  PEPSI    COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 130.  BUTTER   COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 131.  ICECREAM COMPANY : POLKA      FREEZER 32 \n");
printf("**************************************************************\n\n");
printf("Press any key to continue......");
getche();
clrscr();
printf("  ID : 133.  MILO     COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 134.  KEY BRAN COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 135.  TANG     COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 136.  ALWAYS   COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 327.  PEPPARS  COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 138.  JHERBAL  COMPANY : SONS       RACK NO 29\n");
printf("  ID : 139.  PEPSI    COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 130.  ORAGD    COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 131.  ICECREAM COMPANY : POLKA      FREEZER 32 \n");
printf("**************************************************************\n");
printf("  ID : 143.  SHAMPO   COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 144.  AGRI     COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 145.  TIMO     COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 146.  WASHSN   COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 147.  LACE     COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 428.  YARDLY   COMPANY : SONS       RACK NO 29\n");
printf("  ID : 149.  MUSK     COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 140.  BUTTER   COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 141.  IMPERIAL COMPANY : POLKA      FREEZER 32 \n");
printf("**************************************************************\n");
printf("\n\nPress enter to return to main menu");
   }

void general()
{
clrscr();
printf("***************************************************************\n");
printf("  ID : 153.  DETOL    COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 154.  SHAMPO   COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 155.  FINERRE  COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 156.  CURTIS   COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 157.  NIVKA    COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 158.  NIVCA    COMPANY : SONS       RACK NO 29\n");
printf("  ID : 159.  DETOL    COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 150.  BUTTER   COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 151.  SHAVE    COMPANY : POLKA      FREEZER 32 \n");
printf("***************************************************************\n\n");
printf("Press any key to continue......");
getche();
clrscr();
printf("  ID : 163.  ADDIS    COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 164.  SKIN     COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 165.  MAX      COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 166.  BRESCO   COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 167.  ZABIT    COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 168.  COPEX    COMPANY : SONS       RACK NO 29\n");
printf("  ID : 169.  SOAP     COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 160.  PAMOLI   COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 161.  AVA      COMPANY : POLKA      FREEZER 32 \n");
printf("***************************************************************\n");
printf("  ID : 163.  CAMY     COMPANY : MITUCHELS  RACK NO 24 \n");
printf("  ID : 164.  SAFE     COMPANY : PAK PURE   RACK NO 25\n");
printf("  ID : 165.  GUARD    COMPANY : HALEEB     RACK NO 26\n");
printf("  ID : 166.  DOVE     COMPANY : WONDER     RACK NO 27\n");
printf("  ID : 167.  REXONA   COMPANY : JUNAID     RACK NO 28\n");
printf("  ID : 168.  TOUCNME  COMPANY : SONS       RACK NO 29\n");
printf("  ID : 169.  FORHANS  COMPANY : MAJEED     RACK NO 30 \n");
printf("  ID : 160.  SIGNAL2  COMPANY : JAFFAR     RACK NO 31 \n");
printf("  ID : 161.  CLOSEUP  COMPANY : POLKA      FREEZER 32 \n");
printf("***************************************************************\n");
printf("\n\nPress enter to return to main menu");

}

///////////////////////////////  time  ///////////////////////////
int t(void)
{
   time_t t;

   time(&t);
  // clrscr();
   gotoxy(15,21);
   printf("Date and time: %s\n", ctime(&t));
   return 0;
}

///////////////////////////////////// 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]==8)
      { printf("%c",t[i]);
i++;
}
      }
  else if(code==1)
  {
    while((t[i]=getch())!='\r' && i<10)
     if((t[i]>=48 && t[i]<=57) || t[i]==46 || t[i]==8 )
      { printf("%c",t[i]);
i++;
}
      }
  t[i]='\0';
}

/******************************data entry***********************************/

void entry()
{
   char ch;
  clrscr();

   ptr=fopen("shop.dat","a+b");
  ch='y';
  while(ch=='y')
{
  clrscr();
  design();
  textcolor(14);
  t();
  gotoxy(14,3);
  cprintf("\xDB\xDB\xDB\xDB\xDB\xB2  PURSHASE  \xB2\xDB\xDB\xDB\xDB\xDB ");
   {


     gotoxy(7,5);
    cprintf("\xDB\xDB\xB2  ENTER PRODUCT ID  : ");
     ventry(temp.id,1);
   //
     flushall();
     gotoxy(7,7);
     cprintf("\xDB\xDB\xB2  ENTER DESCRIPTION : ");
     ventry(temp.desc,0);
     flushall();
    gotoxy(7,9);
     cprintf("\xDB\xDB\xB2  ENTER RACK NO     : ");
     ventry(a,1);
    temp.rack= atoi(a);

     flushall();
     gotoxy(7,11);
     cprintf("\xDB\xDB\xB2  ENTER CABNIT NO   : ");
     ventry(a,1);
    temp.cabnit= atoi(a);

   //
    flushall();
    gotoxy(7,13);
     ///////////////////////
     cprintf("\xDB\xDB\xB2  ENTER UNIT COST  :$ ");
     ventry(a,1);
    temp.unit= atof(a);
     flushall();

     gotoxy(7,15);
     cprintf("\xDB\xDB\xB2  ENTER SALE PRICE :$ ");
     ventry(a,1);
    temp.sale= atof(a);
     flushall();

     gotoxy(7,17);
     cprintf("\xDB\xDB\xB2  ENTER  QUANTITY  :  ");
     ventry(a,1);
    temp.quantity= atoi(a);
     flushall();

     gotoxy(7,18);
     cprintf("=====================================");
     temp.total=temp.quantity*temp.sale;

     textcolor(10);
     gotoxy(10,20);
     cprintf("\xB2\xDB\xB2  TOTAL PRICE = $ %.2f",temp.total);
     temp.cost=(temp.unit*temp.quantity);
     gotoxy(40,20);
     cprintf("\xDB\xB2  TOTAL COST = $ %.2f",temp.cost);

     }
  fwrite(&temp,sizeof(temp),1,ptr);
  textcolor(10);
  gotoxy(10,23);
  cprintf("More entries  [y/n]");
  ch=getche();
}
fclose(ptr);

}


/*****************************data retreivel********************************/

void display()
{

  clrscr();
  ptr=fopen("shop.dat","rb");
  while ((fread(&temp,sizeof(temp),1,ptr))==1)

     {
      gotoxy(22,3);
      printf("\xDB\xDB\xDB\xB2\xB2  RETRIEVE RECORD  \xB2\xB2\xDB\xDB\xDB");
      gotoxy(18,5);
      printf("\xDB\xDB\xB2  DESCRIPTION :  %s",temp.desc);
      gotoxy(18,7);
      printf("\xDB\xDB\xB2  ID NUMBER   :  %s",temp.id);
      gotoxy(18,9);
      printf("\xDB\xDB\xB2  RACK NO     :  %d",temp.rack);
      gotoxy(18,11);
      printf("\xDB\xDB\xB2  CABINET NO   :  %d",temp.cabnit);
      gotoxy(18,13);
      printf("\xDb\xDB\xB2  UNIT COST   :$ %.2f",temp.unit);
      gotoxy(18,15);
      printf("\xDB\xDB\xB2  SALE PRICE  : $ %.2f",temp.sale);
      gotoxy(18,17);
      printf("\xDB\xDB\xB2  QUANTITY    :  %d",temp.quantity);
      gotoxy(16,18);
      printf("===================================");
      gotoxy(16,20);
      printf("\xDB\xDB\xB2  TOTAL PRICE : $ %.2f",temp.total);
      gotoxy(47,20);
      printf("\xDB\xB2  TOTAL COST  : $ %.2f",temp.cost);
      gotoxy(20,23);
      printf("Press Enter to see next if any or exit ...");

      getche();
      clrscr();

   }

  fclose(ptr);
//
}


/*******************************data search*******************************/

void search()
{
  int sh;
  clrscr();
  design();
  gotoxy(17,6);
  printf("\xDB\xDB\xB2  Two options available to search \xB2\xDB\xDB");
  gotoxy(15,9);
  printf("[ 1 ]  -  Search by ID number   .");
  gotoxy(15,11);
  printf("[ 2 ]  -  Search by Description .");
  gotoxy(17,15);
  printf("Enter your choice:: ");
  sh=toupper(getch());

  switch(sh)
  {
    case '1':
    search_id();
    break;

    case '2':
    search_name();
    break;

    default:
    gotoxy(18,18);
    printf("\a\xDB\xDB wrong entry try again");
    getch();
   }
  getche();

}


/*****************************search by id*********************************/

void search_id()
{
  int flag=0;
  char lkf[20];
   clrscr();
   ptr=fopen("shop.dat","rb");
   design();
   gotoxy(13,4);
   printf("\xDB\xDB\xB2  Enter id to be searched:");
   scanf("%s",&lkf);
  while((!flag)&&(fread(&temp,sizeof(temp),1,ptr))==1)
  {
      if(strcmp(temp.id,lkf)==0)
      flag=1;
  }
     if(flag)
  {


gotoxy(18,6);
printf("Product ID   :  %s",temp.id);
gotoxy(18,8);
printf("Description  :  %s",temp.desc);
gotoxy(18,10);
printf("Rack no      :  %d",temp.rack);
gotoxy(18,12);
printf("Cabnit       :  %d",temp.cabnit);
gotoxy(18,14);
printf("Sale price   :$ %.2f",temp.sale);
gotoxy(18,16);
printf("Quantity     :  %d",temp.quantity);
gotoxy(16,17);
printf("============================");
gotoxy(18,19);
printf(" Total       :$ %.2f",temp.total);


  }
  else
       printf("Record not found!");
fclose(ptr);
}

/*****************************search by name******************************/

void search_name()
{
  int flag=0;
  char lkf[20];
   clrscr();
   ptr=fopen("shop.dat","rb");
   design();
   gotoxy(13,4);
   printf("\xDB\xDB\xB2  Enter description to be searched:");
   scanf("%s",&lkf);
  while((!flag)&&(fread(&temp,sizeof(temp),1,ptr))==1)
  {
      if(strcmp(temp.desc,lkf)==0)
      flag=1;
  }
     if(flag)
  {


gotoxy(18,6);
printf("Product ID   :  %s",temp.id);
gotoxy(18,8);
printf("Description  :  %s",temp.desc);
gotoxy(18,10);
printf("Rack no      :  %d",temp.rack);
gotoxy(18,12);
printf("Cabnit       :  %d",temp.cabnit);
gotoxy(18,14);
printf("Sale price   :$ %.2f",temp.sale);
gotoxy(18,16);
printf("Quantity     :  %d",temp.quantity);
gotoxy(16,17);
printf("============================");
gotoxy(18,19);
printf(" Total       :$ %.2f",temp.total);


  }
  else
       printf("Record not found!");
fclose(ptr);
}


/******************************data deletion*****************************/
void deletion()
{
int j,n,i;
char tar[30];
int count=0;

ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(17,10);
printf("\xDB\xDB  Enter Description to be deleted:");
scanf("%s",&tar);
j=0;

while((fread(&temp,sizeof(temp),1,ptr))==1)
{
   if((strcmp(temp.desc,tar)<0) || (strcmp(temp.desc,tar)>0))
   {
      x[j] = temp;
      j++;
    }
  else
  {
    count++;
  }
}
if (count==0)
{
clrscr();
design();
gotoxy(30,10);
printf("\xDB\xDB Record Not Found");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU .....");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(20,10);
printf("Record has been deleted");
gotoxy(20,12);
printf("Check it by going to the displayed record");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();


}
/******************************data print*********************************/
  void print()
  {


   clrscr();
  putc('\n',stdprn);
  fputs("\n\t\t\tREPRT OF SALES",stdprn);
  putc('\n',stdprn);
  fputs("===========================",stdprn);
  putc('\n',stdprn);
  putc('\n',stdprn);
  fputs("PRODUCT ID.    NAME.     SALE PRICE.     QUANTITY.    TOTAL  PRICE",stdprn);
  fputs("===================================================================",stdprn);
  putc('\n',stdprn);
  putc('\n',stdprn);

  ptr=fopen("shop.dat","rb");
  while( (fread(&temp,sizeof(temp),1,stdprn))==1)

  {
     fprintf(stdprn," %s",temp.id);
     fprintf(stdprn,"\t%s",temp.desc);
     fprintf(stdprn,"\t%.2f",temp.sale);
     fprintf(stdprn,"\t%ld\n",temp.quantity);
     fprintf(stdprn,"\t%.2f",temp.total);
  }
  fclose(ptr);
}

/******************************help***************************************/

void help()
{
  clrscr();
     design();
     textcolor(WHITE);
     gotoxy(20,4);
     cprintf("\xDB\xDB\xDB\xDB\xB2  HELP ABOUT THE PROGRAM  \xB2\xDB\xDB\xDB\xDB");
     gotoxy(4,6);
     cprintf(" [ 2 ] - ENTER  RECORDS : THIS OPTION ALLOWS THE USER TO ENTER NEW ");
     gotoxy(30,7);
     cprintf("RECORDS. USER ENTERS PRODUCT ID, DESCRIPTION,");
     gotoxy(30,8);
     cprintf("QUANTITY AND UNIT PRICE. THE PROGRAMM CALCULATES");
     gotoxy(30,9);
     cprintf("TOTAL PRICE AND DISPLAYS ON THE SCREEN.");
     gotoxy(4,11);
     cprintf(" [ 3 ] - ENTER SALES    :  THIS OPTION ALLOWS THE USER TO SEE PREVIOUS ");
     gotoxy(30,12);
     cprintf("SALE RECORDS.");
     gotoxy(4,14);
     cprintf(" [ 4 ] - SEARCH PURCHASE : THIS OPTION ALLOWS THE USER TO SEARCH SPECIFIC");
     gotoxy(30,15);
     cprintf("RECORD BY ENTERING ID OR 'DESCRIPTION'");
     gotoxy(4,17);
     cprintf(" [ 5 ] - DELETE PURCHASE : THIS OPTION ALLOWS THE USER TO DELETE A SPECIFIC");
     gotoxy(30,18);
     cprintf("RECORD BY ENTERING ITS 'DESCRIPTION' OR ID");
     gotoxy(6,23);
     cprintf("Press any key to continue .............");

     getche();
     clrscr();
      design();
      textcolor(WHITE);
      gotoxy(4,5);
     cprintf(" [ 6 ] - VIEW REPORT  :   THIS OPTION ALLOWS THE USER TO PRINT PREVIOUS");
     gotoxy(30,6);
     cprintf("SALE RECORDS ON PRINTER");
     gotoxy(4,8);
     cprintf(" [ 7 ] - PRINT RECORDS :  THIS OPTION ALLOWS THE USER TO PRINT RECORDS");
     gotoxy(30,9);
     cprintf("OM PRINTER.");
     gotoxy(4,11);
     cprintf(" [ 8 ] - VIEW GRAPH     :  THIS OPTION ALLOWS THE USER TO VIEW GRAPH ");
     gotoxy(30,12);
     cprintf("OF QUANTITY.");
     gotoxy(10,23);
     printf("Press any key to go to the MAIN MENU ........");

getche();
}


/***************************main menu*************************************/
menu()
{
int x;
  do{
       {
clrscr();
design();
t();
textcolor(WHITE);
gotoxy(24,3);
cprintf("\xDB\xDB\xDB\xDB\xB2  LYDIA'S DEPARTMENT STORE  \xB2\xDB\xDB\xDB\xDB");
gotoxy(3,4);
cprintf("--------------------------------------------------------------------------");
gotoxy(35,5);
cprintf("MAIN MENU");
gotoxy(26,8);
cprintf(" 1  -   INFORMATION ABOUT PRODUCTS            ");
gotoxy(26,9);
cprintf(" 2  -   ENTER  PURCHASE  RECORDS            ");
gotoxy(26,10);
cprintf(" 3  -   ENTER PRODUCTS TO BE SALE           ");
gotoxy(26,11);
cprintf(" 4  -   SEARCH FOR RECORD                     ");
gotoxy(26,12);
cprintf(" 5  -   DELETE RECORD FROM STORE DATABASE     ");
gotoxy(26,13);
cprintf(" 6  -   VIEW SALES , PURCHASE & PROFIT REPORT ");
gotoxy(26,14);
cprintf(" 7  -   PRINT RECORDS                         ");
gotoxy(26,15);
cprintf(" 8  -   BAR  GRAPH OF QUANTITY / PROFIT       ");
gotoxy(26,16);
cprintf(" 9  -   RETRIEVE INFORMATION         ");
gotoxy(26,17);
cprintf(" H  -   HELP                                  ");
gotoxy(26,18);
cprintf(" E  -   EXIT                                  ");
gotoxy(26,23);
       //
cprintf("ENTER YOUR CHOICE :: ");
gotoxy(47,23);
x=toupper(getch());
switch(x)
{
case '1':
infor();
break;

case '2':
entry();
break;

case '3':
edit();
break;

case '4':
search();
break;

case '5':
del();
break;

case '6':
report2();
break;

case '7':
print();
break;

case 'h': case'H':
help();
break;

case'8':
graph1();
break;

case '9':
display();
break;

case 'e': case 'E':
exit(0);
break;

default:
clrscr();
design();
gotoxy(17,12);
printf("\a\xDB\xB2  WRONG ENTRY : PRESS ANY KEY AND TRY AGAIN");
getche();
}
      }
    }while((x!='e')||(x!='E'));
return x;
}


void main()
{
textbackground(14);
show_mouse();
menu();
}
/*************************************  graph  ***********************************/

void graph()
{
  int inscor=1;
  char ch;
  clrscr();
  design();
  gotoxy(20,23);
  printf("Press enter to go to MAIN MENU .....");
  textcolor(10);
  gotoxy(15,4);
  cprintf("************* GRAPH OF PRODUCT QUANTITY *************");
  textcolor(14);
  gotoxy(3,5);
  cprintf(" PRODUCT NAME");
  ptr=fopen("shop.dat","rb");
  while((fread(&temp,sizeof(temp),1,ptr))==1)
     {

     printf("\n \xBA %s   \t:",temp.desc);
     bar(inscor);

   }

  fclose(ptr);
getche();
}
void bar()
{
int j;
for(j=1;j<=temp.quantity;j++)
printf("\xDB");
printf(" %d",temp.quantity);
printf("\n");
}
/*********************************** view report ****************************/
void report()
{
  char ch;
  clrscr();
  design();
  gotoxy(20,23);
  printf("Press Enter to go to MAIN MENU ........");
  textcolor(GREEN);
  gotoxy(25,4);
  cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF SALES  \xB2\xDB\xDB\xDB\xDB\xDB");
  textcolor(RED);
  gotoxy(4,7);
  cprintf("PRODUCT ID.    NAME.     SALE PRICE.     QUANTITY.    TOTAL  PRICE");
  gotoxy(4,9);
  printf("========================================================================");

  ptr=fopen("shop.dat","rb");
  while((fread(&temp,sizeof(temp),1,ptr))==1)

     {
     //
      printf("\n \xBA %s\t",temp.id);
      printf("\t%s",temp.desc);
      printf("\t\t$%.2f",temp.sale);
    //  printf("\t\t%d",temp.qty);
      printf("\t\t%d",temp.quantity);
    // printf("\t\t%d",temp.bye);
      printf("\t\t $%.2f",temp.total);

       }

getche();
}
void seteffect(int b, int f)
{
   clrscr();
   textbackground(b);
   textcolor(f);
}

/**********************************   purchase report **********************/

void pur()
{
char ch;
  clrscr();
  design();
  show_mouse();
  gotoxy(20,23);
  printf("Press Enter to go to MAIN MENU ...........");
  textcolor(GREEN);
  gotoxy(25,4);
  cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF PURCHASES  \xB2\xDB\xDB\xDB\xDB\xDB");
  textcolor(RED);
  gotoxy(4,7);
  cprintf("PRODUCT ID.    NAME.     UNIT PRICE.     QUANTITY.       TOTAL  COST");
  gotoxy(4,9);
  printf("========================================================================");

  ptr=fopen("shop.dat","rb");
  while((fread(&temp,sizeof(temp),1,ptr))==1)
     {
     //
      printf("\n \xBA %s\t\t",temp.id);
      printf(" %s",temp.desc);

      printf("\t\t$%.2f",temp.unit);
      printf("\t\t%d",temp.quantity);
      printf("\t\t $%.2f",temp.cost);
       }
getche();
}

/***********************************  purchase graph ***********************/

void graph2()
{
  int inscor2=1;
  char ch;
  clrscr();
  design();
  gotoxy(20,23);
  printf("Pres Enter to go to MAIN MENU ...........");
  textcolor(10);
  gotoxy(15,4);
  cprintf("************* GRAPH OF PROFIT *************");
  textcolor(14);
  gotoxy(4,5);
  cprintf("PRODUCT NAME");
  ptr=fopen("shop.dat","rb");
  while((fread(&temp,sizeof(temp),1,ptr))==1)
     {

     printf("\n \xBA %s  \t:",temp.desc);
     bar2(inscor2);

   }

  fclose(ptr);
getche();
}
void bar2()
{
int j;
temp.profit=(temp.total-temp.cost);
//
for(j=1;j<=temp.profit;j++)
printf("\xDB");
printf(" %.1f$",temp.profit);
printf("\n");
}

/*********************************    both graphs call ****************************/


void graph1()
{
      int sher;
      clrscr();
      textcolor(WHITE);
      gotoxy(24,3);
      printf("\xDB\xDB\xDB\xDB\xB2  BAR GRAPH   \xB2\xDB\xDB\xDB\xDB");
      gotoxy(10,5);
      printf("THIS SECTION IS TO show the graph of quantity and profit ");
      printf("\n\n\t   *********  ENTER THE OPTION WHICH SUITS YOU. *******\n");
      printf("\n\n\t\xDB\xDB\xB2  1.QUANTITY.\n\n");
      printf("\n\t\xDB\xDB\xB2  2.PROFIT.\n");
      printf("\n\n\n\t\t\xDB\xDB\xB2  OPTION:");
      sher=toupper(getch());

  switch(sher)
  {
      case '1':
      graph();
      break;

      case '2':
      graph2();
      break;

      default:
      gotoxy(9,20);
      textcolor(RED);
      cprintf("\a\xDB\xB2 WRONG ENTRY : PRESS ENTER TO GO TO MAIN MENU... ");
      getche();
      }

}
/**************************  report of profit **********************/

void report3()
{
char ch;
  clrscr();
  design();
  gotoxy(20,23);
  printf("Press Enter to go to MAIN MENU .... ");
  textcolor(GREEN);
  gotoxy(25,4);
  cprintf("\xDB\xDB\xDB\xDB\xDB\xB2 VIEW OF PROFIT  \xB2\xDB\xDB\xDB\xDB\xDB");
  textcolor(RED);
  gotoxy(4,7);
  cprintf("PRODUCT ID.      DESCRIPTION.      QUANTITY.         PROFIT.");
  gotoxy(4,9);
  printf("============================================================");

  ptr=fopen("shop.dat","rb");
  while((fread(&temp,sizeof(temp),1,ptr))==1)
     {

      printf("\n \xBA   %s.",temp.id);
      printf("\t\t%s",temp.desc);
      printf("\t\t%d",temp.quantity);
      temp.profit=(temp.total-temp.cost);
      printf("\t\t $%.2f",temp.profit);

       }
getche();
}

/*************************  SALE , PURCHASE AND PROFIT REPORT CALL***************/

void report2()
{

int sher;
      clrscr();
      bbox();
      textcolor(WHITE);
      gotoxy(21,3);
      printf("\xDB\xDB\xDB\xDB\xB2  REPORT OF SALES / PURCHASE  \xB2\xDB\xDB\xDB\xDB");
      gotoxy(5,5);
      printf("\tTHIS SECTION IS VIEWING SALES, PURCHASE and PROFIT REPORTS ");
      gotoxy(10,7);
      printf("  *********  ENTER THE OPTION WHICH SUITS YOU. **********\n");
      gotoxy(12,10);
      printf("\xDB\xDB\xB2  1.SALES.");
      gotoxy(12,12);
      printf("\xDB\xDB\xB2  2.PURCHASE.");
      gotoxy(12,14);
      printf("\xDB\xDB\xB2  3.PROFIT.");
      gotoxy(14,17);
      printf("\xDB\xDB\xB2  OPTION:");
      sher=toupper(getch());


  switch(sher)
  {
      case '1':
      report();
      break;

      case '2':
      pur();
      break;

      case '3':
      report3();
      break;

      default:
gotoxy(9,20);
textcolor(RED);
cprintf("\a\xDB\xB2  WRONG ENTRY : PRESS ENTER TO GO TO MAIN MENU....");
getche();

    }

}


/************************************  design module **********************/

void design()
{
int i;
clrscr();
textcolor(14);
/******************************  table design *********************/
gotoxy(2,2);
cprintf("\xC9");
gotoxy(3,2);
       for(i=1;i<=74;i++)
       cprintf("\xCD");
gotoxy(77,2);
cprintf("\xBB");
gotoxy(2,3);
cprintf("\xBA");gotoxy(2,4);cprintf("\xBA");gotoxy(2,5);cprintf("\xBA");
gotoxy(2,6);cprintf("\xBA");gotoxy(2,7);cprintf("\xBA");gotoxy(2,8);cprintf("\xBA");
gotoxy(2,9);cprintf("\xBA");gotoxy(2,10);cprintf("\xBA");gotoxy(2,11);cprintf("\xBA");gotoxy(2,12);cprintf("\xBA");
gotoxy(2,13);cprintf("\xBA");gotoxy(2,14);cprintf("\xBA");gotoxy(2,15);cprintf("\xBA");gotoxy(2,16);cprintf("\xBA");
gotoxy(2,17);cprintf("\xBA");gotoxy(2,18);cprintf("\xBA");gotoxy(2,22);cprintf("\xCC");

gotoxy(2,19);cprintf("\xBA");gotoxy(2,20);cprintf("\xBA");gotoxy(2,21);cprintf("\xBA");gotoxy(2,24);cprintf("\xC8");
gotoxy(2,23);cprintf("\xBA");
gotoxy(3,24);
for(i=1;i<=74;i++)
cprintf("\xCD");
gotoxy(77,18);cprintf("\xBA");gotoxy(77,19);cprintf("\xBA");gotoxy(77,20);cprintf("\xBA");gotoxy(77,21);cprintf("\xBA");gotoxy(77,24);cprintf("\xBC");
gotoxy(77,23);
cprintf("\xBA");
gotoxy(3,22);
for(i=1;i<=74;i++)
cprintf("\xCD");
gotoxy(77,22);
cprintf("\xB9");
//*****************
gotoxy(77,3);
cprintf("\xBA");gotoxy(77,4);cprintf("\xBA");gotoxy(77,5);cprintf("\xBA");
gotoxy(77,6);cprintf("\xBA");gotoxy(77,7);cprintf("\xBA");gotoxy(77,8);cprintf("\xBA");
gotoxy(77,9);cprintf("\xBA");gotoxy(77,10);cprintf("\xBA");gotoxy(77,11);cprintf("\xBA");gotoxy(77,12);cprintf("\xBA");
gotoxy(77,13);cprintf("\xBA");gotoxy(77,14);cprintf("\xBA");gotoxy(77,15);cprintf("\xBA");gotoxy(77,16);cprintf("\xBA");
gotoxy(77,17);cprintf("\xBA");
       textcolor(RED);
       //

}

void bbox()
{
int c,r;
for(c=1;c<=79;c++)
{
gotoxy(c,1);
printf("ß");
gotoxy(c,25);
printf("ß");
}
for(r=1;r<=24;r++)
{
gotoxy(1,r);
printf("Û");
gotoxy(79,r);
printf("Û");
}
}


//////////////////////////////////  by id deletion  ////////////////////////////

void deletion_id()
{
int j,n,i;
char tar[30];
int count=0;

ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(15,8);
printf("\xDB\xDB Enter ID be deleted:");
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
  {
    count++;
  }
}
if (count==0)
{
clrscr();
design();
gotoxy(30,10);
printf("\xDB\xDB Record Not Found");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(15,10);
printf("Record has been deleted");
gotoxy(15,12);
printf("Check it by going to the displayed record");
gotoxy(17,23);
printf("Press Enter to go to MAIN MENU ......");
getch();

}

/////////////////////////////////  both deletion call ///////////////////////

void del()
{
int sh;
  clrscr();
  design();
  gotoxy(17,6);
  printf("\xDB\xDB\xB2 Two options available to delete \xB2\xDB\xDB");
  gotoxy(16,9);
  printf("[ 1 ] -  Delete by ID number   ");
  gotoxy(16,11);
  printf("[ 2 ] -  Delete by Description ");
  gotoxy(18,15);
  printf("Enter your choice :: ");
  sh=toupper(getch());

  switch(sh)
  {
    case '1':
    deletion_id();
    break;

    case '2':
    deletion();
    break;

    default:
    gotoxy(18,18);
    printf("\a\xDB\xDB  Wrong entry ");
    gotoxy(17,23);
    printf("Press Enter to go to MAIN MENU .....");
    getch();
   }
  getche();

}

///////////////////////////////////// update record //////////////////////

void edit()
{
int j,n,i,a;
float b;
char tar[30],ch;
int count=0;
ch='y';
while(ch=='y')
{
ptr = fopen("shop.dat","rb");
clrscr();
design();
gotoxy(15,9);
printf("\xDB\xDB ENTER ID OF THE PRODUCT TO BE SOLD:");
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
  {
  design();
  gotoxy(8,7);
  printf("\xDB\xDB  Description       = %s",temp.desc);
  gotoxy(8,9);
  printf("\xDB\xDB  Quantity in stock = %d",temp.quantity);
  gotoxy(8,11);
  printf("\xDB\xDB  Sales price       = %.2f",temp.sale);
  gotoxy(8,13);
  printf("\xDB\xDB  Quantity want to sale : ");
  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);
  b=x[j].bye;
  x[j].qty=a;
  j++;
  count++;
  }
}
if (count==0)
{
clrscr();
design();
gotoxy(33,10);
printf("\a\xDB\xDB\xB2  Not in stock");
getch();
return;
}

fclose(ptr);
n = j;
clrscr();
ptr=fopen("shop.dat","wb");
for(i=0; i<n; i++)
fwrite(&x[i],sizeof(x[i]),1,ptr);
fclose(ptr);
clrscr();
design();
gotoxy(8,9);
printf("\xDB\xDB  Price paid by customer = %.2f",b);
gotoxy(8,11);
printf("\xDB\xDB  Quantity sold          = %d",a);
getch();
printf("more enteries=(y/n)");
ch=getche();
}
}

///////////////////////////////////  end  ///////////////////////////
void show_mouse(void)
{
union REGS in, out;

in.x.ax = 0x1;
int86(0x33, &in, &out);
}

Project Homepage: