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

📄 charge_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"按合同号检索用户所选定制帐单项出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);			cDatabase->Commit();		StrReturn(-1,lsTemp);	}		else if(isqlcode==0 && cDatabase->GetRowCount()==0) 	{		cDatabase->Commit();		StrReturn(100,NULL);	}	else 	{		cDatabase->Commit();		StrReturn(isqlcode,cDatabase->GetData());		}}//-----------------------------------------------------------------//服务PFListForAcc实现函数,传入参数staff_id,acc_nbr//按电话号码检索用户所选定制帐单项//-----------------------------------------------------------------void CFormat::PFListForAcc(){	char lsSql[800],lsTemp[1024],lsErr[300];	int isqlcode;	char acc_nbr[20];		char *lparm[3];	int i,lpnum,rpnum;		lpnum=2;	rpnum=GetInputParm(pInp,lparm,50);	if(rpnum!=lpnum)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n");		if(WriteLog(cDatabase,"-1","w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	strcpy(acc_nbr,lparm[1]);	lpfree(lparm,rpnum);		//userlog("\nreceive data  acc_nbr: %s",acc_nbr);		sprintf(lsSql,  "SELECT DISTINCT e.serv_name,   "         "c.bill_format_id,   "         "c.bill_item_type_id,   "         "c.name,   "         "a.acct_item_type_id,   "         "a.name,   "         "a.standard_code,   "         "e.serv_id  "    "FROM B_ACCT_ITEM_TYPE_O a,   "         "BILL_ACCT_ITEM_TYPE b,   "         "BILL_ITEM_TYPE c,   "         "SERV_BILL_FORMAT d,   "         "B_SERV e  "   "WHERE ( c.bill_item_type_id = b.bill_item_type_id ) and  "         "( b.acct_item_type_id = a.acct_item_type_id ) and  "         "( c.bill_format_id = d.bill_format_id ) and  "         "( d.serv_id = e.serv_id ) and  "         "( ( e.acc_nbr = '%s' ) AND  "         "( e.state not in ( 'F0X','F0H')) )    "	 ,acc_nbr);		//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"按电话号码检索用户所选定制帐单项出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);			cDatabase->Commit();		StrReturn(-1,lsTemp);	}		else if(isqlcode==0 && cDatabase->GetRowCount()==0) 	{		cDatabase->Commit();		StrReturn(100,NULL);	}	else 	{		cDatabase->Commit();		StrReturn(isqlcode,cDatabase->GetData());		}}//-----------------------------------------------------------------//服务PFUseForAcct实现函数,传入参数staff_id,acct_id,bill_format_id//合同号帐单选用//-----------------------------------------------------------------void CFormat::PFUseForAcct(){	char lsSql[150],lsTemp[1024],lsErr[300];	int  i,isqlcode,lpnum,rpnum;	char bill_format_id[20],acct_id[20],staff_id[20];	char *lparm[3];		//取参数开始	lpnum=3;		rpnum=GetInputParm(pInp,lparm,20);	if(rpnum!=lpnum)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n");		if(WriteLog(cDatabase,"-1","w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	strcpy(acct_id,lparm[1]);	strcpy(bill_format_id,lparm[2]);	lpfree(lparm,rpnum);	//取参数结束		cDatabase->BeginTran();		sprintf(lsSql,	"select 'ok'  "	"from B_ACCT  "	"where acct_id=%s  "	"and state='10A' "	 ,acct_id);	 	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"校验合同号时出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}	else if(isqlcode==0 && cDatabase->GetRowCount()==0)	{		sprintf(lsTemp,"无此有效合同号!\n");		cDatabase->Commit();		StrReturn(100,lsTemp);	}	sprintf(lsSql,	"select 'ok'  "	"from ACCT_BILL_FORMAT  "	"where acct_id=%s  "	 ,acct_id);	 	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"校验合同号对应定制帐单时出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}	else if(isqlcode==0 && cDatabase->GetRowCount()==0)	{		sprintf(lsSql,		"insert into ACCT_BILL_FORMAT  "		"select acct_id,%s  "		"from B_ACCT  "		"where acct_id=%s  "		"and   state='10A'  "		,bill_format_id,acct_id);			}	else	{		sprintf(lsSql,		"UPDATE ACCT_BILL_FORMAT  "		"SET    bill_format_id=%s  "		"WHERE  acct_id=%s  "		,bill_format_id,acct_id);	}	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0||cDatabase->GetRowCount()!=1)	{			strcpy(lsTemp,"定制帐单失败!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}		cDatabase->Commit();	StrReturn(0,"定制帐单成功!");		}//-----------------------------------------------------------------//服务PFUseForAcc实现函数,传入参数staff_id,acc_nbr,bill_format_id//电话号码帐单选用//-----------------------------------------------------------------void CFormat::PFUseForAcc()    {	char lsSql[150],lsTemp[1024],lsErr[300];	int  i,isqlcode,lpnum,rpnum;	char bill_format_id[20],acc_nbr[20],*serv_id,staff_id[20];	char *lparm[3];		//取参数开始	lpnum=3;	rpnum=GetInputParm(pInp,lparm,20);	if(rpnum!=lpnum)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n");		if(WriteLog(cDatabase,"-1","w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	strcpy(acc_nbr,lparm[1]);	strcpy(bill_format_id,lparm[2]);	lpfree(lparm,rpnum);		//取参数结束		cDatabase->BeginTran();		sprintf(lsSql,	"select serv_id  "	"from   B_SERV  "	"where  acc_nbr='%s'  "	"and    state not in ('F0X','F0H')  "	,acc_nbr);	 	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"校验电话号码时出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}	else if(isqlcode==0 && cDatabase->GetRowCount()==0)	{		sprintf(lsTemp,"无此有效电话号码!\n");		cDatabase->Commit();		StrReturn(100,lsTemp);	}		serv_id=cDatabase->GetData();	sprintf(lsSql,	"select 'ok'  "	"from SERV_BILL_FORMAT  "	"where serv_id=%s  "	,serv_id);	 	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"校验电话号码对应定制帐单时出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}	else if(isqlcode==0 && cDatabase->GetRowCount()==0)	{		sprintf(lsSql,		"insert into SERV_BILL_FORMAT  "		"select serv_id,%s  "		"from   B_SERV  "		"where  serv_id=%s  "		"and    state not in ('F0X','F0H')  "		,bill_format_id,serv_id);			}	else	{		sprintf(lsSql,		"UPDATE SERV_BILL_FORMAT  "		"SET    bill_format_id=%s  "		"WHERE  serv_id=%s  "		,bill_format_id,serv_id);	}	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0||cDatabase->GetRowCount()!=1)	{			strcpy(lsTemp,"定制帐单失败!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);				cDatabase->Commit();		StrReturn(-1,lsTemp);	}		cDatabase->Commit();	StrReturn(0,"定制帐单成功!");		}//-----------------------------------------------------------------//服务PFBuildForAcct实现函数,传入参数staff_id,acct_id,billing_cycle_id//根据合同号生成帐单//-----------------------------------------------------------------void CFormat::PFBuildForAcct()     //根据合同号生成帐单{	char lsSql[1100],lsTemp[1024],lsErr[300];	int  i,isqlcode,lpnum,rpnum;	char billing_cycle_id[20],acct_id[20],*bill_format_id;	char bill_format_def[2],staff_id[20];	char *lparm[3];		sprintf(bill_format_def,"1");	//取参数开始	lpnum=3;		rpnum=GetInputParm(pInp,lparm,20);	if(rpnum!=lpnum)	{		lpfree(lparm,rpnum);		strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n");		if(WriteLog(cDatabase,"-1","w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-2,lsTemp);	}	strcpy(staff_id,lparm[0]);	strcpy(acct_id,lparm[1]);	strcpy(billing_cycle_id,lparm[2]);	lpfree(lparm,rpnum);		//取参数结束		sprintf(lsSql,	"select distinct acct_id  "	"from   B_ACCT_ITEM_O  "	"where  acct_id=%s  "	"and    billing_cycle_id=%s  "	,acct_id,billing_cycle_id);	 	//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());	//userlog("检索返回行数:%d",cDatabase->GetRowCount());		if(isqlcode<0)	{			strcpy(lsTemp,"校验该合同号下本帐期有无费用时出错!\n");		strcat(lsTemp,cDatabase->GetSqlErrText());		strcat(lsTemp,"\n");		cDatabase->Rollback();		if(WriteLog(cDatabase,staff_id,"w_p_bill_format",lsTemp,lsErr)!=1)			strcat(lsTemp,lsErr);					cDatabase->Commit();		StrReturn(-1,lsTemp);	}	else if(isqlcode==0 && cDatabase->GetRowCount()==0)	{		sprintf(lsTemp,"该合同号下本帐期无费用!\n");		cDatabase->Commit();		StrReturn(100,lsTemp);	}		sprintf(lsSql,	"select bill_format_id   "

⌨️ 快捷键说明

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