📄 charge_settle.cpp
字号:
isqlcode=cDatabase->GetSqlCode(); // //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); 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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; case 6: //更新分期付款记录 sprintf(lsSql, "UPDATE INSTALMENT_BALANCE " "SET state = '02' " "WHERE acct_id = %s AND " "state = '01' " ,acct_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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入分期付款记录 sprintf(lsSql, "INSERT INTO INSTALMENT_BALANCE " "VALUES (SEQ_INSTALMENT_BALANCE.NEXTVAL,%s,0,NULL, " "0,100*to_number('%s'), " "'0B',sysdate,'01',%s) " ,acct_id,charge,staff_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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; } //Case结束 //更新销户结清历史记录 sprintf(lsSql, "UPDATE B_CANCEL_ACCT " "SET state='C0R' " "WHERE acct_id = %s AND " "bill_item_id = %s AND " "state = 'C0P' " ,acct_id,bill_item_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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入销户回退历史记录 sprintf(lsSql, "INSERT INTO B_CANCEL_ACCT (cancel_id,acct_id,bill_item_id, " "charge,state,state_time,bill_serial_nbr,pay_serial_nbr) " "VALUES (seq_b_cancel_acct.nextval,%s,%s,-1*to_number('%s'), " "'C0S',sysdate,%s,%s ) " ,acct_id,bill_item_id,charge,ls_bill_serial_nbr,pay_serial_nbr); // //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); // //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); 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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } } } else { for(i=0;i<row;i++) { j=i*col; strcpy(bill_item_id,lparm[j+1]); strcpy(charge,lparm[j+2]); sum_charge=sum_charge+atof(charge); //Case开始 switch(atoi(bill_item_id)) { case 1: sprintf(lsSql, " update B_ACCT_ITEM_O " " set state='20C' " " where serv_id = %s and " " bill_serial_nbr = %s and " " state in ('20P')" ,serv_id,ls_bill_serial_nbr); 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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql," begin lbas.p_a_serv_realtime_back('%s','%s',%s,:returncode ); end;",areacode,acc_nbr,billing_cycle_id); //userlog(lsSql); char ls_return[40]; strcpy(ls_return,cDatabase->ExecProc(lsSql)); if(ls_return[0]>'9') { StrReturn(-1,ls_return); } break; case 3: //修改用户一次性费用表数据 sprintf(lsSql, "UPDATE LBAS.SERV_ONCE_FEE " "SET state='1', " "state_date=sysdate, " " WHERE rowid in (SELECT a.rowid " "FROM LBAS.SERV_ONCE_FEE a,LBAS.SERV b " "WHERE a.serv_id=b.serv_id AND " "a.serv_seq_nbr=b.serv_seq_nbr AND " " b.acct_id=%s and " "b.state='F0A' AND " "a.state='A') " ,acct_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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; } //Case结束 //更新销户结清历史记录 sprintf(lsSql, "UPDATE B_CANCEL_ACCT " "SET state='C0R' " "WHERE serv_id = %s AND " "bill_item_id = %s AND " "state = 'C0P' " ,serv_id,bill_item_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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入销户回退历史记录 sprintf(lsSql, "INSERT INTO B_CANCEL_ACCT (cancel_id,acct_id,bill_item_id, " "charge,state,state_time,bill_serial_nbr,pay_serial_nbr,serv_id) " "VALUES (seq_b_cancel_acct.nextval,%s,%s,-1*to_number('%s'), " "'C0S',sysdate,%s,%s,%s) " ,acct_id,bill_item_id,charge,ls_bill_serial_nbr,pay_serial_nbr,serv_id); // //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); // //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); 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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } } } lpfree(lparm,ret); //更新销帐记录 sprintf(lsSql, " UPDATE BILL " " set state = '40R', " " state_date = sysdate " " where bill_serial_nbr=to_number('%s') " ,ls_bill_serial_nbr); //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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //更新付款记录 sprintf(lsSql, "UPDATE PAYMENT " "SET state = 'C0R', " "state_date = sysdate " "WHERE pay_serial_nbr = to_number('%s') " ,ls_pay_serial_nbr); //// //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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入付款记录 sprintf(lsSql, "INSERT INTO PAYMENT " "VALUES ( %s,%s,%s,'11','0B', " "%s,%f*(-100),sysdate,to_number('%s'), " "'C0S',sysdate,null,null) " ,pay_serial_nbr,acct_id,acct_seq_nbr,pay_serial_nbr,sum_charge,staff_id); //// //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode();// //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); 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_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } cDatabase->Commit(); StrReturn(0,"销户回退成功!"); }//-----------------------------------------------------------------//服务PTGetTotal实现函数,传入参数staff_id,acct_id//取结清回退费用信息//-----------------------------------------------------------------void CSettle::PTGetTotal(){ char lsSql[2048],lsTemp[500],lsErr[500],lsReturn[2048]; int i,isqlcode,lpnum,rpnum; char acct_id[50],staff_id[20],pay_serial_nbr[30]; char *lparm[4],tch[2]; //userlog(pInp); lpnum=2; rpnum=GetInputParm(pInp,lparm,50); if(rpnum!=lpnum) { lpfree(lparm,rpnum); strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n"); if(WriteLog(cDatabase,"-1","w_p_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } strcpy(staff_id,lparm[0]); strcpy(acct_id,lparm[1]); sprintf(acct_id,"%s",acct_id); lpfree(lparm,rpnum); sprintf(lsSql, "SELECT B_CANCEL_ACCT.acct_id, " "sum(B_CANCEL_ACCT.charge) charge, " "B_CANCEL_ACCT.state, " "B_CANCEL_ACCT.state_time, " "to_char(B_CANCEL_ACCT.pay_serial_nbr) " "FROM B_CANCEL_ACCT " "WHERE ( B_CANCEL_ACCT.acct_id = %s ) " "and ( B_CANCEL_ACCT.state = 'C0P' ) " "group by B_CANCEL_ACCT.acct_id, " "B_CANCEL_ACCT.state, " "B_CANCEL_ACCT.state_time, " "B_CANCEL_ACCT.pay_serial_nbr " "order by B_CANCEL_ACCT.state_time DESC " ,acct_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_settle",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()); } }//-----------------------------------------------------------------//服务PTGetSettleItem实现函数,传入参数staff_id,pay_serial_nbr//取结清回退项目费用信息//-----------------------------------------------------------------void CSettle::PTGetSettleItem(){ char lsSql[2048],lsTemp[500],lsErr[500],lsReturn[2048]; int i,isqlcode,lpnum,rpnum; char staff_id[20],pay_serial_nbr[30]; char *lparm[4],tch[2]; //userlog(pInp); lpnum=2; rpnum=GetInputParm(pInp,lparm,50); if(rpnum!=lpnum) { lpfree(lparm,rpnum); strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n"); if(WriteLog(cDatabase,"-1","w_p_settle",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } strcpy(staff_id,lparm[0]); strcpy(pay_serial_nbr,lparm[1]); lpfree(lparm,rpnum); sprintf(lsSql, "SELECT B_CANCEL_ACCT.acct_id, " "B_CANCEL_ACCT.bill_item_id, " "B_CANCEL_ACCT.charge, " "B_CANCEL_ACCT.state, " "B_CANCEL_ACCT.s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -