📄 charge_settle.cpp
字号:
lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; case 3: //修改帐户一次性费用表中以前结清数据 sprintf(lsSql, "UPDATE LBAS.ACCT_ONCE_FEE " "SET state='B', " "state_date=sysdate " "WHERE acct_id= %s AND " " edit_time >sysdate and " "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); } //修改帐户一次性费用表数据 sprintf(lsSql, "UPDATE LBAS.ACCT_ONCE_FEE " "SET state='A', " "state_date=sysdate " "WHERE acct_id= %s AND " " edit_time>sysdate and " "state='1' " ,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, "UPDATE LBAS.SERV_ONCE_FEE " "SET state='B', " "state_date=sysdate, " "acct_id = %s, " "acct_seq_nbr = %s " " 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.state='F0A' AND " "a.state='A') " ,acct_id,acct_seq_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); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } //修改帐户一次性费用表数据 sprintf(lsSql, "UPDATE LBAS.SERV_ONCE_FEE " "SET state='A', " "state_date=sysdate, " "acct_id = %s, " "acct_seq_nbr = %s " " 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.state='F0A' AND " "a.state='1') " ,acct_id,acct_seq_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); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; case 4: //修改托收节余 sprintf(lsSql, "UPDATE COMIT_BALANCE " "SET state='02', " "state_date=sysdate, " "pay_serial_nbr = %s " "WHERE acct_id= %s AND " "state='01'" ,pay_serial_nbr,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 COMIT_BALANCE " "VALUES (SEQ_COMIT_BALANCE.NEXTVAL,%s,%s,0, " "to_number('%s')*100,(-100)*to_number('%s'), " "'0A',%s, " "sysdate,'01',%s) " ,acct_id,acct_seq_nbr,charge,charge,staff_id,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); lpfree(lparm,ret); cDatabase->Commit(); StrReturn(-1,lsTemp); } break; case 5: //插入预付款记录 sprintf(lsSql, "INSERT INTO BALANCE_HIST_ADMIN " "VALUES (SEQ_BALANCE_HIST_ADMIN.NEXTVAL,%s,(-100)*to_number('%s'),'A',%s,0,sysdate,NULL,'01') " ,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); } //更新销帐库预付款金额 sprintf(lsSql, "UPDATE B_ACCT " "SET balance = 0 " "WHERE acct_id = %s AND " "state = '10A' " ,acct_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); } //更新计费库预付款金额 sprintf(lsSql, "UPDATE LBAS.ACCT " "SET balance = 0 " "WHERE acct_id = %s AND " "state = '10A' " ,acct_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); } 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, " "to_number('%s')*100,(-100)*to_number('%s'), " "'0A',sysdate,'01',%s) " ,acct_id,charge,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, "INSERT INTO B_CANCEL_ACCT (cancel_id,acct_id,bill_item_id, " "charge,state,state_time,pay_serial_nbr,bill_serial_nbr) " "VALUES (seq_b_cancel_acct.nextval,%s,%s,to_number('%s'), " "'C0P',sysdate,%s,%s ) " ,acct_id,bill_item_id,charge,pay_serial_nbr,bill_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); if(strcmp(bill_item_id,"2")==0) { strcpy(change,charge); } //Case开始 switch(atoi(bill_item_id)) { case 1: sprintf(lsSql, " UPDATE B_ACCT_ITEM_O " " set state='20P', " " bill_serial_nbr=%s " " where serv_id = %s and " " state in ('20C','20Q','20Y','20T')" ,bill_serial_nbr,serv_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 3: //修改用户一次性费用表中以前结清数据 sprintf(lsSql, "UPDATE LBAS.SERV_ONCE_FEE " "SET state='B', " "state_date=sysdate, " "acct_id = %s, " "acct_seq_nbr = %s " " 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.serv_id=%s and " "b.state='F0A' AND " "a.state='A') " ,acct_id,acct_seq_nbr,serv_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, "UPDATE LBAS.SERV_ONCE_FEE " "SET state='A', " "state_date=sysdate, " "acct_id = %s, " "acct_seq_nbr = %s " " 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.serv_id=%s and " "b.state='F0A' AND " "a.state='1') " ,acct_id,acct_seq_nbr,serv_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();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -