#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include "menu.h"
#include "dialog.h"
#include "interact.h"
#define max 30
void setupdate();
void newscrip();
void newclient();
void checkscrip();
void checkclient();
void buyorsell();
void cleanup();
void cleanfiles();
void getclient();
void getscrip();
void getquantity();
void getrate();
void getsetno();
void getdate();
void checkwhich();
void getmouse();
void killmouse();
void showmenu();
void dataentry();
void getinfo();
void entryloop();
void checkbuying();
void writefiles();
void clientinfo();
void getclientdetail();
void displayinfo(int);
void scripinfo();
void getscripdetail();
void callexit();
void setfile();
void initialvalues();
void sidekick();
void exitchoice();
void updatestatus();
void readstatus();
void dateupdate();
void fetchdateset();
void xit();
void prompt();
void balancit(int);
void showbalance(int);
void clientscreen(int);
void printc(int,int,int);
void printb(int,int);
void scrollit(int);
void keyscroll(int);
void delarray(int);
void delet(int);
void modifi(int,int);
void makethechange();
void changechoice();
void changescrip();
void changeclient();
void changerate();
void changequantity();
void assigntemp();
void appendtemp();
void addclient();
void comeval();
void balanscreen();
void printnew(int);
void statbar(int);
int makesure();
void printweekly();
void printdaily();
void printclients();
void printscrips();
void printbalance();
void printzoudha();
void key();
void trykey();
void newkey();
void altkey();
void setup();
void zip(char*,char*);
void unzip(char*,char*);
void zipall();
void unzipall();
void reports();
void about();
//---------------------------------------------------------------------------
struct theeyathi
{
int day;
int month;
int year;
}date;
struct stock
{
int serno;
char choice;
char scrip[25];
char cname[25]; int cno;
int quan;
int rate;
float comm;
float net;
int setn;
}soudha,temp;
struct sharenames
{
char name[25];
int lf;
}scrips,clients;
int xslno[max],
xclientlf[max],
xday[30],
xmonth[max],
xyear[max],
xquan[max],
xrate[max],
xsetno[max];
float xcomm[max],
xnet[max];
char xchoice[max],
xscrip[max][25],
xclient[max][25];
int setno,ret,l,lptn,maxlines,trialset,errorflag=0,tryflag=0;
int scriplf,clientlf,check=0,passedvalue,passedoption;
int flag=0,flag1=0,flag2=0,clflag=0,scflag=0,stflag=0,j1,k;
char clname[25],scname[25],tempchoice[2];
char client[50][25],chstr[13];
float clienttotal[50],csetotal=0,commtotal=0,credit,debit;
FILE *sp,*cp,*fp,*np,*statfp,*datfp,*printfp,*fpass;
//--------------------------------------------------------------------------
void main(void)
{
int i,ret;
gotoxy(1,1);
clrscr();
cursize(16,0);
unzip("p5.mok","pass.wrd");
//key();
unzipall();
getmouse();
soudha.choice='b';
showmenu();
killmouse();
}
//-------------------------------------------------------------------------
void unzipall()
{
unzip("z1.mok","zledger");
unzip("s2.mok","sledger");
unzip("c3.mok","cledger");
unzip("s4.mok","status");
}
//--------------------------------------------------------------------------
void zipall()
{
zip("zledger","z1.mok");
zip("sledger","s2.mok");
zip("cledger","c3.mok");
zip("status","s4.mok");
zip("pass.wrd","p5.mok");
system("del zledger");
system("del cledger");
system("del sledger");
system("del status");
system("del pass.wrd");
}
//-------------------------------------------------------------------------
void zip(char one[12],char two[12])
{
FILE *fp1,*fp2;
int ch,i=1;
fp1=fopen(one,"rb");
fp2=fopen(two,"wb");
while((ch=fgetc(fp1))!=EOF)
{
if(ch==32)
{
while((ch=fgetc(fp1))==32)
i++;
fputc(i+=127,fp2);
i=1;
}
fputc(127-ch,fp2);
}
fclose(fp1);
fclose(fp2);
}
//---------------------------------------------------------------------------
void unzip(char one[12],char two[12])
{
FILE *fp1,*fp2;
int ch,i=1;
fp1=fopen(one,"rb");
fp2=fopen(two,"wb");
while((ch=fgetc(fp1))!=EOF)
{
if(ch>127)
{
ch-=127;
for(i=1;i<=ch;i++)
fputc(' ',fp2);
}
else
fputc(127-ch,fp2);
}
fclose(fp1);
fclose(fp2);
}
//--------------------------------------------------------------------------
void trykey()
{
int ch=0,i=1,j=20,kh;
fpass=fopen("pass.wrd","r");
do
{
ch=getch();
if((i==1)&&(tryflag!=0))
{
textbackground(0);
gotoxy(35,13);
cprintf(" \n");
textbackground(7);
}
fscanf(fpass,"%d ",&kh);
kh=(kh+j)/i;
if(ch!=kh)
{
errorflag=1;
}
i++;j--;
}while(ch!=13);
}
//-------------------------------------------------------------------------
void key()
{
textbackground(7);
textcolor(1);
gotoxy(35,12);
cprintf("PASSWORD PLEASE");
trykey();
if(errorflag==0)
{
tryflag=0;
fclose(fpass);
}
else if(tryflag<3)
{
tryflag++;
errorflag=0;
gotoxy(35,13);
cprintf(" RETRY \n");
key();
}
else if(tryflag>=3)
{
gotoxy(35,12);
cprintf(" ACCESS DENIED ");
fclose(fpass);
exit(0);
}
}
//-------------------------------------------------------------------------
void newkey()
{
textbackground(7);
textcolor(1);
gotoxy(33,12);
cprintf("ENTER OLD PASSWORD");
trykey();
if(errorflag==1)
{
gotoxy(33,12);
cprintf(" ACCESS DENIED ");
getch();
textbackground(0);
gotoxy(35,12);
cprintf(" ");
errorflag=0;
}
else altkey();
}
//-------------------------------------------------------------------------
void altkey()
{
FILE *fpass;
int ch=0,i=1,j=20,kh=0,newflag=0,maxi;
int newk[20];
gotoxy(33,12);
cprintf("TYPE IN NEW PASSWORD");
do
{
ch=getch();
if(i<20)
{
newk[i]=ch;
i++;
}
else if(i>=20)
putchar(7);
}while(ch!=13);
maxi=i-1;
i=1;
gotoxy(33,12);
cprintf("RETYPE NEW PASSWORD ");
do
{
ch=getch();
if(newk[i]!=ch)
{
newflag=1;
}
if(i<maxi) i++;
}while(ch!=13);
if(newflag==0)
{
i=1;
fpass=fopen("pass.wrd","w");
do
{
ch=newk[i];
kh=(ch*i)-j;
fprintf(fpass,"%d ",kh);
i++;j--;
} while(ch!=13);
fclose(fpass);
gotoxy(33,12);
cprintf(" PASSWORD CHANGED ");
getch();
textbackground(0);
gotoxy(33,12);
cprintf(" ");
}
else
{
newflag=0;
gotoxy(33,12);
cprintf("RETYPED INCORRECTLY ");
getch();
textbackground(0);
gotoxy(33,12);
cprintf(" ");
}
}
//-------------------------------------------------------------------------
void prompt()
{
clrscr();
printf("ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍTYPE EXIT TO GET BACK TO MOKSHAÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
system("command.com");
system("march2");
}
//---------------------------------------------------------------------------
void showmenu()
{
textbackground(BLACK);
clrscr();
textbackground(BLACK);
ret=tmenu(15,7,11,1,0,31,10,8,"OPTIONS",
"Data Entry",
"View-Edit",
"Trial Balance",
"Analysis",
"Reports",
"Set Up",
"Dos Prompt",
"Exit");
switch(ret)
{
case 1:dataentry();
showmenu(); break;
case 2:getinfo();
showmenu();break;
case 3:balancit(1);
showmenu();
break;
case 5:reports();
showmenu();
break;
case 6:setup();
showmenu();break;
case 7:prompt();break;
case 8:zipall();
killmouse();
exit(0);break;
default:showmenu();break;
}
}
//--------------------------------------------------------------------------
void setup()
{
ret=tmenu(15,7,11,1,0,31,10,4,"SET UP",
"Clean All Files",
"Change Password",
"About",
"Exit Set up");
switch(ret)
{
case 1:cleanfiles();
setup();
break;
case 2:newkey();
setup();
break;
case 3:about();
break;
default:break;
}
}
//---------------------------------------------------------------------------
void about()
{
clrscr();
ret=tmenu(15,7,11,1,0,31,10,6,"THE MINDZONE",
"kishan p thomas",
"rahul sekhar",
"shiji cherian",
"treesa zacharia",
" the base ",
" ok ");
switch(ret)
{
case 1:dialoguebox(23,10,3,0,7,"wild rose cochin-34",0);
getch();
about();
break;
case 2:dialoguebox(23,10,3,0,7,"varickolil mavelikara-4",0);
getch();
about();
break;
case 3:dialoguebox(23,10,3,0,7,"kadiyamkuttiyil trivandrum-1",0);
getch();
about();
break;
case 4:dialoguebox(23,10,3,0,7,"lakaparambil changanachery-4",0);
getch();
about();
break;
case 5:dialoguebox(23,10,3,0,7,"uni: of kerala trivandrum-81",0);
getch();
about();
break;
default:break;
}
}
//---------------------------------------------------------------------------
void reports()
{
ret=tmenu(15,7,11,1,0,31,10,7,"SELECT REPORT",
"WEEKLY STATEMENT",
"DAILY STATEMENT",
"TRIAL BALANCE",
"CLIENT LIST",
"SCRIP LIST",
"ZOUDHA BOOK",
"EXIT REPORTS");
switch(ret)
{
case 1:printweekly();
reports();
break;
case 2:printdaily();
reports();
break;
case 3:balancit(2);
reports();
break;
case 4:printclients();
reports();
break;
case 5:printscrips();
reports();
break;
case 6:printzoudha();
reports();
break;
default:break;
}
}
//---------------------------------------------------------------------------
void printweekly()
{
char theclient[20],printen[20];
int serialno=0,thesetno;
printfp=fopen("tempfile","w");
fp=fopen("zledger","r");
dialoguebox(23,10,3,0,7,"ENTER THE SETNO:",2);
thesetno=atoi(getit(wherex(),wherey(),20));
dialoguebox(23,10,3,0,7,"ENTER THE CLIENT NAME",20);
strcpy(theclient,getit(wherex(),wherey(),20));
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"-----------------------------------------------------------------------------\n");
fprintf(printfp,"TO:\n");
fprintf(printfp," %s\n",theclient);
fprintf(printfp," I/We have on this Settlement period done by your Settlment# %2d \n",
thesetno);
fprintf(printfp," order and on your account the following transactions\n");
fprintf(printfp,"-----------------------------------------------------------------------------\n");
fprintf(printfp,"|SLNO|LFNO| DATE |SET| SCRIPNAME | | QTTY | RATE| COMM: | NETAMOUNT |\n");
fprintf(printfp,"-----------------------------------------------------------------------------\n");
while(!feof(fp))
{
fscanf(fp,"%d%*c %d%*c%d%*c%d %d %[^\n] %[^\n] %c %d %d %d %f %f\n",&soudha.serno,
&date.day,&date.month,&date.year,&soudha.setn,soudha.scrip,soudha.cname,
&soudha.choice,&clientlf,&soudha.quan,&soudha.rate,
&soudha.comm,&soudha.net);
if((strcmp(theclient,soudha.cname)==0)&&(soudha.setn==thesetno))
{
strcpy(printen,soudha.scrip);
printen[10]='\0';
serialno++;
fprintf(printfp,"|%3d |%3d |%2d/%2d/%2d |%2d | %-10s|%c |%5d |%4d |%8.2f |%12.2f |\n",
serialno,
soudha.serno,
date.day,
date.month,
date.year,
soudha.setn,
printen,
soudha.choice,
soudha.quan,
soudha.rate,
soudha.comm,
soudha.net);
}
}
fprintf(printfp,"----------------------------------------------------------------------------\n\n");
fprintf(printfp," Yours Faithfully, \n\n");
fprintf(printfp," For PINNACLE STOCK & SHARES. \n");
fclose(fp);
fclose(printfp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void printdaily()
{
char theclient[20];
char printen[20];
int serialno=0,thesetno,thedate;
printfp=fopen("tempfile","w");
fp=fopen("zledger","r");
dialoguebox(23,10,3,0,7,"ENTER THE SETNO:",2);
thesetno=atoi(getit(wherex(),wherey(),20));
dialoguebox(23,10,3,0,7,"ENTER THE DATE:",2);
thedate=atoi(getit(wherex(),wherey(),20));
dialoguebox(23,10,3,0,7,"ENTER THE CLIENT NAME",20);
strcpy(theclient,getit(wherex(),wherey(),20));
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"-------------------------------------------------------------------\n");
fprintf(printfp,"TO:\n");
fprintf(printfp," %s\n",theclient);
fprintf(printfp," I/We have this day done by your order and Dated%2d/%2d/%2d\n",
date.day,date.month,date.year);
fprintf(printfp," on your account the following transactions\n");
fprintf(printfp,"-------------------------------------------------------------------\n");
fprintf(printfp,"|SLNO|LFNO| SCRIPNAME | | QTTY | RATE| COMMISSION | NETAMOUNT |\n");
fprintf(printfp,"-------------------------------------------------------------------\n");
while(!feof(fp))
{
fscanf(fp,"%d%*c %d%*c%d%*c%d %d %[^\n] %[^\n] %c %d %d %d %f %f\n",&soudha.serno,
&date.day,&date.month,&date.year,&soudha.setn,soudha.scrip,soudha.cname,
&soudha.choice,&clientlf,&soudha.quan,&soudha.rate,
&soudha.comm,&soudha.net);
if((strcmp(theclient,soudha.cname)==0)
&&(date.day==thedate)
&&(soudha.setn==thesetno))
{
strcpy(printen,soudha.scrip);
printen[10]='\0';
serialno++;
fprintf(printfp,"|%3d |%3d | %-10s|%c |%5d |%4d |%12.2f |%12.2f |\n",
serialno,
soudha.serno,
printen,
soudha.choice,
soudha.quan,
soudha.rate,
soudha.comm,
soudha.net);
}
}
fprintf(printfp,"-------------------------------------------------------------------\n\n");
fprintf(printfp," Yours Faithfully, \n\n");
fprintf(printfp," For PINNACLE STOCK & SHARES. \n");
fclose(fp);
fclose(printfp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void printbalance()
{
float printamount;
printfp=fopen("tempfile","w");
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp," TRIAL BALANCE FOR THE SETTLEMENT NO: %2d\n",trialset);
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp,"| PARTICULARS | DEBIT | CREDIT |\n");
fprintf(printfp,"---------------------------------------------------\n");
for(int l=1;l<=maxlines;l++)
{
if(clienttotal[l]<0)
{
printamount=clienttotal[l]*(-1.0);
fprintf(printfp,"| %-20s|%12.2f | |\n",client[l],printamount);
}
else
fprintf(printfp,"| %-20s| |%12.2f |\n",client[l],clienttotal[l]);
}
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp," |%12.2f |%12.2f |\n",debit,credit);
fprintf(printfp,"---------------------------------------------------\n");
fclose(printfp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void printscrips()
{
printfp=fopen("tempfile","w");
sp=fopen("sledger","r");
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp," SCRIPLIST \n");
fprintf(printfp,"---------------------------------------------------\n\n");
fprintf(printfp,"------------------------------\n");
fprintf(printfp,"| No: | SCRIPNAME |\n");
fprintf(printfp,"------------------------------\n");
while(!feof(sp))
{
fscanf(sp,"%d %[^\n]",&scrips.lf,scrips.name);
fprintf(printfp,"| %3d | %-20s |\n",scrips.lf,scrips.name);
}
fprintf(printfp,"------------------------------\n");
fclose(printfp);
fclose(sp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void printclients()
{
printfp=fopen("tempfile","w");
cp=fopen("cledger","r");
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp," CLIENT LIST\n");
fprintf(printfp,"---------------------------------------------------\n");
fprintf(printfp,"------------------------------\n");
fprintf(printfp,"| No: | CLIENTNAME |\n");
fprintf(printfp,"------------------------------\n");
while(!feof(cp))
{
fscanf(cp,"%d %[^\n]",&clients.lf,clients.name);
fprintf(printfp,"| %3d | %-20s |\n",clients.lf,clients.name);
}
fprintf(printfp,"------------------------------\n");
fclose(printfp);
fclose(cp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void printzoudha()
{
int serialno=0,thesetno;
char printen1[20],printen2[20];
printfp=fopen("tempfile","w");
fp=fopen("zledger","r");
dialoguebox(23,10,3,0,7,"ENTER THE SETNO:",2);
thesetno=atoi(getit(wherex(),wherey(),20));
fprintf(printfp,"PINNACLE STOCK & SHARES M.G.Road Cochin Ph:361660 \n");
fprintf(printfp,"------------------------------------------------------------------------------\n");
fprintf(printfp," ZOUDHA LEDGER \n");
fprintf(printfp,"------------------------------------------------------------------------------\n");
fprintf(printfp,"ENTRIES FOR THE SETTLEMENT NO:%2d\n",thesetno);
fprintf(printfp,"------------------------------------------------------------------------------\n");
fprintf(printfp,"|SL#| DATE |S#|CLIENTNAME|SCRIPNAME | | QTTY|RATE| COMMISSION | NETAMOUNT |\n");
fprintf(printfp,"------------------------------------------------------------------------------\n");
while(!feof(fp))
{
fscanf(fp,"%d%*c %d%*c%d%*c%d %d %[^\n] %[^\n] %c %d %d %d %f %f\n",&soudha.serno,
&date.day,&date.month,&date.year,&soudha.setn,soudha.scrip,soudha.cname,
&soudha.choice,&clientlf,&soudha.quan,&soudha.rate,
&soudha.comm,&soudha.net);
if(soudha.setn==thesetno)
{
strcpy(printen1,soudha.cname);
printen1[10]='\0';
strcpy(printen2,soudha.scrip);
printen2[10]='\0';
serialno++;
fprintf(printfp,"|%3d|%2d/%2d/%2d|%2d|%-10s|%-10s|%c|%5d|%4d|%12.2f|%12.2f|\n",
serialno,
date.day,
date.month,
date.year,
soudha.setn,
printen1,
printen2,
soudha.choice,
soudha.quan,
soudha.rate,
soudha.comm,
soudha.net);
}
}
fprintf(printfp,"------------------------------------------------------------------------------\n");
fclose(fp);
fclose(printfp);
ret=tmenu(15,1,0,10,4,24,10,2,"SETUP PRINTER.READY TO PRINT ?",
"OK",
"Cancel");
if(ret==1) system("type >prn tempfile.");
}
//---------------------------------------------------------------------------
void getinfo()
{
gotoxy(1,1);
ret=tmenu(15,1,0,10,4,35,10,3,"OPTIONS",
"Clients",
"Scrips",
"Exit");
switch(ret)
{
case 1:clientinfo();getinfo();break;
case 2:scripinfo();getinfo()