⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nc_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    if(sle_end.hour==24)
	{
         sle_end.hour=23;
		 min=59;
		 sec=59;
	}
	sprintf(end_date,"%4d-%02d-%02d %02d:%02d:%02d",
			         sle_end.year,sle_end.month,sle_end.day,
					 sle_end.hour,min,sec); 
	///////////////////////////////////////////////
	//sprintf(start_date,"%s 00:00:00",ls_start);
	//sprintf(end_date,"%s 23:59:59",ls_end);

	ShowText( 0, 10, "                " );
	ShowText( 0, 10, gs_site_name );

	ShowText( 0, 42, "                " );
	//ShowText( 0, 42, "" );

	ShowText( 1, 10, "                " );
	ShowText( 1, 10, gs_current_time );

	ShowText( 1, 42, "			                   " );
	if(strcmp(ls_start,ls_end)==0)
		ShowText(1,42,ls_start);
	else
	{
		sprintf(lsTemp,"%s-%s",ls_start,ls_end);
		ShowText(1,42,lsTemp);
	}

	//call service
	sprintf(instr,"%ld\t%s\t%s",gl_staff_id,start_date,end_date);
	ret = CallServByStr("PSSiteSum",instr,poutstr);

	if(ret < 0)
	{
		MessageBox("错误",0,poutstr[0]);
		lpfree(poutstr,1);
		return -1;
	}

	ret1=GetMulRowData(poutstr[0],lpdata,&row,&col,50);
	//userlog(poutstr[0]);
	
	if(strcmp(lpdata[0],NULL)==0||strcmp(lpdata[0],"")==0||strcmp(poutstr[0],NULL)==0)
	{
		lpfree(poutstr,1);
		MessageBox("提示",0,"未找到员工收费记录!");
		return 0; 
	}
	lpfree(poutstr,1);

	int k=0;
	long p_stid=atol(lpdata[0]);
	staff_id[0]=atol(lpdata[0]);
	strcpy(staff_name[0],lpdata[1]);

	for(i=0;i<row;i++)
	{
	    j=i*col;
		
		if(p_stid==atol(lpdata[j]))
		{			
			amount[k]=atof(lpdata[j+3]);
			switch(atol(lpdata[j+2]))
			{
			case 1:
				fee[k][0]+=amount[k];break;
			case 110000:
				fee[k][1]+=amount[k];break;        
			case 120000:
				fee[k][2]+=amount[k];break;  
			case 130000:
				fee[k][3]+=amount[k];break;  
			case 140000:
				fee[k][4]+=amount[k];break;  
			case 150000:
				fee[k][5]+=amount[k];break;  
			case 160000:
				fee[k][6]+=amount[k];break;  
			case 170000:
				fee[k][7]+=amount[k];break;  
			case 180000:
				fee[k][8]+=amount[k];break;  
			case 190000:
				fee[k][9]+=amount[k];break;  
			case 200000:
				fee[k][10]+=amount[k];break;  
			case 210000:
				fee[k][11]+=amount[k];break;  
			case 220000:
				fee[k][12]+=amount[k];break;  
			case 230000:
				fee[k][13]+=amount[k];break;  
			case 240000:
				fee[k][14]+=amount[k];break;  
			case 250000:
				fee[k][15]+=amount[k];break;  
			case 260000:
				fee[k][16]+=amount[k];break;  
			case 270000:
				fee[k][17]+=amount[k];break;
			case -1000:
				sum_num[k]=amount[k];break;
			case -2000:
				real_amount[k]=amount[k];break;
			default:
				fee[k][29]=fee[k][29]+amount[k];break;

			}
		}
		else 
		{
			p_stid=atol(lpdata[j]);
			k++;i--;
			staff_id[k]=atol(lpdata[j]);
			strcpy(staff_name[k],lpdata[j+1]);
		}
	}

	for(i=0;i<=k;i++)
		for(j=0;j<30;j++)
			sum_amount[i]+=fee[i][j];

	for(i=0;i<=k;i++)	
	sum_change[i]=real_amount[i] - sum_amount[i];	

	//再次归并费用
	for(i=0;i<=k;i++)
	{
		sum_fee[i][0]=fee[i][0];		
		sum_fee[i][1]=fee[i][1]+fee[i][9]+fee[i][10]+fee[i][11]+fee[i][12];
		sum_fee[i][2]=fee[i][2];
		sum_fee[i][3]=fee[i][3];
		sum_fee[i][4]=fee[i][4]+fee[i][5];
		sum_fee[i][5]=fee[i][6];
		sum_fee[i][6]=fee[i][14]+fee[i][15];
		sum_fee[i][7]=fee[i][16];
		sum_fee[i][8]=fee[i][17];
		sum_fee[i][9]=fee[i][7]+fee[i][8]+fee[i][13];
	}

	dw_1.Update( true );
	dw_1.ClearList( false );
	
	char tmp[14][30],tmpid[20];
	dw_1.AddRow("","工  号","姓  名","月租费","区内通话","区间通话","长话通话","电报费","网络使用","一次性费","信息费","其它费","违约金","零  钞","收费合计","收费户数");
	dw_1.AddRow("","------","--------","----------","----------","----------","----------","---------","----------","----------","----------","----------","--------","--------","------------","--------");
	for(i=0;i<=k;i++)
	{
		sprintf(tmpid,"%ld",staff_id[i]);

		sprintf(tmp[0],"%.2f",sum_fee[i][1]);
		sprintf(tmp[1],"%.2f",sum_fee[i][2]);	
		sprintf(tmp[2],"%.2f",sum_fee[i][3]);
		sprintf(tmp[3],"%.2f",sum_fee[i][4]);		
		sprintf(tmp[4],"%.2f",sum_fee[i][5]);
		sprintf(tmp[5],"%.2f",sum_fee[i][6]);
		sprintf(tmp[6],"%.2f",sum_fee[i][7]);
		sprintf(tmp[7],"%.2f",sum_fee[i][8]);
		sprintf(tmp[8],"%.2f",sum_fee[i][9]);
		sprintf(tmp[9],"%.2f",sum_fee[i][0]);
		sprintf(tmp[10],"%.2f",sum_change[i]);
		sprintf(tmp[11],"%.2f",real_amount[i]);
		sprintf(tmp[12],"%.0f",sum_num[i]);

		dw_1.AddRow("",tmpid,staff_name[i],tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9],tmp[10],tmp[11],tmp[12]);
	}
	dw_1.AddRow("","------","--------","----------","----------","----------","----------","---------","----------","----------","----------","----------","--------","--------","------------","--------");
	dw_1.Update();

    lpfree(lpdata,ret1);
	return 1;
}


int StatWnd::wf_siteqf_report()
{
	char ls_start[30],ls_end[30];
	char start_date[30],end_date[30];
	char lsTemp[512],lsch[50],lsch1[50];
	int i,j;
	long row,col;
	char instr[1024],*lpdata[8000],*poutstr[1];
	int ret,ret1;
    Rect rect(0,0,0,0);
	strcpy(ls_start,NULL);
	strcpy(ls_end,NULL);

	float fee[300][30],sum_fee[300][10],amount[300];
	float sum_amount[300],hj_sum[11];
	long  cycle_id[300];

	//初始化
	for(i=0;i<300;i++)
		for(j=0;j<30;j++)
			fee[i][j]=0.0;
	for(i=0;i<300;i++)
		for(j=0;j<10;j++)		
		sum_fee[i][j]=0.0;
	for(i=0;i<300;i++) 	amount[i]=0.0;
	for(i=0;i<300;i++) 	sum_amount[i]=0.0;
	for(i=0;i<11;i++) 	hj_sum[i]=0.0;

	dw_1.ClearList(true);
	dw_1.ClearCols(true);
	
	//显示设置
	ShowText( 0, 1, "营业点:" );
	ShowText( 0, 30,"            ");
	ShowText( 1, 1, "生成时间:" );
	ShowText( 1, 30, "统计帐期:" );

	dw_1.AddCol( "", 6, 0 );
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 10, 0 );	
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 8, 0 );
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 9, 0 );
	dw_1.AddCol( "", 9, 0 );
	dw_1.AddCol( "", 9, 0 );
	dw_1.AddCol( "", 11, 0 );

	strcpy(ls_start,ltrim(sle_start.GetText()));
	strcpy(ls_end,ltrim(sle_end.GetText()));

	MidOfStr(lsTemp,ls_start,0,4);
	sprintf(start_date,"%s%c%c",lsTemp,ls_start[5],ls_start[6]);
	MidOfStr(lsTemp,ls_end,0,4);
	sprintf(end_date,"%s%c%c",lsTemp,ls_end[5],ls_end[6]);
    MessageBox("",0,end_date);

	ShowText( 0, 10, "                " );
	ShowText( 0, 10, gs_site_name );

	ShowText( 0, 42, "                " );
	//ShowText( 0, 42, "" );

	ShowText( 1, 10, "                " );
	ShowText( 1, 10, gs_current_time );

	ShowText( 1, 42, "			          " );
	if(strcmp(start_date,end_date)==0)
		ShowText(1,42,start_date);
	else
	{
		sprintf(lsTemp,"%s-%s",start_date,end_date);
		ShowText(1,42,lsTemp);
	}

	
	//call service
	sprintf(instr,"%ld\t%s\t%s",gl_staff_id,start_date,end_date);
	ret = CallServByStr("PSSiteQfSum",instr,poutstr);

	if(ret < 0)
	{
		MessageBox("错误",0,poutstr[0]);
		lpfree(poutstr,1);
		return -1;
	}

	ret1=GetMulRowData(poutstr[0],lpdata,&row,&col,50);
	//userlog(poutstr[0]);
	
	if(strcmp(lpdata[0],NULL)==0||strcmp(lpdata[0],"")==0||strcmp(poutstr[0],NULL)==0)
	{
		lpfree(poutstr,1);
		MessageBox("提示",0,"没找到帐户未缴费数据!");
		return 0; 
	}
	lpfree(poutstr,1);

	int k=0;
	long pt_cycle_id=atol(lpdata[0]);
	cycle_id[0]=atol(lpdata[0]);

	for(i=0;i<row;i++)
	{
	    j=i*col;
		
		if(pt_cycle_id==atol(lpdata[j]))
		{			
			amount[k]=atof(lpdata[j+2]);
			switch(atol(lpdata[j+1]))
			{
			case 110000:
				fee[k][1]+=amount[k];break;        
			case 120000:
				fee[k][2]+=amount[k];break;  
			case 130000:
				fee[k][3]+=amount[k];break;  
			case 140000:
				fee[k][4]+=amount[k];break;  
			case 150000:
				fee[k][5]+=amount[k];break;  
			case 160000:
				fee[k][6]+=amount[k];break;  
			case 170000:
				fee[k][7]+=amount[k];break;  
			case 180000:
				fee[k][8]+=amount[k];break;  
			case 190000:
				fee[k][9]+=amount[k];break;  
			case 200000:
				fee[k][10]+=amount[k];break;  
			case 210000:
				fee[k][11]+=amount[k];break;  
			case 220000:
				fee[k][12]+=amount[k];break;  
			case 230000:
				fee[k][13]+=amount[k];break;  
			case 240000:
				fee[k][14]+=amount[k];break;  
			case 250000:
				fee[k][15]+=amount[k];break;  
			case 260000:
				fee[k][16]+=amount[k];break;  
			case 270000:
				fee[k][17]+=amount[k];break;
			default:
				fee[k][29]+=amount[k];break;
			}
		}
		else 
		{
			pt_cycle_id=atol(lpdata[j]);
			k++;i--;
			cycle_id[k]=atol(lpdata[j]);
		}
	}

	for(i=0;i<=k;i++)
		for(j=1;j<30;j++)
			sum_amount[i]+=fee[i][j];

	//再次归并费用
	for(i=0;i<=k;i++)
	{		
		sum_fee[i][1]=fee[i][1]+fee[i][9]+fee[i][10]+fee[i][11]+fee[i][12];
		sum_fee[i][2]=fee[i][2];
		sum_fee[i][3]=fee[i][3];
		sum_fee[i][4]=fee[i][4]+fee[i][5];
		sum_fee[i][5]=fee[i][6];
		sum_fee[i][6]=fee[i][14]+fee[i][15];
		sum_fee[i][7]=fee[i][16];
		sum_fee[i][8]=fee[i][17];
		sum_fee[i][9]=fee[i][7]+fee[i][8]+fee[i][13];
	}

	for(i=0;i<=k;i++)
	{
		hj_sum[1]+=sum_fee[i][1];
		hj_sum[2]+=sum_fee[i][2];
		hj_sum[3]+=sum_fee[i][3];
		hj_sum[4]+=sum_fee[i][4];
		hj_sum[5]+=sum_fee[i][5];
		hj_sum[6]+=sum_fee[i][6];
		hj_sum[7]+=sum_fee[i][7];
		hj_sum[8]+=sum_fee[i][8];
		hj_sum[9]+=sum_fee[i][9];

		hj_sum[10]+=sum_amount[i];
	}

	dw_1.Update( true );
	dw_1.ClearList( false );
	
	char tmp[10][30],tmpid[20];
	dw_1.AddRow("","帐  期","月租费","区内通话","区间通话","长话通话","电报费","网络使用","一次性费","信息费","其它费","小  计");
	dw_1.AddRow("","------","----------","----------","----------","----------","--------","----------","---------","---------","---------","-----------");
	for(i=0;i<=k;i++)
	{
		sprintf(tmpid,"%ld",cycle_id[i]);

		sprintf(tmp[0],"%.2f",sum_fee[i][1]);
		sprintf(tmp[1],"%.2f",sum_fee[i][2]);	
		sprintf(tmp[2],"%.2f",sum_fee[i][3]);
		sprintf(tmp[3],"%.2f",sum_fee[i][4]);		
		sprintf(tmp[4],"%.2f",sum_fee[i][5]);
		sprintf(tmp[5],"%.2f",sum_fee[i][6]);
		sprintf(tmp[6],"%.2f",sum_fee[i][7]);
		sprintf(tmp[7],"%.2f",sum_fee[i][8]);
		sprintf(tmp[8],"%.2f",sum_fee[i][9]);
		sprintf(tmp[9],"%.2f",sum_amount[i]);

		dw_1.AddRow("",tmpid,tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9]);
	}
	dw_1.AddRow("","------","----------","----------","----------","----------","--------","----------","---------","---------","---------","-----------");

	sprintf(tmp[0],"%.2f",hj_sum[1]);
	sprintf(tmp[1],"%.2f",hj_sum[2]);	
	sprintf(tmp[2],"%.2f",hj_sum[3]);
	sprintf(tmp[3],"%.2f",hj_sum[4]);		
	sprintf(tmp[4],"%.2f",hj_sum[5]);
	sprintf(tmp[5],"%.2f",hj_sum[6]);
	sprintf(tmp[6],"%.2f",hj_sum[7]);
	sprintf(tmp[7],"%.2f",hj_sum[8]);
	sprintf(tmp[8],"%.2f",hj_sum[9]);
	sprintf(tmp[9],"%.2f",hj_sum[10]);

	dw_1.AddRow("","合  计",tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],tmp[5],tmp[6],tmp[7],tmp[8],tmp[9]);
	//dw_1.AddRow("","------","----------","----------","----------","----------","--------","----------","---------","---------","---------","-----------");
	dw_1.Update();

    lpfree(lpdata,ret1);
	return 1;
}



//---------------------------------------------------------------
//达川需加区乡收费限制(放开),南充无需限制
//---------------------------------------------------------------

int gf_limit_dcpay(long acct_id)
{
/*	
	if(acct_id<20000000)
	{
		MessageBox( "提示",0,"该帐户属市局收费范围,区乡营业点不能进行处理!" );
		return 0;
	}
	else return 1;	*/	
	
	return 1;
}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -