📄 charge_payment.cpp
字号:
#include "charge_payment.h"#include "payment.flds.h"CPayment::CPayment(char *pcInp,COracle *pcDatabase){ cDatabase = pcDatabase; pInp = pcInp;}void CPayment::SysInit(char *StaffID,char *AreaID){ char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048]; int isqlcode,lrow,strlong,retlong; char *para_ret,*invo_ret,*stat1_ret,*stat2_ret,*stat3_ret; char *max_acct_id,*min_acct_id,*partner_ret,*item_ret,*payment_ret; char max_date[5],this_date[9]; int max_invo_count; //提取系统参数 sprintf(lsSql,"SELECT para_name,para_value FROM LBAS_PARAMETER " " WHERE para_name IN ('latefee_ratio','card_type','totdisc_id','max_invo_item_count', " " 'partner_id','entrust','otherarea','othersite','deratemode','superstaffid'," " 'advertise','notchange','repinvoice','invoice_format','unpayrole','otherunpayrole'," " 'othersiterole','address_flag','balance_flag')"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取系统参数失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到系统参数"); } cDatabase->GetData(); retlong = strlen(cDatabase->GetData()); para_ret = (char *) malloc(retlong); strcpy(para_ret,cDatabase->GetData()); //提取发票项目定义 sprintf(lsSql,"SELECT NVL(para_value,'22') FROM LBAS_PARAMETER WHERE para_name='max_invo_item_count'"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取最大发票项数目失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到最大发票项数目"); } max_invo_count=atoi(cDatabase->GetData()); if(lrow>max_invo_count) { cDatabase->Commit(); StrReturn(-1,"发票项数目定义大于最大发票项数目"); } sprintf(lsSql,"SELECT merger_item_id,name FROM B_MERGER_ITEM WHERE B_MERGER_ITEM.merger_item_type = '3' order by merger_item_id"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取发票项目定义失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到发票定义项目"); } retlong = strlen(cDatabase->GetData()); invo_ret = (char *) malloc(retlong); strcpy(invo_ret,cDatabase->GetData()); //提取运营商信息 sprintf(lsSql,"SELECT partner_id,partner_name FROM LBAS.PARTNER"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); //userlog("err: %s",cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取运营商信息失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { StrReturn(100,"未找到运营商信息"); } //rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); partner_ret = (char *) malloc(retlong); strcpy(partner_ret,cDatabase->GetData()); //rtrim(ltrim(partner_ret)); //提取付款方式 sprintf(lsSql,"SELECT payment_method,payment_method_name FROM domain_payment_method"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取付款方式信息失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到付款方式信息"); } //rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); payment_ret = (char *) malloc(retlong); strcpy(payment_ret,cDatabase->GetData()); //rtrim(ltrim(payment_ret)); //提取销帐归属定义 sprintf(lsSql,"SELECT name,merger_item_id FROM B_MERGER_ITEM WHERE merger_item_type = '2' order by merger_item_id"); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取销帐归属定义失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到销帐归属定义"); } //rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); item_ret = (char *) malloc(retlong); strcpy(item_ret,cDatabase->GetData()); //rtrim(ltrim(item_ret)); //更改最大销帐日期 sprintf(lsSql,"SELECT NVL(max_date,''),to_char(sysdate,'yyyymmdd') FROM STAFF WHERE staff_id = %s",StaffID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取最大销帐日期失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到最大销帐日期"); } strcpy(max_date,cDatabase->data->GetColData(1,1)); strcpy(this_date,cDatabase->data->GetColData(1,2)); if(strncmp(max_date,this_date+4,4)!=0) { sprintf(lsSql,"UPDATE STAFF SET max_date=SUBSTR('%s',5,4),pay_max_no=0,bill_max_no=0 WHERE staff_id = %s",this_date,StaffID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); cDatabase->Rollback(); strcpy(lsRetstr,"更改最大销帐日期失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } } /* //提取当日收费合计 sprintf(lsSql,"SELECT NVL(sum(amount),0) FROM PAYMENT WHERE staff_id = %s AND pay_date >= to_date('%s','yyyymmdd hh24:mi:ss') AND payment_method = '11'",StaffID,this_date); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取现金缴费合计失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到现金缴费合计"); } rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); stat1_ret = (char *) malloc(retlong); strcpy(stat1_ret,cDatabase->GetData()); rtrim(ltrim(stat1_ret)); sprintf(lsSql,"SELECT NVL(sum(amount),0) FROM PAYMENT WHERE staff_id = %s AND pay_date >= to_date('%s','yyyymmdd hh24:mi:ss') AND payment_method = '12'",StaffID,this_date); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取支票缴费合计失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到支票缴费合计"); } rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); stat2_ret = (char *) malloc(retlong); strcpy(stat2_ret,cDatabase->GetData()); rtrim(ltrim(stat2_ret)); sprintf(lsSql,"SELECT NVL(sum(amount),0) FROM PAYMENT WHERE staff_id = %s AND pay_date >= to_date('%s','yyyymmdd hh24:mi:ss') AND payment_method = '30'",StaffID,this_date); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取信用卡缴费合计失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到信用卡缴费合计"); } rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); stat3_ret = (char *) malloc(retlong); strcpy(stat3_ret,cDatabase->GetData()); rtrim(ltrim(stat3_ret));*/ stat1_ret = NULL; stat2_ret = NULL; stat3_ret = NULL; //提取营业区最大和最小合同号 sprintf(lsSql,"SELECT NVL(max_acct_id,0) FROM LBAS.AREA WHERE area_id = %s",AreaID); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n"); strcpy(lsRetstr,"提取营业区最大合同号失败"); if(WriteLog(cDatabase,StaffID,"w_p_charge",strcat(lsRetstr,lsTemp),lsErr)!=1) strcat(lsTemp,lsErr); cDatabase->Commit(); StrReturn(-1,lsTemp); return; } lrow=cDatabase->GetRowCount(); if(lrow==0) { cDatabase->Commit(); StrReturn(100,"未找到营业区最大合同号"); } //rtrim(ltrim(cDatabase->GetData())); retlong = strlen(cDatabase->GetData()); max_acct_id = (char *) malloc(retlong); strcpy(max_acct_id,cDatabase->GetData()); //rtrim(ltrim(max_acct_id)); sprintf(lsSql,"SELECT NVL(max(max_acct_id),0) FROM LBAS.AREA WHERE max_acct_id < %s",max_acct_id); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); //userlog(lsSql); //userlog("sqlcode= %d",isqlcode); //userlog("RowCount= %d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(lsTemp,cDatabase->GetSqlErrText());strcat(lsTemp,"\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -