📄 charge_jlt_print.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 NOT IN ('acct','lbas','payment')");
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());
para_ret = (char *) malloc(retlong);
strcpy(para_ret,cDatabase->GetData());
rtrim(ltrim(para_ret));
//提取发票项目定义
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'");
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());
invo_ret = (char *) malloc(retlong);
strcpy(invo_ret,cDatabase->GetData());
rtrim(ltrim(invo_ret));
//提取运营商信息
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());
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'");
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,"未找到最大销帐日期");
}
rtrim(ltrim(strcpy(max_date,cDatabase->data->GetColData(1,1))));
rtrim(ltrim(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));
//提取营业区最大和最小合同号
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());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -