📄 charge_balance0908.cpp
字号:
strcpy(customer_name,lparm[3]); strcpy(id_card,lparm[4]); strcpy(pass_word,lparm[5]); strcpy(checknbr,lparm[6]); strcpy(amount,lparm[7]); strcpy(paymethod,lparm[8]); strcpy(present,lparm[9]); strcpy(month_num,ltrim(rtrim(lparm[10]))); strcpy(eff_date,lparm[11]); strcpy(op_flag,lparm[12]); lpfree(lparm,rpnum); //cDatabase->BeginTran(); if(strcmp(paymethod,"40")==0) { //乐山预付加入判断是否允许转预付 char ls_allow_flag[3]; if(strcmp(op_flag,"0")==0) { sprintf(lsSql," select 1 from b_serv a,lbas.noallow_to_prepay b " " where a.acct_id=%s " " and a.serv_type_id=b.serv_type_id " " and a.state not in 'F0X' " ,acct_id); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"判断是否允许转预付1出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } strcpy(ls_allow_flag,cDatabase->GetData()); if(atol(ls_allow_flag)==0) { sprintf(lsSql," select 1 from b_acct a, lbas.noallow_to_prepay b " " where a.acct_id=%s " " and a.payment_method=b.payment_method " ,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"判断是否允许转预付2出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } strcpy(ls_allow_flag,cDatabase->GetData()); } else { StrReturn(-3,"该帐户下有号码业务类型不符合转预付要求!"); } if(atol(ls_allow_flag)==0) { sprintf(lsSql,"select no_id from lbas.large_no " " where no_type='max_products'" ); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"判断是否允许转预付2出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } int li_max_products,li_serv_num; li_max_products=atoi(cDatabase->GetData()); sprintf(lsSql," select count(*) from b_serv " " where acct_id=%s " " and state<>'F0X' " ,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"判断是否允许转预付2出错!\n"); strcat(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); if(WriteLog(cDatabase,staff_id,"w_p_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } li_serv_num=atoi(cDatabase->GetData()); if(li_serv_num>=li_max_products) { strcpy(ls_allow_flag,"1"); } else { strcpy(ls_allow_flag,"0"); } } else { StrReturn(-3,"该帐户付款方式不符合转预付费要求!"); } if(atoi(ls_allow_flag)>0) { StrReturn(-2,"该帐户下电话号码超出标准"); } } } sprintf(lsSql," delete from BALANCE_TABLE_ADMIN " " where acct_id=%s" ,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"删除BALANCE_TABLE_ADMIN表中旧数据时出错!\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 0 //广安没有用号线接口表,注释掉该部分的处理 //号线接口插入处理 sprintf(lsSql, " select b.area_id,substr(c.lbas_code,1,2) " " from lbas.serv a,lbas.acct b,lbas.serv_type c " " where a.acct_id = b.acct_id " " and a.acct_seq_nbr = b.acct_seq_nbr " " and a.acct_id=%s " " and a.state <>'F0X' " " and b.state='10A' " " and a.serv_type_id=c.serv_type_id " " and rownum=1 " ,acct_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"向销帐库的BALANCE_TABLE_ADMIN表中插数据时出错!\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); } int li_area_id,li_area_type ; char ls_lbas_code[10]; li_area_id=atoi(cDatabase->data->GetColData(1,1)); strcpy(ls_lbas_code,cDatabase->data->GetColData(1,2)); if(li_area_id>2 ||(li_area_id==2 && strcmp(ls_lbas_code,"WX")!=0)) { li_area_type=3; } if((li_area_id ==1||li_area_id==2)&& strcmp(ls_lbas_code,"WX")==0) { li_area_type=2; } if(li_area_id==1 && strcmp(ls_lbas_code,"WX")!=0) { li_area_type=1; } sprintf(lsSql, " insert into lbas.prepay_hx_interface " " (prepay_hx_nbr,acct_nbr_97,payment_method,old_payment_method,created_date, " " staff_id,area_id,state,acc_nbr )" " select charge.seq_prepay_hx.nextval, b.acct_nbr_97,'%s',b.payment_method,sysdate," " %s,%d,'0',a.acc_nbr from lbas.serv a,lbas.acct b" " where a.acct_id=%s " " and a.acct_id=b.acct_id " " and a.acct_seq_nbr=b.acct_seq_nbr " " and a.state <>'F0X' " " and b.state ='10A' " ,paymethod,staff_id,li_area_type,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_balance",lsTemp,lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } #endif //广安没有用号线接口表,注释掉该部分的处理 //向销帐库的BALANCE_TABLE_ADMIN表中插数据 sprintf(lsSql, "INSERT INTO BALANCE_TABLE_ADMIN " "(acct_id,name,password, " "id_card_nbr,total_amount,advance,radix,ratio,create_date,state,state_date,present) " "VALUES (%s,'%s','%s', " "'%s',%s + %s ,%s,0,0,sysdate,'1',sysdate,%s) " ,acct_id,customer_name,pass_word,id_card,amount,present,amount,present); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"向销帐库的BALANCE_TABLE_ADMIN表中插数据时出错!\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); } sprintf(lsSql, " select seq_balance_hist_admin.nextval from dual "); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsTemp,"获取预付流水信息出错2!\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(cDatabase->GetRowCount()>0) { sprintf(hist_id,"%s",cDatabase->GetData()); } //向销帐库的BALANCE_HIST_ADMIN表中插数据 sprintf(lsSql, "INSERT INTO BALANCE_HIST_ADMIN " "(balance_hist_admin_id,acct_id,amount,use_catg,staff_id,balance,use_date,state,present ) " "VALUES (%s,%s,%s,'1', " "%s,%s + %s,sysdate,'01',%s) " ,hist_id,acct_id,amount,staff_id,amount,present,present); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"向销帐库的BALANCE_HIST_ADMIN表中插数据时出错2!\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(atol(present)>0) { sprintf(lsSql, " INSERT INTO BALANCE_HIST_EFF_EXP " "(balance_hist_admin_id,acct_id,amount,present,eff_date,eff_month,state,state_date,balance,staff_id) " " VALUES(%s,%s,%s,%s,to_date('%s','yyyy-mm-dd'),%s,'01',sysdate,%s + %s,%s )" ,hist_id,acct_id,amount,present,eff_date,month_num,amount,present,staff_id); //userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,"向销帐库的BALANCE_HIST_EFF_EXP表中插数据时出错4!\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); } } //更新收费库B_ACCT表中的balance字段的值/* sprintf(lsSql, "UPDATE B_ACCT " "SET balance = %s + %s , " " 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); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -