📄 charge_jlt_print.cpp
字号:
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"插入销帐记录出错,插入数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(old_change,new_change);
sprintf(charge,"0");
isqlcode=GetMaxBillNo(cDatabase,StaffID,bill_serial_nbr,lsTemp);
if(isqlcode<0)
{
strcpy(lsRetstr,lsTemp);
cDatabase->Rollback();
strcpy(lsTemp,"提取最大销帐流水号出错1");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
}
if(strcmp(acct_id,acct_id_cur)!=0)
{
sprintf(lsSql,"UPDATE B_ACCT SET change=%s WHERE acct_id=%s AND state='10A'",new_change,acct_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新收费库零钞出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"更新收费库零钞出错,更新数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(lsSql,"UPDATE LBAS.ACCT SET change=%s WHERE acct_id=%s AND state='10A'",new_change,acct_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新计费库零钞出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"更新计费库零钞出错,更新数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
for(int i=1;i<=user_num;i++)
{
len=20;
Fget32(tpst,ACCT_ID_USER,i-1,lsTemp,&len);
if(strcmp(lsTemp,acct_id_cur)==0)
{
len=20;
Fget32(tpst,CHANGE_USER,i-1,lsTemp,&len);
strcpy(old_change,lsTemp);
}
}
}
/* if(strcmp(pay_type,"1")==0)
sprintf(lsSql,"UPDATE B_ACCT_ITEM_O SET state='20R',state_date=sysdate,bill_serial_nbr=%s WHERE acct_id = %s AND billing_cycle_id = %s AND partner_id = %s AND bill_item_id = %s AND state='20Q'",bill_serial_nbr,acct_id_cur,billing_cycle_id_cur,partner_id,bill_item_id);
else
sprintf(lsSql,"UPDATE B_ACCT_ITEM_O SET state='20R',state_date=sysdate,bill_serial_nbr=%s WHERE serv_id = %s AND billing_cycle_id = %s AND partner_id = %s AND bill_item_id = %s AND state='20Q'",bill_serial_nbr,serv_id,billing_cycle_id_cur,partner_id,bill_item_id);
//userlog(lsSql);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
//userlog("sqlcode= %d",isqlcode);
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新帐目状态20R到20Q出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
item_count=item_count - cDatabase->GetRowCount();
*///因为使用decode()函数处理,所以将以上语句注释掉(钮新修改于2002年01月)
if(strcmp(pay_type,"1")==0)
sprintf(lsSql," UPDATE /*+ USE_CONCAT */ B_ACCT_ITEM_O "
" SET state=decode(state,'20C','20P','20Q','20R','20T','20X','20Y','20U','20S','20W','20Z','20V',state),"
" state_date=sysdate,"
" bill_serial_nbr=%s "
" WHERE acct_id = %s "
" AND billing_cycle_id = %s "
" AND partner_id = %s "
" AND bill_item_id = %s"
" AND state in ('20C','20Q','20T','20Y','20S','20Z')"
,bill_serial_nbr,acct_id_cur,billing_cycle_id_cur,partner_id,bill_item_id);
else
sprintf(lsSql," UPDATE /*+ USE_CONCAT */ B_ACCT_ITEM_O "
" SET state=decode(state,'20C','20P','20Q','20R','20T','20X','20Y','20U','20S','20W','20Z','20V',state),"
" state_date=sysdate,"
" bill_serial_nbr=%s "
" WHERE serv_id = %s "
" AND billing_cycle_id = %s "
" AND partner_id = %s "
" AND bill_item_id = %s"
" AND state in ('20C','20Q','20T','20Y','20S','20Z')"
,bill_serial_nbr,serv_id,billing_cycle_id_cur,partner_id,bill_item_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新帐目状态20C到20P出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(item_count!=cDatabase->GetRowCount())
{
strcpy(lsTemp,"更新帐目状态20C到20P出错,更新帐目数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(charge,"%d",atol(charge)+atol(charge_cur));
sprintf(acct_id,acct_id_cur);
sprintf(billing_cycle_id,billing_cycle_id_cur);
}
for(int lrow1=1;lrow1<=late_num;lrow1++)
{
len=20;
Fget32(tpst,ACCT_ID_LATE,lrow1-1,lsTemp,&len);
if(strcmp(acct_id,lsTemp)==0)
{
len=20;
Fget32(tpst,BILLING_CYCLE_ID_LATE,lrow1-1,lsTemp,&len);
if(strcmp(billing_cycle_id,lsTemp)==0)
{
len=20;
Fget32(tpst,LATE_FEE_LATE,lrow1-1,lsTemp,&len);
strcpy(late_fee,lsTemp);
len=20;
Fget32(tpst,DERATE_LATE,lrow1-1,lsTemp,&len);
strcpy(derated,lsTemp);
len=20;
Fget32(tpst,ACCT_ITEM_ID_LATE,lrow1-1,lsTemp,&len);
strcpy(max_item_id,lsTemp);
if(strcmp(late_fee,"0")!=0)
{
sprintf(lsSql,"INSERT INTO B_ACCT_ITEM_O SELECT acct_item_id,serv_id,serv_seq_nbr,acct_id,acct_seq_nbr,1,%s,billing_cycle_id,sysdate,1,'20P',sysdate,0,0,1,1,%s,'1' FROM B_ACCT_ITEM_O WHERE acct_item_id=%s",late_fee,bill_serial_nbr,max_item_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"插入帐期滞纳金出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"插入帐期滞纳金出错,插入数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
}
if(strcmp(derated,"0")!=0)
{
sprintf(lsSql,"INSERT INTO B_ACCT_ITEM_O SELECT acct_item_id,serv_id,serv_seq_nbr,acct_id,acct_seq_nbr,1,(-1)*%s,billing_cycle_id,sysdate,1,'20P',sysdate,0,0,1,1,%s,'3' FROM B_ACCT_ITEM_O WHERE acct_item_id=%s AND special_acct_flag='0'",derated,bill_serial_nbr,max_item_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"插入帐期滞纳金减免出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"插入帐期滞纳金减免出错,插入数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
}
}
}
}
sprintf(charge,"%d",atol(charge)+atol(old_change)+atol(late_fee)+atol(derated));
sprintf(amount,"%d",atol(charge) / 100 * 100);
sprintf(new_change,"%d",atol(charge) - atol(amount));
sprintf(charge_total,"%d",atol(charge_total)+atol(amount));
sprintf(lsSql,"INSERT INTO BILL (bill_serial_nbr,pay_serial_nbr,created_date, "
" staff_id,pay_date,settle_date,print_count, "
"print_date,area_code,acc_nbr,state,state_date, "
"bill_serial_nbs,amount,acct_id,change) "
"VALUES (%s,%s,sysdate,%s,sysdate,null,1,sysdate,null,null, "
"'40C',sysdate,%s,%s,%s,%s)",
bill_serial_nbr,pay_serial_nbs,StaffID,bill_serial_nbr,amount,
acct_id,old_change);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"插入销帐记录出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"插入销帐记录出错,插入数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(lsSql,"UPDATE B_ACCT SET change=%s WHERE acct_id=%s AND state='10A'",new_change,acct_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新收费库零钞出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
{
strcpy(lsTemp,"更新收费库零钞出错,更新数目不合");
cDatabase->Rollback();
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(lsSql,"UPDATE LBAS.ACCT SET change=%s WHERE acct_id=%s AND state='10A'",new_change,acct_id);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
strcpy(lsRetstr,cDatabase->GetSqlErrText());
cDatabase->Rollback();
strcpy(lsTemp,"更新计费库零钞出错");strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsTemp,lsRetstr),lsErr)!=1)
{
strcat(lsTemp,lsErr);
cDatabase->Rollback();
}
else
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(cDatabase->GetRowCount()!=1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -