📄 charge_jlt_print.cpp
字号:
{
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);
}
len=20;
Fget32(tpst,ACCT_SEQ_NBR,0,lsTemp,&len);
strcpy(acct_seq_nbr,lsTemp);
len=20;
Fget32(tpst,ACCT_ID_USER,0,lsTemp,&len);
strcpy(acct_id,lsTemp);
len=20;
Fget32(tpst,PAYMENT_METHOD,0,lsTemp,&len);
strcpy(payment_method,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) "
"VALUES (%s,%s,%s,'%s','10',null,%s,sysdate,%s,'C0C',sysdate,%s,%s)"
,pay_serial_nbs,acct_id,acct_seq_nbr,payment_method,
charge_total,StaffID,chequ_nbr,card_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_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,
"INSERT INTO SERV_PAID_UNPAY "
"SELECT seq_serv_paid_unpay.NEXTVAL, aa.* "
"FROM (SELECT /*+ all_rows */ serv_id,null,bill_serial_nbr,billing_cycle_id,sysdate,'0' "
"FROM B_ACCT_ITEM_O a "
"WHERE a.bill_serial_nbr>=%s AND a.state='20R' AND a.serv_id<>null AND "
"SUBSTR(to_char(a.bill_serial_nbr),1,%d)='%s' AND "
"NOT EXISTS (SELECT 1 FROM B_ACCT_ITEM_O b WHERE b.state='20Q' AND b.serv_id = a.serv_id)) aa"
,bill_serial_nbs,strlen(StaffID),StaffID);
//userlog(lsSql);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
//userlog("SqlCode=%d",isqlcode);
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);
}
cDatabase->Commit();
StrReturn(0,pay_serial_nbs);
}
void CPayment::PRGetIT()
{
char lsSql[1024],lsTemp[1024],lsErr[500];
int isqlcode;
char bill_serial_nbr[20],staff_id[20];
char *lparm[3],*bill_format_id;
int i,lpnum,rpnum;
lpnum=2;
rpnum=GetInputParm(pInp,lparm,50);
if(rpnum!=lpnum)
{
lpfree(lparm,rpnum);
strcpy(lsTemp,"解析客户端传入参数失败,可能参数传输不正确!\n");
if(WriteLog(cDatabase,"-1","w_p_invoice_rprint",lsTemp,lsErr)!=1)
strcat(lsTemp,lsErr);
cDatabase->Commit();
StrReturn(-2,lsTemp);
}
strcpy(staff_id,lparm[0]);
strcpy(bill_serial_nbr,lparm[1]);
lpfree(lparm,rpnum);
////userlog("\nreceive data bill_format_type: %s",bill_format_type);
cDatabase->BeginTran();
sprintf(lsSql,
"UPDATE BILL "
"SET print_count = print_count + 1 "
"WHERE bill_serial_nbr = %s "
,bill_serial_nbr);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode!=0)
{
cDatabase->Rollback();
strcpy(lsTemp,"检索帐单格式记录出错!\n");
strcat(lsTemp,cDatabase->GetSqlErrText());
strcat(lsTemp,"\n");
if(WriteLog(cDatabase,staff_id,"w_p_invoice_rprint",lsTemp,lsErr)!=1)
strcat(lsTemp,lsErr);
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
sprintf(lsSql,
"SELECT b.bill_format_id "
" FROM BILL a, ACCT_BILL_FORMAT b "
" WHERE a.bill_serial_nbr = %s "
" AND a.acct_id = b.acct_id "
,bill_serial_nbr);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
cDatabase->Rollback();
strcpy(lsTemp,"检索选用帐单格式记录出错!\n");
strcat(lsTemp,cDatabase->GetSqlErrText());
strcat(lsTemp,"\n");
if(WriteLog(cDatabase,staff_id,"w_p_invoice_rprint",lsTemp,lsErr)!=1)
strcat(lsTemp,lsErr);
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
if(isqlcode==0 && cDatabase->GetRowCount()==0)
{
sprintf(lsSql,
"SELECT acct_id, "
"max(serv_id) serv_id, "
"billing_cycle_id, "
"invo_item_id,"
"partner_id,"
"sum(charge) charge,"
"1,"
"%s "
"FROM B_ACCT_ITEM_O "
"WHERE ( bill_serial_nbr = %s ) "
"GROUP BY acct_id, "
" billing_cycle_id, "
"partner_id,"
"invo_item_id "
"order by acct_id, "
"billing_cycle_id, "
"partner_id, "
"invo_item_id "
,bill_serial_nbr,bill_serial_nbr);
}
else
{
bill_format_id=cDatabase->GetData();
sprintf(lsSql,
"SELECT a.acct_id, "
" max(a.serv_id) serv_id, "
" a.billing_cycle_id, "
" b.bill_item_type_id,"
" a.partner_id,"
" sum(a.charge) charge,"
" 1,"
" %s "
"FROM B_ACCT_ITEM_O a,BILL_ACCT_ITEM_TYPE b "
"WHERE a.bill_serial_nbr = %s "
" AND b.bill_format_id = %s "
" AND a.acct_item_type_id = b.acct_item_type_id "
"GROUP BY a.acct_id, "
" a.billing_cycle_id, "
"a.partner_id,"
"b.bill_item_type_id "
"order by a.acct_id, "
"a.billing_cycle_id, "
"a.partner_id, "
"b.bill_item_type_id "
,bill_serial_nbr,bill_serial_nbr,bill_format_id);
}
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
if(isqlcode<0)
{
cDatabase->Rollback();
strcpy(lsTemp,"检索帐单格式记录出错!\n");
strcat(lsTemp,cDatabase->GetSqlErrText());
strcat(lsTemp,"\n");
if(WriteLog(cDatabase,staff_id,"w_p_invoice_rprint",lsTemp,lsErr)!=1)
strcat(lsTemp,lsErr);
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
else if(isqlcode==0 && cDatabase->GetRowCount()==0) {cDatabase->Rollback();StrReturn(100,NULL);}
else {cDatabase->Commit();StrReturn(isqlcode,cDatabase->GetData());}
}
//-----------------------------------------------------------------
//服务PPGetFor实现函数,传入参数StaffID,ItemType,Code
//取帐单对应帐单项数据
//-----------------------------------------------------------------
void CPayment::PPGetFor(char *StaffID,char *ItemType,char *Code)
{
char lsSql[2048],lsTemp[1024],lsErr[500],lsRetstr[2048],lsRettemp[500];
char *bill_format_id;
int isqlcode,lrow;
int itemtype;
itemtype = atoi(ItemType);
switch (itemtype)
{
case 1: //按合同号销帐
sprintf(lsSql,"SELECT /*+ all_rows */ bill_format_id "
"FROM ACCT_BILL_FORMAT "
"WHERE acct_id = %s ",Code);
//userlog(lsSql);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
//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,"未找到合同号帐目");
}
break;
case 2: //按电话号销帐
sprintf(lsSql,"SELECT /*+ all_rows */ bill_format_id "
"FROM SERV_BILL_FORMAT "
"WHERE serv_id = %s ",Code);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
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,"未找到电话号帐目");
}
break;
default:
cDatabase->Commit();
StrReturn(-1,"未知的销帐类型");
}
bill_format_id=cDatabase->GetData();
sprintf(lsSql,
"SELECT BILL_ITEM_TYPE.bill_item_type_id, "
"BILL_ITEM_TYPE.name "
"FROM BILL_ITEM_TYPE "
"where bill_format_id= %s "
,bill_format_id);
//userlog(lsSql);
cDatabase->DoSql(lsSql);
isqlcode=cDatabase->GetSqlCode();
//userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText());
//userlog("检索返回行数:%d",cDatabase->GetRowCount());
if(isqlcode<0)
{
strcpy(lsTemp,"检索帐单对应项记录出错!\n");
strcat(lsTemp,cDatabase->GetSqlErrText());
strcat(lsTemp,"\n");
if(WriteLog(cDatabase,StaffID,"w_p_charge",lsTemp,lsErr)!=1)
strcat(lsTemp,lsErr);
cDatabase->Commit();
StrReturn(-1,lsTemp);
}
else if(isqlcode==0 && cDatabase->GetRowCount()==0) StrReturn(100,NULL);
else StrReturn(isqlcode,cDatabase->GetData());
}
//-----------------------------------------------------------------
//服务PPGetIT实现函数,传入参数staff_id,ItemType,Code
//取帐单对应帐单项数据
//-----------------------------------------------------------------
void CPayment::PPGetIT(char *StaffID,char *ItemType,char *Code)
{
char lsSql[2048],lsTemp[1024],lsErr[500];
int isqlcode,lrow;
int itemtype;
itemtype=atoi(ItemType);
// userlog("itemtype:%d",itemtype);
switch (itemtype)
{
case 1: //按合同号打印发票
// userlog("按合同号打印发票itemtype:%d",itemtype);
sprintf(lsSql,
" SELECT e.acct_id, "
" max(e.serv_id) serv_id, "
" e.billing_cycle_id, "
" e.invo_item_id, "
" e.partner_id, "
" sum(e.charge) charge, "
" 1, "
" e.bill_serial_nbr "
" FROM B_ACCT_ITEM_O e,BILL f "
" WHERE f.pay_serial_nbr = %s "
" AND NOT EXISTS (SELECT 1 "
" FROM ACCT_BILL_FORMAT g"
" WHERE g.acct_id = e.acct_id ) "
" AND e.bill_serial_nbr = f.bill_serial_nbr "
" GROUP BY e.acct_id, "
" e.billing_cycle_id, "
" e.partner_id, "
" e.invo_item_id, "
" e.bill_serial_nbr "
" UNION "
" SELECT a.acct_id, "
" max(a.serv_id) serv_id, "
" a.billing_cycle_id, "
" b.bill_item_type_id, "
" a.partner_id, "
" sum(a.charge) charge, "
" 1, "
" a.bill_serial_nbr "
" FROM B_ACCT_ITEM_O a,BILL_ACCT_ITEM_TYPE b,ACCT_BILL_FORMAT c,BILL d "
"WHERE d.pay_serial_nbr = %s "
" AND a.bill_serial_nbr = d.bill_serial_nbr "
" AND a.acct_id = c.acct_id "
" AND b.bill_format_id = c.bill_format_id "
" AND a.acct_item_type_id = b.acct_item_type_id "
"GROUP BY a.acct_id, "
" a.billing_cycle_id, "
" a.partner_id, "
" b.bil
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -