📄 charge_format.cpp
字号:
"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) { bill_format_id=bill_format_def; } else { bill_format_id=cDatabase->GetData(); } sprintf(lsSql, "SELECT B_ACCT_ITEM_O.acct_id, " "BILL_ACCT_ITEM_TYPE.bill_item_type_id, " "BILL_ITEM_TYPE.name , " "B_ACCT_ITEM_O.billing_cycle_id, " "B_ACCT.customer_name, " "sum(charge)/100 " "FROM B_ACCT_ITEM_O, " "BILL_ACCT_ITEM_TYPE, " "BILL_ITEM_TYPE, " "B_ACCT " " WHERE ( BILL_ACCT_ITEM_TYPE.bill_item_type_id = BILL_ITEM_TYPE.bill_item_type_id ) and " "( B_ACCT_ITEM_O.acct_item_type_id = BILL_ACCT_ITEM_TYPE.acct_item_type_id ) and " "( B_ACCT.acct_id = B_ACCT_ITEM_O.acct_id ) and " "( BILL_ITEM_TYPE.bill_format_id = %s ) AND " "( B_ACCT.acct_id = %s ) AND " "( B_ACCT.state = '10A' ) AND " "( B_ACCT_ITEM_O.billing_cycle_id = %s ) " "GROUP BY B_ACCT_ITEM_O.acct_id, " "BILL_ACCT_ITEM_TYPE.bill_item_type_id, " "BILL_ITEM_TYPE.name , " "B_ACCT_ITEM_O.billing_cycle_id, " "B_ACCT.customer_name " ,bill_format_id,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) { cDatabase->Commit(); StrReturn(100,"帐单为空!"); } else { cDatabase->Commit(); StrReturn(0,cDatabase->GetData()); } }//-----------------------------------------------------------------//服务PFBuildForAcc实现函数,传入参数staff_id,acc_nbr,billing_cycle_id//根据电话号码生成帐单//-----------------------------------------------------------------void CFormat::PFBuildForAcc(){ char lsSql[1100],lsTemp[1024],lsErr[300]; int i,isqlcode,lpnum,rpnum; char billing_cycle_id[20],acc_nbr[20],staff_id[20],*bill_format_id; char bill_format_def[2],*serv_id; char *lparm[3]; sprintf(bill_format_def,"1"); //取参数开始 lpnum=3; 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]); strcpy(billing_cycle_id,lparm[2]); lpfree(lparm,rpnum); //取参数结束 sprintf(lsSql, "select serv_id " "from B_SERV " "where acc_nbr='%s' " "and state not in ('F0X','F0O') " ,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 B_ACCT_ITEM_O " "where serv_id=%s " "and billing_cycle_id=%s " ,serv_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 " "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) { bill_format_id=bill_format_def; } else { bill_format_id=cDatabase->GetData(); } sprintf(lsSql, "SELECT BILL_ACCT_ITEM_TYPE.bill_item_type_id, " "BILL_ITEM_TYPE.name , " "B_ACCT_ITEM_O.billing_cycle_id, " "B_SERV.serv_name, " "sum(charge)/100, " "B_SERV.acc_nbr " "FROM B_ACCT_ITEM_O, " "BILL_ACCT_ITEM_TYPE, " "BILL_ITEM_TYPE, " "B_SERV " "WHERE ( BILL_ACCT_ITEM_TYPE.bill_item_type_id = BILL_ITEM_TYPE.bill_item_type_id ) and " "( B_ACCT_ITEM_O.acct_item_type_id = BILL_ACCT_ITEM_TYPE.acct_item_type_id ) and " "( B_SERV.serv_id = B_ACCT_ITEM_O.serv_id ) and " "( BILL_ITEM_TYPE.bill_format_id = %s) AND " "( B_SERV.serv_id = %s) AND " "( B_SERV.state <> 'F0X' ) AND " "( B_ACCT_ITEM_O.billing_cycle_id = %s ) " "GROUP BY BILL_ACCT_ITEM_TYPE.bill_item_type_id, " "BILL_ITEM_TYPE.name , " "B_ACCT_ITEM_O.billing_cycle_id, " "B_SERV.serv_name, " "B_SERV.acc_nbr " ,bill_format_id,serv_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) { cDatabase->Commit(); StrReturn(100,"帐单为空!"); } else { cDatabase->Commit(); StrReturn(0,cDatabase->GetData()); } }//-----------------------------------------------------------------//服务PFGetMaxF实现函数,参数staff_id//取"BILL_FORMAT_O"最大bill_format_id//-----------------------------------------------------------------void CFormat::PFGetMaxF(){ char lsSql[100],lsTemp[1024],lsErr[300]; char staff_id[20]; int isqlcode; strcpy(staff_id,pInp); strcpy(lsSql, "SELECT NVL(max(bill_format_id)+1,1) " "FROM BILL_FORMAT_O " ); //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,"取BILL_FORMAT_O最大bill_format_id出错!\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) { cDatabase->Commit(); StrReturn(100,NULL); } else { cDatabase->Commit(); StrReturn(isqlcode,cDatabase->GetData()); }}//-----------------------------------------------------------------//服务PFGetMaxIT实现函数,参数staff_id//取"BILL_ITEM_TYPE"最大bill_item_type_id//-----------------------------------------------------------------void CFormat::PFGetMaxIT(){ char lsSql[100],lsTemp[1024],lsErr[300]; char staff_id[20]; int isqlcode; strcpy(staff_id,pInp); strcpy(lsSql, "SELECT NVL(max(bill_item_type_id),100) " "FROM BILL_ITEM_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,"取BILL_ITEM_TYPE最大bill_item_type_id出错!\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) { cDatabase->Commit(); StrReturn(100,NULL); } else { cDatabase->Commit(); StrReturn(isqlcode,cDatabase->GetData()); }}//-----------------------------------------------------------------//服务PFDelFor实现函数,传入参数staff_id,bill_format_id//删除bill_format_id相关数据//-----------------------------------------------------------------void CFormat::PFDelFor(){ char lsSql[100],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("\ndelete data for bill_format_id: %s",bill_format_id); cDatabase->BeginTran(); sprintf(lsSql, "delete from BILL_ACCT_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()); 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); } sprintf(lsSql, "delete 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()); 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); } sprintf(lsSql,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -