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

📄 charge_erase.cpp

📁 通信BOSS计费方面的服务器源码,有很多经典的创意,值得借鉴,在UNIX上运行.
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		{			strcat(lsTemp,lsErr);			cDatabase->Rollback();		}		else			cDatabase->Commit();		StrReturn(-1,lsTemp);	}	sprintf(lsSql,		"UPDATE BALANCE_TABLE_ADMIN  "			"SET total_amount=(total_amount-(%s)) ,"			" advance=(advance-(%s)+(%s)),"			" present=(present-(%s)) "		"where acct_id=%s and state='1' "		,hist_admin,hist_admin,present,present,acct_id);			//userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		cDatabase->Rollback();		strcpy(lsTemp,"更新台帐表出错");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)		{			strcat(lsTemp,lsErr);			cDatabase->Rollback();		}		else			cDatabase->Commit();		StrReturn(-1,lsTemp);	}	sprintf(lsSql,		"UPDATE BALANCE_HIST_EFF_EXP  "			"SET present=(present-(%s)) ,"			" balance=(balance-(%s))"		    " where balance_hist_admin_id in ( select max(balance_hist_admin_id) "                                          " from balance_hist_eff_exp "                                          " where acct_id=%s and state='01' ) "         " and  state='01' "		,present,hist_admin,acct_id);		//	userlog(lsSql);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		cDatabase->Rollback();		strcpy(lsTemp,"更新赠费记录表出错");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)		{			strcat(lsTemp,lsErr);			cDatabase->Rollback();		}		else			cDatabase->Commit();		StrReturn(-1,lsTemp);	}						 	 sprintf(lsSql,	        "INSERT INTO ERASE_BILL_LIST "	        "SELECT  SEQ_ERASE_BILL_LIST.NEXTVAL, aa.* "		"FROM	(SELECT DISTINCT b.serv_id,b.serv_seq_nbr,b.billing_cycle_id,b.bill_serial_nbr, "				 "%s,a.staff_id,a.pay_date,'0' "			"FROM BILL a,B_ACCT_ITEM_O b "			"WHERE a.bill_serial_nbs = b.bill_serial_nbr AND "			"b.bill_serial_nbr = %s) aa "	,pay_serial_nbr,bill_serial_nbr);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		cDatabase->Rollback();		strcpy(lsTemp,"生成反销帐清单出错");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)		{			strcat(lsTemp,lsErr);			cDatabase->Rollback();		}		else			cDatabase->Commit();		StrReturn(-1,lsTemp);	}        	cDatabase->Commit();	StrReturn(0,"返销处理成功");}void CErase::GetReprintBill(char *StaffID,char *ItemType,char *Code,char *OtherArea,char *max_acct_id,char *min_acct_id,char *billing_cycle){	char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048];	int isqlcode,lrow,itemtype;	char acct_id[9],serv_id[11];	char acct_nbr_97[10];	int acct_flag,bill_flag,li_reprint_flag;	int bill_exists,erase_flag;	char bill_serial_nbr[18];	char cycle_end_date[10];	itemtype = atoi(ItemType);	//userlog("max_acct=%s,min_acct=%s\n",max_acct_id,min_acct_id);//查看是否有指定帐期归档表	sprintf(lsSql," select * from user_tables where table_name='B_ACCT_ITEM_O_%s' ",billing_cycle);	cDatabase->DoSql(lsSql);	//userlog(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		strcpy(lsTemp,"按取帐务周期信息出错!");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	cDatabase->Commit();	if(lrow==0)	{	   acct_flag=0;	}	else	{	   acct_flag=1;	}		  //查看是否有BILL_HIS表	           sprintf(lsSql," select * from user_tables where table_name='BILL_HIS' ");	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		strcpy(lsTemp,"按取销帐历史表信息出错!");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	cDatabase->Commit();		if(lrow==0)	{	   bill_exists=0;	}	else	   bill_exists=1;	   //帐期结束时间	sprintf(lsSql," select to_char(cycle_end_date,'yyyy-mm-dd') from b_billing_cycle where billing_cycle_id=%s ",billing_cycle);	cDatabase->DoSql(lsSql);	isqlcode=cDatabase->GetSqlCode();	if(isqlcode<0)	{		strcpy(lsRetstr,cDatabase->GetSqlErrText());		strcpy(lsTemp,"按取帐务周期结束日期出错!");strcat(lsTemp,"\n");		if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)			strcat(lsTemp,lsErr);		cDatabase->Commit();		StrReturn(-1,lsTemp);	}	lrow=cDatabase->GetRowCount();	cDatabase->Commit();		if(lrow==0)	{	   StrReturn(100,"未找到帐务周期结束日期");	}	else	   sprintf(cycle_end_date,"%s",cDatabase->GetData());	    	switch (itemtype)	{		case 1:  //按合同号提取                        sprintf(lsSql,"select acct_id from b_acct where acct_id=%s and state='10A' ",                          Code);                        cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();                        //userlog(lsSql);			if(isqlcode<0)			{				strcpy(lsRetstr,cDatabase->GetSqlErrText());				strcpy(lsTemp,"按97合同号提取销帐记录出错");strcat(lsTemp,"\n");				if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			cDatabase->Commit();			if(lrow==0) 			{				StrReturn(100,"未找到局编合同号信息");			}						sprintf(Code,"%s",cDatabase->GetData());			//userlog(Code); 						        			if(strcmp(OtherArea,"0")==0)			{				if(atol(Code)<atol(min_acct_id)||atol(Code)>=atol(max_acct_id))					StrReturn(-1,"不允许进行异地返销");			}			                  if(acct_flag==0)                  {                      //提取指定帐期销帐流水号					                sprintf(lsSql," select distinct bill_serial_nbr from b_acct_item_o where acct_id=%s and billing_cycle_id=%s ",Code,billing_cycle);                         cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();	                //userlog(lsSql);			 if(isqlcode<0)			{					strcpy(lsRetstr,cDatabase->GetSqlErrText());					strcpy(lsTemp,"提取指定帐期销帐流水号出错1");strcat(lsTemp,"\n");					if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)					strcat(lsTemp,lsErr);					cDatabase->Commit();					StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			cDatabase->Commit();			if(lrow==1) 			{			  sprintf(bill_serial_nbr,"%s",cDatabase->GetData());				}                        else			{				StrReturn(100,"未找到合同号销帐记录1");			}						if(bill_exists==0)			   {			   	      li_reprint_flag=1;			   	      sprintf(lsSql,"SELECT  to_char(a.bill_serial_nbr),'%s',"									"to_char(a.pay_serial_nbr),to_char(a.created_date,'yyyy-mm-dd'),a.print_count, "									"a.staff_id,a.acct_id,a.amount,a.change,0 flag,%d reprint ,(b.balance-b.amount) "									"FROM BILL a,BALANCE_HIST_ADMIN b  "									"WHERE a.acct_id=b.acct_id(+) "									" and a.acct_id=%s " 									" and a.bill_serial_nbr=b.bill_serial_nbr(+) "									" and a.bill_serial_nbr=%s and a.state = '40C'  "							                ,cycle_end_date,li_reprint_flag,Code,bill_serial_nbr);		                      			                   }	                   else	                   {	                   	      li_reprint_flag=1;			   	      sprintf(lsSql,"SELECT  to_char(a.bill_serial_nbr),'%s',"									"to_char(a.pay_serial_nbr),to_char(a.created_date,'yyyy-mm-dd'),a.print_count, "									"a.staff_id,a.acct_id,a.amount,a.change,0 flag,%d reprint ,(b.balance-b.amount) "									"FROM BILL a,BALANCE_HIST_ADMIN b  "									"WHERE a.acct_id=b.acct_id(+) "									" and a.acct_id=%s " 									" and a.bill_serial_nbr=b.bill_serial_nbr(+) "									" and a.bill_serial_nbr=%s and a.state = '40C'  "							                ,cycle_end_date,li_reprint_flag,Code,bill_serial_nbr);			                //userlog(lsSql);     	      		        cDatabase->DoSql(lsSql);				isqlcode=cDatabase->GetSqlCode();					if(isqlcode<0)				{					strcpy(lsRetstr,cDatabase->GetSqlErrText());					strcpy(lsTemp,"按电话号提取销帐历史记录出错1");strcat(lsTemp,"\n");					if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)						strcat(lsTemp,lsErr);					cDatabase->Commit();					StrReturn(-1,lsTemp);				}				lrow=cDatabase->GetRowCount();				cDatabase->Commit();				if(lrow==0) 				{		                      li_reprint_flag=2;						   	      sprintf(lsSql,"SELECT  to_char(a.bill_serial_nbr),'%s',"									"to_char(a.pay_serial_nbr),to_char(a.created_date,'yyyy-mm-dd'),a.print_count, "									"a.staff_id,a.acct_id,a.amount,a.change,0 flag,%d reprint ,(b.balance-b.amount) "									"FROM BILL_HIS a,BALANCE_HIST_ADMIN b  "									"WHERE a.acct_id=b.acct_id(+) "									" and a.acct_id=%s " 									" and a.bill_serial_nbr=b.bill_serial_nbr(+) "									" and a.bill_serial_nbr=%s and a.state = '40C'  "							                ,cycle_end_date,li_reprint_flag,Code,bill_serial_nbr);						      		        }	      		        else 	StrReturn(0,cDatabase->GetData());	      		    }	      		//userlog(lsSql);		        cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();				if(isqlcode<0)			{				strcpy(lsRetstr,cDatabase->GetSqlErrText());				strcpy(lsTemp,"按电话号提取销帐历史记录出错2");strcat(lsTemp,"\n");				if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)					strcat(lsTemp,lsErr);				cDatabase->Commit();				StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			cDatabase->Commit();		        if(lrow==0)		   	  StrReturn(100,"未找到电话号销帐记录");	               	   StrReturn(0,cDatabase->GetData());	               	   		    }								  else		    {		      	//提取指定帐期销帐流水号					                sprintf(lsSql," select distinct bill_serial_nbr from b_acct_item_o_%s where acct_id=%s  ",billing_cycle,Code);                         cDatabase->DoSql(lsSql);			isqlcode=cDatabase->GetSqlCode();	                 //userlog(lsSql);			 if(isqlcode<0)			{					strcpy(lsRetstr,cDatabase->GetSqlErrText());					strcpy(lsTemp,"提取指定帐期销帐流水号出错2");strcat(lsTemp,"\n");					if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)					strcat(lsTemp,lsErr);					cDatabase->Commit();					StrReturn(-1,lsTemp);			}			lrow=cDatabase->GetRowCount();			cDatabase->Commit();			if(lrow==1) 			{			  sprintf(bill_serial_nbr,"%s",cDatabase->GetData());				  li_reprint_flag=3;			}                        else			{				sprintf(lsSql," select distinct bill_serial_nbr from b_acct_item_o where billing_cycle_id=%s and acct_id=%s  ",billing_cycle,Code); 	                        cDatabase->DoSql(lsSql);				isqlcode=cDatabase->GetSqlCode();		                 //userlog(lsSql);				 if(isqlcode<0)				{						strcpy(lsRetstr,cDatabase->GetSqlErrText());						strcpy(lsTemp,"提取指定帐期销帐流水号出错2");strcat(lsTemp,"\n");						if(WriteLog(cDatabase,StaffID,"w_p_charge_erase",strcat(lsTemp,lsRetstr),lsErr)!=1)						strcat(lsTemp,lsErr);						cDatabase->Commit();						StrReturn(-1,lsTemp);				}				lrow=cDatabase->GetRowCount();				cDatabase->Commit();				if(lrow==1) 				{				  sprintf(bill_serial_nbr,"%s",cDatabase->GetData());					  li_reprint_flag=1;				}	                        else				{					StrReturn(100,"未找到合同号销帐记录2");				}							}                     }				   if(bill_exists==0)		   {		   	if(li_reprint_flag!=1) 		   	{		   		li_reprint_flag=3;		   	}	   		   			   	      sprintf(lsSql,"SELECT  to_char(a.bill_serial_nbr),'%s',"								"to_char(a.pay_serial_nbr),to_char(a.created_date,'yyyy-mm-dd'),a.print_count, "								"a.staff_id,a.acct_id,a.amount,a.change,0 flag,%d reprint ,(b.balance-b.amount) "								"FROM BILL a,BALANCE_HIST_ADMIN b  "								"WHERE a.acct_id=b.acct_id(+) "								" and a.acct_id=%s " 								" and a.bill_serial_nbr=b.bill_serial_nbr(+) "								" and a.bill_serial_nbr=%s and a.state = '40C'  "						                ,cycle_end_date,li_reprint_flag,Code,bill_serial_nbr);	              		                   }                   else                   {                 	if(li_reprint_flag!=1) 		   	{		   		li_reprint_flag=3;		   	}		   	      sprintf(lsSql,"SELECT  to_char(a.bill_serial_nbr),'%s',"								"to_char(a.pay_serial_nbr),to_char(a.created_date,'yyyy-mm-dd'),a.print_count, "								"a.staff_id,a.acct_id,a.amount,a.change,0 flag,%d reprint ,(b.balance-b.amount) "								"FROM BILL a,BALANCE_HIST_ADMIN b  "

⌨️ 快捷键说明

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