Exemple #1
1
void main()
{
	//before
	int ret;
	ret=initwindow();	//check error!!!!!

	//unicode
	ret=initunicode(0x04000400,palette);

	//forever
	QWORD type=0;
	QWORD key=0;
	while(1)
	{
		//1.先在内存里画画,然后一次性写到窗口内
		printworld();
		writewindow(0x04000400,palette);

		//2.等事件,是退出消息就退出
		uievent(&type,&key);
		if( type==0 )break;
		if( (type==0x64626b)&&(key==0x1b))break;


		//3.处理事件,如果要求自杀就让它死
		processmessage(type,key);
	}

	//after
death:
	killwindow();
}
Exemple #2
0
static void doexit(MakeBrowseList *blist)
{
	if(blist!=NULL)
	{
		if(blist->searchrsrc!=NULL) 
		{
			killwindow(blist->searchrsrc);
			free_rsrc(blist->searchrsrc);
		}
		if(blist->definelist!=NULL) 
		{
			killwindow(blist->definelist);
			free_rsrc(blist->definelist);
		}
		if(blist->mainrsrc!=NULL) free_rsrc(blist->mainrsrc);
	}
	if(WindowCount<2)
	{
		if(MTNMASTER!=NULL) FreeMaintainMaster(MTNMASTER);
		CLSNRD(filenum);
		CLSNRD(usernum);
		CLSNRD(modnum);
		ShutdownSubsystems();
	}
	if(mbl_filesec!=NULL) mbl_filesec=NULL;
}
Exemple #3
0
void doexit(MakeBrowseList *blist)
{
	if(blist!=NULL) 
	{
		if(blist->definelist!=NULL) 
		{
			killwindow(blist->definelist);
			free_rsrc(blist->definelist);
		}
		if(blist->searchrsrc!=NULL) 
		{
			killwindow(blist->searchrsrc);
			free_rsrc(blist->searchrsrc);
		}
		if(blist->mainrsrc!=NULL)
		{
			free_rsrc(blist->mainrsrc);
		}
	}
	if(WindowCount<2)
	{
		CLOSE_MASTER_FILES(MASTER);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		if(PAYROLL_SETUP!=NULL) free_payroll(PAYROLL_SETUP);
		ShutdownSubsystems();
	}
	if(mbl_posgrat!=NULL) mbl_posgrat=NULL;
}
Exemple #4
0
static void doexit(MakeBrowseList *blist)
{
	if(blist!=NULL) 
	{
		if(blist->definelist!=NULL) 
		{
			killwindow(blist->definelist);
			free_rsrc(blist->definelist);
		}
		if(blist->searchrsrc!=NULL) 
		{
			killwindow(blist->searchrsrc);
			free_rsrc(blist->searchrsrc);
		}
		if(blist->mainrsrc!=NULL)
		{
			free_rsrc(blist->mainrsrc);
		}
	}
	if(WindowCount==1)
	{
		if(filenum!=(-1)) CLSNRD(filenum);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		ShutdownSubsystems();
	}
	if(mbl_restclas!=NULL) mbl_restclas=NULL;
}
Exemple #5
0
static void doexit(MakeBrowseList *blist)
{
	if(blist!=NULL) 
	{
		if(blist->definelist!=NULL) 
		{
			killwindow(blist->definelist);
			free_rsrc(blist->definelist);
		}
		if(blist->searchrsrc!=NULL) 
		{
			killwindow(blist->searchrsrc);
			free_rsrc(blist->searchrsrc);
		}
		if(blist->mainrsrc!=NULL)
		{
			free_rsrc(blist->mainrsrc);
		}
	}
	if(WindowCount<2)
	{
		CLOSE_MASTER_FILES(MASTER);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		if(venpmt!=NULL) free_venpmt(venpmt);
		if(purord!=NULL) free_purord(purord);
		ShutdownSubsystems();
	}
	if(mbl_purlin!=NULL) mbl_purlin=NULL;
}
Exemple #6
0
void doexit(MakeBrowseList *blist)
{
	if(blist!=NULL)
	{
		if(blist->definelist!=NULL) 
		{
			killwindow(blist->definelist);
			free_rsrc(blist->definelist);
			blist->definelist=NULL;
		}
		if(blist->searchrsrc!=NULL) 
		{
			killwindow(blist->searchrsrc);
			free_rsrc(blist->searchrsrc);
			blist->searchrsrc=NULL;
		}
		if(blist->mainrsrc!=NULL)
		{
			free_rsrc(blist->mainrsrc);
			blist->mainrsrc=NULL;
		}
	}
	if(WindowCount<2)
	{
		CLOSE_MASTER_FILES(MASTER);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		ShutdownSubsystems();
		exit(0);
	}
	mbl_mst=NULL;
}
Exemple #7
0
/**
 * destroy window with OpenGL or inner identificator "window"
 * @param window inner or OpenGL id
 * @param idtype = INNER or OPENGL
 * @return 1 in case of OK, 0 if fault
 */
int destroyWindow(int window, winIdType type){
	if(!initialized) return 0;
	int r = 0;
	DBG("lock");
	pthread_mutex_lock(&winini_mutex);
	DBG("locked");
	if(type == INNER){
		windowData *win = searchWindow(window);
		if(win) r = killwindow(win->GL_ID);
	}else
		r = killwindow(window);
	pthread_mutex_unlock(&winini_mutex);
	DBG("window killed");
	return r;
}
Exemple #8
0
static void selectall(RDArsrc *mainrsrc)
{
	int x;
	struct RPTSTRUCTs r;
	short did_it=FALSE;
	RDArsrc *tmprsrc=NULL;

	if(mainrsrc!=NULL)
	{
		tmprsrc=odiagscrn("DIAGNOSTIC SCREEN",module,"Creating Standard Reports",NULL,NE(RptAvl));
		if(tmprsrc!=NULL)
		{
			if(ADVmakescrn(tmprsrc,TRUE))
			{
				prterr("Error Cannot Create Diagnostic Screen.");
				if(tmprsrc!=NULL) free_rsrc(tmprsrc);
			} else {
				ForceWindowUpdate(tmprsrc);
			}
		}
	}
	for(x=0;x<NE(RptAvl);++x)
	{
		r=RptAvl[x];
		if(r.func!=NULL)
		{
/*lint -e746 */
			r.func();
/*lint +e746 */
			if(mainrsrc!=NULL)
			{
				FINDRSCLISTAPPlib(mainrsrc,"ERROR LIST",0,errorlist);
				updatersrc(mainrsrc,"ERROR LIST");
				did_it=TRUE;
			}
		} else {
			if(mainrsrc!=NULL)
			{
				did_it=FALSE;
			}
		}
		if(mainrsrc!=NULL)
		{
			if(tmprsrc!=NULL) 
			{
				update_diagnostic(tmprsrc,(did_it ? TRUE:FALSE));
			}
		}
	}
	if(mainrsrc!=NULL)
	{
		if(tmprsrc!=NULL)
		{
			killwindow(tmprsrc);
			free_rsrc(tmprsrc);
		}
	}
	Establish_Install_Date(module);
}
Exemple #9
0
static void quitREADME(RDArsrc *r)
{
	if(r!=NULL)
	{
		killwindow(r);
		free_rsrc(r);
	}
}
Exemple #10
0
static void quitfunc(RDArsrc *r)
{
	if(r!=NULL) 
	{
		killwindow(r);
		free_rsrc(r);
	}
	ShutdownSubsystems();
}
Exemple #11
0
static void quit_value(RDArsrc *incrsrc,RDArsrc *mtnrsrc)
{
	if(incrsrc!=NULL) 
	{
		killwindow(incrsrc);
		free_rsrc(incrsrc);
	}
	if(incdefaults!=NULL) FreeRDAdefault(incdefaults);
}
Exemple #12
0
static void quittable(RDArsrc *mtnrsrc,RDArsrc *mainrsrc)
{
	changedvalues=FALSE;
	if(mtnrsrc!=NULL)
	{
		killwindow(mtnrsrc);
		free_rsrc(mtnrsrc);
	}
	if(virtdefaults!=NULL) FreeRDAdefault(virtdefaults);
}
Exemple #13
0
static void doexit(RDArsrc *r)
{
	if(r!=NULL)
	{
		killwindow(r);
		free_rsrc(r);
	}
	if(FromMod!=NULL) Rfree(FromMod);
	if(ToMod!=NULL) Rfree(ToMod);
	ShutdownSubsystems();
}
Exemple #14
0
static void quitgenericsetup(RDArsrc *genstprsrc,RDArsrc *mainrsrc)
{
	if(ftypes!=NULL) freeapplib(ftypes);
	changedvalues=FALSE;
	if(genstprsrc!=NULL)
	{
		killwindow(genstprsrc);
		free_rsrc(genstprsrc);
	}
	if(genstpdefaults!=NULL) FreeRDAdefault(genstpdefaults);
}
Exemple #15
0
static void quit_avery(RDArsrc *m)
{
	CloseFiles(m);
	CLSNRD(FileNumber);
	if(m!=NULL)
	{
		killwindow(m);
		free_rsrc(m);
	}
	ShutdownSubsystems();
}
Exemple #16
0
static void quitadd(RDArsrc *r)
{
	if(hours!=NULL) freeapplib(hours);
	if(days_mo!=NULL) freeapplib(days_mo);
	if(days_wk!=NULL) freeapplib(days_wk);
	if(mths!=NULL) freeapplib(mths);
	if(cpacks!=NULL) freeapplib(cpacks);
	if(r!=NULL)
	{
		killwindow(r);
		free_rsrc(r);		
	}
}
Exemple #17
0
static void quit_record(RDArsrc *mtnrsrc)
{
	if(WindowCount<2)
	{
		CLOSE_MASTER_FILES(MASTER);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		ShutdownSubsystems();
		exit(0);
	}
	if(mtnrsrc!=NULL)
	{
		killwindow(mtnrsrc);
		free_rsrc(mtnrsrc);
	}
}
Exemple #18
0
/**
 * main freeGLUT loop
 * waits for global signals to create windows & make other actions
 */
void *Redraw(_U_ void *arg){
//	pthread_cond_t fakeCond = PTHREAD_COND_INITIALIZER;
//	struct timeval tv;
//	struct timespec timeToWait;
//	struct timeval now;
	while(1){
		pthread_mutex_lock(&winini_mutex);
		if(!initialized){
			DBG("!initialized");
			pthread_mutex_unlock(&winini_mutex);
			pthread_exit(NULL);
		}
		if(wannacreate){ // someone asks to create window
			DBG("call for window creating, id: %d", wininiptr->ID);
			createWindow(wininiptr);
			DBG("done!");
			wininiptr = NULL;
			wannacreate = 0;
		}
		if(wannakill_GL_ID){
			usleep(10000); // wait a little to be sure that caller is closed
			killwindow(wannakill_GL_ID);
			wannakill_GL_ID = 0;
		}
		forEachWindow(redisplay);
/*		gettimeofday(&now,NULL);
		timeToWait.tv_sec = now.tv_sec;
		timeToWait.tv_nsec = now.tv_usec * 1000UL + 10000000UL;
		pthread_cond_timedwait(&fakeCond, &winini_mutex, &timeToWait);*/
		pthread_mutex_unlock(&winini_mutex);
		//pthread_testcancel();
		if(totWindows) glutMainLoopEvent(); // process actions if there are windows
/*		gettimeofday(&now,NULL);
		timeToWait.tv_sec = now.tv_sec;
		timeToWait.tv_nsec = now.tv_usec * 1000UL + 10000000UL;
		pthread_mutex_lock(&fakeMutex);
		pthread_cond_timedwait(&fakeCond, &fakeMutex, &timeToWait);
		pthread_mutex_unlock(&fakeMutex);*/
/*		tv.tv_sec = 0;
		tv.tv_usec = 10000;
		select(0, NULL, NULL, NULL, &tv);*/
		usleep(10000);
	}
	return NULL;
}
Exemple #19
0
void quitfunc(RDArsrc *mainrsrc)
{
	if(mainrsrc!=NULL) 
	{
		killwindow(mainrsrc);
		free_rsrc(mainrsrc);
	}
	mainrsrc=NULL;
	if(bank_id!=NULL) Rfree(bank_id);
	if(defbankid!=NULL) Rfree(defbankid);
	if(payddsv!=(-1)) CLSNRD(payddsv);
	if(ddsnum!=(-1)) CLSNRD(ddsnum);
	if(vennum!=(-1)) CLSNRD(vennum);
	if(venadr!=(-1)) CLSNRD(venadr);
	if(banknum!=(-1)) CLSNRD(banknum);
	if(output_device!=NULL) Rfree(output_device);
	ShutdownSubsystems();
	exit(0);
}
Exemple #20
0
static void selectrpt(RDArsrc *mainrsrc)
{
	int selected=0;
	struct RPTSTRUCTs r;
	char *temp=NULL;
	RDArsrc *tmprsrc=NULL;

	FINDRSCGETINT(mainrsrc,"RESOURCE LIST",&selected);
	r=RptAvl[selected];
	if(r.func!=NULL)
	{
		temp=Rmalloc(RDAstrlen(r.name)+18);
		sprintf(temp,"Creating %s Report",(r.name!=NULL?r.name:""));
		tmprsrc=odiagscrn("DIAGNOSTIC SCREEN",module,temp,NULL,NE(RptAvl));
		if(temp!=NULL) Rfree(temp);
		if(tmprsrc!=NULL)
		{
			if(ADVmakescrn(tmprsrc,TRUE))
			{
				prterr("Error Cannot Create Diagnostic Screen.");
				if(tmprsrc!=NULL) free_rsrc(tmprsrc);
			} else {
				ForceWindowUpdate(tmprsrc);
			}
		}
/*lint -e746 */
		r.func();
/*lint +e746 */
		FINDRSCLISTAPPlib(mainrsrc,"ERROR LIST",0,errorlist);
		updatersrc(mainrsrc,"ERROR LIST");
		if(tmprsrc!=NULL) 
		{
			update_diagnostic(tmprsrc,TRUE);
		}
		if(tmprsrc!=NULL)
		{
			killwindow(tmprsrc);
			free_rsrc(tmprsrc);
		}
	}
}
Exemple #21
0
static void quit_record(RDArsrc *mtnrsrc,mtnstruct *mtn)
{
	if(mtn!=NULL)
	{
		if(mtn->DEFtypes!=NULL) freeapplib(mtn->DEFtypes);
		if(mtn->previous!=NULL) FreeRDATData(mtn->previous);
		Rfree(mtn);
	}
	if(WindowCount<2)
	{
		CLOSE_MASTER_FILES(MASTER);
		if(MASTER!=NULL) FreeMaintainMaster(MASTER);
		ShutdownSubsystems();
		exit(0);
	}
	if(mtnrsrc!=NULL)
	{
		killwindow(mtnrsrc);
		free_rsrc(mtnrsrc);
	}	
}
Exemple #22
0
void main()
{
    //before
    int x,y;
    int r,g,b;
    initwindow();

    //picture
    for(y=0; y<1024; y++)
    {
        for(x=0; x<1024; x++)
        {
            r=RED(x,y)&0xff;
            g=GREEN(x,y)&0xff;
            b=BLUE(x,y)&0xff;
            palette[y*1024+x]=(b)+(g<<8)+(r<<16);
        }
    }
    createppm(0x04000400,(BYTE*)palette,"5.ppm");

    //forever
    QWORD type=0;
    QWORD key=0;
    while(1)
    {
        //1.先在内存里画画,然后一次性写到窗口内
        writewindow(0x04000400,palette);

        //2.等事件,是退出消息就退出
        uievent(&type,&key);
        if( type==0 )break;
        if( (type==0x64626b)&&(key==0x1b))break;
    }

    //after
    killwindow();
}
Exemple #23
0
void ReadItron(RDArsrc *mainrsrc)
{
	RDArsrc *tmprsrc=NULL;
	FILE *fp=NULL;
	char temp[129],custid[16],read_method=0,read_code=0;
	char new_service=FALSE,tamper[5],readdate[9],read_date[11];
	char tim[9],reseq=FALSE;
	RDATData *prev=NULL;
	long reading=0;
	int counters=0,serviceno=0,time_code=0,route=0;
	int total_time=0;
	short dec_pos=0,last_type=(-1),hrs=0,mins=0;
	double new_reading=0.0,seq1=0,new_sequence=0,sequence=0;

	readwidget(mainrsrc,"FILENAME");
	FINDRSCGETSTRING(mainrsrc,"FILENAME",&ITRON_FILENAME);
	counters=CountLines(ITRON_FILENAME);
	fp=fopen(ITRON_FILENAME,"r+b");
	if(fp==NULL)
	{
		prterr("Error Attempting to open and read file [%s] for import.",(ITRON_FILENAME!=NULL ? ITRON_FILENAME:""));
		return;
	}
	tmprsrc=odiagscrn("DIAGNOSTIC SCREEN",module,
		"Importing Meter Readings",stop_diagnostic,counters);
	ZERNRD(utbsvc);
	if(tmprsrc!=NULL)
	{
		if(!APPmakescrn(tmprsrc,TRUE,NULL,NULL,FALSE))
		{
			ForceWindowUpdate(tmprsrc);
		} else {
		}
	}
	while(fgets(temp,128,fp))
	{
		if(abort_diagnostic) break;
		if(!strncmp(temp,"RHD",3))
		{
			if(temp[51]=='Y') reseq=TRUE;
				else reseq=FALSE;
		} else if(!strncmp(temp,"CUS",3))
		{
			new_service=FALSE;
			memcpy(custid,&temp[14],15);
			sprintf(stemp,"%-4s",&temp[30]);
			serviceno=atoi(stemp);
			if(temp[98]=='Y') new_service=TRUE;
				else new_service=FALSE;
			last_type=0;
		} else if(!strncmp(temp,"MTR",3))
		{
			sprintf(stemp,"%-8s",&temp[61]);
			sequence=atoi(stemp);
			sprintf(stemp,"%-8s",&temp[69]);
			new_sequence=atoi(stemp);
			sprintf(stemp,"%-3s",&temp[95]);
			time_code=atoi(stemp);
			total_time+=time_code;
			last_type=1;
		} else if(!strncmp(temp,"RTR",3))
		{
			sprintf(stemp,"%-6s",&temp[5]);
			route=atoi(stemp);
			ZERNRD(utbrte);
			FINDFLDSETINT(utbrte,"ROUTE NUMBER",route);
			if(!ADVEQLNRDsec(utbrte,1,SCRNvirtualSubData,mainrsrc))
			{
				prev=RDATDataNEW(utbrte);
			} else {
				if(prev!=NULL) FreeRDATData(prev);
				KEYNRD(utbrte,1);
			}
			memset(stemp,0,101);
			hrs=total_time/60;
			mins=(total_time-(hrs*60));
			sprintf(stemp,"%02d:%02d:00",hrs,mins);
			FINDFLDSETSTRING(utbrte,"TIME ALLOWED",stemp);
			ADVWRTTRANSsec(utbrte,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
			if(prev!=NULL) FreeRDATData(prev);
			memset(stemp,0,101);
		} else if(!strncmp(temp,"RDG",3))
		{
			read_method=temp[25];
			read_code=temp[61];
			memset(stemp,0,101);
			strncpy(stemp,&temp[33],10);
			reading=atol(stemp);
			sprintf(stemp,"%-2s",&temp[91]);
			dec_pos=atoi(stemp);
			new_reading=FixReading(reading,dec_pos);
			memcpy(readdate,&temp[47],8);
			sprintf(read_date,"%.2s/%.2s/%.4s",&readdate[0],&readdate[2],&readdate[4]);
			sprintf(tim,"%.2s:%.2s:%.2s",&temp[55],&temp[57],&temp[59]);
			if(read_code!='S' && read_code!=0)
			{
				if(read_method!='R' && read_method!='W')
				{
					if(last_type<2) /* Normal Reading */
					{
/* WRITE UTBSVC NORMAL */
						ZERNRD(utbsvc);
						FINDFLDSETSTRING(utbsvc,"CUSTOMER IDENTIFICATION",custid);
						FINDFLDSETINT(utbsvc,"SERVICE NUMBER",serviceno);
						if(!ADVEQLNRDsec(utbsvc,1,SCRNvirtualSubData,mainrsrc))
						{
							prev=RDATDataNEW(utbsvc);
							FINDFLDGETDOUBLE(utbsvc,"SEQUENCE NUMBER",&seq1);
							FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
							FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
							if(seq1!=new_sequence && reseq==TRUE)
							{
								FINDFLDSETCHAR(utbsvc,"RESEQUENCE",TRUE);
								FINDFLDSETDOUBLE(utbsvc,"NEW SEQUENCE NUMBER",new_sequence);
							}
#endif /* XXXX */
							ADVWRTTRANSsec(utbsvc,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
							if(prev!=NULL) FreeRDATData(prev);
						} else if(new_service==TRUE)
						{
							if(prev!=NULL) FreeRDATData(prev);
							KEYNRD(utbsvc,1);
							FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
							FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
							if(reseq==TRUE) FINDFLDSETDOUBLE(utbsvc,"SEQUENCE NUMBER",new_sequence);
#endif /* XXXX */
							ADVWRTTRANSsec(utbsvc,0,NULL,NULL,SCRNvirtualSubData,mainrsrc);
						}
					} else { /* Demand Reading */
/* WRITE UTBSVC DEMAND */
						ZERNRD(utbsvc);
						FINDFLDSETSTRING(utbsvc,"CUSTOMER IDENTIFICATION",custid);
						FINDFLDSETINT(utbsvc,"SERVICE NUMBER",serviceno);
						if(!ADVEQLNRDsec(utbsvc,1,SCRNvirtualSubData,mainrsrc))
						{
							prev=RDATDataNEW(utbsvc);
							FINDFLDSETDOUBLE(utbsvc,"DEMAND READING",new_reading);
							ADVWRTTRANSsec(utbsvc,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
							if(prev!=NULL) FreeRDATData(prev);
						} else if(new_service==TRUE)
						{
							if(prev!=NULL) FreeRDATData(prev);
							KEYNRD(utbsvc,1);
							FINDFLDSETDOUBLE(utbsvc,"DEMAND READING",new_reading);
							FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
							if(reseq==TRUE) FINDFLDSETDOUBLE(utbsvc,"SEQUENCE NUMBER",new_sequence);
#endif /* XXXX */
							ADVWRTTRANSsec(utbsvc,0,NULL,NULL,SCRNvirtualSubData,mainrsrc);
						}
					}
				}
			}
			last_type=2;
		} else if(!strncmp(temp,"WRR",3))
		{
			if(read_code!='S' && read_code!=0)
			{
/* WRITE UTBSVC WAND */
				sprintf(tamper,"%.4s",&temp[54]);
				sprintf(stemp,"%-10s",&temp[72]);
				reading=atoi(stemp);
				new_reading=FixReading(reading,dec_pos);
				memcpy(readdate,&temp[58],8);
				sprintf(read_date,"%.2s/%.2s/%.4s",&readdate[0],&readdate[2],&readdate[4]);
				sprintf(tim,"%.2s:%.2s:%.2s",&temp[66],&temp[68],&temp[70]);
				ZERNRD(utbsvc);
				FINDFLDSETSTRING(utbsvc,"CUSTOMER IDENTIFICATION",custid);
				FINDFLDSETINT(utbsvc,"SERVICE NUMBER",serviceno);
				if(!ADVEQLNRDsec(utbsvc,1,SCRNvirtualSubData,mainrsrc))
				{
					prev=RDATDataNEW(utbsvc);
					FINDFLDGETDOUBLE(utbsvc,"SEQUENCE NUMBER",&seq1);
					FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
					FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
					if(seq1!=new_sequence && reseq==TRUE)
					{
						FINDFLDSETCHAR(utbsvc,"RESEQUENCE",TRUE);
						FINDFLDSETDOUBLE(utbsvc,"NEW SEQUENCE NUMBER",new_sequence);
					}
#endif /* XXXX */
					ADVWRTTRANSsec(utbsvc,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
					if(prev!=NULL) FreeRDATData(prev);
				} else if(new_service==TRUE)
				{
					if(prev!=NULL) FreeRDATData(prev);
					KEYNRD(utbsvc,1);
					FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
					FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
					if(reseq==TRUE) FINDFLDSETDOUBLE(utbsvc,"SEQUENCE NUMBER",new_sequence);
#endif /* XXXX */
					ADVWRTTRANSsec(utbsvc,0,NULL,NULL,SCRNvirtualSubData,mainrsrc);
				}
			}
		} else if(!strncmp(temp,"RFF",3))
		{
			if(read_code!='S' && read_code!=0)
			{
/* WRITE UTBSVC RADIO */
				sprintf(tamper,"%.2s",&temp[56]);
				sprintf(stemp,"%-10s",&temp[72]);
				reading=atoi(stemp);
				new_reading=FixReading(reading,dec_pos);
				memcpy(readdate,&temp[58],8);
				sprintf(read_date,"%.2s/%.2s/%.4s",&readdate[0],&readdate[2],&readdate[4]);
				sprintf(tim,"%.2s:%.2s:%.2s",&temp[66],&temp[68],&temp[70]);
				ZERNRD(utbsvc);
				FINDFLDSETSTRING(utbsvc,"CUSTOMER IDENTIFICATION",custid);
				FINDFLDSETINT(utbsvc,"SERVICE NUMBER",serviceno);
				if(!ADVEQLNRDsec(utbsvc,1,SCRNvirtualSubData,mainrsrc))
				{
					prev=RDATDataNEW(utbsvc);
					FINDFLDGETDOUBLE(utbsvc,"SEQUENCE NUMBER",&seq1);
					FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
					FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
					if(seq1!=new_sequence && reseq==TRUE)
					{
						FINDFLDSETCHAR(utbsvc,"RESEQUENCE",TRUE);
						FINDFLDSETDOUBLE(utbsvc,"NEW SEQUENCE NUMBER",new_sequence);
					}
#endif /* XXXX */
					ADVWRTTRANSsec(utbsvc,0,NULL,prev,SCRNvirtualSubData,mainrsrc);
					if(prev!=NULL) FreeRDATData(prev);
				} else if(new_service==TRUE)
				{
					if(prev!=NULL) FreeRDATData(prev);
					KEYNRD(utbsvc,1);
					FINDFLDSETDOUBLE(utbsvc,"CURRENT READING",new_reading);
					FINDFLDSETSTRING(utbsvc,"LAST READ DATE",read_date);
#ifdef XXXX
					if(reseq==TRUE) FINDFLDSETDOUBLE(utbsvc,"SEQUENCE NUMBER",new_sequence);
#endif /* XXXX */
					ADVWRTTRANSsec(utbsvc,0,NULL,NULL,SCRNvirtualSubData,mainrsrc);
				}
			}
		} else { 
			/* Not used for import */
		}
	}
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
		tmprsrc=NULL;
	}
	quitfunc(mainrsrc);
}
Exemple #24
0
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);
	}
}
Exemple #25
0
void killwindow_v(int GL_ID){
	DBG("GL_ID: %d", GL_ID);
	killwindow(GL_ID);
}
Exemple #26
0
void selectconv(RDArsrc *mainrsrc,short *rscreen)
{
	short ef=FALSE,dodiag=FALSE,rngkey=FALSE,range_screen=TRUE,a=FALSE;
	RDArsrc *tmprsrc=NULL;
	RangeScreen *rs=NULL;
	char *e=NULL,delflag=FALSE;
	RDATData *prev=FALSE;

	if(mainrsrc!=NULL)
	{
		readallwidgets(mainrsrc);
		rs=RangeScreenNew(mainrsrc);
		ReadRangeScreen(filenum,rs);
		ReadRangeScreen(chgfilenum,rs);
	}
	range_screen=*rscreen;
	tmprsrc=diagscrn(filenum,"DIAGNOSTIC SCREEN",module,
		"Selecting Records to Convert",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);
		}
	}
	addDFincvir(tmprsrc,MODULENAME(filenum),FILENAME(filenum),NULL,filenum);
	addDFincvir(tmprsrc,MODULENAME(chgfilenum),FILENAME(chgfilenum),NULL,
		chgfilenum);
	GET_ALL_SCREEN_VIRTUALS(tmprsrc,0);
	LOCNRDFILE(filenum);
	ZERNRD(filenum);
	if(range_screen)
	{
			rngkey=setfilekeyFROMrangersrc(filenum,1,rs);
		if(rngkey && range_screen) 
		{
			ef=ADVGTENRDsec(filenum,1,SCRNvirtualSubData,tmprsrc);
		} else ef=ADVBEGNRDsec(filenum,SCRNvirtualSubData,tmprsrc);
	} else ef=ADVBEGNRDsec(filenum,SCRNvirtualSubData,tmprsrc);
	while(!ef)
	{
		FINDFLDGETCHAR(filenum,"DELETEFLAG",&delflag);
		if(range_screen) a=testfilerangersrc(filenum,rs);
			else a=FALSE;
		if(!delflag && !a)
		{
			prev=RDATDataNEW(filenum);
			a=convertfield(tmprsrc,rs,range_screen);
			if(a) 
			{
				if(!ADVWRTTRANSsec(filenum,0,NULL,prev,SCRNvirtualSubData,tmprsrc)) RCKNRD(filenum);
				dodiag=TRUE;
			}
			if(prev!=NULL) FreeRDATData(prev);
		} else dodiag=FALSE;
		if(tmprsrc!=NULL) 
		{
			update_diagnostic(tmprsrc,(dodiag ? TRUE:FALSE));
			if(!range_screen) ForceWindowUpdate(tmprsrc);
		}
		if(rngkey && range_screen)
		{
			ef=ADVNXTNRDsec(filenum,1,SCRNvirtualSubData,tmprsrc);
			if(!ef)
			{
				ef=testfilekeyTOrangersrc(filenum,1,rs);
			}
		} else ef=ADVSEQNRDsec(filenum,SCRNvirtualSubData,tmprsrc);
	}
	UNLNRDFILE(filenum);
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
	}
	if(rs!=NULL) FreeRangeScreen(rs);
	quitconv(mainrsrc);
}
Exemple #27
0
void selectpurcpo(RDArsrc *mainrsrc)
{
	char Stemp[101],*pfix=NULL,*sfix=NULL,*e=NULL;
	char zfill=TRUE,*idx=NULL,deleteflag=FALSE,assigned=FALSE;
	int fromnum=0,tonum=0,x,len=0;
	RDArsrc *tmprsrc=NULL;

	readallwidgets(mainrsrc);
	FINDRSCGETINT(mainrsrc,"FROM NUMBER",&fromnum);
	FINDRSCGETINT(mainrsrc,"TO NUMBER",&tonum);
	if((tonum-fromnum)<1) return;
	FINDRSCGETCHAR(mainrsrc,"ZERO FILL",&zfill);
	FINDRSCGETSTRING(mainrsrc,"PREFIX",&pfix);
	FINDRSCGETSTRING(mainrsrc,"SUFFIX",&sfix);
	e=Rmalloc((RDAstrlen(pfix)*2)+(RDAstrlen(sfix)*2)+51);
	sprintf(e,"Create PO ID's %s%d%s to %s%d%s",pfix,fromnum,sfix,
		pfix,tonum,sfix);
	tmprsrc=odiagscrn("DIAGNOSTIC SCREEN",module,e,stop_diagnostic,(tonum-fromnum+1));
	if(e!=NULL) Rfree(e);
	addDFincvir(tmprsrc,module,"PURIDS",NULL,purids);
	GET_ALL_SCREEN_VIRTUALS(tmprsrc,0);
	if(tmprsrc!=NULL)
	{
		if(ADVmakescrn(tmprsrc,TRUE))
		{
			prterr("Error Cannot Create Diagnostic Screen.");
		} else ForceWindowUpdate(tmprsrc);
	}
	memset(Stemp,0,101);
	sprintf(Stemp,"%d",tonum);
	len=RDAstrlen(Stemp);
	for(x=fromnum;x<(tonum+1);++x)
	{
		if(abort_diagnostic) break;
		memset(Stemp,0,101);
		if(zfill) sprintf(Stemp,"%0*d",len,x);
			else sprintf(Stemp,"%d",x);
		idx=Rmalloc(RDAstrlen(pfix)+RDAstrlen(sfix)+RDAstrlen(Stemp)+1);
		sprintf(idx,"%s%s%s",(pfix!=NULL ? pfix:""),Stemp,
			(sfix!=NULL ? sfix:""));
		ZERNRD(purids);
		FINDFLDSETSTRING(purids,"PO IDENTIFICATION",idx);
		LOCNRDFILE(purids);
		if(ADVEQLNRDsec(purids,1,SCRNvirtualSubData,tmprsrc)) 
		{
			FINDFLDSETCHAR(purids,"DELETEFLAG",deleteflag);
			FINDFLDSETCHAR(purids,"ASSIGNED",assigned);
			WRTTRANS(purids,0,NULL,NULL);
			if(tmprsrc!=NULL) update_diagnostic(tmprsrc,TRUE);
		} else {
			if(tmprsrc!=NULL) update_diagnostic(tmprsrc,FALSE);
		}
		if(idx!=NULL) Rfree(idx);
		UNLNRDFILE(purids);
	}
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
	}
	if(pfix!=NULL) Rfree(pfix);
	if(sfix!=NULL) Rfree(sfix);
}
Exemple #28
0
void setcheck(RDArsrc *mainrsrc)
{
	short ef=0,increment_diagnostic=FALSE;
	RangeScreen *rs=NULL;
	DBsort *sortfile=NULL;
	char *sortname=NULL,*bankid1=NULL;
	int checknum=0;
	RDArsrc *tmprsrc=NULL;
	int x=0;
	RDAvirtual *v;
	char manual_voucher=FALSE,deleteflag=FALSE,verified=FALSE;
	char electronic=FALSE;
	/*
	char cleared=FALSE;
	char distributed=FALSE;
	*/
	DFvirtual *d=NULL;

	d=getDFvirtual("VENPMT","VENDOR ADDRESS 1");
	if(d!=NULL)
	{
		VendorAddr1=Rmalloc(sizeof(RDAvirtual));
		VendorAddr1->name=stralloc(d->name);
		VendorAddr1->when=0;
		VendorAddr1->len=d->length;
		VendorAddr1->type=d->type;
		if(d->expression!=NULL) 
		{
			VendorAddr1->expression=PP_translate(d->expression);
		} else {
			VendorAddr1->expression=NULL;
		}
		VendorAddr1->computed=FALSE;
		VendorAddr1->range=FALSE;
		VendorAddr1->dlen=0;
		switch(VendorAddr1->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:
				VendorAddr1->value.string_value=NULL;
				VendorAddr1->dlen=0;
				break;
			case BOOLNS:
			case CHARACTERS:
				VendorAddr1->value.string_value=Rmalloc(1);
				*VendorAddr1->value.string_value=0;
				VendorAddr1->dlen=1;
				break;
			case DECIMALV:
			case DOUBLEV:
			case SDOUBLEV:
			case DOLLARS:
			case SDECIMALV:
				VendorAddr1->value.float_value=Rmalloc(sizeof(double));
				*VendorAddr1->value.float_value=0;
				VendorAddr1->dlen=sizeof(double);
				break;
			case SHORTV:
			case SSHORTV:
				VendorAddr1->value.short_value=Rmalloc(sizeof(short));
				*VendorAddr1->value.short_value=0;
				VendorAddr1->dlen=sizeof(short);
				break;
			case SCROLLEDLIST:
			case LONGV:
			case SLONGV:
				VendorAddr1->value.integer_value=Rmalloc(sizeof(int));
				*VendorAddr1->value.integer_value=0;
				VendorAddr1->dlen=sizeof(int);
				break;
			default:
				prterr("Error virtual field type [%d] not found for field [%s].",VendorAddr1->type,VendorAddr1->name);
				break;
		}
		FreeDFvirtual(d);
	}
	d=getDFvirtual("VENPMT","VENDOR ADDRESS 2");
	if(d!=NULL)
	{
		VendorAddr2=Rmalloc(sizeof(RDAvirtual));
		VendorAddr2->name=stralloc(d->name);
		VendorAddr2->when=0;
		VendorAddr2->len=d->length;
		VendorAddr2->type=d->type;
		if(d->expression!=NULL) 
		{
			VendorAddr2->expression=PP_translate(d->expression);
		} else {
			VendorAddr2->expression=NULL;
		}
		VendorAddr2->computed=FALSE;
		VendorAddr2->range=FALSE;
		VendorAddr2->dlen=0;
		switch(VendorAddr2->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:
				VendorAddr2->value.string_value=NULL;
				VendorAddr2->dlen=0;
				break;
			case BOOLNS:
			case CHARACTERS:
				VendorAddr2->value.string_value=Rmalloc(1);
				*VendorAddr2->value.string_value=0;
				VendorAddr2->dlen=1;
				break;
			case DECIMALV:
			case DOUBLEV:
			case SDOUBLEV:
			case DOLLARS:
			case SDECIMALV:
				VendorAddr2->value.float_value=Rmalloc(sizeof(double));
				*VendorAddr2->value.float_value=0;
				VendorAddr2->dlen=sizeof(double);
				break;
			case SHORTV:
			case SSHORTV:
				VendorAddr2->value.short_value=Rmalloc(sizeof(short));
				*VendorAddr2->value.short_value=0;
				VendorAddr2->dlen=sizeof(short);
				break;
			case SCROLLEDLIST:
			case LONGV:
			case SLONGV:
				VendorAddr2->value.integer_value=Rmalloc(sizeof(int));
				*VendorAddr2->value.integer_value=0;
				VendorAddr2->dlen=sizeof(int);
				break;
			default:
				prterr("Error virtual field type [%d] not found for field [%s].",VendorAddr2->type,VendorAddr2->name);
				break;
		}
		FreeDFvirtual(d);
	}
	d=getDFvirtual("VENPMT","VENDOR ADDRESS 3");
	if(d!=NULL)
	{
		VendorAddr3=Rmalloc(sizeof(RDAvirtual));
		VendorAddr3->name=stralloc(d->name);
		VendorAddr3->when=0;
		VendorAddr3->len=d->length;
		VendorAddr3->type=d->type;
		if(d->expression!=NULL) 
		{
			VendorAddr3->expression=PP_translate(d->expression);
		} else {
			VendorAddr3->expression=NULL;
		}
		VendorAddr3->computed=FALSE;
		VendorAddr3->range=FALSE;
		VendorAddr3->dlen=0;
		switch(VendorAddr3->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:
				VendorAddr3->value.string_value=NULL;
				VendorAddr3->dlen=0;
				break;
			case BOOLNS:
			case CHARACTERS:
				VendorAddr3->value.string_value=Rmalloc(1);
				*VendorAddr3->value.string_value=0;
				VendorAddr3->dlen=1;
				break;
			case DECIMALV:
			case DOUBLEV:
			case SDOUBLEV:
			case DOLLARS:
			case SDECIMALV:
				VendorAddr3->value.float_value=Rmalloc(sizeof(double));
				*VendorAddr3->value.float_value=0;
				VendorAddr3->dlen=sizeof(double);
				break;
			case SHORTV:
			case SSHORTV:
				VendorAddr3->value.short_value=Rmalloc(sizeof(short));
				*VendorAddr3->value.short_value=0;
				VendorAddr3->dlen=sizeof(short);
				break;
			case SCROLLEDLIST:
			case LONGV:
			case SLONGV:
				VendorAddr3->value.integer_value=Rmalloc(sizeof(int));
				*VendorAddr3->value.integer_value=0;
				VendorAddr3->dlen=sizeof(int);
				break;
			default:
				prterr("Error virtual field type [%d] not found for field [%s].",VendorAddr3->type,VendorAddr3->name);
				break;
		}
		FreeDFvirtual(d);
	}
	readallwidgets(mainrsrc);
	FINDRSCGETSTRING(mainrsrc,"[BNKACC][BANK IDENTIFICATION]",&bank_id);
	FINDRSCGETSTRING(mainrsrc,"OUTPUT DEVICE",&output_device);
	FINDRSCGETINT(mainrsrc,"BODY COUNT",&BODY_COUNT);
	FINDRSCGETCHAR(mainrsrc,"USE CHECK OFFSET",&use_check_offset);
	FINDRSCGETCHAR(mainrsrc,"USE HIGH AMOUNT",&use_high_amount);
	sortname=unique_name();
	sortfile=DBsortNEW("PAYROLL",sortname,NRDRdaEngine);
	if(sortname!=NULL) Rfree(sortname);
	makeDBsortfile(sortfile);
	sortfile->fileno=OPNDBsort(sortfile);
	rs=RangeScreenNew(mainrsrc);
	ReadRangeScreen(payddsv,rs);
	if(mainrsrc->virflds!=NULL)
	{
		for(x=0,v=mainrsrc->virflds;x<mainrsrc->num;++x,++v)
		{
			ReadVirtualRangeStruct(v,rs);
		}
	}
	tmprsrc=diagscrn(payddsv,"DIAGNOSTIC SCREEN",module,
		"Selecting Vendor Vouchers",NULL);
	if(tmprsrc!=NULL)
		if(!APPmakescrn(tmprsrc,TRUE,NULL,NULL,FALSE))
			ForceWindowUpdate(tmprsrc);
	ef=ADVBEGNRDsec(payddsv,SCRNvirtualSubData,mainrsrc);
	while(!ef)
	{
		increment_diagnostic=FALSE;
		FINDFLDGETCHAR(payddsv,"SOURCE USER VERIFIED",&verified);
		FINDFLDGETCHAR(payddsv,"MANUAL VOUCHER",&manual_voucher);
		FINDFLDGETCHAR(payddsv,"DELETEFLAG",&deleteflag);
		FINDFLDGETCHAR(payddsv,"ELECTRONIC TRANSFER",&electronic);
		/*
		FINDFLDGETCHAR(payddsv,"BNKREC UPDATED",&cleared);
		FINDFLDGETCHAR(payddsv,"DISTRIBUTED",&distributed);
		if(verified && !cleared && !manual_voucher && !electronic && !deleteflag && !distributed)
		*/
		if(verified && !manual_voucher && !electronic && !deleteflag)
		{
		if(banknum!=(-1))
		{
			if(bank_id!=NULL)
			{
				FINDFLDGETSTRING(payddsv,"BANK IDENTIFICATION",&bankid1);
			}
		}
		if(!RDAstrcmp(bank_id,bankid1))
		{
			FINDFLDGETINT(payddsv,"CHECK NUMBER",&checknum);
			if(checknum>0)
			{
				COPYFIELD(payddsv,vennum,"VENDOR IDENTIFICATION");
				if(!ADVEQLNRDsec(vennum,1,SCRNvirtualSubData,mainrsrc))
				{
					FINDFLDGETCHAR(vennum,"DELETEFLAG",
						&deleteflag);
					if(!deleteflag)
					{
						COPYFIELD(payddsv,venadr,"VENDOR IDENTIFICATION");
						COPYFIELD(payddsv,venadr,"ADDRESS IDENTIFICATION");
						if(!ADVEQLNRDsec(venadr,1,SCRNvirtualSubData,mainrsrc))
						{
							FINDFLDGETCHAR(venadr,"DELETEFLAG",
								&deleteflag);
							if(!deleteflag)
							{
								COPYFIELD(payddsv,ddsnum,"DEDUCTION DESCRIPTION IDENTIFICATION");
								if(!ADVEQLNRDsec(ddsnum,1,SCRNvirtualSubData,mainrsrc))
								{
									FINDFLDGETCHAR(ddsnum,"DELETEFLAG",
										&deleteflag);
									if(!deleteflag)
									{
										if(!testfilerangersrc(payddsv,rs)/* && 
											!testfilerangersrc(vennum,rs)*/)
										{
											for(x=0,v=mainrsrc->virflds;
												x<mainrsrc->num;++x,++v)
											{
												if(ADVtestvirtualrangersrc(v,rs,(void (*)(...))SCRNvirtualSubData,mainrsrc)) 
												{
													break;
												}
											}
											if(x>=mainrsrc->num)
											{
												addsortrecord(mainrsrc,sortfile);
												increment_diagnostic=TRUE;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
		}
		CLEAR_SCREEN_VIRTUAL(mainrsrc);
		if(tmprsrc!=NULL) update_diagnostic(tmprsrc,increment_diagnostic);
		ef=ADVSEQNRDsec(payddsv,SCRNvirtualSubData,mainrsrc);
	}
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
		tmprsrc=NULL;
	}
	if(rs!=NULL) FreeRangeScreen(rs);
	if(SIZNRD(sortfile->fileno))
	{
		OutputChecks(sortfile->fileno);
	} else {
		prterr("Error no Vendor Vouchers Selected for Check Printing.");
	}
	if(bankid1!=NULL) Rfree(bankid1);
	if(sortfile!=NULL) 
	{
		CLSDBsort(sortfile);
		FreeDBsort(sortfile);
	}
/*
	quitfunc(mainrsrc);
*/
}
Exemple #29
0
void selectocccgl(RDArsrc *mainrsrc)
{
	char Stemp[101],*pfix=NULL,*sfix=NULL,*e=NULL;
	char zfill=TRUE,*idx=NULL,deleteflag=FALSE,assigned=FALSE;
	int fromnum=0,tonum=0,x,len=0;
	RDArsrc *tmprsrc=NULL;
	int selyear=0,year=0,selgroup_no=0,group_no=0;
	short keyno=0;

	readallwidgets(mainrsrc);
	FINDRSCGETINT(mainrsrc,"CHARGE YEARS",&selyear);
	if(!RDAstrcmp(yearsavl->libs[selyear],"No Years")) return;
	FINDRSCGETINT(mainrsrc,"GROUP NUMBERS",&selgroup_no);
	if(!RDAstrcmp(grpsavl->libs[selgroup_no],"No Year Groups")) return;
	year=Ratoi(yearsavl->libs[selyear]);
	group_no=Ratoi(grpsavl->libs[selgroup_no]);
	FINDRSCGETINT(mainrsrc,"FROM NUMBER",&fromnum);
	FINDRSCGETINT(mainrsrc,"TO NUMBER",&tonum);
	if((tonum-fromnum)<1) return;
	FINDRSCGETCHAR(mainrsrc,"ZERO FILL",&zfill);
	FINDRSCGETSTRING(mainrsrc,"PREFIX",&pfix);
	FINDRSCGETSTRING(mainrsrc,"SUFFIX",&sfix);
	e=Rmalloc((RDAstrlen(pfix)*2)+(RDAstrlen(sfix)*2)+51);
	sprintf(e,"Create GROUP LIC NO's %s%d%s to %s%d%s",
		(pfix==NULL?"":pfix),fromnum,(sfix==NULL?"":sfix),
		(pfix==NULL?"":pfix),tonum,(sfix==NULL?"":sfix));
	tmprsrc=odiagscrn("DIAGNOSTIC SCREEN",module,e,stop_diagnostic,(tonum-fromnum+1));
	if(e!=NULL) Rfree(e);
	addDFincvir(tmprsrc,module,"OCCGLIC",NULL,occglic);
	GET_ALL_SCREEN_VIRTUALS(tmprsrc,0);
	if(tmprsrc!=NULL)
	{
		if(ADVmakescrn(tmprsrc,TRUE))
		{
			prterr("Error Cannot Create Diagnostic Screen.");
		} else ForceWindowUpdate(tmprsrc);
	}
	memset(Stemp,0,101);
	sprintf(Stemp,"%d",tonum);
	len=RDAstrlen(Stemp);
	for(x=fromnum;x<(tonum+1);++x)
	{
		if(abort_diagnostic) break;
		memset(Stemp,0,101);
		if(zfill) sprintf(Stemp,"%0*d",len,x);
			else sprintf(Stemp,"%d",x);
		idx=Rmalloc(RDAstrlen(pfix)+RDAstrlen(sfix)+RDAstrlen(Stemp)+1);
		sprintf(idx,"%s%s%s",(pfix!=NULL ? pfix:""),Stemp,
			(sfix!=NULL ? sfix:""));
		keyno=KEYNUMBER(occglic,"OCCGLIC KEY");
		if(keyno<1) keyno=1;
		ZERNRD(occglic);
		FINDFLDSETINT(occglic,"CHARGE YEAR",year);
		FINDFLDSETINT(occglic,"GROUP NUMBER",group_no);
		FINDFLDSETSTRING(occglic,"LICENSE NUMBER",idx);
/*
		LOCNRDFILE(occglic);	
*/
		if(ADVEQLNRDsec(occglic,1,SCRNvirtualSubData,tmprsrc)) 
		{
			FINDFLDSETINT(occglic,"CHARGE YEAR",year);
			FINDFLDSETINT(occglic,"GROUP NUMBER",group_no);
			FINDFLDSETCHAR(occglic,"DELETEFLAG",deleteflag);
			FINDFLDSETCHAR(occglic,"ASSIGNED",assigned);
			WRTTRANS(occglic,0,NULL,NULL);
			if(tmprsrc!=NULL) update_diagnostic(tmprsrc,TRUE);
		} else {
			if(tmprsrc!=NULL) update_diagnostic(tmprsrc,FALSE);
		}
		if(idx!=NULL) Rfree(idx);
/*
		UNLNRDFILE(occglic);
*/
	}
	if(tmprsrc!=NULL)
	{
		killwindow(tmprsrc);
		free_rsrc(tmprsrc);
	}
	if(pfix!=NULL) Rfree(pfix);
	if(sfix!=NULL) Rfree(sfix);
}