コード例 #1
0
ファイル: dftable.cpp プロジェクト: DTidd/OpenRDAAPI
static void savetable(RDArsrc *mtnrsrc,RDArsrc *mainrsrc)
{
	char *libname=NULL;
	
	readallwidgets(mtnrsrc);
	FINDRSCGETSTRING(mtnrsrc,"MODULE",&DFV->module);
	FINDRSCGETSTRING(mtnrsrc,"NAME",&DFV->name);
	if(!isEMPTY(DFV->module) && !isEMPTY(DFV->name))
	{
		FINDRSCGETSTRING(mtnrsrc,"DESCRIPTION",&DFV->desc);
		FINDRSCGETSTRING(mtnrsrc,"TITLE 1",&DFV->title1);
		FINDRSCGETSTRING(mtnrsrc,"TITLE 2",&DFV->title2);
		FINDRSCGETCHAR(mtnrsrc,"INCLUSIVE",&DFV->inclusive);
		libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+RDAstrlen(DFV->module)+10);
#ifndef WIN32
		sprintf(libname,"%s/rda/%s.TBL",CURRENTDIRECTORY,DFV->module);
#endif
#ifdef WIN32
		sprintf(libname,"%s\\rda\\%s.TBL",CURRENTDIRECTORY,DFV->module);
#endif
		if(writeRDATablebin(libname,DFV))
		{
			ERRORDIALOG("Cannot Write RDA Table","Error attempting to write the table.  Check the permissions on the RDA Table Binary Library, and retry.  Call your installer.",NULL,FALSE);
		}
		if(libname!=NULL) Rfree(libname);
		FreeRDATABLE(DFV);
	}
	domodulelist(mainrsrc);
	/*getvrtentries();*/
	quittable(mtnrsrc,mainrsrc);
}
コード例 #2
0
ファイル: environment.cpp プロジェクト: kzfm1024/booscheme
	bool environment::numberArgsOK(boost::any vars, boost::any vals)
	{
		return ((isEMPTY(vars) && isEMPTY(vals)) ||
				isSymbol(vars) ||
				(isPair(vars) && isPair(vals) &&
				 numberArgsOK(rest(vars), rest(vals))));
	}
コード例 #3
0
ファイル: dfchgcm.cpp プロジェクト: DTidd/OpenRDAAPI
CHGstruct *xCHGstructNEW(char *module,char *name,int line,char *file)
{
	CHGstruct *tmp=NULL;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagapps)
	{
		prterr("DIAG CHGstructNEW at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	tmp=Rmalloc(sizeof(CHGstruct));
	if(!isEMPTY(module)) tmp->module=stralloc(module);
		else tmp->module=NULL;
	if(!isEMPTY(name)) tmp->name=stralloc(name);
		else tmp->name=NULL;
	tmp->desc=NULL;
	tmp->fieldname=NULL;
	tmp->range=FALSE;
	tmp->range_screen=NULL;
	tmp->expression=NULL;
	tmp->numfiles=0;
	tmp->chgfiles=NULL;
	tmp->SubFunc=NULL;
	tmp->SubFuncArgs=NULL;
	tmp->rsrc=NULL;
	tmp->type=0;
	tmp->len=0;
	tmp->simple_from=FALSE;
	tmp->simple_to=FALSE;
	return(tmp);
}
コード例 #4
0
ファイル: perdmgm.cpp プロジェクト: DTidd/OpenRDAAPI
static void save_check(RDArsrc *mtnrsrc,RDATData *previous,short update)
{
	char *desc=NULL;

	if(!SAVE_CHECK(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc))
	{
		return;
	}
	if(!isEMPTY(MASTER->save_expression))
	{
		if(EVALUATEbol(MASTER->save_expression,SCRNvirtualSubData,mtnrsrc))
		{
			desc=EVALUATEstr(MASTER->save_error_desc,
				SCRNvirtualSubData,mtnrsrc);
			ERRORDIALOG("SAVE ERROR",desc,NULL,FALSE);
			if(desc!=NULL) Rfree(desc);
			return;
		}
	}
	if(!isEMPTY(MASTER->save_warning))
	{
		if(EVALUATEbol(MASTER->save_warning,SCRNvirtualSubData,mtnrsrc))
		{
			desc=EVALUATEstr(MASTER->save_warning_desc,
				SCRNvirtualSubData,mtnrsrc);
			ADVWARNINGDIALOG("SAVE WARNING DIALOG SCREEN","SAVE WARNING",
				desc,(update ? save_record_now:save_record_now1),
				NULL,FALSE,2,mtnrsrc,previous,NULL);
			if(desc!=NULL) Rfree(desc);
			return;
		}
	}
	save_record(mtnrsrc,previous,update);
}
コード例 #5
0
ファイル: fineaccm.cpp プロジェクト: DTidd/OpenRDAAPI
static void save_check(RDArsrc *mtnrsrc,mtnstruct *mtn,short update_list)
{
	char deleteflag=0,*warnmessage=NULL,*desc=NULL;
	int selDEFtype=0;

	readscreen(mtnrsrc,mtn);
	FINDFLDGETCHAR(MASTER->passkey->fileno,"DELETEFLAG",&deleteflag);
	if(!deleteflag)
	{
		FINDRSCGETINT(mtnrsrc,"DEFINITION TYPES",&selDEFtype);
		if(!RDAstrcmp(mtn->DEFtypes->libs[selDEFtype],"No Definitions Available") || !RDAstrcmp(mtn->DEFtypes->libs[selDEFtype],"Invalid-Definition Type"))
		{
			warnmessage=Rmalloc(201);
			sprintf(warnmessage,"The DEFINITION TYPE selected is invalid.  This must be corrected before this record can be saved.");
			WARNINGDIALOG("WARNING DIALOG SCREEN","INVALID DEFINITION TYPE!",warnmessage,NULL,NULL,TRUE,NULL);
			if(warnmessage!=NULL) Rfree(warnmessage);
			return;
		}
	}
	if(!SAVE_CHECK(mtnrsrc,MASTER,SCRNvirtualSubData,(void *)mtnrsrc))
	{
		return;
	}
	if(!isEMPTY(MASTER->save_expression))
	{
		if(EVALUATEbol(MASTER->save_expression,SCRNvirtualSubData,mtnrsrc))
		{
			desc=EVALUATEstr(MASTER->save_error_desc,
				SCRNvirtualSubData,mtnrsrc);
			ERRORDIALOG("SAVE ERROR",desc,NULL,FALSE);
			if(desc!=NULL) Rfree(desc);
			return;
		}
	}
	if(!isEMPTY(MASTER->save_warning))
	{
		if(EVALUATEbol(MASTER->save_warning,SCRNvirtualSubData,mtnrsrc))
		{
			desc=EVALUATEstr(MASTER->save_warning_desc,
				SCRNvirtualSubData,mtnrsrc);
			ADVWARNINGDIALOG("SAVE WARNING DIALOG SCREEN",
				"SAVE WARNING",desc,
				(update_list?save_record_now:save_record_now1),
				NULL,FALSE,2,mtnrsrc,mtn,NULL);
			if(desc!=NULL) Rfree(desc);
			return;
		}
	}
	save_record(mtnrsrc,mtn,update_list);
}
コード例 #6
0
ファイル: crtprocsec.cpp プロジェクト: DTidd/OpenRDAAPI
int main(int argc,char **argv)
#endif
{
	RDArsrc *r=NULL;
	char *userid=NULL,*module=NULL,*tmp=NULL;
	APPlib *files=NULL;
	short fileno=(-1),x=0;
	RDATData *prev=NULL;

	if(InitializeSubsystems(argc,argv,"SECURITY","CREATE PROCSEC")) 
	{
		return;
	}
	tmp=RDA_GetEnv("USER_IDENTIFICATION");
	if(!isEMPTY(tmp)) userid=stralloc(tmp);
	tmp=RDA_GetEnv("MODULE");
	if(!isEMPTY(tmp)) module=stralloc(tmp);
	if(!isEMPTY(userid) && !isEMPTY(module))
	{
		memset(stemp,0,101);
		sprintf(stemp,"\"%s\"",module);
		files=GetProcessesAvailable(stemp,SCRNvirtualSubData,r);
		if(files!=NULL)
		{
			fileno=OPNNRD("SECURITY","PROCSEC");
			if(fileno!=(-1))
			{
				for(x=0;x<files->numlibs;++x)
				{
					ZERNRD(fileno);
					FINDFLDSETSTRING(fileno,"USER IDENTIFICATION",userid);
					FINDFLDSETSTRING(fileno,"MODULE NAME",module);
					FINDFLDSETSTRING(fileno,"PROCESS NAME",files->libs[x]);
					if(EQLNRD(fileno,1))
					{
						prev=NULL;
					} else prev=RDATDataNEW(fileno);
					WRTTRANS(fileno,0,NULL,prev);
					if(prev!=NULL) FreeRDATData(prev);
				}
				CLSNRD(fileno);
			}
			freeapplib(files);
		}
	}
	if(userid!=NULL) Rfree(userid);
	if(module!=NULL) Rfree(module);
	ShutdownSubsystems();
}
コード例 #7
0
ファイル: docrontab.cpp プロジェクト: DTidd/OpenRDAAPI
void WriteCronJobs(RDArsrc *mainrsrc,char *new_one)
{
	char temp[512],tempx[1024];
	int selected=0,x=0;
	FILE *fp=NULL;

	FINDRSCGETINT(mainrsrc,"CRONTABS",&selected);
	memset(tempx,0,1024);
	sprintf(tempx,"%s/%s.cron",CURRENTDIRECTORY,USERLOGIN);
	unlink(tempx);
	sprintf(temp,"sudo -u rdacron crontab %s",tempx);
	fp=fopen(tempx,"w");
	if(fp!=NULL)
	{
		for(x=0;x<CRON->numlibs;++x)
		{
			if(RDAstrcmp(CRON->libs[x],"No Crontab's Defined")) 
				fprintf(fp,"%s\n",CRON->libs[x]);
		}
		if(!isEMPTY(new_one))
		{
			fprintf(fp,"%s\n",(new_one!=NULL ? new_one:""));
		}
		fclose(fp);
		system_command(temp);
		unlink(tempx);
	}
	getcurrentcrons();
	if(selected>=CRON->numlibs) selected=0;
	FINDRSCLISTAPPlib(mainrsrc,"CRONTABS",selected,CRON);
	updatersrc(mainrsrc,"CRONTABS");
}
コード例 #8
0
ファイル: rda_vnc.cpp プロジェクト: DTidd/OpenRDAAPI
int main(int argc,char **argv)
{
	char *temp=NULL;

	initrdadiag();
	SETUSERLOGIN();
	SETCWD();
	if(argc<2) 
	{
		which=1;
	} else if(!isEMPTY(argv[1]))
	{
		temp = Rmalloc(strlen(argv[1])+1);
		sprintf(temp,argv[1]);
		stolower(temp);
		if(!RDAstrcmp(temp,"start")) which=0;
		else if(!RDAstrcmp(temp,"stop")) which=2;
		else if(!RDAstrcmp(temp,"test")) which=3;
		else which=1; /* keepalive */
		if(temp!=NULL) Rfree(temp);
	}
	if(argc<3)
	{
		ufile=stralloc("rdausers");
	} else ufile=stralloc(argv[2]);
	GetUsers();
	ManageVNCservers(which);
	if(RDAusers!=NULL) freeapplib(RDAusers);
	if(ufile!=NULL) Rfree(ufile);
	exit(0);
}
コード例 #9
0
ファイル: mkmscfnc.cpp プロジェクト: DTidd/OpenRDAAPI
void Establish_Install_Date(char *module)
{
	RDAGenericSetup *gsv=NULL;
	char *temp1=NULL,*libx=NULL;

	if(isEMPTY(module)) return;
	libx=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+RDAstrlen(module)+11);
#ifndef WIN32
	sprintf(libx,"%s/rda/%s.GSV",CURRENTDIRECTORY,module);
#endif
#ifdef WIN32
	sprintf(libx,"%s\\rda\\%s.GSV",CURRENTDIRECTORY,module);
#endif

	gsv=RDAGenericSetupNew(module,"COMPILE DATE");
	if(gsv!=NULL)
	{
		getRDAGenericSetupbin(libx,gsv);
		gsv->type=16;
		gsv->length=10;
		gsv->desc=stralloc("Compile Date of RDA's Latest Update.");
		gsv->label=stralloc("Compile Date:");
		gsv->value.string_value=stralloc(VERSION_DATE);

		if(writeRDAGenericSetupbin(libx,gsv))
		{
			if(temp1!=NULL) Rfree(temp1);
			if(libx!=NULL) Rfree(libx);
			temp1=Rmalloc(12+6+110+1);
			sprintf(temp1,"GENERIC SETUP VARIABLE WRITE ERROR: Module [%s] GSV [COMPILE DATE], Can Not Save Generic Setup Variable!",module);
			prterr(temp1);
		}
		if(temp1!=NULL) Rfree(temp1);
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"INSTALLATION DATE");
	if(gsv!=NULL)
	{
		getRDAGenericSetupbin(libx,gsv);
		gsv->type=16;
		gsv->length=10;
		gsv->desc=stralloc("Installation Date of RDA's Latest Update.");
		gsv->label=stralloc("Installation Date:");
		gsv->value.string_value=stralloc(CURRENT_DATE10);

		if(writeRDAGenericSetupbin(libx,gsv))
		{
			if(temp1!=NULL) Rfree(temp1);
			if(libx!=NULL) Rfree(libx);
			temp1=Rmalloc(17+6+110+1);
			sprintf(temp1,"GENERIC SETUP VARIABLE WRITE ERROR: Module [%s] GSV [INSTALLATION DATE], Can Not Save Generic Setup Variable!",module);
			prterr(temp1);
		}
		if(temp1!=NULL) Rfree(temp1);
	}
	if(libx!=NULL) Rfree(libx);
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
}
コード例 #10
0
ファイル: iterative.c プロジェクト: sameerg10/Ackermann
void pop(int *m)
{
    if (isEMPTY()) {
        fputs("Error: stack underflow\n", stderr);
        abort();
    }
    else {
        *m = st.items[st.top].m;
        st.top = st.top - 1;
    }
 }
コード例 #11
0
ファイル: payfuncs.cpp プロジェクト: DTidd/OpenRDAAPI
short xwritepayrollbin(RDApayroll *payroll,int line,char *file)
{
	BIN *bin;
	char *libname=NULL;

	libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+17);
#ifndef WIN32
	sprintf(libname,"%s/rda/PAYROLL.STP",CURRENTDIRECTORY);	
#endif
#ifdef WIN32
	sprintf(libname,"%s\\rda\\PAYROLL.STP",CURRENTDIRECTORY);	
#endif
#ifdef USE_RDA_DIAGNOSTICS
	if(diagmix)
	{
		prterr("DIAG writepayrollbin Writing Payroll Setup Variables to Library [%s] at line [%d] program [%s].",libname,line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	bin=BINnew();
	BINaddshort(bin,-1696);	/*type identifier*/
	BINaddshort(bin,(payroll->manage_earnings ? TRUE:FALSE));
	BINaddshort(bin,payroll->use_payroll_fund);
	BINaddshort(bin,(payroll->paysel_audit ? TRUE:FALSE));
	BINaddshort(bin,(payroll->paynet_audit ? TRUE:FALSE));
	BINaddshort(bin,(payroll->paymts_audit ? TRUE:FALSE));
	BINaddshort(bin,(payroll->subsel_audit ? TRUE:FALSE));
	BINaddint(bin,payroll->direct_deposit_type);
	if(!isEMPTY(payroll->ein))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,payroll->ein);
	} else BINaddshort(bin,FALSE);
	BINaddshort(bin,(payroll->payjams_rollover ? TRUE:FALSE));
	BINaddint(bin,payroll->perid);
	BINaddint(bin,payroll->perid_resource);
	BINaddint(bin,payroll->paycheck_form_type);
	BINaddint(bin,payroll->dirdep_form_type);
	if(writelibbin(libname,bin,"PAYROLL SETUP"))
	{
		prterr("Error Can't write Payroll Setup Variables in binary Library [%s] at line [%d] program [%s].",libname,line,file);
		if(libname!=NULL) Rfree(libname);
		return(-1);
	}
	if(libname!=NULL) Rfree(libname);
	return(0);
}
コード例 #12
0
ファイル: docrontab.cpp プロジェクト: DTidd/OpenRDAAPI
static void getcurrentcrons()
{
	FILE *fp=NULL;
	char buffer[512];
	int x=0,y=0;

	if(CRON!=NULL) freeapplib(CRON);
	CRON=APPlibNEW();
	/*
	  This needs to read the /etc/passwd file and check
	  for the rdacron user and report an error using
	  The ErrorDialog Function before trying to continue.
	*/
	sprintf(stemp,"sudo -u rdacron crontab -l",USERLOGIN);
	fp=popen(stemp,"r");
	if(fp!=NULL)
	{
		while(fgets(buffer,sizeof(buffer),fp))
		{
			if(!isEMPTY(buffer) && buffer[0]!='#')
			{
				x=RDAstrlen(buffer);
				for(y=0;y<x;++y)
				{
					if(buffer[y]=='\n' || buffer[y]=='\r')
					{
						if(y+1<x)
						if((buffer[y+1]=='\n' || buffer[y+1]=='\r') && buffer[y]!=buffer[y+1])
						{
							buffer[y]=0;
							++y;
						}
						buffer[y]=0;
						++y;
						break;
					}
				}
				addAPPlib(CRON,buffer);
			}
			memset(buffer,0,sizeof(buffer));
		}
		pclose(fp);
	}
	if(CRON->numlibs<1) addAPPlib(CRON,"No Crontab's Defined");
}
コード例 #13
0
ファイル: alloc.cpp プロジェクト: DTidd/OpenRDAAPI
char *xstralloc(char *d,int line,char *file)
{
	char *temp;

	if(diagmisc && !diagallocx)
	{
		prterr("DIAG xstralloc String Allocated at line [%d] program [%s].",line,file);	
	}
	if(isEMPTY(d)) return(NULL);
	if(diagallocx && diagmisc)
	{		
		temp=(char *)xRmalloc(RDAstrlen(d)+1,line,file);
	} else {
		temp=(char *)Rmalloc(RDAstrlen(d)+1);
	}
	strcpy(temp,d);
	return(temp);
}
コード例 #14
0
ファイル: RDAUserDatabase.cpp プロジェクト: DTidd/OpenRDAAPI
Wt::Auth::PasswordHash RDAUserDatabase::password (const Wt::Auth::User &user) const
{
	char *pw=NULL,*pwm=NULL;
  /*
   * David: return here the password hash of the user with id user.id()
   * Ideally, you should store 'function' and 'value' (salt is usually empty
   * as it's part of the hash).
   */

/* Backload hashed password identification into the file */
/* use 7 methods / times bcrypt */
/*
	Wt::WString pw="somethingIcaneasilyforget";
	PasswordHash result;

	result=Session::passwordAuth().verifier()->hashPassword(pw); */

/* */

  // STUB START
  std::string function = "bcrypt",f2use="";
  std::string salt = "";

  // hash of 'koen' with 7 rounds of bcrypt
  // STUB END
	if(SEC_USERS_FILENO==(-1))
	{
    		return Wt::Auth::PasswordHash("", "", "");
	}
	ZERNRD(SEC_USERS_FILENO);
	FINDFLDSETSTRING(SEC_USERS_FILENO,"USER IDENTIFICATION",user.id().c_str());
	if(EQLNRD(SEC_USERS_FILENO,1)) 
	{
		KEYNRD(SEC_USERS_FILENO,1);
    		return Wt::Auth::PasswordHash("", "", "");
	} else {
/* write PasswordHash result from above into WT PASSWORD */
		FINDFLDGETSTRING(SEC_USERS_FILENO,"WT PASSWORD",&pw);
		FINDFLDGETSTRING(SEC_USERS_FILENO,"WT PASSWORD METHOD",&pwm);
		if(!isEMPTY(pwm)) f2use=pwm;
			else f2use=function;
		return Wt::Auth::PasswordHash(f2use, salt, pw);
	}
} 
コード例 #15
0
ファイル: iterative.c プロジェクト: sameerg10/Ackermann
int ackermann(int m, int n)
 {
    push(m);
    while (!isEMPTY()) {
        pop(&m);
        if (m == 0)
            n = n + 1;
        else if (n == 0){
            n = 1;
            push(m-1);
        }
        else {
            n = n - 1;
            push(m-1);
            push(m);
        }
    }
    return n;
 }
コード例 #16
0
ファイル: purfuncs.cpp プロジェクト: DTidd/OpenRDAAPI
char *xGetAssignNextPOID(short purids,char *poid,void (*SubFunc)(...),void *args,int line,char *file)
{
	char deleteflag=FALSE,assigned=FALSE;
	char *tmp=NULL;
	RDATData *prev=NULL;
	short ef=0;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagmix || diagapps)
	{
		prterr("DIAG GetAssignNextPOID at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	ZERNRD(purids);
	LOCNRDFILE(purids);
	FINDFLDSETSTRING(purids,"PO IDENTIFICATION",poid);
	if(SubFunc!=NULL) ef=ADVGTENRDsec(purids,1,SubFunc,args);
		else ef=GTENRDsec(purids,1);
	while(!ef)
	{
		FINDFLDGETCHAR(purids,"DELETEFLAG",&deleteflag);
		FINDFLDGETCHAR(purids,"ASSIGNED",&assigned);
		FINDFLDGETSTRING(purids,"PO IDENTIFICATION",&tmp);
		if(!isEMPTY(poid)) if(strncmp(tmp,poid,RDAstrlen(poid))) break;
		if(!deleteflag && !assigned)
		{
			prev=RDATDataNEW(purids);
			assigned=TRUE;
			FINDFLDSETCHAR(purids,"ASSIGNED",assigned);
			if(SubFunc!=NULL) ADVWRTTRANSsec(purids,0,NULL,prev,SubFunc,args);
				else WRTTRANSsec(purids,0,NULL,prev);
			if(prev!=NULL) FreeRDATData(prev);
			UNLNRDFILE(purids);
			return(tmp);
		}
		if(SubFunc!=NULL) ef=ADVNXTNRDsec(purids,1,SubFunc,args);
			else ef=NXTNRDsec(purids,1);
	}
	if(tmp!=NULL) Rfree(tmp);
	UNLNRDFILE(purids);
	return(NULL);
}
コード例 #17
0
ファイル: payschk.cpp プロジェクト: DTidd/OpenRDAAPI
void check_warnings(RDArsrc *mainrsrc)
{
	char *temp1=NULL,*temp2=NULL;
	int check_year=0,cal_year=0;
	RDATData *prev=NULL;
	int orig_check=1;

	readallwidgets(mainrsrc);
	FINDRSCGETINT(mainrsrc,"STARTING CHECK NUMBER",&start_check);
	if(record_check_number==TRUE)
	{
		if(!ADVEQLNRDsec(banknum,1,SCRNvirtualSubData,mainrsrc))
		{
			prev=RDATDataNEW(banknum);
			FINDFLDGETINT(banknum,"LAST CHECK NUMBER",&orig_check);
			if(prev!=NULL) FreeRDATData(prev);
		}
		if((orig_check+1)!=start_check)
		{
			WARNINGDIALOG("WARNING DIALOG SCREEN","LAST CHECK NUMBER CHANGED","During this process the BNKACC Last Check Number has changed. Please exit this process and re-access it so that the starting check number defaults correctly.",NULL,NULL,TRUE,NULL);
			return;
		}
	}
	if(!isEMPTY(check_date))
	{
		temp1=stralloc(check_date);
		check_year=atoi(temp1+6);
		temp2=GETCURRENTDATE10();
		cal_year=atoi(temp2+6);
		if(check_year!=cal_year)
		{
			ADVWARNINGDIALOG("WARNING DIALOG SCREEN","CHECK DATE'S YEAR","Warning: The year of the check date does not agree with the year of the system date. Are you sure you wish to continue?",setcheck,NULL,FALSE,1,mainrsrc,NULL,NULL);
			return;
		} else {
			setcheck(mainrsrc);
		}
		if(temp1!=NULL) Rfree(temp1);
		if(temp2!=NULL) Rfree(temp2);
	} else {
		setcheck(mainrsrc);
	}
}
コード例 #18
0
ファイル: dochgids.cpp プロジェクト: DTidd/OpenRDAAPI
int main(int argc,char **argv)
#endif
{
	RDArsrc *mainrsrc=NULL;
	short range_screen=FALSE;
	char *s=NULL;

	if(argc>=4)
	{
		if(InitializeSubsystems(argc,argv,argv[1],argv[2])) 
		{
			return;
		}
		module=stralloc(argv[1]);
	} else {
		fprintf(stdout,"Error not enough arguments....");
		return;
	}
	s=RDA_GetEnv("RANGE_SCREEN");
	if(!isEMPTY(s)) range_screen=TRUE;
		else range_screen=FALSE;
	if((filenum=APPOPNNRD(argv[3],argv[4],TRUE,TRUE))==(-1)) return;
	if((chgfilenum=APPOPNNRD(argv[5],argv[6],TRUE,FALSE))==(-1)) return;
	if(!range_screen)
	{
		selectconv(NULL,&range_screen);
	}
	mainrsrc=RDArsrcNEW(argv[1],s);
	addDFincvir(mainrsrc,argv[3],argv[4],NULL,filenum);
	addDFincvir(mainrsrc,argv[5],argv[6],NULL,chgfilenum);
	GET_ALL_SCREEN_VIRTUALS(mainrsrc,2);
	file2rangersrc(filenum,mainrsrc);
	file2rangersrc(chgfilenum,mainrsrc);
	DefaultScreens(mainrsrc);
	range_screen=TRUE;
	addrfexrsrc(mainrsrc,"SELECT",TRUE,selectconv,&range_screen);
	addrfexrsrc(mainrsrc,"QUIT",TRUE,quitconv,NULL);
	addbtnrsrc(mainrsrc,"HELP",TRUE,screenhelp,NULL);
	addbtnrsrc(mainrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addbtnrsrc(mainrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	APPmakescrn(mainrsrc,TRUE,quitconv,NULL,TRUE);
}
コード例 #19
0
ファイル: payschk.cpp プロジェクト: DTidd/OpenRDAAPI
void quitfunc(RDArsrc *mainrsrc)
{

	APPlib *args=NULL;
	char *temp=NULL;


	if(mainrsrc!=NULL) free_rsrc(mainrsrc);
	mainrsrc=NULL;
	if(banknum!=(-1)) CLSNRD(banknum);
	if(payjmst!=(-1)) CLSNRD(payjmst);
	if(posmstr!=(-1)) CLSNRD(posmstr);
	if(poslmst!=(-1)) CLSNRD(poslmst);
	if(posgrs!=(-1)) CLSNRD(posgrs);
	if(payjpms!=(-1)) CLSNRD(payjpms);
	if(paymstr!=(-1)) CLSNRD(paymstr);
	if(perdmg!=(-1)) CLSNRD(perdmg);
	if(paydpms!=(-1)) CLSNRD(paydpms);
	if(payppms!=(-1)) CLSNRD(payppms);
	if(payddms!=(-1)) CLSNRD(payddms);
	if(payjpms2!=(-1)) CLSNRD(payjpms2);
	if(check_date!=NULL) Rfree(check_date);
	if(vch_expression!=NULL) Rfree(vch_expression);
	if(bank_id!=NULL) Rfree(bank_id);
	if(DID_STUFF)
	{
		args=APPlibNEW();
		addAPPlib(args,"PAYROLL");
		addAPPlib(args,"CHKBNKCHECKNUM");
		if(!isEMPTY(pay_id))
		{
			temp=Rmalloc(RDAstrlen(pay_id)+40);
			sprintf(temp,"SELECTED_PAY_IDENTIFICATION=%s",pay_id);
			RDA_PutEnv(temp);
		}
		Execute2Program("doreport",args);
		if(args!=NULL) freeapplib(args);
	}
	if(pay_id!=NULL) Rfree(pay_id);
	ShutdownSubsystems();
}
コード例 #20
0
ファイル: dftable.cpp プロジェクト: DTidd/OpenRDAAPI
static void copytable(RDArsrc *rsrc,char *copyfrommodule,char *copyfromname,char *copytomodule,char *copytoname)
{
	char *libname=NULL;

	if(DFV!=NULL) { FreeRDATABLE(DFV); DFV=NULL; }
	if(!isEMPTY(copyfrommodule) && !isEMPTY(copyfromname) &&
	!isEMPTY(copytomodule) && !isEMPTY(copytoname))
	{
		DFV=RDATABLENEW(copyfrommodule,copyfromname);
		libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+RDAstrlen(copyfrommodule)+10);
#ifndef WIN32
		sprintf(libname,"%s/rda/%s.TBL",CURRENTDIRECTORY,copyfrommodule);
#endif
#ifdef WIN32
		sprintf(libname,"%s\\rda\\%s.TBL",CURRENTDIRECTORY,copyfrommodule);
#endif
		getRDATablebin(libname,DFV);
		if(libname!=NULL) Rfree(libname);
		if(DFV==NULL)
		{
			prterr("Error: Cannot read RDA Table Definition, either table does not exist or there is an error in permissions.  The user cannot read the table binary library.  Check the permissions, and retry.  Call your installer.");
			return;
		}
	
		DFV->module=stralloc(copytomodule);
		DFV->name=stralloc(copytoname);
		if(!isEMPTY(DFV->module) && !isEMPTY(DFV->name))
		{
			libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+RDAstrlen(DFV->module)+10);
#ifndef WIN32
			sprintf(libname,"%s/rda/%s.TBL",CURRENTDIRECTORY,DFV->module);
#endif
#ifdef WIN32
			sprintf(libname,"%s\\rda\\%s.TBL",CURRENTDIRECTORY,DFV->module);
#endif
			if(writeRDATablebin(libname,DFV))
			{
				prterr("Error: Cannot write RDA Table Definition.  Check the permissions on the RDA Table Binary Library, and retry.");
			}
			if(libname!=NULL) Rfree(libname);
			FreeRDATABLE(DFV);
		}
	}
}
コード例 #21
0
ファイル: xsetup.cpp プロジェクト: DTidd/OpenRDAAPI
short xgetXPERTbin(XPERTstp *x,char *liboverride,int line,char *file)
{
	short y,test=0;
	int test2=0;
	BIN *bin;
	char *libname=NULL;
	short version=0;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagmix)
	{
		prterr("DIAG getXPERTbin Reading Xpert Setup Binary at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	if(isEMPTY(liboverride))
	{
		libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+16);
#ifndef WIN32
		sprintf(libname,"%s/rda/XPERT.STP",CURRENTDIRECTORY);	
#endif
#ifdef WIN32
		sprintf(libname,"%s\\rda\\XPERT.STP",CURRENTDIRECTORY);	
#endif
	} else {
		libname=Rmalloc(RDAstrlen(liboverride)+12);
#ifndef WIN32
		sprintf(libname,"%s/XPERT.STP",liboverride);	
#endif
#ifdef WIN32
		sprintf(libname,"%s\\XPERT.STP",liboverride);	
#endif
	}
	bin=getlibbin(libname,"XPERT SETUP",TRUE);
	if(bin==NULL) return(-1);
	y=BINgetshort(bin);
	if(y!=(-1683) && y!=(-1684) && y!=(-1685) && y!=(-1686) && y!=(-1687) && y!=(-1688) && y!=(-1689) && y!=(-1690) && 
 	 	y!=(-1691) && y!=(-1692) && y!=(-1693) && y!=(-1694) && 
		y!=(-1695) && y!=(-1696) && y!=(-1697) && y!=(-1698) && 
		y!=(-1699) && y!=(-1701) && y!=(-1700))
	{
		prterr("Error Invalid version or bad binary for [XPERT SETUP] in [%s] at line [%d] program [%s].",libname,line,file);
		BINfree(bin);
		if(libname!=NULL) Rfree(libname);
		return(-1);
	}
	if(y==(-1683)) version=19;
	else if(y==(-1684)) version=18;
	else if(y==(-1685)) version=17;
	else if(y==(-1686)) version=16;
	else if(y==(-1687)) version=15;
	else if(y==(-1688)) version=14;
	else if(y==(-1689)) version=13;
	else if(y==(-1690)) version=12;
	else if(y==(-1691)) version=11;
	else if(y==(-1692)) version=10;
	else if(y==(-1693)) version=9;
	else if(y==(-1694)) version=8;
	else if(y==(-1695)) version=7;
	else if(y==(-1696)) version=6;
	else if(y==(-1697)) version=5;
	else if(y==(-1698)) version=4;
	else if(y==(-1699)) version=3;
	else if(y==(-1700)) version=2;
	else if(y==(-1701)) version=1;

	if(libname!=NULL) Rfree(libname);
	test=BINgetshort(bin);
	if(test) x->company_name=BINgetstring(bin);
		else x->company_name=NULL;
	test=BINgetshort(bin);
	if(test) x->addr1=BINgetstring(bin);
		else x->addr1=NULL;
	test=BINgetshort(bin);
	if(test) x->addr2=BINgetstring(bin);
		else x->addr2=NULL;
	test=BINgetshort(bin);
	if(test) x->city=BINgetstring(bin);
		else x->city=NULL;
	test=BINgetshort(bin);
	if(test) x->state=BINgetstring(bin);
		else x->state=NULL;
	test=BINgetshort(bin);
	if(test) x->zip=BINgetstring(bin);
		else x->zip=NULL;
	test=BINgetshort(bin);
	if(test) x->phone=BINgetstring(bin);
		else x->phone=NULL;
	if(version>2)
	{
		test=BINgetshort(bin);
		if(test) x->fax=BINgetstring(bin);
			else x->fax=NULL;
		test=BINgetshort(bin);
		if(test) x->use_century_threshold=TRUE;
			else x->use_century_threshold=FALSE;
		x->century_threshold=BINgetshort(bin);
	} else {
		x->fax=NULL;
		x->century_threshold=0;
		x->use_century_threshold=FALSE;
	}
	if(version>1)
	{
		test=BINgetshort(bin);
		x->UTILITIES=(char)test;
		test=BINgetshort(bin);
		x->FINMGT=(char)test;
		test=BINgetshort(bin);
		x->BNKREC=(char)test;
		test=BINgetshort(bin);
		x->PRSNNL=(char)test;
		test=BINgetshort(bin);
		x->IIDMGT=(char)test;
		test=BINgetshort(bin);
		x->APPMGT=(char)test;
		test=BINgetshort(bin);
		x->POSTRK=(char)test;
		test=BINgetshort(bin);
		x->PAYROLL=(char)test;
		test=BINgetshort(bin);
		x->SUBMGT=(char)test;
		test=BINgetshort(bin);
		x->LVEMGT=(char)test;
		test=BINgetshort(bin);
		x->EMPABS=(char)test;
		test=BINgetshort(bin);
		x->BFTMGT=(char)test;
		test=BINgetshort(bin);
		x->PAYENC=(char)test;
		test=BINgetshort(bin);
		x->VENPMT=(char)test;
		test=BINgetshort(bin);
		x->PURORD=(char)test;
		test=BINgetshort(bin);
		x->CATALOGUE=(char)test;
		test=BINgetshort(bin);
		x->REQMGT=(char)test;
		test=BINgetshort(bin);
		x->FIXASS=(char)test;
		test=BINgetshort(bin);
		x->INVCTL=(char)test;
		test=BINgetshort(bin);
		x->OCCTAX=(char)test;
		test=BINgetshort(bin);
		x->BUDPREP=(char)test;
		test=BINgetshort(bin);
		x->MISCBILL=(char)test;
		test=BINgetshort(bin);
		x->TAXCLT=(char)test;
		test=BINgetshort(bin);
		x->RLSTMGT=(char)test;
		test=BINgetshort(bin);
		x->PPTMGT=(char)test;
		test=BINgetshort(bin);
		x->STUDFIN=(char)test;
		test=BINgetshort(bin);
		x->VEHMTN=(char)test;
		test=BINgetshort(bin);
		x->WRKORD=(char)test;
	}
	if(version>3)
	{
		test=BINgetshort(bin);
		x->TOOLS=(char)test;
		test=BINgetshort(bin);
		x->TRANSACTIONS=(char)test;
		test=BINgetshort(bin);
		x->EXTENSIONS=(char)test;
		test2=BINgetint(bin);
		x->software_type=(int)test2;
	} else {
		x->TOOLS=TRUE;
		x->TRANSACTIONS=TRUE;
		x->EXTENSIONS=TRUE;
		x->software_type=0;
	}
	if(version>4)
	{
		test=BINgetshort(bin);
		x->SECURITYEXTENSIONS=(char)test;
	} else {
		x->SECURITYEXTENSIONS=TRUE;
	}
	if(version>5)
	{
		test=BINgetshort(bin);
		x->RLVEMGT=(char)test;
	} else {
		x->RLVEMGT=FALSE;
	}
	if(version>6)
	{
		test=BINgetshort(bin);
		x->PROPERTY=(char)test;
		test=BINgetshort(bin);
		x->VIOLATION=(char)test;
	} else {
		x->PROPERTY=FALSE;
		x->VIOLATION=FALSE;
	}
	if(version>7)
	{
		test=BINgetshort(bin);
		x->UTLBLL=(char)test;
	} else {
		x->UTLBLL=FALSE;
	}
	if(version>8)
	{
		test=BINgetshort(bin);
		x->DMVREG=(char)test;
	} else {
		if(x->PPTMGT) x->DMVREG=TRUE;
			else x->DMVREG=FALSE;
	}
	if(version>9)
	{
		test=BINgetshort(bin);
		x->LVSIMP=(char)test;
	} else {
		if(x->LVEMGT) x->LVSIMP=TRUE;
			else x->LVSIMP=FALSE;
	}
	if(version>10)
	{
		test=BINgetshort(bin);
		x->CSHDWR=(char)test;
		test=BINgetshort(bin);
		x->RREQMGT=(char)test;
		test=BINgetshort(bin);
		x->BLDPRMT=(char)test;
	} else {
		x->CSHDWR=FALSE;
		x->RREQMGT=FALSE;
		x->BLDPRMT=FALSE;
	}
	if(version>14)
	{
		test=BINgetshort(bin);
		x->CITWEB=(char)test;
	} else {
		x->CITWEB=FALSE;
	}
	if(version>15)
	{
		test=BINgetshort(bin);
		x->OPENSOURCE=(char)test;
	} else {
		x->OPENSOURCE=FALSE;
	}
	if(version>11)
	{
		test=BINgetshort(bin);
		x->SimpleMenu=(char)test;
		x->OrgType=BINgetshort(bin);
	} else {
		if(x->software_type==2) x->SimpleMenu=TRUE;
			else x->SimpleMenu=FALSE;
		x->OrgType=0;
	}
	if(version>12)
	{
		test=BINgetshort(bin);
		x->ShowDefineListNew=(char)test;
		x->NoUsers=BINgetint(bin);
		test=BINgetshort(bin);
		x->UseEndDate=(char)test;
		test=BINgetshort(bin);
		if(test) x->EndDate=BINgetstring(bin);
			else x->EndDate=NULL;
		test=BINgetshort(bin);
		if(test) x->ProgDir=BINgetstring(bin);
			else x->ProgDir=NULL;
		test=BINgetshort(bin);
		if(test) x->DataDir=BINgetstring(bin);
			else x->DataDir=NULL;
	} else {
		x->ShowDefineListNew=FALSE;
		x->NoUsers=0;
		x->UseEndDate=FALSE;
		x->EndDate=NULL;
		x->ProgDir=NULL;
		x->DataDir=NULL;
	}
	if(version>13)
	{
		test=BINgetshort(bin);
		if(test) x->SoftwareKey=BINgetstring(bin);
			else x->SoftwareKey=NULL;
	} else {
		x->SoftwareKey=NULL;
	}
	if(version>16)
	{
		test=BINgetshort(bin);
		if(test) x->ARCHIVE=TRUE;
			else x->ARCHIVE=FALSE;
	} else {
		x->ARCHIVE=FALSE;
	}
	if(version>17)
	{
		test=BINgetshort(bin);
		if(test) x->CIS=TRUE;
			else x->CIS=FALSE;
		test=BINgetshort(bin);
		if(test) x->ASP=TRUE;
			else x->ASP=FALSE;
		test=BINgetshort(bin);
		if(test) x->BARCODING=TRUE;
			else x->BARCODING=FALSE;
		test=BINgetshort(bin);
		if(test) x->CREDITCARDS=TRUE;
			else x->CREDITCARDS=FALSE;
		test=BINgetshort(bin);
		if(test) x->FOODSVC=TRUE;
			else x->FOODSVC=FALSE;
		test=BINgetshort(bin);
		if(test) x->ROLLACCT=TRUE;
			else x->ROLLACCT=FALSE;
		x->AccountingMethod=BINgetshort(bin);
	} else {
		x->CIS=FALSE;
		x->ASP=FALSE;
		x->BARCODING=FALSE;
		x->CREDITCARDS=FALSE;
		x->FOODSVC=FALSE;
		x->ROLLACCT=FALSE;
		x->AccountingMethod=0;
	}
	if(version>18)
	{
		test=BINgetshort(bin);
		if(test) x->HRM=TRUE;
			else x->HRM=FALSE;
	} else x->HRM=FALSE;
	BINfree(bin);
	return(version);
}
コード例 #22
0
ファイル: payschk.cpp プロジェクト: DTidd/OpenRDAAPI
void setcheck(RDArsrc *mainrsrc)
{
	short ef=0,increment_diagnostic=FALSE,payjpms_keyno=0;
	RangeScreen *rs=NULL;
	DBsort *sortfile=NULL;
	char *sortname=NULL,*perid=NULL,*last_perid=NULL,*e=NULL;
	char *bankid1=NULL,*payid1=NULL;
	RDArsrc *tmprsrc=NULL;
	int check_number=0,x=0;
	NRDpart *part;
	NRDkey *key=NULL;
	RDAvirtual *v;
	char deleteflag=FALSE,benefits_computed=FALSE;
	char cprinted=FALSE;
	/* char *libx=NULL,*temp1=NULL; */
	double net=0;
	RDATData *prev_file=NULL;
	RDATData *prev=NULL;
	NRDfield *CNET=NULL;

	CNET=FLDNRD(payjpms,"CHECK NET");
	readallwidgets(mainrsrc);
	FINDRSCGETSTRING(mainrsrc,"EXPRESSION",&vch_expression);
	FINDRSCGETSTRING(mainrsrc,"[PAYMSTR][PAY IDENTIFICATION]",&pay_id);
	if(banknum!=(-1))
	{			
		FINDRSCGETSTRING(mainrsrc,"[BNKACC][BANK IDENTIFICATION]",&bank_id);
	}
	sortname=unique_name();
	sortfile=DBsortNEW(module,sortname,NRDRdaEngine);
	if(sortname!=NULL) Rfree(sortname);
	makeDBsortfile(sortfile);
	sortfile->fileno=OPNDBsort(sortfile);
	rs=RangeScreenNew(mainrsrc);
	ReadRangeScreen(payjpms,rs);
	ReadRangeScreen(payppms,rs);
	ReadRangeScreen(payjmst,rs);
	ReadRangeScreen(perdmg,rs);
	if(posmstr!=(-1))
	{
		ReadRangeScreen(posmstr,rs);
		ReadRangeScreen(poslmst,rs);
	}
	if(mainrsrc->virflds!=NULL)
	{
		for(x=0,v=mainrsrc->virflds;x<mainrsrc->num;++x,++v)
		{
			ReadVirtualRangeStruct(v,rs);
		}
	}
	tmprsrc=diagscrn(payjpms,"DIAGNOSTIC SCREEN",module,
		"Setting Job Pay Masters....",NULL);
	if(tmprsrc!=NULL)
	{
		if(!ADVmakescrn(tmprsrc,TRUE))
		{	
			ForceWindowUpdate(tmprsrc);
		} else {
			e=Rmalloc(130+RDAstrlen(tmprsrc->module)+RDAstrlen(tmprsrc->screen));
			sprintf(e,"The Make Screen function failed for the custom screen [%s] [%s]. Check to see the screen is available. If it is, call your installer.",tmprsrc->module,tmprsrc->screen);
			WARNINGDIALOG("WARNING DIALOG SCREEN","MAKESCRN FAILED",e,NULL,NULL,FALSE,NULL);
			prterr("Error %s.",e);
			if(e!=NULL) Rfree(e);
		}
	}
	payjpms_keyno=KEYNUMBER(payjpms,"RDA PAYJPMS KEY");
	if(payjpms_keyno<1) payjpms_keyno=1;
	ZERNRD(payjpms);
	FINDFLDSETSTRING(payjpms,"PAY IDENTIFICATION",pay_id);
	ef=ADVGTENRDsec(payjpms,payjpms_keyno,SCRNvirtualSubData,mainrsrc);
	while(!ef)
	{
		FINDFLDGETSTRING(payjpms,"PAY IDENTIFICATION",&payid1);
		if(RDAstrcmp(payid1,pay_id)) break;
		increment_diagnostic=FALSE;
		FINDFLDGETCHAR(payjpms,"DELETEFLAG",&deleteflag);
		if(banknum!=(-1))
		{
			if(!isEMPTY(bank_id))
			{
				FINDFLDGETSTRING(payjpms,"BANK IDENTIFICATION",&bankid1);
			}
		}
		FINDFLDGETSTRING(payjpms,"PERSONNEL IDENTIFICATION",&perid);
		FINDFLDGETDOUBLE(payjpms,"CHECK NET",&net);
		if(net!=0.0 || CNET==NULL)
		{
		if(!deleteflag && !RDAstrcmp(bank_id,bankid1))
		{
			FINDFLDSETSTRING(payppms,"PERSONNEL IDENTIFICATION",perid);
			FINDFLDSETSTRING(payppms,"PAY IDENTIFICATION",payid1);
			if(!ADVEQLNRDsec(payppms,1,SCRNvirtualSubData,mainrsrc))
			{
			FINDFLDGETCHAR(payppms,"DELETEFLAG",&deleteflag);
			FINDFLDGETCHAR(payppms,"BENEFITS COMPUTED",&benefits_computed);
			FINDFLDGETCHAR(payppms,"CHECK PRINTED",&cprinted);
			if(!deleteflag && benefits_computed && !cprinted)
			{
			FINDFLDSETSTRING(payjmst,"PERSONNEL IDENTIFICATION",perid);
			COPYFIELD(payjpms,payjmst,"JOB NUMBER");
			if(!ADVEQLNRDsec(payjmst,1,SCRNvirtualSubData,mainrsrc))
			{
				FINDFLDGETCHAR(payjmst,"DELETEFLAG",&deleteflag);
				if(!deleteflag)
				{
					FINDFLDSETSTRING(perdmg,"PERSONNEL IDENTIFICATION",perid);
					if(!ADVEQLNRDsec(perdmg,1,SCRNvirtualSubData,mainrsrc))
					{
						FINDFLDGETCHAR(perdmg,"DELETEFLAG",&deleteflag);
						if(!deleteflag)
						{
							if(!testfilerangersrc(payjpms,rs) && 
								!testfilerangersrc(payjmst,rs) &&
								!testfilerangersrc(payppms,rs) &&
								!testfilerangersrc(perdmg,rs)) 
							{
							if((check_postrk(mainrsrc,rs))==TRUE)
							{
								for(x=0,v=mainrsrc->virflds;
									x<mainrsrc->num;++x,++v)
								{
									if(ADVtestvirtualrangersrc(v,rs,(void (*)(...))SCRNvirtualSubData,mainrsrc)) 
										break;
								}
								if(x>=mainrsrc->num)
								{
									if(vch_expression!=NULL)
									{
										if(EVALUATEbol(vch_expression,
											SCRNvirtualSubData,
											mainrsrc))
										{
											if(csortsequence!=NULL)
											{
												computevirtual(csortsequence,SCRNvirtualSubData,mainrsrc);
											}
											addsortrecord(sortfile);
											increment_diagnostic=TRUE;
										}
									} else {
										if(csortsequence!=NULL)
										{
											computevirtual(csortsequence,SCRNvirtualSubData,mainrsrc);
										}
										addsortrecord(sortfile);
										increment_diagnostic=TRUE;
									}
								}
							}
							}
						}
					}
				}
			}
			}
			}
		}
		}
		if(tmprsrc!=NULL) update_diagnostic(tmprsrc,increment_diagnostic);
		if(bankid1!=NULL) Rfree(bankid1);
		CLEAR_SCREEN_VIRTUAL(mainrsrc);
		ef=ADVNXTNRDsec(payjpms,payjpms_keyno,SCRNvirtualSubData,mainrsrc);
	}
	if(payid1!=NULL) Rfree(payid1);
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
	}
	if(rs!=NULL) FreeRangeScreen(rs);
	if(SIZNRD(sortfile->fileno))
	{
		key=KEYNUM(payjpms,1);
		if(key!=NULL)
		{
			tmprsrc=diagscrn(sortfile->fileno,"DIAGNOSTIC SCREEN",
				module,"Setting Check Numbers...",NULL);
			if(tmprsrc!=NULL)
			{
				if(!ADVmakescrn(tmprsrc,TRUE))
				{	
					ForceWindowUpdate(tmprsrc);
				} else {
					e=Rmalloc(130+RDAstrlen(tmprsrc->module)+RDAstrlen(tmprsrc->screen));
					sprintf(e,"The Make Screen function failed for the custom screen [%s] [%s]. Check to see the screen is available. If it is, call your installer.",tmprsrc->module,tmprsrc->screen);
					WARNINGDIALOG("WARNING DIALOG SCREEN","MAKESCRN FAILED",e,NULL,NULL,FALSE,NULL);
					prterr("Error %s.",e);
					if(e!=NULL) Rfree(e);
				}
			}
			check_number=start_check;
			ef=FRSNRD(sortfile->fileno,1);
			FINDFLDGETSTRING(sortfile->fileno,"PERSONNEL IDENTIFICATION",
				&perid);
			last_perid=stralloc(perid);
			LOCNRDFILE(banknum);
			while(!ef)
			{
				FINDFLDGETSTRING(sortfile->fileno,"PERSONNEL IDENTIFICATION",&perid);
				if(RDAstrcmp(last_perid,perid))
				{
					if(last_perid!=NULL) Rfree(last_perid);
					++check_number;
					last_perid=stralloc(perid);
				}
				for(x=0,part=key->part;x<key->numparts;++x,++part)
					COPYFIELD(sortfile->fileno,payjpms,part->name);
				if(!ADVEQLNRDsec(payjpms,1,SCRNvirtualSubData,mainrsrc))
				{
					prev_file=RDATDataNEW(payjpms);
					FINDFLDSETINT(payjpms,"CHECK NUMBER",check_number);
					FINDFLDSETSTRING(payjpms,"CHECK DATE",check_date);
					ADVWRTTRANSsec(payjpms,0,NULL,prev_file,SCRNvirtualSubData,mainrsrc);
					DID_STUFF=TRUE;
					if(prev_file!=NULL) FreeRDATData(prev_file);
				}
				if(tmprsrc!=NULL) update_diagnostic(tmprsrc,TRUE);
				ef=NXTNRD(sortfile->fileno,1);
			}
			if(tmprsrc!=NULL)
			{
				killwindow(tmprsrc);
				free_rsrc(tmprsrc);
			}
			if(record_check_number==TRUE)
			{
				if(!ADVEQLNRDsec(banknum,1,SCRNvirtualSubData,mainrsrc))
				{
					prev=RDATDataNEW(banknum);
					FINDFLDSETINT(banknum,"LAST CHECK NUMBER",check_number);
					ADVWRTTRANSsec(banknum,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
					if(prev!=NULL) FreeRDATData(prev);
				}
/*
				libx=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+15);
#ifdef WIN32
				sprintf(libx,"%s\\%s\\",CURRENTDIRECTORY,"BNKREC");
#endif
#ifndef WIN32
				sprintf(libx,"%s/%s/",CURRENTDIRECTORY,"BNKREC");
#endif
				sprintf(stemp,"%s.CHK",(bank_id!=NULL ? bank_id:""));
				temp1=adddashes(stemp);
				getnexttran(libx,temp1,check_number);
				if(temp1!=NULL) Rfree(temp1);
				if(libx!=NULL) Rfree(libx);
*/
			}
		}
		UNLNRDFILE(banknum);
	} else {
		/*
		   prterr("Error no Job Pay Masters selected."); 
		 */
		ERRORDIALOG("Set Check Number Error","No check numbers were assigned for the selected pay identification.  Please try again.",NULL,FALSE);
	}
	if(perid!=NULL) Rfree(perid);
	if(last_perid!=NULL) Rfree(last_perid);
	if(bankid1!=NULL) Rfree(bankid1);
	if(sortfile!=NULL) 
	{
		CLSDBsort(sortfile);
		FreeDBsort(sortfile);
	}
}
コード例 #23
0
ファイル: payschk.cpp プロジェクト: DTidd/OpenRDAAPI
void makeDBsortfile(DBsort *dbsrt)
{
	DFvirtual *d=NULL;
	NRDkey *key=NULL;
	NRDpart *part;
	NRDfield *field;
	int x=0;
	short sortkeyno=(-1),keyno=(-1);
	char *temp=NULL;

	addDBfield(dbsrt,"DELETEFLAG",BOOLNS,1);
	sortkeyno=addDBkey(dbsrt,"SORT FILE MAIN KEY");
	d=getDFvirtual("PAYROLL","CHECK SORT SEQUENCE");
	if(d!=NULL)
	{
		csortsequence=Rmalloc(sizeof(RDAvirtual));
		csortsequence->name=stralloc(d->name);
		csortsequence->when=0;
		csortsequence->len=d->length;
		csortsequence->type=d->type;
		if(d->expression!=NULL) 
		{
			csortsequence->expression=PP_translate(d->expression);
		} else csortsequence->expression=NULL;
		csortsequence->computed=FALSE;
		csortsequence->range=FALSE;
		csortsequence->dlen=0;
		if(!isEMPTY(csortsequence->expression))
		{
			temp=PP_translate(csortsequence->expression);
			Rfree(csortsequence->expression);	
			if(temp!=NULL)
			{
				csortsequence->expression=stralloc(temp);
				Rfree(temp);
			}
		}		
		switch(csortsequence->type)
		{
			case SCROLLEDTEXT:
			case VARIABLETEXT:
			case DATES:
			case TIMES:
			case SOCSECNUM:
			case PLAINTEXT:
			case ZIPCODE:
			case PHONE:
			case CUSTOMTYPE:
			case EXPENDITURE:
			case REVENUE:
			case BALANCESHEET:
			case BEGINNINGBALANCE:
			case OPTIONALFIELDS:
				csortsequence->value.string_value=NULL;
				csortsequence->dlen=0;
				break;
			case BOOLNS:
			case CHARACTERS:
				csortsequence->value.string_value=Rmalloc(1);
				*csortsequence->value.string_value=0;
				csortsequence->dlen=1;
				break;
			case DECIMALV:
			case DOUBLEV:
			case SDOUBLEV:
			case DOLLARS:
			case SDECIMALV:
				csortsequence->value.float_value=Rmalloc(sizeof(double));
				*csortsequence->value.float_value=0;
				csortsequence->dlen=sizeof(double);
				break;
			case SHORTV:
			case SSHORTV:
				csortsequence->value.short_value=Rmalloc(sizeof(short));
				*csortsequence->value.short_value=0;
				csortsequence->dlen=sizeof(short);
				break;
			case SCROLLEDLIST:
			case LONGV:
			case SLONGV:
				csortsequence->value.integer_value=Rmalloc(sizeof(int));
				*csortsequence->value.integer_value=0;
				csortsequence->dlen=sizeof(int);
				break;
			default:
				prterr("Error virtual field type [%d] not found for field [%s].",csortsequence->type,csortsequence->name);
				break;
		}
		addDBfield(dbsrt,csortsequence->name,csortsequence->type,
			csortsequence->len);
		addDBkeypart(dbsrt,sortkeyno,csortsequence->name);
		FreeDFvirtual(d);
	}
	keyno=KEYNUMBER(payjpms,"PAYJPMS KEY");
	if(keyno==(-1))
	{
		 prterr("Error Payroll Set Check Numbers: Can't find the PAYJPMS KEY, using Key Number 1");
		 keyno=1;
	}
	key=KEYNUM(payjpms,keyno);
	if(key!=NULL)
	{
		for(x=0,part=key->part;x<key->numparts;++x,++part)
		{
			field=FLDNRD(payjpms,part->name);
			if(field!=NULL) 
				addDBfield(dbsrt,field->name,field->type,field->len);
			addDBkeypart(dbsrt,sortkeyno,part->name);
		}
	}
}
コード例 #24
0
ファイル: accfuncs.cpp プロジェクト: DTidd/OpenRDAAPI
char *xMergeImage(char *acct,char *image,short type,short def_type,
	int line,char *file)
{
	RDAacct *holdacct=NULL;
	char *tmp=NULL,*def=NULL;
	unsigned length=0;
	int x,y;

#ifdef USE_RDA_DIAGNOSTICS
	if(diaggui)
	{
		prterr("DIAG MergeImage Merging Account Code [%s] with Image [%s] at line [%d] program [%s].",(acct!=NULL ? acct:""),(image!=NULL ? image:""),line,file);
	}
#endif /* USE_RDA_DIAGNOSTICS */
	if(isEMPTY(image))
	{
		tmp=stralloc(acct);
		return(tmp);
	} else if(isEMPTY(acct) && isEMPTY(image))
	{
#ifdef USE_RDA_DIAGNOSTICS
		if(diaggui)
		{
			prterr("DIAG MergeImage Returning [%s] to line [%d] program [%s].",(tmp!=NULL ? tmp:""),line,file);
		}
#endif /* USE_RDA_DIAGNOSTICS */
		return(tmp);
	}
	switch(type)
	{
		case EXPENDITURE:	
			if(EXPENDITURE_ACCOUNT->num>def_type)
			{
				holdacct=EXPENDITURE_ACCOUNT->codetype+def_type;
			}
			break;
		case REVENUE:		
			if(REVENUE_ACCOUNT->num>def_type)
			{
				holdacct=REVENUE_ACCOUNT->codetype+def_type;
			}
			break;
		case BALANCESHEET:	
			if(BALANCE_SHEET_ACCOUNT->num>def_type) 
			{
				holdacct=BALANCE_SHEET_ACCOUNT->codetype+def_type;
			}
			break;
		case BEGINNINGBALANCE:	
			if(BEGINNING_BALANCE_ACCOUNT->num>def_type)
			{
				holdacct=BEGINNING_BALANCE_ACCOUNT->codetype+def_type;
			}
			break;
		case CUSTOMTYPE:
			if(CUSTOM_INPUTS_ACCOUNT->num>def_type)
			{
				holdacct=CUSTOM_INPUTS_ACCOUNT->codetype+def_type;
			}
			break;
		default:
			prterr("Error Account type [%d] invalid at line [%d] program [%s] in MergeImage.",type,line,file);
			return(NULL);
	}
	def=fullacctdef(holdacct);
	length=RDAstrlen(def);
	tmp=Rmalloc((void *)length+1);
	memset(tmp,0,length+1);
	memset(tmp,' ',length);
	if(!isEMPTY(image)) 
	{
		y=RDAstrlen(image);
		if(y>length)
		{
			memcpy(tmp,image,length);
		} else {
			memcpy(tmp,image,y);
		}
	}
	for(x=0;x<length;++x)
	{
		if((def[x]=='A' || def[x]=='N' || def[x]=='X' || def[x]=='*') && tmp[x]==' ') 
		{
			tmp[x]=acct[x];
		} else if(def[x]=='-' || def[x]==' ' || def[x]=='0') tmp[x]=def[x];
	}
	tmp[length]=0;
#ifdef USE_RDA_DIAGNOSTICS
	if(diaggui)
	{
		prterr("DIAG MergeImage Returning [%s] to line [%d] program [%s].",tmp,line,file);
	}
#endif /* USE_RDA_DIAGNOSTICS */
	return(tmp);
}
コード例 #25
0
ファイル: dochgids.cpp プロジェクト: DTidd/OpenRDAAPI
short convertfield(RDArsrc *tmprsrc,RangeScreen *rs,short range_screen)
{
	short retval=FALSE,a=FALSE,ef=FALSE,rngkey=FALSE;
	char delflag=FALSE,*selectexp=NULL,*temp=NULL,*fieldname=NULL;
	char *matchvalue=NULL,*newvalue=NULL,*tmp=NULL,*tmp2=NULL;
	NRDfield *field=NULL;
	int length=0,x,len=0,len1=0,chgtype=0;

	if(range_screen) rngkey=setfilekeyFROMrangersrc(chgfilenum,1,rs);
	if(rngkey && range_screen)	
	{
		ef=ADVGTENRDsec(chgfilenum,1,SCRNvirtualSubData,tmprsrc);
	} else ef=ADVBEGNRDsec(chgfilenum,SCRNvirtualSubData,tmprsrc);
	while(!ef)
	{
		FINDFLDGETCHAR(chgfilenum,"DELETEFLAG",&delflag);
		if(range_screen)
		{
			a=testfilerangersrc(chgfilenum,rs);
		} else a=FALSE;
		if(!delflag && !a)
		{
			FINDFLDGETSTRING(chgfilenum,"SELECT EXPRESSION",&selectexp);
			if(!isEMPTY(selectexp))
			{
				a=EVALUATEbol(selectexp,SCRNvirtualSubData,tmprsrc);
			} else a=TRUE;
			if(a)
			{
				FINDFLDGETSTRING(chgfilenum,"FIELD NAME",&fieldname);
				if(!isEMPTY(fieldname))
				{
					FINDFLDGETSTRING(chgfilenum,"MATCH VALUE",&matchvalue);
					FINDFLDGETSTRING(chgfilenum,"NEW VALUE",&newvalue);
					FINDFLDGETINT(chgfilenum,"CHANGE TYPE",&chgtype);
					field=FLDNRD(filenum,fieldname);
					if(field!=NULL)
					{
						switch(field->type)
						{
							case SCROLLEDTEXT:
							case VARIABLETEXT:
							case DATES:
							case TIMES:
							case SOCSECNUM:
							case PLAINTEXT:
							case ZIPCODE:
							case PHONE:
							case CUSTOMTYPE:
							case EXPENDITURE:
							case REVENUE:
							case BALANCESHEET:
							case BEGINNINGBALANCE:
							case OPTIONALFIELDS:
								if(!chgtype)
								{
									temp=EVALUATEstr(newvalue,SCRNvirtualSubData,tmprsrc);
									if(!isEMPTY(temp))
									{
										length=RDAstrlen(temp);
										QUICKALLOC(field->data.string_value,field->dlen,length);
										memset(field->data.string_value,0,field->dlen);
										memcpy(field->data.string_value,temp,length+1);
									} else if(field->dlen>0 && field->data.string_value!=NULL)
									{
										memset(field->data.string_value,0,field->dlen);
									}
									if(temp!=NULL) Rfree(temp);
								} else if(!isEMPTY(field->data.string_value))
								{
									while(TRUE)
									{
										if(!RDAstrstr(field->data.string_value,matchvalue)) break;
										len=RDAstrlen(matchvalue);
										len1=RDAstrlen(field->data.string_value);
										for(x=0;x<(len1-len+1);++x)
										{
											if(!strncmp(&field->data.string_value[x],matchvalue,len))
											{
												retval=TRUE;
												length=len1-3+RDAstrlen(newvalue);
												if(tmp!=NULL) Rfree(tmp);
												tmp=Rmalloc(length);
												if(x<1)
												{ 
													sprintf(tmp,"%s%s",newvalue,&field->data.string_value[len]);
												} else if(x<(len1-len))
												{
													sprintf(tmp,"%.*s%s%s",x,&field->data.string_value[0],newvalue,&field->data.string_value[x+len]);
												} else {
													if(tmp2!=NULL) Rfree(tmp2);
													tmp2=stralloc(field->data.string_value);
													tmp2[RDAstrlen(tmp2)-len]=0;
													sprintf(tmp,"%s%s",tmp2,
														newvalue);
												}
												if(!isEMPTY(tmp))
												{
													len=RDAstrlen(tmp);
													QUICKALLOC(field->data.string_value,field->dlen,len);
													memset(field->data.string_value,0,field->dlen);
													memcpy(field->data.string_value,tmp,len+1);
												} else if(field->data.string_value!=NULL)
												{
													memset(field->data.string_value,0,field->dlen);
												}
												if(tmp!=NULL) Rfree(tmp);
												break;
											}
										}
									}
								}
								break;
							case BOOLNS:
							case CHARACTERS:
								*field->data.string_value=EVALUATEbol(newvalue,SCRNvirtualSubData,tmprsrc);
								break;
							case DECIMALV:
							case DOUBLEV:
							case SDOUBLEV:
							case DOLLARS:
							case DOLLARS_NOCENTS:
							case SDECIMALV:
								*field->data.float_value=EVALUATEdbl(newvalue,SCRNvirtualSubData,tmprsrc);
								break;
							case SHORTV:
							case SSHORTV:
								*field->data.short_value=EVALUATEsht(newvalue,SCRNvirtualSubData,tmprsrc);
								break;
							case LONGV:
							case SLONGV:
								*field->data.integer_value=EVALUATEint(newvalue,SCRNvirtualSubData,tmprsrc);
								break;
							default:
								prterr("Error Field Type [%d] is invalid in Field [%s].",field->type,field->name);
								break;
						}
					} else {
						prterr("Error Field [%s] not found in [%s][%s].",fieldname,MODULENAME(filenum),FILENAME(filenum));
					}
				} else {
					prterr("Error Field Name is NULL in CHANGE RECORD.");
				}
			}
		}
		if(rngkey && range_screen)
		{
			ef=ADVNXTNRDsec(chgfilenum,1,SCRNvirtualSubData,tmprsrc);
			if(!ef)
			{
				ef=testfilekeyTOrangersrc(chgfilenum,1,rs);
			}
		} else  ef=ADVSEQNRDsec(chgfilenum,SCRNvirtualSubData,tmprsrc);
	}
	if(selectexp!=NULL) Rfree(selectexp);
	if(fieldname!=NULL) Rfree(fieldname);
	if(matchvalue!=NULL) Rfree(matchvalue);
	if(newvalue!=NULL) Rfree(newvalue);
	if(tmp!=NULL) Rfree(tmp);
	if(tmp2!=NULL) Rfree(tmp2);
	return(retval);
}
コード例 #26
0
ファイル: rlstfunc.cpp プロジェクト: DTidd/OpenRDAAPI
void xUpdateRealEstate(short taxdwr,short rstmst,short rstnew,
	short rstrn,short rstpd,double amount,void (*SubFunc)(...),
	void *args,int line,char *file)
{
	RDATData *prev=NULL;
	double total=0.0;
	int x=0,numflds=0,trantype=0,yearid=0,trans=0,paynum=(-1);
	short pmonth=0,ef=FALSE;
	char *temp=NULL,*realestateid=NULL,*ownerid=NULL,dist=FALSE;
	NRDfield *fields=NULL,*field=NULL;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagmix)
	{
		if(rstpd!=(-1))
		{
			prterr("DIAG UpdateRealEstatePayments at line [%d] program [%s].",line,file);
		} else {
			prterr("DIAG UpdateRealEstateTransactions at line [%d] program [%s].",line,file);
		}
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	if(rstpd!=(-1))
	{
		trantype=3;
		FINDFLDGETSHORT(rstpd,"PROCESSING MONTH",&pmonth);
		FINDFLDGETSTRING(rstpd,"REAL ESTATE IDENTIFICATION",&realestateid);
		FINDFLDGETSTRING(rstpd,"OWNER IDENTIFICATION",&ownerid);
		FINDFLDGETINT(rstpd,"TAX YEAR",&yearid);
		FINDFLDGETINT(rstpd,"TRANSACTION NUMBER",&trans);
		FINDFLDGETINT(rstpd,"PAYMENT NUMBER",&paynum);
		FIELDCOPY(rstpd,"ENTRY DATE",rstmst,"LAST PAID DATE");
		FINDFLDSETSTRING(rstrn,"REAL ESTATE IDENTIFICATION",realestateid);
		FINDFLDSETSTRING(rstrn,"OWNER IDENTIFICATION",ownerid);
		FINDFLDSETINT(rstrn,"TAX YEAR",yearid);
		FINDFLDSETINT(rstrn,"TRANSACTION NUMBER",trans);
		LOCNRDFILE(rstrn);
		if(SubFunc!=NULL) ef=ADVEQLNRDsec(rstrn,1,SubFunc,args);
			else ef=EQLNRDsec(rstrn,1);
		if(!ef)
		{
			prev=RDATDataNEW(rstrn);
			FINDFLDGETDOUBLE(rstrn,"OUTSTANDING AMOUNT",&total);
			total-=amount;
			FINDFLDSETDOUBLE(rstrn,"OUTSTANDING AMOUNT",total);
			if(SubFunc!=NULL) ADVWRTTRANSsec(rstrn,0,NULL,prev,SubFunc,args);
				else WRTTRANSsec(rstrn,0,NULL,prev);
			if(prev!=NULL) FreeRDATData(prev);
		} else {
			prterr("Error Real Estate Transaction Master not found for Payment Record [%s][%s][%d][%d][%d] at line [%d] program [%s].",realestateid,ownerid,yearid,trans,paynum,line,file);
		}
		UNLNRDFILE(rstrn);
		FINDFLDGETCHAR(rstpd,"CASHED OUT",&dist);
		FINDFLDGETSTRING(rstpd,"CASH DRAWER",&temp);
		if(!dist && !isEMPTY(temp))
		{
			if(taxdwr!=(-1))
			{
				FINDFLDSETSTRING(taxdwr,"CASH DRAWER",temp);
				LOCNRDFILE(taxdwr);
				if(SubFunc!=NULL) ef=ADVEQLNRDsec(taxdwr,1,SubFunc,args);
					else ef=EQLNRDsec(taxdwr,1);
				if(!ef)
				{
					prev=RDATDataNEW(taxdwr);
					FINDFLDGETDOUBLE(taxdwr,"COLLECTED AMOUNT",&total);
					total=total+amount;
					FINDFLDSETDOUBLE(taxdwr,"COLLECTED AMOUNT",total);
					if(SubFunc!=NULL) ADVWRTTRANSsec(taxdwr,0,NULL,prev,SubFunc,args);
						else WRTTRANSsec(taxdwr,0,NULL,prev);
					if(prev!=NULL) FreeRDATData(prev);
				}
				UNLNRDFILE(taxdwr);
			}
		}
	} else {
		FINDFLDGETSTRING(rstrn,"REAL ESTATE IDENTIFICATION",&realestateid);
		FINDFLDGETSTRING(rstrn,"OWNER IDENTIFICATION",&ownerid);
		FINDFLDGETINT(rstrn,"TAX YEAR",&yearid);
		FINDFLDGETINT(rstrn,"TRANSACTION TYPE",&trantype);
		FINDFLDGETSHORT(rstrn,"MONTH",&pmonth);
	}
	FINDFLDSETSTRING(rstmst,"REAL ESTATE IDENTIFICATION",realestateid);
	FINDFLDSETSTRING(rstmst,"OWNER IDENTIFICATION",ownerid);
	FINDFLDSETINT(rstmst,"TAX YEAR",yearid);
	total=0.0;
	LOCNRDFILE(rstmst);
	if(SubFunc!=NULL) ef=ADVEQLNRDsec(rstmst,1,SubFunc,args);
		else ef=EQLNRDsec(rstmst,1);
	if(!ef)
	{
		prev=RDATDataNEW(rstmst);
		if(rstnew!=(-1) && !trantype)
		{
			FINDFLDSETSTRING(rstnew,"REAL ESTATE IDENTIFICATION",
				realestateid);
			FINDFLDSETSTRING(rstnew,"OWNER IDENTIFICATION",ownerid);
			if(SubFunc!=NULL) ef=ADVEQLNRDsec(rstnew,1,SubFunc,args);
				else ef=EQLNRDsec(rstnew,1);
			if(!ef)
			{
				COPYFIELD(rstnew,rstmst,"LAND VALUE");
				COPYFIELD(rstnew,rstmst,"BUILDING AND IMPROVEMENT VALUE");
			}
		}
	} else {
		KEYNRD(rstmst,1);
		prev=NULL;
		if(rstnew!=(-1))
		{
			FINDFLDSETSTRING(rstnew,"REAL ESTATE IDENTIFICATION",
				realestateid);
			FINDFLDSETSTRING(rstnew,"OWNER IDENTIFICATION",ownerid);
			if(SubFunc!=NULL) ef=ADVEQLNRDsec(rstnew,1,SubFunc,args);
				else ef=EQLNRDsec(rstnew,1);
			if(!ef)
			{
				numflds=NUMFLDS(rstnew);
				fields=FLDPOINTER(rstnew);
				if(fields!=NULL)
				{
					for(x=0,field=fields;x<numflds;++x,++field)
					{
						COPYFIELD(rstnew,rstmst,field->name);
					}
				}
				FIELDCOPY(rstnew,"ADDRESS 1",rstmst,"STATEMENT ADDRESS 1");
				FIELDCOPY(rstnew,"ADDRESS 2",rstmst,"STATEMENT ADDRESS 2");
				FIELDCOPY(rstnew,"CITY",rstmst,"STATEMENT CITY");
				FIELDCOPY(rstnew,"STATE",rstmst,"STATEMENT STATE");
				FIELDCOPY(rstnew,"ZIP",rstmst,"STATEMENT ZIP CODE");
			}
		}
	}
	if(rstpd!=(-1)) trantype=3;
	temp=MakeRealEstateField(trantype);
	if(temp!=NULL)
	{
		FINDFLDGETDOUBLE(rstmst,temp,&total);
		total+=amount;
		FINDFLDSETDOUBLE(rstmst,temp,total);
		Rfree(temp);
	}
	if(SubFunc!=NULL) ADVWRTTRANSsec(rstmst,0,NULL,prev,SubFunc,args);
		else WRTTRANSsec(rstmst,0,NULL,prev);
	if(prev!=NULL) FreeRDATData(prev);
	UNLNRDFILE(rstmst);
	if(realestateid!=NULL) Rfree(realestateid);
	if(ownerid!=NULL) Rfree(ownerid);
}
コード例 #27
0
ファイル: payvwcheckds.cpp プロジェクト: DTidd/OpenRDAAPI
int main(int argc,char **argv)
#endif
{
	RDArsrc *mainrsrc=NULL;
	char *libx=NULL;
	RDAGenericSetup *gsv=NULL;

	RDA_SOFTWARE_TYPE=RDA_XPERT_AND_LITE_APP;
	if(InitializeSubsystems(argc,argv,module,"VENDOR WITHHOLDING CHECKS DOUBLE STUB")) 
	{
		RDAAPPMAINLOOP();
		return;
	}
	libx=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+RDAstrlen(module)+11);
#ifndef WIN32
	sprintf(libx,"%s/rda/%s.GSV",CURRENTDIRECTORY,module);
#endif
#ifdef WIN32
	sprintf(libx,"%s\\rda\\%s.GSV",CURRENTDIRECTORY,module);
#endif
	gsv=RDAGenericSetupNew(module,"VWCHECK FORMFEED");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			check_formfeed=(*gsv->value.string_value ? TRUE:FALSE);
		} else {
			check_formfeed=FALSE;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"TOP FED LASER");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			top_feeder=(*gsv->value.string_value ? TRUE:FALSE);
		} else {
			top_feeder=FALSE;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"VWCHECK ADDRESS OFFSET");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			check_address_offset=*gsv->value.short_value;
		} else {
			check_address_offset=0;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"VWCHECK CHECK OFFSET");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			check_offset=*gsv->value.short_value;
		} else {
			check_offset=0;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"VWCHECK SIGNATURE TYPE");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			signature_type=*gsv->value.short_value;
		} else {
			signature_type=0;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew("PAYROLL","V/W BANK IDENTIFICATION");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			defbankid=stralloc(gsv->value.string_value);
		} else {
			defbankid=NULL;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	gsv=RDAGenericSetupNew(module,"VWCHECK HIGH AMOUNT");
	if(gsv!=NULL)
	{
		if(!getRDAGenericSetupbin(libx,gsv))
		{
			high_amount=*gsv->value.short_value;
		} else {
			high_amount=0;
		}
	}
	if(gsv!=NULL) FreeRDAGenericSetup(gsv);
	if(libx!=NULL) Rfree(libx);
	if((payddsv=APPOPNNRD("PAYROLL","PAYDDSV",TRUE,FALSE))==(-1)) return;
	if((ddsnum=APPOPNNRD("PAYROLL","PAYDDMS",TRUE,FALSE))==(-1)) return;
	if((vennum=APPOPNNRD("VENPMT","VENMSR",TRUE,FALSE))==(-1)) return;
	if((venadr=APPOPNNRD("VENPMT","VENADR",TRUE,FALSE))==(-1)) return;
	if((banknum=APPOPNNRD("BNKREC","BNKACC",TRUE,FALSE))==(-1)) return;
	mainrsrc=RDArsrcNEW(module,"VENDOR WITHHOLDING CHECKS DOUBLE STUB");
	addDFincvir(mainrsrc,"BNKREC","BNKACC",NULL,banknum);
	if(banknum!=(-1)) file2rsrc(banknum,mainrsrc,0);
	FINDRSCSETEDITABLE(mainrsrc,"[BNKACC][BANK IDENTIFICATION]",TRUE);
	GET_SCREEN_VIRTUALS(mainrsrc,0);
	if(payddsv!=(-1)) file2rangersrc(payddsv,mainrsrc);
	if(ddsnum!=(-1)) file2rangersrc(ddsnum,mainrsrc);
	if(vennum!=(-1)) file2rangersrc(vennum,mainrsrc);
	addDFincvir(mainrsrc,module,"PAYDDSV",NULL,payddsv);
	addDFincvir(mainrsrc,module,"PAYDDMS",NULL,ddsnum);
	addDFincvir(mainrsrc,"VENPMT","VENMSR",NULL,vennum);
	addDFincvir(mainrsrc,"VENPMT","VENADR",NULL,venadr);
	addDFincvir(mainrsrc,"BNKREC","BNKACC",NULL,banknum);
	GET_SCREEN_VIRTUALS(mainrsrc,2);
	if(output_device!=NULL) Rfree(output_device);
	output_device=DefaultPrinter();
	addbtnrsrc(mainrsrc,"LOAD DEVICE NAME",TRUE,LoadDeviceWindow,SelectFuncOutputDevice);
	addstdrsrc(mainrsrc,"OUTPUT DEVICE",VARIABLETEXT,0,output_device,TRUE);
	addstdrsrc(mainrsrc,"BODY COUNT",LONGV,0,&BODY_COUNT,TRUE);
	addstdrsrc(mainrsrc,"USE CHECK OFFSET",BOOLNS,1,&use_check_offset,TRUE);
	addstdrsrc(mainrsrc,"USE HIGH AMOUNT",BOOLNS,1,&use_high_amount,TRUE);
	SCRNvirtual2rangersrc(mainrsrc);
	DefaultScreens(mainrsrc);
	rsrc2filerecord(banknum,mainrsrc);
	SetRangersrcsensitive(mainrsrc);
	ReadRDAScrolledLists(mainrsrc);
	if(!isEMPTY(defbankid))
	{
		FINDRSCSETSTRING(mainrsrc,"[BNKACC][BANK IDENTIFICATION]",defbankid);
		FINDFLDSETSTRING(banknum,"BANK IDENTIFICATION",defbankid);
	} else {
		FINDRSCGETSTRING(mainrsrc,"[BNKACC][BANK IDENTIFICATION]",&bank_id);
		FINDFLDSETSTRING(banknum,"BANK IDENTIFICATION",bank_id);
	}
	filerecord2rsrc(banknum,mainrsrc);
	addbtnrsrc(mainrsrc,"RESET GROUP DEFAULTS",TRUE,PayvwResetGroupDefaults,NULL);
	addbtnrsrc(mainrsrc,"DEFAULTS",TRUE,SaveDefaults,NULL);
	addrfcbrsrc(mainrsrc,"SELECT",TRUE,setcheck,NULL);
	addrfcbrsrc(mainrsrc,"QUIT",TRUE,quitfunc,NULL);
	addrfcbrsrc(mainrsrc,"HELP",TRUE,screenhelp,NULL);
	addrfcbrsrc(mainrsrc,"PRINT RESOURCES",TRUE,printrsrcs,NULL);
	computeallSCRNvirtuals(mainrsrc);
	APPmakescrn(mainrsrc,TRUE,quitfunc,NULL,TRUE);
	RDAAPPMAINLOOP();
}
コード例 #28
0
ファイル: payvwcheckds.cpp プロジェクト: DTidd/OpenRDAAPI
static void OutputChecks(short sfile)
{
	short ef=0,count=0;
	int checkno=0,vcheckno=0,last_checkno=0,last_vcheckno=0,fyear=0,trnnum=0;
	RDA_PFILE *fp=NULL;
	double total_amt=0.0,amt=0.0;
	char *emp_name=NULL,*emp_add1=NULL,*emp_add2=NULL,*emp_add3=NULL;
	char *spelled_amt=NULL,*checkdate=NULL;
	int x=0;
	short prtsig=1;
	char *desc=NULL;
	char *ddsid=NULL;
	char *tempstr=NULL;
	char dcd=FALSE;

	if(isEMPTY(output_device))
	{
		prterr("Error:  An appropriate output device must be selected to print checks.");
		return;
	}
	fp=RDA_popen(output_device,"w");
	if(fp==NULL)
	{
		prterr("Error:  Couldn't open output device [%s].",output_device);
	}
	SelectPrintTypeByName(output_device,"PCL JOB HEADER",fp);
	if(signature_type==5)
	{
		SelectPrintTypeByName(output_device,"LOAD PAYROLL SIGNATURE",fp);
	}
	SelectPrintTypeByName(output_device,"SIMPLEX",fp);
	if(top_feeder==TRUE)
	{
		RDA_fprintf(fp,"\f");
	}
	ZERNRD(sfile);
	ef=FRSNRD(sfile,1);
	FINDFLDGETINT(sfile,"CHECK NUMBER",&checkno);
	FINDFLDGETINT(sfile,"VIRTUAL CHECK NUMBER",&vcheckno);
	last_checkno=checkno;
	last_vcheckno=vcheckno;
	while(!ef)
	{
		FINDFLDGETINT(sfile,"CHECK NUMBER",&checkno);
		FINDFLDGETINT(sfile,"VIRTUAL CHECK NUMBER",&vcheckno);
		if(checkno!=last_checkno || vcheckno!=last_vcheckno)
		{
			while(count<BODY_COUNT+7)
			{
				RDA_fprintf(fp,"\r\n");	
				++count;
			}
			if(RDAstrlen(emp_name)>40) emp_name[40]=0;
			if(checkno==last_checkno)
			{
				RDA_fprintf(fp,"%10s %8d %-30.30s Sub-Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
			}
			else
			{
				RDA_fprintf(fp,"%10s %8d %-30.30s     Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
			}
			++count;
			RDA_fprintf(fp,"\r\n");	
			RepeatStub(sfile,last_checkno,last_vcheckno,fp);
			if(checkno==last_checkno)
			{
				RDA_fprintf(fp,"%10s %8d %-30.30s Sub-Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
			}
			else
			{
				RDA_fprintf(fp,"%10s %8d %-30.30s     Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
			}
			++count;
			RDA_fprintf(fp,"\r\n");	
	/* negotiable check */
			/*RDA_fprintf(fp,"\r\n");*/
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"\r\n");
			if(top_feeder==FALSE)
			{
				RDA_fprintf(fp,"\r\n");
				RDA_fprintf(fp,"\r\n");
			}
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"\r\n");
			if(!use_high_amount || high_amount!=1)
			{
				RDA_fprintf(fp,"\r\n");
			}
			if(high_amount==2)
			{
				RDA_fprintf(fp,"\r\n");
			}
			if(checkno!=last_checkno)
			{
				spelled_amt=spell(total_amt);
				RDA_fprintf(fp,"  %s\r\n",spelled_amt);
				if(spelled_amt!=NULL) Rfree(spelled_amt);
				if(high_amount!=2)
				{
					RDA_fprintf(fp,"\r\n");
				}
				if(!use_high_amount || high_amount!=1)
				{
					RDA_fprintf(fp,"\r\n");
				}
				tempstr=famtpad(total_amt,14,'*');
				RDA_fprintf(fp,"%44s %-10s%10d %-14s\r\n",
					"",(checkdate!=NULL?checkdate:""),last_vcheckno,
					(tempstr!=NULL?tempstr:""));
				if(tempstr!=NULL) Rfree(tempstr);
				RDA_fprintf(fp,"\r\n");
				prtsig=1;
			} else {
				RDA_fprintf(fp,"  *** V O I D **** V O I D **** V O I D **** \r\n");
				if(high_amount!=2)
				{
					RDA_fprintf(fp,"\r\n");
				}
				if(!use_high_amount || high_amount!=1)
				{
					RDA_fprintf(fp,"\r\n");
				}
				tempstr=famtpad(0,14,'*');
				RDA_fprintf(fp,"%44s %-10s%10d %-14s\r\n",
					"",(checkdate!=NULL?checkdate:""),last_vcheckno,
					(tempstr!=NULL?tempstr:""));
				if(tempstr!=NULL) Rfree(tempstr);
				prtsig=0;
				RDA_fprintf(fp,"\r\n");
			}
			if(check_address_offset<0)
			{
				RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_name!=NULL ? emp_name:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add1!=NULL ? emp_add1:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add2!=NULL ? emp_add2:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add3!=NULL ? emp_add3:""));
			} else {
				RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_name!=NULL ? emp_name:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add1!=NULL ? emp_add1:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add2!=NULL ? emp_add2:""));
				RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add3!=NULL ? emp_add3:""));
			}
			if(signature_type==5)
			{
				SelectPrintTypeByName(output_device,"PUSH CURSOR",fp);
				if(prtsig) { SelectPrintTypeByName(output_device,"PAYROLL SIGNATURE",fp); }
				SelectPrintTypeByName(output_device,"POP CURSOR",fp);
			}
			RDA_fprintf(fp,"\f");
			count=0;	
			if(checkno!=last_checkno)
			{
				total_amt=0;
			}
			last_checkno=checkno;
			last_vcheckno=vcheckno;
		}
		FINDFLDGETINT(sfile,"FISCAL YEAR",&fyear);
		FINDFLDGETSTRING(sfile,"DEDUCTION DESCRIPTION IDENTIFICATION",&ddsid);
		FINDFLDGETINT(sfile,"TRANSACTION NUMBER",&trnnum);
		FINDFLDGETSTRING(sfile,"CHECK DATE",&checkdate);
		FINDFLDGETSTRING(sfile,"NAME",&emp_name);
		FINDFLDGETDOUBLE(sfile,"AMOUNT",&amt);
		FINDFLDGETSTRING(sfile,"VENDOR NAME",&emp_name);
		if(RDAstrlen(emp_name)>40) emp_name[40]=0;
		FINDFLDGETSTRING(sfile,"DESCRIPTION",&desc);
		if(RDAstrlen(desc)>40) desc[40]=0;
		FINDFLDGETSTRING(sfile,"VENDOR ADDRESS 1",&emp_add1);
		FINDFLDGETSTRING(sfile,"VENDOR ADDRESS 2",&emp_add2);
		FINDFLDGETSTRING(sfile,"VENDOR ADDRESS 3",&emp_add3);
		if(use_check_offset && count==0)
		{
			for(x=0;x<check_offset;x++)
			{
				RDA_fprintf(fp,"\r\n");	
			}
		}
		if((count==0) && (dcd==FALSE))
		{
			RDA_fprintf(fp,"\r\n");
			RDA_fprintf(fp,"     SEE ATTACHED LIST FOR CHECK DETAIL\r\n");
			count+=2;
		}
	/* print 1st detail stub */
		if(dcd==TRUE)
		{
			RDA_fprintf(fp,"%5d %-30s %-24.24s $%12.2f\r\n",
                            	fyear, ddsid, desc, amt/100);
			if(ddsid!=NULL) Rfree(ddsid);
			if(desc!=NULL) Rfree(desc);
			++count;
		}
		total_amt+=amt;
		ef=NXTNRD(sfile,1);
	}
	/*while(count<BODY_COUNT+8)*/
	while(count<BODY_COUNT+7)
	{
		RDA_fprintf(fp,"\r\n");	
		++count;
	}
	RDA_fprintf(fp,"%10s %8d %-30.30s     Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
	++count;
	RDA_fprintf(fp,"\r\n");	
	/* repeat stub and print negotiable */
	RepeatStub(sfile,last_checkno,last_vcheckno,fp);
	RDA_fprintf(fp,"%10s %8d %-30.30s     Total: $%12.2f\r\n",(checkdate!=NULL?checkdate:""),last_checkno,(emp_name!=NULL ? emp_name:""),total_amt/100);
	++count;
	RDA_fprintf(fp,"\r\n");	
	RDA_fprintf(fp,"\r\n");
	RDA_fprintf(fp,"\r\n");
	if(top_feeder==FALSE)
	{
		RDA_fprintf(fp,"\r\n");
		RDA_fprintf(fp,"\r\n");
	}
	RDA_fprintf(fp,"\r\n");
	RDA_fprintf(fp,"\r\n");
	RDA_fprintf(fp,"\r\n");
	RDA_fprintf(fp,"\r\n");
	RDA_fprintf(fp,"\r\n");
	if(!use_high_amount || high_amount!=1)
	{
		RDA_fprintf(fp,"\r\n");
	}
	if(high_amount==2)
	{
		RDA_fprintf(fp,"\r\n");
	}
	spelled_amt=spell(total_amt);
	RDA_fprintf(fp,"  %s\r\n",spelled_amt);
	if(spelled_amt!=NULL) Rfree(spelled_amt);
	if(high_amount!=2)
	{
		RDA_fprintf(fp,"\r\n");
	}
	if(!use_high_amount || high_amount!=1)
	{
		RDA_fprintf(fp,"\r\n");
	}
	tempstr=famtpad(total_amt,14,'*');
	RDA_fprintf(fp,"%44s %-10s%10d %-14s\r\n",
		"",(checkdate!=NULL?checkdate:""),last_vcheckno,
		(tempstr!=NULL?tempstr:""));
	if(tempstr!=NULL) Rfree(tempstr);
	RDA_fprintf(fp,"\r\n");
	if(check_address_offset<0)
	{
		RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_name!=NULL ? emp_name:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add1!=NULL ? emp_add1:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add2!=NULL ? emp_add2:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",8,"",(emp_add3!=NULL ? emp_add3:""));
	} else {
		RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_name!=NULL ? emp_name:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add1!=NULL ? emp_add1:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add2!=NULL ? emp_add2:""));
		RDA_fprintf(fp,"%*s%-40s\r\n",(check_address_offset+8),"",(emp_add3!=NULL ? emp_add3:""));
	}
	if(signature_type==5)
	{
		SelectPrintTypeByName(output_device,"PUSH CURSOR",fp);
		if(prtsig) { SelectPrintTypeByName(output_device,"PAYROLL SIGNATURE",fp); }
		SelectPrintTypeByName(output_device,"POP CURSOR",fp);
	}
	RDA_fprintf(fp,"\f");
	count=0;	
	if(checkno!=last_checkno)
	{
		total_amt=0;
	}
	last_checkno=checkno;
	last_vcheckno=vcheckno;
	if(signature_type==5)
	{
		SelectPrintTypeByName(output_device,"DELETE_SOFTFONT_200",fp);
		SelectPrintTypeByName(output_device,"DELETE_SOFTFONT_201",fp);
	}
	SelectPrintTypeByName(output_device,"PCL JOB FOOTER",fp);
	RDA_pclose(fp);
	if(checkdate!=NULL) Rfree(checkdate);
}
コード例 #29
0
ファイル: mkmscfnc.cpp プロジェクト: DTidd/OpenRDAAPI
APPlib *xbreak_expression2(char *expression,int *overall_length,int line,char *file)
{
	int str_length=0,x=0,y=0;
	APPlib *new_applib=NULL;
	char new_part[MAX_SIZE+1];
	char *temp=NULL;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagapps)
	{
		prterr("DIAG break_expression2 breaking up string at line %d file %s",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	new_applib=APPlibNEW();
	if(!isEMPTY(expression))
	{
		str_length=RDAstrlen(expression);
		memset(new_part,0,MAX_SIZE+1);
		for(x=0,y=0;x<str_length;++x)
		{
			if(y>=MAX_SIZE)
			{
				temp=Rmalloc(MAX_SIZE+3);
				sprintf(temp,"\"%s\"",new_part);
				addAPPlib(new_applib,temp);
				if(temp!=NULL) Rfree(temp);
				memset(new_part,0,MAX_SIZE+1);
				*overall_length+=y;
				y=0;
			}
			if(expression[x]=='\"')
			{
				if((y+2)>MAX_SIZE)
				{
					temp=Rmalloc(MAX_SIZE+3);
					sprintf(temp,"\"%s\"",new_part);
					addAPPlib(new_applib,temp);
					if(temp!=NULL) Rfree(temp);
					memset(new_part,0,MAX_SIZE+1);
					*overall_length+=y;
					y=0;
				}
				new_part[y]='\\';
				++y;
				new_part[y]='"';
				++y;
			}else if(expression[x]=='\\')
			{
				if((y+2)>MAX_SIZE)
				{
					temp=Rmalloc(MAX_SIZE+3);
					sprintf(temp,"\"%s\"",new_part);
					addAPPlib(new_applib,temp);
					if(temp!=NULL) Rfree(temp);
					memset(new_part,0,MAX_SIZE+1);
					*overall_length+=y;
					y=0;
				}
				new_part[y]='\\';
				++y;
				new_part[y]='\\';
				++y;
			} else if(expression[x]=='\n')
			{
				if((y+2)>MAX_SIZE)
				{
					temp=Rmalloc(MAX_SIZE+3);
					sprintf(temp,"\"%s\"",new_part);
					addAPPlib(new_applib,temp);
					if(temp!=NULL) Rfree(temp);
					if(temp!=NULL) Rfree(temp);
					memset(new_part,0,MAX_SIZE+1);
					*overall_length+=y;
					y=0;
				}
				new_part[y]='\\';
				++y;
				new_part[y]='n';
				++y;
			} else {
				if((y+1)>MAX_SIZE)
				{
					temp=Rmalloc(MAX_SIZE+3);
					sprintf(temp,"\"%s\"",new_part);
					addAPPlib(new_applib,temp);
					if(temp!=NULL) Rfree(temp);
					memset(new_part,0,MAX_SIZE+1);
					*overall_length+=y;
					y=0;
				}
				new_part[y]=expression[x];
				++y;
			}
		}
		if(y>0)
		{
			temp=Rmalloc(MAX_SIZE+3);
			sprintf(temp,"\"%s\"",new_part);
			addAPPlib(new_applib,temp);
			if(temp!=NULL) Rfree(temp);
			memset(new_part,0,MAX_SIZE+1);
			*overall_length+=y;
			y=0;
		}
	} else {
		addAPPlib(new_applib,"\"\"");
		*overall_length+=3;
	}
	return(new_applib);
}
コード例 #30
0
ファイル: xsetup.cpp プロジェクト: DTidd/OpenRDAAPI
short xwriteXPERTbin(XPERTstp *x,char *liboverride,int line,char *file)
{
	BIN *bin;
	char *libname=NULL;
	short test=0;
	int test2=0;

#ifdef USE_RDA_DIAGNOSTICS
	if(diagmix)
	{
		prterr("DIAG writeXPERTbin Writing [XPERT SETUP] Binary to Binary Library [XPERT.STP] at line [%d] program [%s].",line,file);
	}
#endif /* ifdef USE_RDA_DIAGNOSTICS */
	if(isEMPTY(liboverride))
	{
		libname=Rmalloc(RDAstrlen(CURRENTDIRECTORY)+16);
#ifndef WIN32
		sprintf(libname,"%s/rda/XPERT.STP",CURRENTDIRECTORY);	
#endif
#ifdef WIN32
		sprintf(libname,"%s\\rda\\XPERT.STP",CURRENTDIRECTORY);	
#endif
	} else {
		libname=Rmalloc(RDAstrlen(liboverride)+12);
#ifndef WIN32
		sprintf(libname,"%s/XPERT.STP",liboverride);	
#endif
#ifdef WIN32
		sprintf(libname,"%s\\XPERT.STP",liboverride);	
#endif
	}
	bin=BINnew();
	BINaddshort(bin,(-1683));	

	if(x->company_name!=NULL && RDAstrlen(x->company_name)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->company_name);
	} else BINaddshort(bin,FALSE);
	if(x->addr1!=NULL && RDAstrlen(x->addr1)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->addr1);
	} else BINaddshort(bin,FALSE);
	if(x->addr2!=NULL && RDAstrlen(x->addr2)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->addr2);
	} else BINaddshort(bin,FALSE);
	if(x->city!=NULL && RDAstrlen(x->city)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->city);
	} else BINaddshort(bin,FALSE);
	if(x->state!=NULL && RDAstrlen(x->state)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->state);
	} else BINaddshort(bin,FALSE);
	if(x->zip!=NULL && RDAstrlen(x->zip)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->zip);
	} else BINaddshort(bin,FALSE); 
	if(x->phone!=NULL && RDAstrlen(x->phone)>0)
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->phone);
	} else BINaddshort(bin,FALSE);
	if(!isEMPTY(x->fax))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->fax);
	} else BINaddshort(bin,FALSE);
	BINaddshort(bin,(x->use_century_threshold ? TRUE:FALSE));
	BINaddshort(bin,x->century_threshold);

	test=(short)x->UTILITIES;
	BINaddshort(bin,test);
	test=(short)x->FINMGT;
	BINaddshort(bin,test);
	test=(short)x->BNKREC;
	BINaddshort(bin,test);
	test=(short)x->PRSNNL;
	BINaddshort(bin,test);
	test=(short)x->IIDMGT;
	BINaddshort(bin,test);
	test=(short)x->APPMGT;
	BINaddshort(bin,test);
	test=(short)x->POSTRK;
	BINaddshort(bin,test);
	test=(short)x->PAYROLL;
	BINaddshort(bin,test);
	test=(short)x->SUBMGT;
	BINaddshort(bin,test);
	test=(short)x->LVEMGT;
	BINaddshort(bin,test);
	test=(short)x->EMPABS;
	BINaddshort(bin,test);
	test=(short)x->BFTMGT;
	BINaddshort(bin,test);
	test=(short)x->PAYENC;
	BINaddshort(bin,test);
	test=(short)x->VENPMT;
	BINaddshort(bin,test);
	test=(short)x->PURORD;
	BINaddshort(bin,test);
	test=(short)x->CATALOGUE;
	BINaddshort(bin,test);
	test=(short)x->REQMGT;
	BINaddshort(bin,test);
	test=(short)x->FIXASS;
	BINaddshort(bin,test);
	test=(short)x->INVCTL;
	BINaddshort(bin,test);
	test=(short)x->OCCTAX;
	BINaddshort(bin,test);
	test=(short)x->BUDPREP;
	BINaddshort(bin,test);
	test=(short)x->MISCBILL;
	BINaddshort(bin,test);
	test=(short)x->TAXCLT;
	BINaddshort(bin,test);
	test=(short)x->RLSTMGT;
	BINaddshort(bin,test);
	test=(short)x->PPTMGT;
	BINaddshort(bin,test);
	test=(short)x->STUDFIN;
	BINaddshort(bin,test);
	test=(short)x->VEHMTN;
	BINaddshort(bin,test);
	test=(short)x->WRKORD;
	BINaddshort(bin,test);
	test=(short)x->TOOLS;
	BINaddshort(bin,test);
	test=(short)x->TRANSACTIONS;
	BINaddshort(bin,test);
	test=(short)x->EXTENSIONS;
	BINaddshort(bin,test);
	test2=(int)x->software_type;
	BINaddint(bin,test2);
	test=(short)x->SECURITYEXTENSIONS;
	BINaddshort(bin,test);
	test=(short)x->RLVEMGT;
	BINaddshort(bin,test);
	test=(short)x->PROPERTY;
	BINaddshort(bin,test);
	test=(short)x->VIOLATION;
	BINaddshort(bin,test);
	test=(short)x->UTLBLL;
	BINaddshort(bin,test);
	test=(short)x->DMVREG;
	BINaddshort(bin,test);
	test=(short)x->LVSIMP;
	BINaddshort(bin,test);
	test=(short)x->CSHDWR;
	BINaddshort(bin,test);
	test=(short)x->RREQMGT;
	BINaddshort(bin,test);
	test=(short)x->BLDPRMT;
	BINaddshort(bin,test);
	test=(short)x->CITWEB;
	BINaddshort(bin,test);
	test=(short)x->OPENSOURCE;
	BINaddshort(bin,test);
	test=(short)x->SimpleMenu;
	BINaddshort(bin,test);
	BINaddshort(bin,x->OrgType);
	test=(short)x->ShowDefineListNew;
	BINaddshort(bin,test);
	BINaddint(bin,x->NoUsers);
	test=(short)x->UseEndDate;
	BINaddshort(bin,test);
	if(!isEMPTY(x->EndDate))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->EndDate);
	} else BINaddshort(bin,FALSE);
	if(!isEMPTY(x->ProgDir))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->ProgDir);
	} else BINaddshort(bin,FALSE);
	if(!isEMPTY(x->DataDir))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->DataDir);
	} else BINaddshort(bin,FALSE);
	if(!isEMPTY(x->SoftwareKey))
	{
		BINaddshort(bin,TRUE);
		BINaddstring(bin,x->SoftwareKey);
	} else BINaddshort(bin,FALSE);
	test=(short)x->ARCHIVE;
	BINaddshort(bin,test);

	test=(short)x->CIS;
	BINaddshort(bin,test);
	test=(short)x->ASP;
	BINaddshort(bin,test);
	test=(short)x->BARCODING;
	BINaddshort(bin,test);
	test=(short)x->CREDITCARDS;
	BINaddshort(bin,test);
	test=(short)x->FOODSVC;
	BINaddshort(bin,test);
	test=(short)x->ROLLACCT;
	BINaddshort(bin,test);
	BINaddshort(bin,x->AccountingMethod);
	test=(short)x->HRM;
	BINaddshort(bin,test);
	if(writelibbin(libname,bin,"XPERT SETUP"))
	{
		prterr("Error Can't write Xpert Setup binary [%s] into library [%s] at line [%d] program [%s].","XPERT SETUP",libname,line,file);
		if(libname!=NULL) Rfree(libname);
		return(-1);
	}
	if(libname!=NULL) Rfree(libname);
	return(0);
}