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

📄 charge_format.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
#include "charge_format.h"#include "payment.flds.h"CFormat::CFormat(char *pcInp,COracle *pcDatabase){	cDatabase = pcDatabase;	pInp = pcInp;}//-----------------------------------------------------------------//服务PFGetFor实现函数,传入参数staff_id,bill_format_type//取定制帐单数据//-----------------------------------------------------------------void CFormat::PFGetFor(){	char lsSql[300],lsTemp[1024],lsErr[300];	int isqlcode;	char bill_format_type[20],staff_id[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(bill_format_type,lparm[1]);	lpfree(lparm,rpnum);		//userlog("\nreceive data  bill_format_type: %s",bill_format_type);		sprintf(lsSql,  "SELECT BILL_FORMAT_O.bill_format_id,  "         "BILL_FORMAT_O.name,  "         "BILL_FORMAT_O.bill_format_type,  "         "'NotModified!'   "    "FROM BILL_FORMAT_O   "   "WHERE BILL_FORMAT_O.bill_format_type like '%s'  "	 ,bill_format_type);		//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());	}}//-----------------------------------------------------------------//服务PFGetItem实现函数,传入参数staff_id,bill_format_id//取帐单对应帐单项数据//-----------------------------------------------------------------void CFormat::PFGetItem(){	char lsSql[300],lsTemp[1024],lsErr[300];	int isqlcode;	char bill_format_id[20],staff_id[20];	char *lparm[3];	int i,lpnum,rpnum;		memset(lsSql,0,300);	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(bill_format_id,lparm[1]);	lpfree(lparm,rpnum);		//userlog("\nreceive data  bill_format_id: %s",bill_format_id);		sprintf(lsSql,   "SELECT BILL_ITEM_TYPE.bill_item_type_id,   "         "BILL_ITEM_TYPE.bill_format_id,   "         "BILL_ITEM_TYPE.name,  "         "'NotModified!'   "    "FROM BILL_ITEM_TYPE  "    "where bill_format_id= %s  "	 ,bill_format_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");		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(0,cDatabase->GetData());	}	}//-----------------------------------------------------------------//服务PFGetType实现函数,传入参数staff_id,bill_format_id//取帐单项对应帐目类型//-----------------------------------------------------------------void CFormat::PFGetType(){	char lsSql[600],lsTemp[1024],lsErr[500];	int isqlcode;	char bill_format_id[20],staff_id[20];	char *lparm[3];	int i,lpnum,rpnum;	long lLen;	char *lsRet;	char lstmp[50];	int  liRet=0;		memset(lsSql,0,600);	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(bill_format_id,lparm[1]);	lpfree(lparm,rpnum);		//userlog("\nreceive data  bill_format_id: %s",bill_format_id);		sprintf(lsSql,  "SELECT BILL_ACCT_ITEM_TYPE.bill_item_type_id,   "         "BILL_ACCT_ITEM_TYPE.acct_item_type_id,   "         "BILL_ACCT_ITEM_TYPE.bill_format_id,  "         "'NotModified!'   "    "FROM BILL_ACCT_ITEM_TYPE  "   "WHERE BILL_ACCT_ITEM_TYPE.bill_format_id = %s  "	 ,bill_format_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");		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(0,cDatabase->GetData());//		lLen = strlen(cDatabase->ret);////		lsRet = 0;//		lsRet = tpalloc("STRING",NULL,lLen);//		lsRet = tpalloc("STRING",NULL,lLen + 2261);//		lsRet = tpalloc("STRING",NULL,lLen + 2262);//		lsRet = tpalloc("STRING",NULL,lLen + 6000);//		if (lsRet == NULL)//		{//			//userlog("Tpalloc failed !Return : %d lsData : %s",liRet,lsData);//			sprintf(lstmp,"Tpalloc failed !Return : %d",liRet);//			lsRet = tpalloc("STRING",NULL,50);//			strcpy(lsRet,lstmp);//			liRet=-1;//		}//		else//		{//			if (lLen <= 0) strcpy(lsRet,NULL);//			else strcpy(lsRet,cDatabase->ret);//			//		}//	//		userlog("liRet:%d",liRet);//		userlog("lsRet:%p,%s,%d",lsRet,lsRet,strlen(lsRet));//	//		tpreturn(TPSUCCESS, liRet, lsRet, 0L, 0);	}	}//-----------------------------------------------------------------//服务PFGetAIT实现函数,传入参数staff_id,bill_item_type_id,bill_format_id//取"其它费用"对应的帐目类型//-----------------------------------------------------------------void CFormat::PFGetAIT(){	char lsSql[200],lsTemp[1024],lsErr[300];	int  i,isqlcode,lpnum,rpnum;	char staff_id[20],bill_format_id[20],bill_item_type_id[20];	char *lparm[4];			//取参数开始	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(bill_item_type_id,lparm[1]);	strcpy(bill_format_id,lparm[2]);	lpfree(lparm,rpnum);		//取参数结束		sprintf(lsSql,    "select %s,acct_item_type_id,%s  "    "from   B_ACCT_ITEM_TYPE_O "    "where  acct_item_type_id>0  "	 ,bill_item_type_id,bill_format_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");		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());		}}//-----------------------------------------------------------------//服务PFListFor实现函数,传入参数staff_id,bill_format_id//检索定制帐单数据//-----------------------------------------------------------------void CFormat::PFListFor(){	char lsSql[800],lsTemp[1024],lsErr[300];	int  isqlcode;	char bill_format_id[20],staff_id[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(bill_format_id,lparm[1]);	lpfree(lparm,rpnum);			//userlog("\nreceive data  bill_format_id: %s",bill_format_id);		sprintf(lsSql,    "SELECT BILL_FORMAT_O.bill_format_id ,  "           "BILL_ITEM_TYPE.bill_item_type_id ,  "           "BILL_ITEM_TYPE.name ,          "           "B_ACCT_ITEM_TYPE_O.acct_item_type_id , "           "B_ACCT_ITEM_TYPE_O.name ,           "           "B_ACCT_ITEM_TYPE_O.standard_code      "      "FROM BILL_FORMAT_O , "           "BILL_ACCT_ITEM_TYPE , "           "BILL_ITEM_TYPE ,  "           "B_ACCT_ITEM_TYPE_O     "     "WHERE ( BILL_ACCT_ITEM_TYPE.bill_item_type_id = BILL_ITEM_TYPE.bill_item_type_id ) "       "and ( BILL_FORMAT_O.bill_format_id = BILL_ITEM_TYPE.bill_format_id )  "       "and ( BILL_ACCT_ITEM_TYPE.acct_item_type_id = B_ACCT_ITEM_TYPE_O.acct_item_type_id ) "       "and ( BILL_FORMAT_O.bill_format_id = %s ) "        ,bill_format_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");		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());		}}//-----------------------------------------------------------------//服务PFListForAcct实现函数,传入参数staff_id,acct_id//按合同号检索用户所选定制帐单项//-----------------------------------------------------------------void CFormat::PFListForAcct(){	char lsSql[800],lsTemp[1024],lsErr[300];	int isqlcode;	char acct_id[20],staff_id[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(acct_id,lparm[1]);	lpfree(lparm,rpnum);		//userlog("\nreceive data  acct_id: %s",acct_id);		sprintf(lsSql,  "SELECT DISTINCT e.acct_id,   "         "e.customer_name,   "         "d.bill_format_id,   "         "d.bill_item_type_id,   "         "d.name,   "         "b.acct_item_type_id,   "         "b.name,   "         "b.standard_code  "    "FROM ACCT_BILL_FORMAT a,   "         "B_ACCT_ITEM_TYPE_O b,   "         "BILL_ACCT_ITEM_TYPE c,   "         "BILL_ITEM_TYPE d,   "         "B_ACCT e  "   "WHERE ( a.bill_format_id = d.bill_format_id ) and  "         "( d.bill_item_type_id = c.bill_item_type_id ) and  "         "( c.acct_item_type_id = b.acct_item_type_id ) and  "         "( a.acct_id = e.acct_id ) and  "         "( ( e.acct_id = %s ) AND  "         "( e.state = '10A' ) )    "	 ,acct_id);

⌨️ 快捷键说明

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