📄 charge_balance.cpp
字号:
" payment_method='%s' " "WHERE acct_id=%s AND " " state='10A' " ,amount,present,paymethod,acct_id); *///广安不修改付费方式 sprintf(lsSql, "UPDATE B_ACCT " "SET balance = %s + %s " "WHERE acct_id=%s AND " " state='10A' " ,amount,present,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"更新收费库B_ACCT表中的balance字段的值时出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //更新计费库ACCT表中的balance与payment_method两字段的值/* sprintf(lsSql, "UPDATE LBAS.ACCT " "SET balance = %s + %s, " "payment_method = '%s' " "WHERE acct_id=%s AND " "state = '10A' " ,amount,present,paymethod,acct_id); *///广安不修改付费方式 sprintf(lsSql, "UPDATE LBAS.ACCT " "SET balance = %s + %s " "WHERE acct_id=%s AND " "state = '10A' " ,amount,present,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"更新计费库ACCT表中的balance与payment_method两字段的值时出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入预付款的付款记录/* rt=GetMaxPayNo(cDatabase,staff_id,paymaxno,lsErr); if(rt!=1) { strcpy(lsTemp,"生成预付款付款记录流水号时出错!\n"); strcat(lsTemp,lsErr); strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); }*/ //userlog(paymaxno); //if(strcmp(checknbr,NULL)==0||strcmp(checknbr,"")==0) strcpy(paymethod,"11"); //else strcpy(paymethod,"12"); /* sprintf(lsSql, "INSERT INTO PAYMENT " "(pay_serial_nbr,acct_id,acct_seq_nbr,payment_method,operation_type, " "oper_serial_nbr,amount,pay_date,staff_id,state,state_date,chequ_nbr,card_nbr) " "VALUES(%s,%s,%s,'%s','10', " "null,%s, sysdate,%s,'C0C',sysdate,'%s','') " ,hist_id,acct_id,acct_seq_nbr,paymethod,amount,staff_id,checknbr);*/ sprintf(lsSql, "INSERT INTO PAYMENT " "(pay_serial_nbr,acct_id,acct_seq_nbr,payment_method,operation_type, " "oper_serial_nbr,amount,pay_date,staff_id,state,state_date,chequ_nbr,card_nbr) " "select %s,%s,%s,payment_method,'10', " "null,%s, sysdate,%s,'C0C',sysdate,'%s','' from lbas.acct " "where acct_id=%s and acct_seq_nbr=%s " ,hist_id,acct_id,acct_seq_nbr,amount,staff_id,checknbr,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,"向销帐库的PAYMENT表中插入付款记录时出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //开户成功取系统时间返回 if(GetSystime(cDatabase,systime,lsErr)!=1 || systime==NULL) { strcpy(lsTemp,"开户取系统时间出错!\n"); strcat(lsTemp,lsErr); WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } cDatabase->Commit(); StrReturn(0,systime); }//------------------------------------------------------------------------//服务 PBEraseBalance 实现函数,预付款返销//传入参数gl_staff_id,balance.acct_id,ls_hist_id,ls_charge,ls_present//------------------------------------------------------------------------void CBalance::EraseBalance(){ char lsSql[2048],lsTemp[1024],lsErr[500]; char *lparm[10]; char staff_id[10],acct_id[15],hist_id[10],amount[15]; int i,isqlcode,lpnum,rpnum,rt; long ll_temp_balance; char t_balance[20],t_advance[20],t_present[20],paymaxno[20]; strcpy(lsTemp,pInp); lpnum=6; rpnum=GetInputParm(lsTemp,lparm,100);// //userlog("erase!"); if(rpnum!=lpnum) { lpfree(lparm,rpnum); cDatabase->Rollback(); strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n"); if(WriteLog(cDatabase,"-1","w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } strcpy(staff_id,lparm[0]); strcpy(acct_id,lparm[1]); strcpy(hist_id,lparm[2]);// strcpy(t_balance,lparm[3]);// strcpy(t_advance,lparm[4]);// strcpy(t_present,lparm[5]); lpfree(lparm,rpnum); sprintf(lsSql," select nvl(amount,0),nvl(balance,0),nvl(present,0) from balance_hist_admin " " where balance_hist_admin_id=%s " " and acct_id=%s " " and state='01' " ,hist_id,acct_id ); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"获取预付流水信息出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } if(isqlcode==100 && cDatabase->GetRowCount()==0) { strcpy(lsTemp,"该合同号有效流水信息不存在!\n"); StrReturn(-1,lsTemp); } strcpy(t_advance,cDatabase->data->GetColData(1,1)); strcpy(t_present,cDatabase->data->GetColData(1,3)); ll_temp_balance=atol(t_advance)+atol(t_present); sprintf(t_balance,"%ld",ll_temp_balance); sprintf(lsSql,"update balance_hist_admin " " set state='02' " " where balance_hist_admin_id=%s " " and acct_id=%s " " and state='01' " ,hist_id,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"设置记录表状态出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql,"update balance_hist_eff_exp " " set state='02', " " state_date=sysdate " " where balance_hist_admin_id=%s " " and acct_id=%s " " and state='01' " ,hist_id,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"设置记录表状态出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql," insert into erase_bill_list " " (erase_bill_list_id, " " billing_cycle_id, " " bill_serial_nbs," " r_bill_serial_nbs," " staff_id," " pay_date," " state)" " values( seq_erase_bill_list.nextval,1,1,1,%s,sysdate,'1') ",staff_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql,"update balance_table_admin " " set total_amount=total_amount - %s, " " advance=advance - %s, " " present=present - %s " " where acct_id=%s " ,t_balance,t_advance,t_present,acct_id); // //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"更新台帐表出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql," update lbas.acct " " set balance = balance- %s " " where acct_id=%s " " and state='10A' " ,t_balance,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"更新表lbas.acct总余额出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql," update b_acct " " set balance=balance- %s " " where acct_id=%s " " and state='10A' " ,t_balance,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"更新表b_acct总余额出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } sprintf(lsSql," update payment " " set state='C0R' " " where pay_serial_nbr=%s" " and acct_id=%s " ,hist_id,acct_id); // //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"更新支付表出错!\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } //插入预付款的付款记录 rt=GetMaxPayNo(cDatabase,staff_id,paymaxno,lsErr); if(rt!=1) { strcpy(lsTemp,"生成预付款付款记录流水号时出错!\n"); strcat(lsTemp,lsErr); strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-2,lsTemp); } //userlog(paymaxno); sprintf(lsSql," select sum(amount) from bill " " where acct_id=%s " " and pay_serial_nbr=%s " " and staff_id=%s " " and state='40C'" ,acct_id,hist_id,staff_id); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText()); strcat(lsTemp,"获取销帐金额失败\n"); cDatabase->Rollback(); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } char writeoff_amount[11]; if(isqlcode==100 || cDatabase->GetRowCount()==0) { strcpy(writeoff_amount,"0"); } else { strcpy(writeoff_amount, cDatabase->GetData()); if(writeoff_amount[0]==0 || writeoff_amount[0]==' ' ) strcpy(writeoff_amount,"0"); } /* sprintf(lsSql, "INSERT INTO PAYMENT " "(pay_serial_nbr,acct_id,acct_seq_nbr,payment_method,operation_type, " "oper_serial_nbr,amount,pay_date,staff_id,state,state_date,chequ_nbr,card_nbr) " "select %s,acct_id,acct_seq_nbr,payment_method,'10', " "null,-(%s-%s), sysdate,%s,'C0S',sysdate,'','' " " from payment where acct_id=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -