#include<stdio.h>
#include<dos.h>
#include<ctype.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
FILE *Item;
void search();
void load();
void lagin();
void sales();
void menu();
void add();
void view();
void delete();

char name,user,uname[30],addr[100],info[30],log;
int i,password,pin,valid,try=+1;
main()
{
do
{
clrscr();
pin = 1234;
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                 AUTHENTICATION                  ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");
gotoxy(20,11);
printf("Enter Password	   :  ");
scanf("%i",&password);
if(password != pin)
				{
					gotoxy(34,14); printf("Invalid Password!");
					valid=0;
					try+=1;
					getch();
				}
			else
			valid=1;
			} while(!valid && try <= 3);

	if(try >= 3)
		{
			gotoxy(29,16); printf("Maximum of 3 tries only!!!");
			getch();
			exit(1);
		}
	else
		{
		gotoxy(34,14);	printf("Access Approve!!!");
}
gotoxy(17, 21);
	for(i=1; i<=50; i++)

		{
			gotoxy(16, 20); 	printf("Loading        %i%",i*2);
			gotoxy(i+17,21);	printf("");
			delay(20000);
		}


menu();
}
void menu()
{
char ;
int  choice;

clrscr();
do
{
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                   MAIN MENU                     ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                   [1]ADD RECORD                       ");
gotoxy(12,10);	printf("                   [2]VIEW RECORD                      ");
gotoxy(12,11);	printf("                   [3]SEARCH RECORD                    ");
gotoxy(12,12);	printf("                   [4]DELETE                           ");
gotoxy(12,13);	printf("                   [5]TRANSACTION                      ");
gotoxy(12,14);	printf("                   [6]EXIT                             ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");
gotoxy(33,16);	printf("Enter Choice:  \b\b ");
fflush(stdin);
scanf("%i",&choice);
switch(choice)
{
case 1: add();
break;
case 2: view();
break;
case 3: search();
break;
case 4: delete();
break;
case 5: sales();
break;
case 6: exit(1);
break;
default:
gotoxy(33,18); printf("Invalid Choice");
getch();
}
}
while(choice <=6);



getch();
}
void add()
{


char ichoice='y',iname[50],brand[50],iqty[50],price[50];
	Item=fopen("itm.txt","a+");
	while(ichoice=='y')
		{
			clrscr();
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                   ADD RECORD                    ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");

			gotoxy(20,9);  		printf("Enter Item Code	  : ");
			fflush(stdin);
			gets(iname);
			gotoxy(20,11);  	printf("Enter Quantity		: ");
			fflush(stdin);
			gets(iqty);
			gotoxy(20,13);  	printf("Enter Description	: ");
			fflush(stdin);
			gets(brand);
			gotoxy(20,15);		printf("Enter Price		: ");
			gets(price);

			fprintf(Item,"%s/%s/%s/%s/%s/",iname,iqty,brand,price);
			gotoxy(30,20); 	printf("Add another Record [Y/N]:");
			scanf("%s",&ichoice);

		      }
	fclose(Item);
menu();

}
void sales()

{
char name[40],pname[50],choice='y';
int qty;
float amt,ct,total,change,subtotal;

while(choice=='y')
{
clrscr();
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                  TRANSACTION                    ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");

gotoxy(26,8);	printf("TRANSACTION CODE: ");
fflush(stdin); /*for making the program no to skip some operations of the program*/
gets(name);
gotoxy(26,10);	printf("Enter Item code      : ");
fflush(stdin);
gets(pname);
gotoxy(26,11);	printf("Enter Quantity       : ");
scanf("%i",&qty);
gotoxy(26,12);	printf("Amount               : ");
scanf("%f",&amt);
total = amt*qty;
gotoxy(26,14);	printf("Total Amount is      : %.2f ",total);

do   /* i use do while loop for letting the user to re enter the right amount for the total amount.*/
{
gotoxy(26,16);	printf("Cash Tendered        :      \b\b\b\b\b\b");
fflush(stdin);
scanf("%f",&ct);
if(ct < total)
{
gotoxy(26,17);	printf("Insufficient Cash ! ");
}
else
{
change = ct-total;
gotoxy(26,20);	printf("Your Change is %.2f ",change);
gotoxy(21,21);	printf("Do you want to do another Transaction [Y/N]: ");
scanf("%s",&choice);
}}while(ct<total);

}
menu();
}

void view()
{
char iname[50],brand[50],iqty[50],price[50];
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                  VIEW RECORD                    ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");



	strcpy(iname,"");
	strcpy(iqty,"");
	strcpy(brand,"");
	strcpy(price,"");
	if((Item=fopen("itm.txt","r"))==NULL)
	{
	gotoxy(36,20);	printf("File Empty !");
	}
	else
		{
			while(!feof(Item))
				{
					fscanf(Item,"%[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c ",iname,iqty,brand,price);

					gotoxy(20,9 );  	printf("Item Code   : %s     \b\b\b\b\b\b", iname);
					gotoxy(20, 11); 	printf("Quantity    : %s    \b\b\b\b",iqty);
					gotoxy(20, 13); 	printf("Description : %s          \b\b\b\b\b\b\b\b\b\b",brand);
					gotoxy(20, 15); 	printf("Price       : %s    \b\b\b\b",price);

					gotoxy(26, 20); printf("Press Enter To View Next Item");
					getch();
				}
		}
					gotoxy(35,21); printf("End of File...");
					getch();
fclose(Item);
menu();
}
void search()
{
	char name[50],ans,iname[50],brand[50],iqty[50],price[50];
	int found = 0;

gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                 SEARCH RECORD                   ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");

	strcpy(iname,"");
	strcpy(iqty,"");
	strcpy(brand,"");
	strcpy(price,"");
	if((Item=fopen("itm.txt","r"))==NULL)
		{
		gotoxy(35,18);
		printf("File Empty");
		}
		else
		{

			gotoxy(20, 9); printf("Enter Item code      : ");
			fflush(stdin);
			gets(name);
			do
				{
					fscanf(Item,"%[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c ",iname,iqty,brand,price);
					if(strcmp(iname,name)==0)
						found=1;
					if(found)
						{


							gotoxy(20,11 );	printf("Item Code      : %s", iname);
							gotoxy(20, 13); printf("Quantity       : %s",iqty);
							gotoxy(20, 15); printf("Description    : %s",brand);
							gotoxy(20, 17); printf("Price          : %s",price);

found=0;
	}

}
while(!feof(Item));

			gotoxy(35,20); printf("Search Again[Y/N]");
			scanf("%c",&ans);
			if(toupper(ans)=='Y')
			search();
			else
			menu();
			getch();
		}
fclose(Item);
menu();
}

void delete()
{
	FILE *i;
	char code[50],ans,iname[50],brand[50],iqty[50],price[50];
	int found=0;
	char choice[2];

	clrscr();
gotoxy(12,2);	printf("ͻ");
gotoxy(12,3);	printf("        WEDUSCOM INVENTORY AND TRANSACTION SYSTEM        ");
gotoxy(12,4);	printf("                                                         ");
gotoxy(12,5);	printf("   ͻͻ   ");
gotoxy(12,6);	printf("                 DELETE RECORD                   ");
gotoxy(12,7);	printf("   ͼͺ   ");
gotoxy(12,8);	printf("                                                       ");
gotoxy(12,9);	printf("                                                       ");
gotoxy(12,10);	printf("                                                       ");
gotoxy(12,11);	printf("                                                       ");
gotoxy(12,12);	printf("                                                       ");
gotoxy(12,13);	printf("                                                       ");
gotoxy(12,14);	printf("                                                       ");
gotoxy(12,15);	printf("                                                       ");
gotoxy(12,16);	printf("                                                       ");
gotoxy(12,17);	printf("                                                       ");
gotoxy(12,18);	printf("                                                       ");
gotoxy(12,19);	printf("   ͼ   ");
gotoxy(12,20);	printf("                                                         ");
gotoxy(12,21);	printf("                                                         ");
gotoxy(12,22);	printf("                                                         ");
gotoxy(12,23);	printf("ͼ");

	if((Item=fopen("itm.txt","r"))==NULL)
	{
	gotoxy(35,18);
	printf("File Empty");
	getch();
	menu();
	}
	if((i=fopen("i.txt","a+"))==NULL)
		{
		gotoxy(35,18);
		printf("File Empty");
		}
		else
		{

			gotoxy(19, 9); printf("Enter Item Code to Delete : ");
			fflush(stdin);
			gets(code);
			while(!feof(Item))
				{
					fscanf(Item,"%[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c %[^/]%*c  ",iname,iqty,brand,price);
					if(feof(Item))
						break;
					if(strcmp(iname,code)==0)
						found=1;
					if(found)
						{


                                                        gotoxy(20,11 );	printf("Item Code      : %s", iname);
							gotoxy(20, 13); printf("Quantity       : %s",iqty);
							gotoxy(20, 15); printf("Description    : %s",brand);
							gotoxy(20, 17); printf("Price          : %s",price);

							gotoxy(31,20); printf("Delete this Record[Y/N]?");
							found=0;
							gets(choice);
							switch(choice[0])
								{
									case 'n':
									case 'N':
										fprintf(i,"%s/%s/%s/%s/%s/",iname,iqty,brand,price);
								}
						}
					else
						{
							fprintf(i,"%s/%s/%s/%s/%s/",iname,iqty,brand,price);
						}
				}
			gotoxy(31,21);	printf("End of File...");
			gotoxy(31,22);	printf("Delete Another Record[Y/N]:");
			scanf("%c",&ans);
			if(toupper(ans)=='Y')
			delete();
			else
			if(toupper(ans)!='Y')
			remove("itm.txt");
			rename("i.txt","itm.txt");
			fclose(Item);
			fclose(i);
			menu();
}
}