Tuesday 24 February 2015

PAYROLL PROCESSING PROJECT IN C



#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
#include<io.h>
#include<ctype.h>
#include<string.h>

struct add
{

char empname[25];
long int empno;
char sex[6];
char address[50];
char city[25];
long int pin;
char department[25];
char joindate[25];
char dob[25];
char category[1];
char designation[20];
int l;
int year;

};

struct permenentstaff
{

float basicpay;
float da;
float hrd;
float pf;
float lic;

};





struct managementstaff
{

float basicpay;
float da;
float hra;
float pf;
float lic;
};

struct apprentices
{

float basicpay;

};

main()
{

char yes,c,c0,c1,m,p,a,c2,c4,c41,rm,rp,ra;
char ma,pa,aa;
static int i;
clrscr();

mainmenu();

fflush(stdin);
yes=getche();

if(yes=='1'||yes=='2'||yes=='3')

{

while(i==0)

{






switch(yes)

{

case '1':
clrscr();
database();
c=getche();

if(c=='1')

{
mparecord();
ma=getche();
switch(ma)

{
case '1':
mrecord();
c41=getche();
switch(c41)
{
 case '1':
  maddrecord();
  break;
 case '2':
  mmodifyrecord();
  break;
 case '3':
  mdeleterecord();
  break;
 case '4':
  mretrieverecord();
  break;
 case '5':
  continue;
  //break;
}
break;





case '2':
 precord();
 switch(c41)
 {
 case '1':
  paddrecord();
  break;
 case '2':
  pmodifyrecord();
  break;
 case '3':
  pdeleterecord();
  break;
 case '4':
  pretrieverecord();
  break;
 case '5':
  continue;
  //break;
 }
     break;

case '3':
 arecord();
 c41=getche();
 switch(c41)
 {
 case '1':
  aaddrecord();
  break;
 case '2':
  amodifyrecord();
  break;
 case '3':
  adeleterecord();
  break;
 case '4':
  aretrieverecord();
  break;




 case '5':
  continue;
  //break;
}
break;

case '4':
continue;
//break;
}
}

else if(c=='2')
{
staff();
c2=getche();
switch(c2)
{
case '1':
     clrscr();
 managementstaff();
 m=getche();
 switch(m)
 {
  case '1':
addmrecord();
break;
case '2':
modifymrecord();
break;
case '3':
retrievemrecord();
break;
case '4':
staff();
break;
 }
 break;





case '2':
clrscr();
permenentstaff();
  p=getche();
switch(p)
{
case '1':
  addprecord();
    break;
case '2':
    modifyprecord();
  break;
case '3':
    retrieveprecord();
    break;
case '4':
  staff();
    break;
    }
    break;
case '3':
clrscr();
apprenticesstaff();
a=getche();
  switch(a)
{
case '1':
 addarecord();
   break;
case '2':
 modifyarecord();
   break;
case '3':
 retrievearecord();
 break;
case '4':
 staff();
 break;
}
break;



case '4':
 mainmenu();
 break;
}
break;
}

else if(c=='3')
{
mainmenu();
break;
}
break;
case '2':
switch(yes)
{
case '2':
 clrscr();
 rstaff();
 rm=getche();
   if(rm=='1')
     {
  mreportsmenu();
c1=getche();
if(c1=='1')
{
mlabels();
}
else if(c1=='2')
{
mpayrollledger();
}
else if(c1=='3')
{
mpfdeduction();
}
else if(c1=='4')
{
mlicdeduction();
}
else if(c1=='5')

{
rstaff();
}
 
 }

 else if(rm=='2')
 {
  preportsmenu();
rp=getche();
if(rp=='1')
{
plabels();
}
else if(rp=='2')
{
ppayrollledger();
}
else if(rp=='3')
{
ppfdeduction();
}
else if(rp=='4')
{
plicdeduction();
}
else if(rp=='5')
{
rstaff();
}
   else if(rm=='3')
   {
  areportsmenu();
ra=getche();
if(ra=='1')
{
alabels();
}
else if(ra=='2')
{
apayrollledger();
}

else if(ra=='3')
{
rstaff();
}
   }

   else if(rm=='4')
   {
mainmenu();
 }
 break;
}
break;
case '3':
exit(1);
break;
}
}
}
return;
}


printline()
{
int i;
printf("\n");
for(i=0;i<80;i++)
{
printf("%c",'÷');
}
return;
}

staff()
{
char c0,m,p,a;
clrscr();
printline();
printf("\n\t\t\t\tPAYROLL DATA BASE OPERATIONS ");




printline();
printf("\n\n\n\n\n\t\t\t\t 1...MANAGEMENT STAFF ");
printf("\n\n\t\t\t\t 2...PERMENENT STAFF ");
printf("\n\n\t\t\t\t 3...APPRENTICES STAFF ");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\n\n\t\t\t\t YOUR CHOICE");

c0=getche();
switch(c0)
{
case '1':
 clrscr();
 managementstaff();
 m=getche();
 switch(m)
   {
  case '1':
  addmrecord();
break;
case '2':
  modifymrecord();
  break;
case '3':
  retrievemrecord();
  break;
case '4':
  staff();
  break;
   }
   break;

case '2':
 clrscr();
 permenentstaff();
   p=getche();
       switch(p)
{
  case '1':
  addprecord();
  break;


case '2':
  modifyprecord();
  break;
case '3':
  retrieveprecord();
  break;
case '4':
  staff();
  break;
}
        break;

case '3':
clrscr();
apprenticesstaff();
a=getche();
switch(a)
{
case '1':
    addarecord();
  break;
case '2':
modifyarecord();
break;
case '3':
retrievearecord();
  break;
case '4':
    staff();
  break;
}
break;

case '4':
  mainmenu();
  break;
}
return;
}





mparecord()

{
char yes,c,c0,c1,m,p,a,c2,c4,c41,rm,rp,ra;
char ma,pa,aa;
clrscr();
printline();
printf("\n\t\t\t\tPAYROLL DATA BASE OPERATIONS ");
printline();
printf("\n\n\n\n\n\t\t\t\t 1...MANAGEMENT STAFF ");
printf("\n\n\t\t\t\t 2...PERMENENT STAFF ");
printf("\n\n\t\t\t\t 3...APPRENTICES STAFF ");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\n\n\t\t\t\t YOUR CHOICE");
fflush(stdin);
ma=getche();
if(ma=='1')
{
mrecord();
c41=getche();
switch(c41)
{
case '1':
  maddrecord();
  break;
case '2':
  mmodifyrecord();
  break;
case '3':
  mdeleterecord();
  break;
case '4':
  mretrieverecord();
  break;
case '5':
  mparecord();
  break;
}
}




else if(ma=='2')
{
precord();
pa=getche();
switch(pa)
{
case '1':
 paddrecord();
 break;
case '2':
 pmodifyrecord();
 break;
case '3':
 pdeleterecord();
   break;
case '4':
 pretrieverecord();
 break;
case '5':
 mparecord();
 break;
}
}
else if(ma=='3')
{
arecord();
a=getche();
switch(aa)
{
case '1':
aaddrecord();
  break;
case '2':
amodifyrecord();
break;
case '3':
    adeleterecord();
    break;
case '4':
    aretrieverecord();
    break;


case '5':
    mparecord();
  break;
}
}
else if(ma=='4')
{
mainmenu();
}
return;
}

rstaff()
{
char rm,c1,rp,ra;
clrscr();
printline();
printf("\n\t\t\t\tPAYROLL DATA BASE OPERATIONS                   ");
printline();
printf("\n\n\n\n\n\t\t\t\t 1...MANAGEMENT STAFF ");
printf("\n\n\t\t\t\t 2...PERMENENT STAFF ");
printf("\n\n\t\t\t\t 3...APPRENTICES STAFF ");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\n\n\t\t\t\t YOUR CHOICE");

rm=getche();
if(rm=='1')
{
mreportsmenu();
c1=getche();

if(c1=='1')
{
mlabels();
}
else if(c1=='2')
{
mpayrollledger();
}
else if(c1=='3')
{
mpfdeduction();
}
else if(c1=='4')
{
mlicdeduction();
}
else if(c1=='5')
{
rstaff();
}
}
else if(rm=='2')
{
preportsmenu();

rp=getche();

if(rp=='1')
{
plabels();
}
else if(rp=='2')
{
ppayrollledger();
}
else if(rp=='3')
{
ppfdeduction();
}
else if(rp=='4')
{
plicdeduction();
}
else if(rp=='5')
{
rstaff();
}
}
else if(rm=='3')
{
areportsmenu();
ra=getche();
if(ra=='1')
{
alabels();
}
else if(ra=='2')
{
apayrollledger();
}
else if(ra=='3')
{
rstaff();
}
}
else if(rm=='4')
{
mainmenu();
}
return;
}

mainmenu()
{
char yes,c,c0,c1,m,p,a,c2,c4,c41,rm,rp,ra;
char ma,pa,aa,t;
static int i;
clrscr();
printline();
printf("\n\n\n\t\t\t\tPAYROLL PROJECT");
printline();
printf("\n\n\n\n\n\t\t\t\t 1...DATABASE OPERATIONS ");
printf("\n\n\t\t\t\t 2...REPORTS           ");
printf("\n\n\t\t\t\t 3...EXIT             ");
printf("\n\n\n\n\n\n\n\t\t\t\t YOUR CHOICE       ");

fflush(stdin);
yes=getche();

if(yes=='1'||yes=='2'||yes=='3')
{
while(i==0)
{
switch(yes)
{
case '1':
clrscr();
database();
c=getche();
if(c=='1')
{
mparecord();
ma=getche();
switch(ma)
{
case '1':
mrecord();
c41=getche();
switch(c41)
{
case '1':
 maddrecord();
 break;
case '2':
 mmodifyrecord();
 break;
case '3':
 mdeleterecord();
 break;
case '4':
 mretrieverecord();
 break;
case '5':
 continue;
//break;
}
break;
case '2':
 precord();
 switch(c41)
 {
case '1':
 paddrecord();
 break;
case '2':
 pmodifyrecord();
 break;
case '3':
 pdeleterecord();
 break;
case '4':
 pretrieverecord();
 break;
case '5':
 continue;
 // break;
 }
 break;

case '3':
 arecord();
 c41=getche();
 switch(c41)
 {
case '1':
 aaddrecord();
 break;
case '2':
 amodifyrecord();
 break;
case '3':
 adeleterecord();
 break;
case '4':
 aretrieverecord();
 break;
case '5':
 continue;
 //break;
 }
 break;
case '4':
 continue;
 //break;
}
}
else if(c=='2')
{
staff();
c2=getche();
switch(c2)
{
case '1':
 clrscr();
 managementstaff();
 m=getche();
 switch(m)
 {
case '1':
 addmrecord();
 break;
case '2':
 modifymrecord();
 break;
case '3':
 retrievemrecord();
 break;
case '4':
 staff();
 break;
 }
 break;

case '2':
 clrscr();
 permenentstaff();
 p=getche();
 switch(p)
 {
case '1':
 addprecord();
 break;
case '2':
 modifyprecord();
 break;
case '3':
 retrieveprecord();
 break;
case '4':
 staff();
 break;
 }
 break;
case '3':
 clrscr();
 apprenticesstaff();
 a=getche();
 switch(a)
 {
case '1':
 addarecord();
 break;
case '2':
 modifyarecord();
 break;
case '3':
 retrievearecord();
 break;
case '4':
 staff();
 break;
 }
 break;

case '4':
 mainmenu();
 break;
}
break;
}
else if(c=='3')
{
mainmenu();
break;
}
break;
case '2':
 switch(yes)
 {
case '2':
 clrscr();
 rstaff();
 rm=getche();
 if(rm=='1')
 {
mreportsmenu();
c1=getche();
if(c1=='1')
{
mlabels();
}
else if(c1=='2')
{
mpayrollledger();
}
else if(c1=='3')
{
mpfdeduction();
}
else if(c1=='4')
{
mlicdeduction();
}
else if(c1=='5')
{
rstaff();
}
}
else if(rm=='2')
{
preportsmenu();
rp=getche();
if(rp=='1')
{
plabels();
}
else if(rp=='2')
{
ppayrollledger();
}
else if(rp=='3')
{
ppfdeduction();
}
else if(rp=='4')
{
plicdeduction();
}
else if(rp=='5')
{
rstaff();
}
}
else if(rm=='3')
{
areportsmenu();
ra=getche();
if(ra=='1')
{
alabels();
}
else if(ra=='2')
{
apayrollledger();
}
else if(ra=='3')
{
rstaff();
}
 }
 else if(rm=='4')
 {
mainmenu();
 }
 break;
 }
 break;
case '3':
 exit(1);
 break;
}
}
}
i=1;
return;
}

mrecord()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tMASTER DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...DELETE RECORD ");
printf("\n\n\t\t\t\t 4...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 5...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");
c=getche();
if(c=='1')
{
maddrecord();
}
else if(c=='2')
{
mmodifyrecord();
}
if(c=='3')
{
mdeleterecord();
}
else if(c=='4')
{
mretrieverecord();
}
else if(c=='5')
{
mparecord();
}
return;
}


precord()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tMASTER DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...DELETE RECORD ");
printf("\n\n\t\t\t\t 4...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 5...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");
c=getche();
if(c=='1')
{
paddrecord();
}
else if(c=='2')
{
pmodifyrecord();
}
if(c=='3')
{
pdeleterecord();
}
else if(c=='4')
{
pretrieverecord();
}
else if(c=='5')
{
mparecord();
}
return;
}


arecord()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tMASTER DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...DELETE RECORD ");
printf("\n\n\t\t\t\t 4...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 5...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");
c=getche();
if(c=='1')
{
aaddrecord();
}
else if(c=='2')
{
amodifyrecord();
}
if(c=='3')
{
adeleterecord();
}
else if(c=='4')
{
aretrieverecord();
}
else if(c=='5')
{
mparecord();
}
return;
}


permenentstaff()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tPERMENENT STAFF DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");

c=getche();
if(c=='1')
{
addprecord();
}
else if(c=='2')
{
modifyprecord();
}
else if(c=='3')
{
retrieveprecord();
}
else if(c=='4')
{
staff();
}
return;
}


managementstaff()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tMANAGEMENT STAFF DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");

c=getche();
if(c=='1')
{
addmrecord();
}
else if(c=='2')
{
modifymrecord();
}
else if(c=='3')
{
retrievemrecord();
}
else if(c=='4')
{
staff();
}
return;
}


apprenticesstaff()
{
char c;
clrscr();
printline();
printf("\n\t\t\t\tAPPRENTICES STAFF DATA ENTRY");
printline();
printf("\n\n\t\t\t\t 1...ADD RECORD ");
printf("\n\n\t\t\t\t 2...MODIFY RECORD");
printf("\n\n\t\t\t\t 3...RETRIEVE RECORD");
printf("\n\n\t\t\t\t 4...RETURN TO MAIN MENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE");

c=getche();
if(c=='1')
{
addarecord();
}
else if(c=='2')
{
modifyarecord();
}
else if(c=='3')
{
retrievearecord();
}
else if(c=='4')
{
staff();
}
return;
}


database()
{
clrscr();
printline();
printf("\n\t\t\t\tPAYROLL DATA BASE OPERATIONS ");
printline();
printf("\n\n\n\n\n\t\t\t\t 1...MASTER FILE DATA ENTRY ");
printf("\n\n\t\t\t\t 2...TRANSACTION DATA ENTRY ");
printf("\n\n\t\t\t\t 3...RETURN TO MAIN MENU ");
printf("\n\n\n\n\n\n\t\t\t\t YOUR CHOICE ");
return;
}

maddrecord()
{
struct add a;
FILE *ad,*pd;
char flag;
ad=fopen("mpay.dat","ab+");
pd=fopen("pay.dat","ab+");

clrscr();
printline();
printf("\nTHE EMPLOYEE NUMBER\t\t\t:");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME\t\t:");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t\t:");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS\t\t:");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY\t\t: ");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE\t\t:");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT\t\t:");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE\t\t:");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH\t:");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY\t\t:");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION\t\t:");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT YEAR\t\t\t:");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR\t\t\t:");
fflush(stdin);
scanf("%d",&a.year);
printline();

fwrite(&a,sizeof(a),1,ad);
fwrite(&a,sizeof(a),1,pd);

fflush(stdin);
puts("\n\n\n\t\t RECORDS  ARE SUCCESSFULLY ADDED");
getche();

fclose(ad);
fclose(pd);
mparecord();
return;
}


paddrecord()
{
struct add a;
FILE *ad,*pd;
char flag;
ad=fopen("ppay.dat","ab+");
pd=fopen("pay.dat","ab+");

clrscr();
printline();
printf("\n  THE EMPLOYEE NUMBER   : ");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME   : ");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t      : ");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS      : ");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY         : ");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE     : ");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT   : ");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE    : ");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH: ");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY     : ");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION  : ");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT YEAR   : ");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR   :");
fflush(stdin);
scanf("%d",&a.year);
printline();

fwrite(&a,sizeof(a),1,ad);
fwrite(&a,sizeof(a),1,pd);
fflush(stdin);

puts("\n\n\n\t\t RECORDS  ARE SUCCESSFULLY ADDED           :");
getche();

fclose(ad);
fclose(pd);
mparecord();
return;
}
aaddrecord()
{
struct add a;
FILE *ad,*pd;
char flag;
ad=fopen("apay.dat","ab+");
pd=fopen("pay.dat","ab+");
clrscr();

printline();
printf("\n  THE EMPLOYEE NUMBER   : ");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME   : ");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t      : ");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS      : ");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY         : ");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE     : ");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT   : ");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE    : ");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH: ");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY     : ");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION  : ");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT YEAR   : ");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR   : ");
fflush(stdin);
scanf("%d",&a.year);
printline();

fwrite(&a,sizeof(a),1,ad);
fwrite(&a,sizeof(a),1,pd);
fflush(stdin);

puts("\n\n\n\t\t RECORDS  ARE SUCCESSFULLY ADDED");
getche();

fclose(ad);
fclose(pd);
mparecord();
return;
}


mmodifyrecord()
{
FILE *ad;
char flag;
long int no;
struct add a;
ad=fopen("mpay.dat","rb+");

clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n NUMBER               :%ld",a.empno);
printf("\n NAME :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS       :%s",a.address);
printf("\n CITY         :%s",a.city);
printf("\n PIN CODE     :%ld",a.pin);
printf("\n DEPARTMENT   :%s",a.department);
printf("\n JOIN DATE     :%s",a.joindate);
printf("\n DATE OF BIRTH :%s",a.dob);
printf("\n CATEGORY     :%s",a.category);
printf("\n DESIGNATION   :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
getch();

fflush(stdin);
printf("\n  THE EMPLOYEE NUMBER           : ");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME   : ");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t      : ");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS      : ");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY         : ");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE     : ");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT   : ");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE    : ");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH: ");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY     : ");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION  : ");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT MONTH LEAVE   : ");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT MONTH LEAVE   : ");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR   : ");
fflush(stdin);
scanf("%d",&a.year);

fflush(stdin);
fseek(ad,-214L,1);
fwrite(&a,sizeof(a),1,ad);
puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY ");
getch();
fclose(ad);
mparecord();
return;
}
}
printf("\n\n\n\n\n\n\n\n\t\t\t\t INVALID EMPLOYEE NUMBER" );
fflush(stdin);
getche();
mparecord();
printline();
return;
}


pmodifyrecord()
{
FILE *ad;
char flag;
long int no;
struct add a;
ad=fopen("ppay.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER: ");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n NUMBER        :%ld",a.empno);
printf("\n NAME        :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
getch();
fflush(stdin);
printline();
printf("\n  THE EMPLOYEE NUMBER   : ");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME   : ");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t      : ");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS      : ");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY         : ");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE     : ");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT   : ");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE    : ");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH: ");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY     :");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION  :");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT MONTH LEAVE   :");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR   :");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR   :");
fflush(stdin);
scanf("%d",&a.year);

fflush(stdin);
fseek(ad,-214L,1);
fwrite(&a,sizeof(a),1,ad);
puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY" );
getch();
fclose(ad);
mparecord();
return;
}
}
printline();
printf("\n\n\n\n\n\n\n\n\t\t\t\t INVALID EMPLOYEE NUMBER" );
fflush(stdin);
getche();
mparecord();
printline();
return;
}


amodifyrecord()
{
FILE *ad;
char flag;
long int no;
struct add a;
ad=fopen("apay.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n NUMBER        :%ld",a.empno);
printf("\n NAME        :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
getch();

fflush(stdin);
printline();

printf("\n  THE EMPLOYEE NUMBER            :");
fflush(stdin);
scanf("%ld",&a.empno);
printf("\n ENTER THE EMPLOYEE NAME    :");
fflush(stdin);
gets(a.empname);
printf("\n ENTER THE EMPLOYEE SEX\t\t       :");
fflush(stdin);
gets(a.sex);
printf("\n ENTER THE EMPLOYEE ADDRESS       :");
fflush(stdin);
gets(a.address);
printf("\n ENTER THE EMPLOYEE CITY          :");
fflush(stdin);
gets(a.city);
printf("\n ENTER THE EMPLOYEE PIN CODE      :");
fflush(stdin);
scanf("%ld",&a.pin);
printf("\n ENTER THE EMPLOYEE DEPARTMENT    :");
fflush(stdin);
gets(a.department);
printf("\n ENTER THE EMPLOYEE JOIN DATE     :");
fflush(stdin);
gets(a.joindate);
printf("\n ENTER THE EMPLOYEE DATE OF BIRTH : ");
fflush(stdin);
gets(a.dob);
printf("\n ENTER THE EMPLOYEE CATEGORY      :");
fflush(stdin);
gets(a.category);
printf("\n ENTER THE EMPLOYEE DESIGNATION   :");
fflush(stdin);
gets(a.designation);
printf("\n ENTER THE CURRENT MONTH LEAVE    :");
fflush(stdin);
scanf("%d",&a.l);
printf("\n ENTER THE CURRENT YEAR    :");
fflush(stdin);
scanf("%d",&a.year);

fflush(stdin);
fseek(ad,-214L,1);
fwrite(&a,sizeof(a),1,ad);

puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY" );
getch();

fclose(ad);
mparecord();
return;
}
}
printline();
printf("\n\n\n\n\n\n\n\n\t\t\t\t INVALID EMPLOYEE NUMBER" );
fflush(stdin);
getche();
mparecord();
printline();
return;
}


mretrieverecord()
{
FILE *ad;
char flag;
struct add a;
ad=fopen("mpay.dat","rb+");
while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n MONTH LEAVE   :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();
}
fclose(ad);
mparecord();
return;
}


pretrieverecord()
{
FILE *ad;
char flag;
struct add a;
ad=fopen("ppay.dat","rb+");
while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n MONTH LEAVE   :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();
}
fclose(ad);
mparecord();
return;
}


aretrieverecord()
{
FILE *ad;
char flag;
struct add a;
ad=fopen("apay.dat","rb+");
while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n MONTH LEAVE   :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();
}
fclose(ad);
mparecord();
return;
}


mdeleterecord()
{
FILE *ad,*temp;
char flag;
long int no;
struct add a;
temp=fopen("temp.dat","wb+");
ad=fopen("mpay.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER: ");
scanf("%ld",&no);

while((fread(&a,sizeof(a),1,ad)!=NULL))
{
if(a.empno==no)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();

printf("\n CONFIRM TO DELETE THIS RECORD  [Y/N]: ");
fflush(stdin);

flag=getche();
if(toupper(flag)!='Y')
{
fwrite(&a,sizeof(a),1,temp);
continue;
}
}
else
{
fwrite(&a,sizeof(a),1,temp);
}
}
remove("mpay.dat");
rename("temp.dat","mpay.dat");
remove("temp.dat");
fclose(ad);
fclose(temp);
mparecord();
return;
}


pdeleterecord()
{
FILE *ad,*temp;
char flag;
long int no;
struct add a;
temp=fopen("temp.dat","wb+");
ad=fopen("ppay.dat","rb+");

clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);
while((fread(&a,sizeof(a),1,ad)!=NULL))
{
if(a.empno==no)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();

printf("\n CONFIRM TO DELETE THIS RECORD  [Y/N]: ");
fflush(stdin);

flag=getche();
if(toupper(flag)!='Y')
{
fwrite(&a,sizeof(a),1,temp);
continue;
}
}
else
{
fwrite(&a,sizeof(a),1,temp);
}
}
remove("ppay.dat");
rename("temp.dat","ppay.dat");
remove("temp.dat");
fclose(ad);
fclose(temp);
mparecord();
return;
}


adeleterecord()
{
FILE *ad,*temp;
char flag;
long int no;
struct add a;
temp=fopen("temp.dat","wb+");
ad=fopen("apay.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);

while((fread(&a,sizeof(a),1,ad)!=NULL))
{
if(a.empno==no)
{
clrscr();
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n DATE OF BIRTH        :%s",a.dob);
printf("\n CATEGORY             :%s",a.category);
printf("\n DESIGNATION          :%s",a.designation);
printf("\n CURRENT MONTH LEAVE  :%d",a.l);
printf("\n CURRENT YEAR        :%d",a.year);
printline();
getch();

printf("\n CONFIRM TO DELETE THIS RECORD  [Y/N]  :");
fflush(stdin);

flag=getche();
if(toupper(flag)!='Y')
{
fwrite(&a,sizeof(a),1,temp);
continue;
}
}
else
{
fwrite(&a,sizeof(a),1,temp);
}
}
remove("apay.dat");
rename("temp.dat","apay.dat");
remove("temp.dat");
fclose(ad);
fclose(temp);
mparecord();
return;
}

//-----------------MANAGEMENT STAFF REPORTS----------------------------
mreportsmenu()
{
char c;
clrscr();
printline();
printf("\n\n\n\t\t\t\t MANGEMENT STAFF REPORTS MENU ");
printline();
printf("\n\n\t\t\t\t 1...PAY SLIP");
printf("\n\n\t\t\t\t 2...PAY ROLL LEDGER");
printf("\n\n\t\t\t\t 3...PF DEDUCTION LIST");
printf("\n\n\t\t\t\t 4...LIC DEDUCTION LIST");
printf("\n\n\t\t\t\t 5...RETURN TO MAINMENU");
printf("\n\n\n\n\t\t\t\t YOUR CHOICE :");
fflush(stdin);
c=getche();
if(c=='1')
{
mlabels();
}
else if(c=='2')
{
mpayrollledger();
}
else if(c=='3')
{
mpfdeduction();
}
else if(c=='4')
{
mlicdeduction();
}
else if(c=='5')
{
rstaff();
}
return;
}
//PAY_SLIP:
mlabels()
{
FILE *ad;
struct add a;
ad=fopen("mpay.dat","rb+");
while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n NUMBER :%ld",a.empno);
printf("\n NAME\t :%s",a.empname);
printf("\n SEX\t\t      :%s",a.sex);
printf("\n ADDRESS      :%s",a.address);
printf("\n CITY         :%s",a.city);
printf("\n PIN CODE     :%ld",a.pin);
printf("\n DEPARTMENT :%ld",a.department);
printline();
getch();
}
fclose(ad);
rstaff();
getch();
return;
}


//PAYROLL LEDGER
mpayrollledger()
{
float dud1,dud2,hhra,td1,bp,dda,sal,npay;
long int no;
int leave;
FILE *ad,*md;
struct add a;
struct managementstaff m;
ad=fopen("mpay.dat","rb+");
md=fopen("management.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER: ");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n SEX\t\t         :%s",a.sex);
printf("\n ADDRESS         :%s",a.address);
printf("\n CITY            :%s",a.city);
printf("\n PIN CODE        :%ld",a.pin);
printf("\n DEPARTMENT      :%s",a.department);
printf("\n MONTH LEAVE     :%d",a.l);
leave=a.l;
printline();
fflush(stdin);
getche();

fread(&m,sizeof(m),1,md);
printline();
bp=m.basicpay;
printf("\n BASIC PAY :%.2f",m.basicpay);

dda=m.da;
printf("\n DA     :%.2f",m.da);

hhra=m.hra;
printf("\n HRA       :%.2f",m.hra);

dud1=m.pf;
printf("\n PF        :%.2f",m.pf);

leave=a.l;
printf("\n LEAVE     :%d",leave);

dud2=m.lic;
printf("\n LIC       :%.2f",m.lic);

td1=(float)dud1+dud2;
sal=(float)bp+dda+hhra;
npay=(float)sal-td1;

printf("\n\n TOTAL SALARY :%.2f",sal);
printf("\n\n TOTAL DUDUCTION     :%.2f",td1);
printf("\n TOTAL DUT FOR LEAVE   :%d",mleave(leave));
printf("\n\n NET_PAY         :%.2f",npay-(float)mleave(leave));
printline();
fflush(stdin);
getche();
}
}
fclose(ad);
fclose(md);
fflush(stdin);
getche();
mreportsmenu();
getch();
return;
}
// P_F DEDUCTION REPORT:
mpfdeduction()
{
FILE *ad;
FILE *md;
char flag;
struct add a;
struct managementstaff m;
float h;
float sal,sub1,sub2,sub3,sup1,sup2;
long int no;
ad=fopen("pay.dat","rb+");
md=fopen("management.dat","rb+");
clrscr();
printf("\n ENTER EMPLOYEE NO :");
scanf("%ld",&no);

while(fread(&a,sizeof(a),1,ad)!=NULL)
{
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER      :%ld",a.empno);
printf("\n NAME         :%s",a.empname);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n CATEGORY             :%s",a.category);
fread(&m,sizeof(m),1,md);

printf("\n\n\n PF (DEDUCTION)   :%.2f",m.pf);
fflush(stdin);

getche();
fclose(ad);
fclose(md);
rstaff();
return;
}
}
fclose(ad);
fclose(md);
mreportsmenu();
getch();
return;
}

//LIC DEDUCTION REPORT:

mlicdeduction()
{
FILE *ad;
FILE *md;
char flag;
struct add a;
struct managementstaff m;
float h;
float sal,sub1,sub2,sub3,sup1,sup2;
long int no;
ad=fopen("pay.dat","rb+");
md=fopen("management.dat","rb+");
clrscr();
printf("\n ENTER EMPLOYEE NO: ");
scanf("%ld",&no);

while(fread(&a,sizeof(a),1,ad)!=NULL)
{
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n CATEGORY             :%s",a.category);
fread(&m,sizeof(m),1,md);

printf("\n\n\n LIC DEDUCTION        :%.2f",m.lic);

fflush(stdin);
getche();
rstaff();
return;
}
}
printline();
printf("\n\n\n\t\t\t\t INVALID EMPLOYEE NUMBER ");
fflush(stdin);
getche();
mreportsmenu();
printline();
fclose(ad);
fclose(md);
return;
}


//------------------ PERMENENT STAFF REPORTS MENU --------------------
preportsmenu()
{
char c;
clrscr();
printline();
printf("\n\n\n\t\t\t\t PERMENENT STAFF REPORTS MENU                   ");
printline();
printf("\n\n\t\t\t\t 1...PAY SLIP              ");
printf("\n\n\t\t\t\t 2...PAY ROLL LEDGER         ");
printf("\n\n\t\t\t\t 3...HOUSE RENT DEDUCTION  LIST         ");
printf("\n\n\t\t\t\t 4...PF DEDUCTION LIST       ");
printf("\n\n\t\t\t\t 5...LIC DEDUCTION LIST       ");
printf("\n\n\t\t\t\t 6...RETURN TO MAINMENU          ");
printf("\n\n\n\n\n\n\n\t\t\t\t YOUR CHOICE ?         ");
fflush(stdin);
c=getche();
if(c=='1')
{
plabels();
}
else if(c=='2')
{
ppayrollledger();
}
if(c=='3')
{
phouserentdeduction();
}
else if(c=='4')
{
ppfdeduction();
}
else if(c=='5')
{
plicdeduction();
}
else if(c=='6')
{
rstaff();
}
return;
}


plabels()
{
FILE *ad;
struct add a;
ad=fopen("ppay.dat","rb+");
while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n NUMBER :%ld",a.empno);
printf("\n NAME\t :%s",a.empname);
printf("\n SEX\t\t      :%s",a.sex);
printf("\n ADDRESS      :%s",a.address);
printf("\n CITY         :%s",a.city);
printf("\n PIN CODE     :%ld",a.pin);
printf("\n DEPARTMENT :%ld",a.department);
printline();
getch();
}
fclose(ad);
rstaff();
getch();
return;
}

ppayrollledger()
{
int leave;
float dud1,dud2,dud3,td,bp,dda,sal,npay;
long int no;
FILE *ad,*pd;
struct add a;
struct permenentstaff p;
ad=fopen("ppay.dat","rb+");
pd=fopen("per.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER  :%ld",a.empno);
printf("\n NAME            :%s",a.empname);
printf("\n SEX\t\t      :%s",a.sex);
printf("\n ADDRESS          :%s",a.address);
printf("\n CITY             :%s",a.city);
printf("\n PIN CODE         :%ld",a.pin);
printf("\n DEPARTMENT       :%s",a.department);
leave=a.l;
printline();
fflush(stdin);
getche();
fread(&p,sizeof(p),1,pd);

printline();
bp=p.basicpay;
printf("\n BASIC PAY  :%.2f",p.basicpay);
dda=p.da;
printf("\n DA      :%.2f",p.da);
dud1=p.hrd;
printf("\n HRD        :%.2f",p.hrd);
dud2=p.pf;
printf("\n PF         :%.2f",p.pf);

printf("\n LEAVE      :%d",leave);
dud3=p.lic;
printf("\n LIC        :%.2f",p.lic);

td=(float)dud1+dud2+dud3;
sal=(float)bp+dda;
npay=(float)sal-td;

printf("\n\n TOTAL SALARY            :%.2f",sal);
printf("\n\n TOTAL DUDUCTION/t/t            :%.2f",td);
printf("\n TOTAL DEDUCTION FOR LEAVE        :%d",pleave(leave));
printf("\n\n NET_PAY/t/t            :%.2f",npay-(float)pleave(leave));
printline();
fflush(stdin);
getche();
}
}
fclose(ad);
fclose(pd);
fflush(stdin);
getche();
preportsmenu();
getch();
return;
}


phouserentdeduction()
{
FILE *ad;
FILE *md;
char flag;
struct add a;
struct permenentstaff m;
float h;
float sal,sub1,sub2,sub3,sup1,sup2;
long int no;
ad=fopen("pay.dat","rb+");
md=fopen("per.dat","rb+");
clrscr();
printf("\n ENTER EMPLOYEE NO :");
scanf("%ld",&no);

while(fread(&a,sizeof(a),1,ad)!=NULL)
{
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME     :%s",a.empname);
printf("\n DEPARTMENT      :%s",a.department);
printf("\n JOIN DATE       :%s",a.joindate);
printf("\n CATEGORY        :%s",a.category);
fread(&m,sizeof(m),1,md);
printf("\n\n HRD (DEDUCTION) :%.2f",m.hrd);
fflush(stdin);
getche();
rstaff();
return;
}
}
fclose(ad);
fclose(md);
preportsmenu();
getch();
return;
}


plicdeduction()
{
FILE *ad;
FILE *md;
char flag;
struct add a;
struct permenentstaff m;
float h;
float sal,sub1,sub2,sub3,sup1,sup2;
long int no;
ad=fopen("pay.dat","rb+");
md=fopen("per.dat","rb+");
clrscr();
printf("\n ENTER EMPLOYEE NO :");
scanf("%ld",&no);

while(fread(&a,sizeof(a),1,ad)!=NULL)
{
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER      :%ld",a.empno);
printf("\n NAME        :%s",a.empname);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n CATEGORY             :%s",a.category);
fread(&m,sizeof(m),1,md);

printf("\n\n LIC DEDUCTION        :%.2f",m.lic);

fflush(stdin);
getche();
rstaff();
return;
}
}
printf("\n\n\n\t\t\t\t INVALID EMPLOYEE NUMBER ");
fflush(stdin);
getche();
preportsmenu();
printline();
fclose(ad);
fclose(md);
return;
}
//PERMENENT STAFF P_F
ppfdeduction()
{
FILE *ad;
FILE *md;
char flag;
struct add a;
struct permenentstaff m;
float h;
float sal,sub1,sub2,sub3,sup1,sup2;
long int no;
ad=fopen("pay.dat","rb+");
md=fopen("per.dat","rb+");
clrscr();
printf("\n ENTER EMPLOYEE NO: ");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME           :%s",a.empname);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n JOIN DATE            :%s",a.joindate);
printf("\n CATEGORY             :%s",a.category);

fread(&m,sizeof(m),1,md);
printf("\n\n PF (DEDUCTION)       :%.2f",m.pf);
fflush(stdin);
getche();
fclose(ad);
fclose(md);
rstaff();
return;
}
}
fclose(ad);
fclose(md);
preportsmenu();
getch();
return;
}
//-------------------------- APPRENTICES STAFF REPORTS MENU ------------------------

areportsmenu()
{
char c;
clrscr();
printline();
printf("\n\n\n\t\t\t\t APPRENTICES STAFF REPORTS MENU                   ");
printline();
printf("\n\n\t\t\t\t 1...PAY SLIP              ");
printf("\n\n\t\t\t\t 2...PAY ROLL LEDGER         ");
printf("\n\n\t\t\t\t 3...RETURN TO MAINMENU          ");
printf("\n\n\n\n\n\n\n\t\t\t\t YOUR CHOICE ?         ");
fflush(stdin);
c=getche();
if(c=='1')
{
alabels();
}
else if(c=='2')
{
apayrollledger();
}
else if(c=='3')
{
rstaff();
}
return;
}

/*------------------------------------PAYSLIP--------------------------------*/
alabels()
{
FILE *ad;
struct add a;

ad=fopen("apay.dat","rb+");

while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n NUMBER :%ld",a.empno);
printf("\n NAME\t :%s",a.empname);
printf("\n SEX\t\t      :%s",a.sex);
printf("\n ADDRESS      :%s",a.address);
printf("\n CITY         :%s",a.city);
printf("\n PIN CODE     :%ld",a.pin);
printf("\n DEPARTMENT :%ld",a.department);
printline();
getch();
}
fclose(ad);
rstaff();
getch();
return;
}

apayrollledger()
{
FILE *ad,*apd;
struct add a;
struct apprentices ap;
long int no;
int leave;
ad=fopen("apay.dat","rb+");
apd=fopen("app.dat","rb+");
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t ENTER EMPLOYEE NUMBER   :");
scanf("%ld",&no);
while(fread(&a,sizeof(a),1,ad)!=NULL)
{
clrscr();
if(a.empno==no)
{
printline();
printf("\n EMPLOYEE NUMBER :%ld",a.empno);
printf("\n NAME                :%s",a.empname);
printf("\n SEX\t\t       :%s",a.sex);
printf("\n ADDRESS              :%s",a.address);
printf("\n CITY                 :%s",a.city);
printf("\n PIN CODE             :%ld",a.pin);
printf("\n DEPARTMENT           :%s",a.department);
printf("\n CURRENT MONTH LEAVE :%d",a.l);
leave=a.l;
fflush(stdin);
getche();
printline();
fread(&ap,sizeof(ap),1,apd);
printline();
printf("\n\n BASIC PAY            :%.2f",ap.basicpay);
printf("\n\n DEDUCTION FOR LEAVE  :%d",aleave(leave));
printf("\n\n NET_PAY  :%.2f",ap.basicpay-(float)aleave(leave));
printline();
fflush(stdin);
getche();
}
}
fclose(ad);
fclose(apd);
fflush(stdin);
getche();
areportsmenu();
fflush(stdin);
getche();
return;
}


/* ----------------------TRANSACTION REPORT---------------------*/
/* ----------------MANAGEMENT STAFF (TRANSACTION)--------------*/
// ADD RECORD
addmrecord()
{
struct managementstaff a;
FILE *ad;
char flag;
clrscr();
ad=fopen("management.dat","w");
clrscr();

printline();
printf("\n ENTER THE BASIC PAY :");
fflush(stdin);
scanf("%f",&a.basicpay);
printf("\n ENTER THE DA        :");
fflush(stdin);
scanf("%f",&a.da);
printf("\n ENTER THE HRA        :");
fflush(stdin);
scanf("%f",&a.hra);
printf("\n ENTER THE PF         :");
fflush(stdin);
scanf("%f",&a.pf);
printf("\n ENTER THE LIC        :");
fflush(stdin);
scanf("%f",&a.lic);
printline();
fwrite(&a,sizeof(a),1,ad);
fflush(stdin);
puts("\n\n\n\t\t RECORDS  ARE SUCCESSFULLY ADDED" );
getche();
fclose(ad);
managementstaff();
return;
}


// MODIFY RECORD
modifymrecord()
{
FILE *ad;
long int no;
struct managementstaff a;
ad=fopen("management.dat","rb+");

clrscr();
printline();
printf("\n ENTER THE DA         :%.2f",a.da);
printf("\n ENTER THE HRA         :%.2f",a.hra);
printf("\n ENTER THE PF          :%.2f",a.pf);
printf("\n ENTER THE BASIC PAY   :%.2f",a.basicpay);
printf("\n ENTER THE LIC         :%.2f",a.lic);
getch();
printline();

printline();
printf("\n ENTER THE BASIC PAY:");
fflush(stdin);
scanf("%ld",&a.basicpay);
printf("\n ENTER THE DA:");
fflush(stdin);
scanf("%f",&a.da);
printf("\n ENTER THE HRA:");
fflush(stdin);
scanf("%f",&a.hra);
printf("\n ENTER THE PF:");
fflush(stdin);
scanf("%f",&a.pf);
printf("\n ENTER THE LIC:");
fflush(stdin);
scanf("%f",&a.lic);

fflush(stdin);
fseek(ad,-20L,1);
fwrite(&a,sizeof(a),1,ad);
puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY");
getch();
fclose(ad);

fflush(stdin);
getche();
managementstaff();
printline();
return;
}

// VIEW RECORD
retrievemrecord()
{
FILE *ad;
char flag;
struct managementstaff a;
ad=fopen("management.dat","rb+");
clrscr();

while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n ENTER THE DA        :%.2f",a.da);
printf("\n ENTER THE HRA        :%.2f",a.hra);
printf("\n ENTER THE PF         :%.2f",a.pf);
printf("\n ENTER THE BASIC PAY  :%.2f",a.basicpay);
printf("\n ENTER THE LIC        :%.2f",a.lic);
getch();
printline();
getch();
}
fclose(ad);
managementstaff();
return;
}


//--------------------------PERMANENT STAFF (TRANSACTION)----------------
// ADD RECORD
addprecord()
{
struct permenentstaff a;
FILE *ad;
char flag;
clrscr();
ad=fopen("per.dat","w");
clrscr();
printline();
printf("\n BASIC PAY       :");
fflush(stdin);
scanf("%f",&a.basicpay);
printf("\n ENTER THE DA   :");
fflush(stdin);
scanf("%f",&a.da);
printf("\n ENTER THE HRD   :");
fflush(stdin);
scanf("%f",&a.hrd);
printf("\n ENTER THE PF    :");
fflush(stdin);
scanf("%f",&a.pf);
printf("\n ENTER THE LIC   :");
fflush(stdin);
scanf("%f",&a.lic);
fwrite(&a,sizeof(a),1,ad);
fflush(stdin);
puts("\n\n\n\t\t RECORDS ARE SUCCESSFULLY ADDED" );
getche();
fclose(ad);
permenentstaff();
return;
}

// MODIFY RECORD
modifyprecord()
{
FILE *ad;
struct permenentstaff a;
ad=fopen("per.dat","rb+");

clrscr();
printline();
printf("\n BASIC PAY     :%.2f",a.basicpay);
printf("\n DA   :%.2f",a.da);
printf("\n HRD :%.2f",a.hrd);
printf("\n PF   :%.2f",a.pf);
printf("\n LIC :%.2f",a.lic);
printline();

fflush(stdin);
getche();
printline();
printf("\n BASIC PAY    :");
fflush(stdin);
scanf("%f",&a.basicpay);
printf("\n ENTER THE DA :");
fflush(stdin);
scanf("%f",&a.da);
printf("\n ENTER THE HRD:");
fflush(stdin);
scanf("%f",&a.hrd);
printf("\n ENTER THE PF :");
fflush(stdin);
scanf("%f",&a.pf);
printf("\n ENTER THE LIC:");
fflush(stdin);
scanf("%f",&a.lic);
fflush(stdin);
fseek(ad,-20L,1);
fwrite(&a,sizeof(a),1,ad);
puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY" );
fflush(stdin);
getche();
fclose(ad);
permenentstaff();
return;
}

// VIEW RECORD
retrieveprecord()
{
FILE *ad;
char flag;
struct permenentstaff a;
ad=fopen("per.dat","rb+");
clrscr();

while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printline();
printf("\n BASIC PAY       :%.2f",a.basicpay);
printf("\n ENTER THE DA   :%.2f",a.da);
printf("\n ENTER THE HRD   :%.2f",a.hrd);
printf("\n ENTER THE PF    :%.2f",a.pf);
printf("\n ENTER THE LIC   :%.2f",a.lic);
printline();
getch();
}
fclose(ad);
permenentstaff();
return;
}

/*--------------------APPRENTICE STAFF (TRANSACTION)-------------*/
//ADD RECORD
addarecord()
{
struct apprentices a;
FILE *ad;
char flag;
clrscr();
ad=fopen("app.dat","w");
clrscr();
printline();
printf("\n BASIC PAY    :");
fflush(stdin);
scanf("%f",&a.basicpay);
fwrite(&a,sizeof(a),1,ad);
fflush(stdin);

puts("\n\n\n\t\t RECORDS  ARE SUCCESSFULLY ADDED" );
getche();

fclose(ad);
apprenticesstaff();
return;
}
//MODIFY RECORD
modifyarecord()
{
FILE *ad;
struct apprentices a;
ad=fopen("app.dat","rb+");

clrscr();
printline();
printf("\n BASIC PAY       :%.2f",a.basicpay);
getch();
fflush(stdin);
printline();
printf("\n ENTER BASIC PAY :");
fflush(stdin);
scanf("%f",&a.basicpay);
fflush(stdin);

fseek(ad,-4L,1);
fwrite(&a,sizeof(a),1,ad);
puts("\n\n\t  RECORDS UPDATED SUCCESSFULLY" );
getch();

fclose(ad);
apprenticesstaff();
return;
}

// VIEW RECORD
retrievearecord()
{
FILE *ad;
char flag;
struct apprentices a;
ad=fopen("app.dat","rb+");
clrscr();

while((fread(&a,sizeof(a),1,ad))!=NULL)
{
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n");
printline();
printf("\n BASIC PAY      :%.2f",a.basicpay);
printline();
getch();
}
fclose(ad);
apprenticesstaff();
return;
}

//-----------------------CALCULATION LEAVE-------------------
//MANAGEMENT STAFF:
int mleave(int a)
{
static int leave;
switch(a)
{
case 1:
leave=33;
break;
case 2:
leave=66;
break;
case 3:
leave=99;
break;
case 4:
leave=132;
break;
case 5:
leave=165;
break;
case 6:
leave=198;
break;
case 7:
leave=231;
break;
case 8:
leave=264;
break;
case 9:
leave=1;
break;
case 10:
leave=1;
break;
case 11:
leave=1;
break;
case 12:
leave=1;
break;
case 13:
leave=1;
break;
case 14:
leave=1;
break;
case 15:
leave=1;
break;
case 16:
leave=1;
break;
case 17:
leave=1;
break;
case 18:
leave=1;
break;
case 19:
leave=1;
break;
case 20:
leave=1;
break;
case 21:
leave=1;
break;
case 22:
leave=1;
break;
case 23:
leave=1;
break;
case 24:
leave=1;
break;
case 25:
leave=1;
break;
case 26:
leave=1;
break;
case 27:
leave=1;
break;
case 28:
leave=1;
break;
case 29:
leave=1;
break;
case 30:
leave=1;
break;
case 31:
leave=1;
break;
}
return leave;
}


//PERMANENT STAFF:
int pleave(int a)
{
static int leave;
switch(a)
{
case 1:
leave=33;
break;
case 2:
leave=66;
break;
case 3:
leave=99;
break;
case 4:
leave=132;
break;
case 5:
leave=165;
break;
case 6:
leave=198;
break;
case 7:
leave=231;
break;
case 8:
leave=264;
break;
case 9:
leave=1;
break;
case 10:
leave=1;
break;
case 11:
leave=1;
break;
case 12:
leave=1;
break;
case 13:
leave=1;
break;
case 14:
leave=1;
break;
case 15:
leave=1;
break;
case 16:
leave=1;
break;
case 17:
leave=1;
break;
case 18:
leave=1;
break;
case 19:
leave=1;
break;
case 20:
leave=1;
break;
case 21:
leave=1;
break;
case 22:
leave=1;
break;
case 23:
leave=1;
break;
case 24:
leave=1;
break;
case 25:
leave=1;
break;
case 26:
leave=1;
break;
case 27:
leave=1;
break;
case 28:
leave=1;
break;
case 29:
leave=1;
break;
case 30:
leave=1;
break;
case 31:
leave=1;
break;
}
return leave;
}
// APPRENTICES STAFF:
int aleave(int a)
{
static int leave;
switch(a)
{
case 1:
leave=18;
break;
case 2:
leave=1;
break;
case 3:
leave=1;
break;
case 4:
leave=1;
break;
case 5:
leave=1;
break;
case 6:
leave=1;
break;
case 7:
leave=1;
break;
case 8:
leave=1;
break;
case 9:
leave=1;
break;
case 10:
leave=1;
break;
case 11:
leave=1;
break;
case 12:
leave=1;
break;
case 13:
leave=1;
break;
case 14:
leave=1;
break;
case 15:
leave=1;
break;
case 16:
leave=1;
break;
case 17:
leave=1;
break;
case 18:
leave=1;
break;
case 19:
leave=1;
break;
case 20:
leave=1;
break;
case 21:
leave=1;
break;
case 22:
leave=1;
break;
case 23:
leave=1;
break;
case 24:
leave=1;
break;
case 25:
leave=1;
break;
case 26:
leave=1;
break;
case 27:
leave=1;
break;
case 28:
leave=1;
break;
case 29:
leave=1;
break;
case 30:
leave=1;
break;
case 31:
leave=1;
break;
}
return leave;
}

No comments:

Post a Comment