📄 charge_sell.cpp
字号:
if(isqlcode<0) { strcpy(lsRetstr,cDatabase->GetSqlErrText()); cDatabase->Rollback(); strcpy(lsTemp,"删除滞纳金出错");strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } sprintf(lsSql,"UPDATE BILL SET state = '40R', state_date = sysdate WHERE bill_serial_nbr=%s",bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()!=1) { strcpy(lsTemp,"修改销帐记录状态出错,没有销帐记录被修改"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } isqlcode=GetMaxPayNo(cDatabase,StaffID,pay_serial_nbr,lsTemp); if(isqlcode<0) { strcpy(lsRetstr,lsTemp); cDatabase->Rollback(); strcpy(lsTemp,"提取最大付款流水号出错");strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } sprintf(lsSql,"UPDATE PAYMENT " "SET state = 'C0R',state_date = sysdate " "WHERE rowid in ( SELECT a.rowid " "FROM PAYMENT a,BILL b " "WHERE a.pay_serial_nbr=b.pay_serial_nbr " "AND b.bill_serial_nbr=%s)",bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()!=1) { strcpy(lsTemp,"修改付款记录状态出错,没有付款记录被修改"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } 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,b.acct_id,a.acct_seq_nbr,a.payment_method,'20',a.pay_serial_nbr, " "(-1)*b.amount,a.pay_date,b.staff_id,'C0S',sysdate,a.chequ_nbr,a.card_nbr " "FROM PAYMENT a,BILL b " "WHERE a.pay_serial_nbr=b.pay_serial_nbr AND " "b.bill_serial_nbr=%s",pay_serial_nbr,bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()!=1) { strcpy(lsTemp,"插入付款记录状态出错,没有付款记录被插入"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } sprintf(lsSql,"UPDATE B_ACCT a " "SET a.change=(SELECT b.change " "FROM BILL b " "WHERE a.acct_id=b.acct_id " "AND a.state='10A' " "AND b.bill_serial_nbr=%s) " "where (a.acct_id,a.state) in (SELECT c.acct_id,'10A' " "FROM BILL c " "WHERE c.bill_serial_nbr=%s) " ,bill_serial_nbr,bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } sprintf(lsSql, "UPDATE LBAS.ACCT a " "SET a.change=(SELECT b.change " "FROM BILL b " "WHERE a.acct_id=b.acct_id " "AND a.state='10A' " "AND b.bill_serial_nbr=%s) " "where (a.acct_id,a.state) in (SELECT c.acct_id,'10A' " "FROM BILL c " "WHERE c.bill_serial_nbr=%s) " ,bill_serial_nbr,bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } sprintf(lsSql, "INSERT INTO ERASE_BILL_LIST " "SELECT SEQ_ERASE_BILL_LIST.NEXTVAL, aa.* " "FROM (SELECT DISTINCT b.serv_id,b.serv_seq_nbr,b.billing_cycle_id,b.bill_serial_nbr, " "%s,a.staff_id,a.pay_date,'0' " "FROM BILL a,B_ACCT_ITEM_O b " "WHERE a.bill_serial_nbr = b.bill_serial_nbr AND " "b.bill_serial_nbr = %s) aa " ,pay_serial_nbr,bill_serial_nbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } } sprintf(lsSql,"DELETE B_ACCT_ITEM_SELL WHERE staff_id=%s AND created_billing_cycle_id=%s AND " " sell_id=%s AND state='S0P' AND acc_nbr BETWEEN '%s' AND '%s' ", StaffID,CBillingCycleID,SellID,StartNbr,EndNbr); 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_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); erase_list.FreeList(1); StrReturn(-1,lsTemp); } cDatabase->Commit(); erase_list.FreeList(1); StrReturn(0,"返销处理成功");}void CSell::SellPrint(char *StaffID,char *CBillingCycleID,char *StartNbr,char *EndNbr,char *SellID){ char lsSql[600],lsTemp[1024],lsErr[500],lsRetstr[500],pay_serial_nbr[19]; int isqlcode,lrow; sprintf(lsSql,"SELECT DISTINCT to_char(c.bill_serial_nbr),to_char(c.created_date,'yyyy-mm-dd hh24:mi:ss'),c.acct_id,c.change " "FROM B_ACCT_ITEM_SELL a, " " B_BILLING_CYCLE b,BILL c " "WHERE a.billing_cycle_id = b.billing_cycle_id AND c.bill_serial_nbr = a.bill_serial_nbr AND " " a.created_billing_cycle_id=%s AND a.state='S0P' AND " " a.acc_nbr BETWEEN '%s' AND '%s' AND a.sell_id=%s AND c.state = '40C' " "ORDER BY to_char(c.created_date,'yyyy-mm-dd hh24:mi:ss'),to_char(c.bill_serial_nbr) ", CBillingCycleID,StartNbr,EndNbr,SellID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsRetstr,lsTemp); cDatabase->Rollback(); strcpy(lsTemp,"提取批量打发票数据失败");strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()==0) { strcpy(lsTemp,"没有找到批量打发票数据"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(100,lsTemp); } StrReturn(isqlcode,cDatabase->GetData());}void CSell::SellSelect(char *StaffID){ char lsSql[600],lsTemp[1024],lsErr[500],lsRetstr[500]; int isqlcode,lrow; sprintf(lsSql,"SELECT c.sell_id,c.sell_name from STAFF a , SELL_SITE b,SELL c " "where a.staff_id = %s and a.site_id=b.site_id and b.sell_id=c.sell_id ",StaffID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsRetstr,lsTemp); cDatabase->Rollback(); strcpy(lsTemp,"提取买断点失败"); strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()==0) { strcpy(lsTemp,"没有找到买断点"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(100,lsTemp); } StrReturn(isqlcode,cDatabase->GetData()); } void CSell::SellList(char *StaffID,char *CBillingCycleID,char *SellID){ char lsSql[600],lsTemp[1024],lsErr[500],lsRetstr[500],pay_serial_nbr[19]; int isqlcode,lrow; sprintf(lsSql,"SELECT a.ACC_NBR,b.customer_name,a.BILLING_CYCLE_ID,a.AMOUNT/100.00,a.LAST_CHANGE/100.00,a.CHARGE/100.00,a.LATE_FEE/100.00," " a.DERATED/100.00,a.BALANCE/100.00,a.LAST_BALANCE/100.00,a.CHANGE/100.00,a.BILL_SERIAL_NBR " "FROM B_ACCT_ITEM_SELL a,B_ACCT b " "WHERE a.acc_nbr=b.acc_nbr and " " b.state<>'10X' AND " " a.created_billing_cycle_id=%s AND " " a.state='S0P' AND " " a.sell_id=%s " " ORDER BY a.ACC_NBR,a.BILLING_CYCLE_ID ", CBillingCycleID,SellID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsRetstr,lsTemp); cDatabase->Rollback(); strcpy(lsTemp,"提取批量销帐清单失败");strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()==0) { strcpy(lsTemp,"没有找到批量销帐清单"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(100,lsTemp); } StrReturn(isqlcode,cDatabase->GetData());}void CSell::SellStat(char *StaffID,char *CBillingCycleID,char *SellID){ char lsSql[600],lsTemp[1024],lsErr[500],lsRetstr[500],pay_serial_nbr[19]; int isqlcode,lrow; sprintf(lsSql,"SELECT b.name,c.sell_name,sum(a.charge)/100.00,sum(a.late_fee)/100.00,count(DISTINCT a.acct_id)," " sum(a.item_count),sum(a.derated)/100.00,sum(a.balance)/100.00,sum(a.amount)/100.00,sum(a.last_change)/100.00," " sum(a.change)/100.00 " "FROM b_acct_item_sell a,staff b,sell c " "WHERE a.staff_id=b.staff_id AND a.sell_id=c.sell_id AND " " a.created_billing_cycle_id=%s AND a.state='S0P' AND a.sell_id=%s " "GROUP BY b.name,c.sell_name", CBillingCycleID,SellID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); if(isqlcode<0) { strcpy(lsRetstr,lsTemp); cDatabase->Rollback(); strcpy(lsTemp,"提取批量销帐统计失败");strcat(lsTemp,"\n"); if(WriteLog(cDatabase,StaffID,"w_p_sell",strcat(lsTemp,lsRetstr),lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(-1,lsTemp); } if(cDatabase->GetRowCount()==0) { strcpy(lsTemp,"没有找到批量销帐统计数据"); cDatabase->Rollback(); if(WriteLog(cDatabase,StaffID,"w_p_sell",lsTemp,lsErr)!=1) { strcat(lsTemp,lsErr); cDatabase->Rollback(); } else cDatabase->Commit(); StrReturn(100,lsTemp); } StrReturn(isqlcode,cDatabase->GetData());}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -