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

📄 nc_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//-------------------------------------------------------------------------
//下面为南充收费发票格式备份
//连打发票格式需要将两处//m_sum_invonum++;改为m_sum_invonum++;使语句有效
//-------------------------------------------------------------------------


	//开始打印发票
	//userlog("打印开始");
	char pt_staff_name[30],pt_pay_time[30],pt_flag[10];
	BeginPrint();
	if(iflag==1)
	{
		sprintf(pt_staff_name,"%s(%ld)",gs_staff_name,gl_staff_id);
		sprintf(pt_pay_time,"%s",gs_current_time);
		sprintf(pt_flag,"%s","");
	}
	else
	{
		sprintf(pt_staff_name,"%s(%ld)",reprint.ls_staff_name,reprint.ll_staff_id);
		sprintf(pt_pay_time,"%s",reprint.ldt_pay_time);
		sprintf(pt_flag,"%s","重打");       //设置重打标记
	}

	char psfee[30][50];
	//打印普通发票
	mvi_normal.SeekHead();
	for(i=0;i<mvi_normal.GetCount();i++)
	{
		pnml=mvi_normal.GetNext();
		
		//if(pnml->total_fee_digit==0.0) continue;
		//根据普通发票格式定制发票
		printf("\n");
		printf("\t流水号:%-18s",pnml->bill_serial_nbr);
		printf("\t%s",pt_flag);
		printf("\n");
		//printf("\n\t%-10ld",pnml->billing_cycle_id);
		printf("\n  %-25s",gf_billing_cycle_date(lsTemp,pnml->billing_cycle_id));
		printf("\t\t%-25s",pt_pay_time);
		printf("\n");
		printf("\t\t\t\t%-30ld",pnml->acct_id);	
    		printf("\n");		
		if (strlen(pnml->customer_name)>30)
			pnml->customer_name[30]=0;
		printf("\t%-30s",pnml->customer_name);
        	printf("\n");
		printf("\t\t\t\t%-30s",pnml->acc_nbr);
		printf("\n\n");
		//对固定格式发票可参照下面格式打印
		for(j=0;j<18;j++)
		{
			if(j>0&&j<11)
			{
				if(pnml->fee[j]==0.0) sprintf(lsTemp,"%15s","");
				else sprintf(lsTemp,"%15.2f",pnml->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
			else if((j>10&&j<16)||j==0)
			{
				if(pnml->fee[j]==0.0) sprintf(lsTemp,"%23s","");
				else sprintf(lsTemp,"%23.2f",pnml->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
			else if(j==16||j==17)
			{
				if(pnml->fee[j]==0.0) sprintf(lsTemp,"%11s","");
				else sprintf(lsTemp,"%11.2f",pnml->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
		}

		printf("\t%s\t\t%s",psfee[1],psfee[11]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[2],psfee[12]);	
		printf("\n");
		printf("\t%s\t\t%s",psfee[3],psfee[13]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[4],psfee[14]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[5],psfee[15]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[6],psfee[0]);
		printf("\n");
		printf("\t%s\t\t    一次性费%s",psfee[7],psfee[16]);
		printf("\n");
		printf("\t%s\t\t      信息费%s",psfee[8],psfee[17]);
		printf("\n");
		printf("\t%s\t\t    上次零钱%11.2f",psfee[9],pnml->last_change);
		printf("\n");
		printf("\t%s\t\t    本次零钱%11.2f",psfee[10],pnml->new_change);

		printf("\n");			
		DigitalToCapital(pnml->total_fee_digit,0,lsTemp);
		printf("\n\t%-40s",lsTemp);  //大写		
		printf("\t%-12.2f",pnml->total_fee_digit);
		printf("\n\n");
		printf("\t%-20s",pt_staff_name);
		printf("\t\t%s",gs_telecom_name);
		printf("\n\n\n");
		
		//m_sum_invonum++;
	}

	//打印代收费发票
	mvi_info.SeekHead();
	for(i=0;i<mvi_info.GetCount();i++)
	{
		pmif=mvi_info.GetNext();
		
		//if(pmif->total_fee_digit==0.0) continue;
		//根据代收发票格式定制发票
		printf("\n");
		printf("\t流水号:%-18s",pmif->bill_serial_nbr);
		printf("\t%s",pt_flag);
		printf("\n");
		//printf("\n\t%-10ld",pmif->billing_cycle_id);
		printf("\n  %-25s",gf_billing_cycle_date(lsTemp,pmif->billing_cycle_id));		
		printf("\t\t%-25s",pt_pay_time);
		printf("\n");
		printf("\t\t\t\t%-30ld",pmif->acct_id);	
        	printf("\n");		
		if (strlen(pmif->customer_name)>30)
			pmif->customer_name[30]=0;
		printf("\t%-30s",pmif->customer_name);
        	printf("\n");
		printf("\t\t\t\t%-30s",pmif->acc_nbr);
		printf("\n\n");
		//对固定格式发票可参照下面格式打印
		for(j=0;j<18;j++)
		{
			if(j>0&&j<11)
			{
				if(pmif->fee[j]==0.0) sprintf(lsTemp,"%15s","");
				else sprintf(lsTemp,"%15.2f",pmif->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
			else if((j>10&&j<16)||j==0)
			{
				if(pmif->fee[j]==0.0) sprintf(lsTemp,"%23s","");
				else sprintf(lsTemp,"%23.2f",pmif->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
			else if(j==16||j==17)
			{
				if(pmif->fee[j]==0.0) sprintf(lsTemp,"%11s","");
				else sprintf(lsTemp,"%11.2f",pmif->fee[j]);
				strcpy(psfee[j],lsTemp);
			}
		}

		printf("\t%s\t\t%s",psfee[1],psfee[11]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[2],psfee[12]);	
		printf("\n");
		printf("\t%s\t\t%s",psfee[3],psfee[13]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[4],psfee[14]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[5],psfee[15]);   
		printf("\n");
		printf("\t%s\t\t%s",psfee[6],psfee[0]);
		printf("\n");
		printf("\t%s\t\t    一次性费%s",psfee[7],psfee[16]);
		printf("\n");
		printf("\t%s\t\t      信息费%s",psfee[8],psfee[17]);
		printf("\n");
		printf("\t%s\t\t    上次零钱%11.2f",psfee[9],pmif->last_change);
		printf("\n");
		printf("\t%s\t\t    本次零钱%11.2f",psfee[10],pmif->new_change);

		printf("\n");			
		DigitalToCapital(pmif->total_fee_digit,0,lsTemp);
		printf("\n\t%-40s",lsTemp);  //大写		
		printf("\t%-12.2f",pmif->total_fee_digit);
		printf("\n\n");
		printf("\t%-20s",pt_staff_name);
		printf("\t\t%s",gs_telecom_name);
		printf("\n\n\n");

		//m_sum_invonum++;
	}

	//结束打印
	EndPrint();
	//userlog("打印结束");



//---------------------------------------------------------------
//南充本地横向日报,欠费统计
//---------------------------------------------------------------

int StatWnd::wf_ncstat_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[300],*poutstr[1];
	int ret,ret1;
    Rect rect(0,0,0,0);

	float fee[30],sum_fee[10],amount=0.0,sum_amount=0.0,real_amount=0.0,sum_change=0.0;
    float  sum_num=0;

	for(i=0;i<30;i++) fee[i]=0.0;
	for(i=0;i<10;i++) sum_fee[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( "项目名称", 12, 0 );
	dw_1.AddCol( "项目费用", 14, 0 );
	dw_1.AddCol( "项目名称", 12, 0 );
	dw_1.AddCol( "项目费用", 14, 0 );	

	strcpy(ls_start,ltrim(sle_start.GetText()));
	strcpy(ls_end,ltrim(sle_end.GetText()));
    
	///////////////////////////////////////////////
	int min=0,sec=0;
	if(sle_start.hour==24)
	{
         sle_start.hour=23;
		 min=59;
		 sec=59;
	}
	sprintf(start_date,"%4d-%02d-%02d %02d:%02d:%02d",
			         sle_start.year,sle_start.month,sle_start.day,
					 sle_start.hour,min,sec);
    min=0;
	sec=0;
    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_staff_name );

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

	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("PSChargeSum",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]);
	lpfree(poutstr,1);

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

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

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

	dw_1.Update( true );
	dw_1.ClearList( false );

	dw_1.AddRow("","本地月租费:",ftoch(lsch,"%.2f",sum_fee[1]),"区内通话费:",ftoch(lsch1,"%.2f",sum_fee[2]));
	dw_1.AddRow("","区间通话费:",ftoch(lsch,"%.2f",sum_fee[3]),"长话通话费:",ftoch(lsch1,"%.2f",sum_fee[4]));
	dw_1.AddRow("","电  报  费:",ftoch(lsch,"%.2f",sum_fee[5]),"网络使用费:",ftoch(lsch1,"%.2f",sum_fee[6]));
	dw_1.AddRow("","一次性费用:",ftoch(lsch,"%.2f",sum_fee[7]),"信  息  费:",ftoch(lsch1,"%.2f",sum_fee[8]));
	dw_1.AddRow("","其  它  费:",ftoch(lsch,"%.2f",sum_fee[9]),"","");
	dw_1.AddRow("","滞  纳  金:",ftoch(lsch,"%.2f",sum_fee[0]),"零      钞:",ftoch(lsch1,"%.2f",sum_change));
    dw_1.AddRow("","------------","------------","------------","------------");
	dw_1.AddRow("","收费合计:",ftoch(lsch,"%.2f",real_amount),"收费户数:",ftoch(lsch1,"%.0f",sum_num));
	
	dw_1.Update();
    lpfree(lpdata,ret1);
	return 1;
}


int StatWnd::wf_ncsite_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);

	float fee[200][30],sum_fee[200][10],amount[200];
	float sum_amount[200],real_amount[200],sum_change[200];
    float sum_num[200];
	long  staff_id[200];
	char  staff_name[200][30];

	//初始化
	for(i=0;i<200;i++)
		for(j=0;j<30;j++)
			fee[i][j]=0.0;
	for(i=0;i<200;i++)
		for(j=0;j<10;j++)		
		sum_fee[i][j]=0.0;
	for(i=0;i<200;i++) 	amount[i]=0.0;
	for(i=0;i<200;i++) 	sum_amount[i]=0.0;
	for(i=0;i<200;i++) 	real_amount[i]=0.0;
	for(i=0;i<200;i++) 	sum_change[i]=0.0;
	for(i=0;i<200;i++) 	sum_num[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( "", 8, 0 );
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 10, 0 );	
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 10, 0 );
	dw_1.AddCol( "", 9, 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( "", 8, 0 );
	dw_1.AddCol( "", 12, 0 );
	dw_1.AddCol( "", 8, 0 );

	strcpy(ls_start,ltrim(sle_start.GetText()));
	strcpy(ls_end,ltrim(sle_end.GetText()));
    
	///////////////////////////////////////////////
	int min=0,sec=0;
	if(sle_start.hour==24)
	{
         sle_start.hour=23;
		 min=59;
		 sec=59;
	}
	sprintf(start_date,"%4d-%02d-%02d %02d:%02d:%02d",
			         sle_start.year,sle_start.month,sle_start.day,
					 sle_start.hour,min,sec);
    min=0;
	sec=0;

⌨️ 快捷键说明

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