📄 charge_stat.cpp
字号:
lpfree(lparm,rpnum); strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n"); if(WriteLog(cDatabase,"-1","w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } strcpy(staff_id,lparm[0]); sprintf(start_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[1]); sprintf(end_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[2]); lpfree(lparm,rpnum); sprintf(lsSql, "SELECT PAYMENT.pay_serial_nbr, " "PAYMENT.acct_id, " "PAYMENT.chequ_nbr, " "PAYMENT.amount/100.00, " "to_char(PAYMENT.pay_date,'YYYY-MM-DD HH24:MI:SS') " "FROM PAYMENT " "WHERE ( PAYMENT.staff_id = %s ) AND " "( PAYMENT.state_date >= %s ) AND " "( PAYMENT.pay_date < %s ) AND " "( rtrim(ltrim(PAYMENT.chequ_nbr)) is not null ) " ,staff_id,start_date,end_date); ////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 CStat::AreaQfList(long StaffID,long AreaID,long type){ char lsSql[2048],lsTemp[1024],lsErr[500]; int isqlcode; char staff_id[20]; sprintf(staff_id,"%ld",StaffID); if(type==1) { 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.ACCT_ID = B_ACCT_ITEM_O.ACCT_ID and " " B_ACCT.ACCT_SEQ_NBR = B_ACCT_ITEM_O.ACCT_SEQ_NBR and " " B_ACCT.AREA_ID = %d AND " " B_ACCT_ITEM_O.STATE in ('20C','20Q','20Y','20T') AND " // " B_ACCT.STATE = '10A' 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); } else { 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.ACCT_ID = B_ACCT_ITEM_O.ACCT_ID and " " B_ACCT.ACCT_SEQ_NBR = B_ACCT_ITEM_O.ACCT_SEQ_NBR and " " B_ACCT.SELL_ID = %d AND " " B_ACCT_ITEM_O.STATE in ('20C','20Q','20Y','20T') AND " // " B_ACCT.STATE = '10A' 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(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 CStat::AreaSfList(long StaffID,long AreaID,char *start_date,char *end_date){ char lsSql[2048],lsTemp[1024],lsErr[500]; int isqlcode; char staff_id[20]; char ls_start[100],ls_end[100]; long in,out,late,all; sprintf(staff_id,"%ld",StaffID); sprintf(lsSql, "DELETE from DUE_SF where staff_id=%d", StaffID); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql, "DELETE from DUE_LATE where staff_id=%d", StaffID); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(ls_start,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",start_date); sprintf(ls_end,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",end_date); sprintf(lsSql, "insert into DUE_SF " "select %d,%d,acct_id,nvl(bill.amount,0),0,0,bill.bill_serial_nbr,0,0 " "from bill,b_site,staff " "where bill.state='40C' " "and bill.pay_date>=%s " "and bill.pay_date<=%s " "and bill.staff_id=staff.staff_id " "and staff.site_id=b_site.site_id " "and b_site.area_id=%d ", StaffID ,AreaID,ls_start,ls_end,AreaID); ////userlog(lsSql); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //cDatabase->Commit(); if(cDatabase->GetRowCount()==0) StrReturn(100,"没有营业区收费记录!"); sprintf(lsSql, "update due_sf a " "set recieve=(select sum(b.charge) from b_acct_item_o b " "where a.bill_serial_nbr=b.bill_serial_nbr " "and a.staff_id=%d " "group by b.bill_serial_nbr) " "where rowid in (select a.rowid from b_acct_item_o b " "where a.bill_serial_nbr=b.bill_serial_nbr " "and a.staff_id=%d " "group by b.bill_serial_nbr) " , StaffID,StaffID); ////userlog(lsSql); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql, "insert into DUE_LATE " "select %d,a.bill_serial_nbr,sum(nvl(a.charge,0)) " "from b_acct_item_o a,due_sf b " "where a.bill_serial_nbr=b.bill_serial_nbr " "and a.acct_item_type_id=1 " "and b.staff_id=%d " "group by a.bill_serial_nbr,a.acct_item_type_id ", StaffID,StaffID); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog(lsSql); if(isqlcode<0) { strcpy(lsTemp,"插入营业区违约金出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_sta_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql, "update DUE_SF a " "set late_fee=(select charge from DUE_LATE b " " where a.staff_id=b.staff_id " " and a.bill_serial_nbr=b.bill_serial_nbr " " and a.staff_id=%d ) " "where rowid in(select a.rowid from DUE_LATE b " " where a.staff_id=b.staff_id " " and a.bill_serial_nbr=b.bill_serial_nbr " " and a.staff_id=%d )", StaffID,StaffID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog(lsSql); if(isqlcode<0) { strcpy(lsTemp,"检索营业区收欠费出错(违约金)!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_sta_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //转入零钱 sprintf(lsSql, "update due_sf " "set change=due-recieve,flag=1 " "where due>=recieve " "and staff_id=%d ", StaffID); ////userlog(lsSql); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //转出零钱 sprintf(lsSql, "update due_sf " "set change=recieve-due,flag=2 " "where due<recieve " "and staff_id=%d ", StaffID); ////userlog(lsSql); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); sprintf(lsSql, "select sum(due),sum(late_fee) from DUE_SF " "where staff_id=%d ", StaffID); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } all=atol(cDatabase->data->GetColData(1,1)); late=atol(cDatabase->data->GetColData(1,2)); sprintf(lsSql, "select sum(change) from DUE_SF " "where staff_id=%d and flag=%d ", StaffID,1); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } in=atol(cDatabase->data->GetColData(1,1)); sprintf(lsSql, "select sum(change) from DUE_SF " "where staff_id=%d and flag=%d ", StaffID,2); 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_SFreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } out=atol(cDatabase->data->GetColData(1,1)); sprintf(lsTemp,"%ld\t%ld\t%ld\t%ld", all,late,in,out); StrReturn(0,lsTemp);}//------------------------------------------------------------------------//服务 PBGetPresentHist 实现函数,取历史预付赠费信息//传入参数 balance.acct_id//------------------------------------------------------------------------void CStat::GetPresentHist(){ char lsSql[2048],lsTemp[500],lsErr[500],lsReturn[1024]; int i,isqlcode,lpnum,rpnum; int li_count=0; char staff_id[20],start_date[100],end_date[100],site_id[10]; char *lparm[2]; lpnum=3; rpnum=GetInputParm(pInp,lparm,50); if(rpnum!=lpnum) { lpfree(lparm,rpnum); strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n"); if(WriteLog(cDatabase,"-1","w_p_sta_dayreport",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } strcpy(staff_id,lparm[0]); sprintf(start_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",lparm[1]); sprintf(end_date,"to_date('%s','yyyy-mm-dd hh24:mi:ss')",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) { strcpy(lsTemp,"取预付赠费营业点信息出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,"1","w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } strcpy(site_id,cDatabase->GetData()); sprintf(lsSql," select a.balance_hist_admin_id," " b.name, a.acct_id, " " a.amount*0.01,a.present*0.01,to_char(a.eff_date,'yyyy-mm-dd'), " " a.eff_month " " from balance_hist_eff_exp a ,staff b" " where a.staff_id=b.staff_id " " and a.state='01' " " and a.state_date>=%s" " and a.state_date<%s" " and b.site_id=%s " " order by b.name ",start_date,end_date,site_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,"1","w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); StrReturn(0,cDatabase->GetData()); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -