📄 charge_ncpatch.cpp
字号:
strcat(lsTemp,cDatabase->data->GetColData(i,1)); strcat(lsTemp,"\n"); } StrReturn(100,lsTemp);}//------------------------------------------------------------------------//服务PSSiteQfSum调用函数//取帐目周期数据,参数staff_id//------------------------------------------------------------------------void CNCpatch::GetSiteQfSum(){ char lsSql[2048],lsTemp[1024],lsErr[500],lstmp[20]; char staff_id[40],site_id[30],start_date[50],end_date[50]; int i,isqlcode,lpnum,rpnum; long len,lrow,row; char *lparm[3]; lpnum=3; rpnum=GetInputParm(pInp,lparm,50); if(rpnum!=lpnum) { lpfree(lparm,rpnum); strcpy(lsTemp,"解析客户端传入参数失败,可能参数数据或传输格式不正确!\n"); StrReturn(-2,lsTemp); } sprintf(staff_id,"%s",lparm[0]); sprintf(start_date,"%ld",atol(lparm[1])); sprintf(end_date,"%ld",atol(lparm[2])); lpfree(lparm,rpnum); //取营业点标识 sprintf(lsSql, "SELECT site_id " "FROM STAFF " "WHERE staff_id = %s " ,staff_id); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); 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_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } strcpy(site_id,cDatabase->data->GetColData(1,1)); //删除营业点未交费统计中间表记录 sprintf(lsSql,"delete b_stat_exchange where staff_id = %s",staff_id); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"删除营业点未交费统计中间表记录出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //检索本营业点可以收取的局向 sprintf(lsSql,"select a.exchange_id " " from b_site_exchange a " " where a.site_id=%s " " and a.flag=1 " ,site_id ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索本营业点可以收取的局向出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_charge",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow>=1) { sprintf(lsSql,"insert into b_stat_exchange (staff_id,exchange_id) " "select %s,a.exchange_id " " from b_site_exchange a" " where a.site_id=%s " " and a.flag=1 " ,staff_id,site_id ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索本营业点可以收取的局向出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } } else if(lrow==0) { sprintf(lsSql,"insert into b_stat_exchange (staff_id,exchange_id) " "select %s,a.exchange_id " " from exchange a,b_site b " " where a.area_id=b.area_id " " and b.site_id = %s " " and a.exchange_id not in ( " " select c.exchange_id " " from b_site_exchange c " " where c.site_id=%s " " and c.flag=0) " ,staff_id,site_id,site_id ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索本营业点可以收取的局向出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } } //检索营业点未交费数据 sprintf(lsSql," SELECT a.billing_cycle_id,a.invo_item_id, sum(NVL(a.charge,0))/100.00 " " FROM B_ACCT_ITEM_O a " " WHERE a.state IN ('20Q','20Y','20Z','20C','20T','20S') " " and a.billing_cycle_id between %s and %s " " and exists (select 1 " " from b_serv b,b_stat_exchange c " " where b.exchange_id = c.exchange_id " " and c.staff_id= %s" " and b.acct_id = a.acct_id ) " " GROUP BY a.billing_cycle_id,a.invo_item_id " " order by a.billing_cycle_id,a.invo_item_id " ,start_date,end_date,staff_id ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索营业点未交费数据出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL); StrReturn(0,cDatabase->GetData());}void CNCpatch::GetAreaQfAll(long StaffID,long AreaID){ char lsSql[2048],lsTemp[1024],lsErr[500]; int isqlcode; char staff_id[20]; char ls_max_acct[10],ls_min_acct[10]; long ll_max_acct,ll_min_acct; sprintf(lsSql, " SELECT nvl(max_acct_id,0) " " FROM LBAS.AREA " " WHERE area_id =%d " ,AreaID ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索营业区最大合同号出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有找到营业区最大合同号!"); strcpy(ls_max_acct,cDatabase->data->GetColData(1,1)); ll_max_acct=atol(ls_max_acct); sprintf(lsSql, " select nvl(max(max_acct_id),1) " " from LBAS.AREA " " where max_acct_id < %ld " ,ll_max_acct); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索营业区最小合同号出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有找到营业区最小合同号!"); strcpy(ls_min_acct,cDatabase->data->GetColData(1,1)); ll_min_acct=atol(ls_min_acct); sprintf(lsSql, " Select BILLING_CYCLE_ID, " " sum(charge)*0.01, " " count(distinct acct_id) " " from B_ACCT_ITEM_O " " where acct_id >= %ld " " and acct_id <= %ld " " and state in ('20C','20Q','20T','20Y')" " group by BILLING_CYCLE_ID " ,ll_min_acct,ll_max_acct); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"检索营业区总欠费出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有找到营业区总欠费!"); StrReturn(0,cDatabase->GetData()); }void CNCpatch::GetAreaQfNoDossier(long StaffID,long AreaID,long type){ char lsSql[2048],lsTemp[1024],lsErr[500]; int isqlcode; char staff_id[20]; sprintf(staff_id,"%ld",StaffID); sprintf(lsSql, " SELECT domain_payment_method.PAYMENT_METHOD_NAME, " " B_ACCT_ITEM_O.BILLING_CYCLE_ID, " " sum(b_acct_item_o.charge)*0.01, " " count(distinct B_ACCT.acct_id) " " FROM B_ACCT, " " B_ACCT_ITEM_O, " " domain_payment_method " " WHERE B_ACCT_ITEM_O.ACCT_ID = B_ACCT.ACCT_ID and " " B_ACCT_ITEM_O.ACCT_SEQ_NBR =B_ACCT.ACCT_SEQ_NBR and " " B_ACCT.AREA_ID = %d AND " " B_ACCT_ITEM_O.STATE in ('20C','20Q','20Y','20T') AND " " (B_ACCT.STATE = '10X' ) and " " domain_payment_method.payment_method=B_ACCT.payment_method " " GROUP BY domain_payment_method.PAYMENT_METHOD_NAME, " " B_ACCT_ITEM_O.BILLING_CYCLE_ID " " order by domain_payment_method.PAYMENT_METHOD_NAME,B_ACCT_ITEM_O.BILLING_CYCLE_ID " ,AreaID); userlog("无档1"); 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_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有营业区欠费记录!"); StrReturn(0,cDatabase->GetData());}void CNCpatch::GetPrepay(long billing_cycle_id){ char lsSql[2048],lsTemp[1024],lsErr[500]; int isqlcode; char staff_id[20]; sprintf(lsSql, " SELECT b.BILLING_CYCLE_ID, " " c.name, " " sum(b.charge)*0.01, " " count(distinct a.acct_id) " " FROM B_ACCT a, " " B_ACCT_ITEM_O b, " " B_AREA c " " WHERE a.ACCT_ID = b.ACCT_ID and " " a.ACCT_SEQ_NBR =b.ACCT_SEQ_NBR and " " b.billing_cycle_id=%ld and " " b.acct_item_type_id=3 and " " a.area_id=c.area_id and " " a.STATE = '10A' " " GROUP BY b.BILLING_CYCLE_ID,c.name " ,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_sta_prepay",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有营业区预付抵扣记录!"); StrReturn(0,cDatabase->GetData());}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -