📄 credit_rpt.ec
字号:
wd_rpt_item[i].credit_num = 0;
wd_rpt_item[i].debit_amt = 0.0;
wd_rpt_item[i].debit_num = 0;
}
if ( ls.tran_type == WITHDRAWAL ) {
wd_rpt_item[i].credit_amt+=ls.tran_amt;
wd_rpt_item[i].credit_num++;
wd_rpt_total2.credit_amt+=ls.tran_amt;
wd_rpt_total2.credit_num++;
}
else
if ( ls.tran_type == DEPOSIT ) {
wd_rpt_item[i].debit_amt+=ls.tran_amt;
wd_rpt_item[i].debit_num++;
wd_rpt_total2.debit_amt+=ls.tran_amt;
wd_rpt_total2.debit_num++;
}
if ( (wd_rpt_item[i].credit_num+\
wd_rpt_item[i].debit_num) == 1 )
FileHead_cre_wd_mx ( &(wd_rpt_item[i]) );
FileDetail_cre_wd_mx ();
}
int search_bankid ( char *dst_bankid, char *dst_hostid, int *dst )
{
$char b_id[12] , b_id2[12];
$char h_id[3] , h_id2[3];
char head_bank_id2[12][12];
char head_host_id2[12][3];
int head_bank_cnt2=0;
int i,j,b_i;
int adjust_dst=0;
memset ( head_bank_id2 , 0 , sizeof(head_bank_id) );
strcpy ( b_id , dst_bankid );
strcpy ( h_id , dst_hostid );
for ( i=0 ; i < 12 ; i++ ) {
strcpy ( head_bank_id2[i] , b_id );
strcpy ( head_host_id2[i] , h_id );
head_bank_cnt2++;
for ( j=0 ; j < head_bank_cnt ; j++ )
if ( !strcmp (head_bank_id[j], b_id ) &&
!strcmp(head_host_id[j], h_id) )
break;
if ( j < head_bank_cnt ) break;
$select adm_bank_id, adm_host_id into $b_id2, $h_id2
from bank_info
where bank_id = $b_id and host_id = $h_id;
if ( SQLCODE ) {
j--;
adjust_dst=1;
errcall ( ERROR , "Unable select head %s-%s %d ", b_id, h_id, SQLCODE );
break;
}
DelSpace(b_id2);
DelSpace(h_id2);
strcpy ( b_id , b_id2 );
strcpy ( h_id , h_id2 );
if ( !strcmp(b_id, head_bank_id2[i]) &&
!strcmp(h_id, head_host_id2[i]) ) {
j = head_bank_cnt-1;
break;
}
}
if ( j == 0 && i == 0 ) b_i=0;
else
if ( j == 0 ) {
for ( j=1 ; j < bank_rpt_cnt ; j++ )
if (!strcmp(head_bank_id2[i-1], bank_rpt_item[j].bank_id) &&
!strcmp(head_host_id2[i-1], bank_rpt_item[j].host_id) )
break;
b_i = j;
j = 0;
}
else
b_i=bank_rpt_cnt-1;
*dst = j+i+adjust_dst;
return b_i;
}
void bank_rpt_proc ()
{
int sd_i , fk_i;
int sd_d , fk_d;
sd_i = search_bankid ( ls.acq_bank_id, ls.acq_host_id, &sd_d );
fk_i = search_bankid ( ls.iss_bank_id, ls.acq_host_id, &fk_d );
if ( sd_d+fk_d > 1 ) {
if ( sd_d > 0 && fk_d != 0 ) {
bank_rpt_item[fk_i].in_fee_amt+=(0.3/(sd_d+fk_d-1))*(sd_d);
bank_rpt_item[fk_i].in_fee_num+=(sd_d>0);
bank_rpt_total2.in_fee_amt+=(0.3/(sd_d+fk_d-1))*(sd_d);
bank_rpt_total2.in_fee_num+=(fk_d>0);
}
if ( sd_d-1 > 0 ) {
bank_rpt_item[sd_i].out_fee_amt+=(0.3/(sd_d+fk_d-1))*(sd_d-1);
bank_rpt_item[sd_i].out_fee_num+=(sd_d-1)>0;
bank_rpt_total2.out_fee_amt+=(0.3/(sd_d+fk_d-1))*(sd_d-1);
bank_rpt_total2.out_fee_num+=(sd_d-1)>0;
}
}
if ( sd_i != fk_i )
switch ( ls.tran_type ) {
case DEPOSIT:
case REFUND:
cre_tip = get_qs_tip ( ls );
bank_rpt_item[sd_i].up_debit_amt += ls.tran_amt+cre_tip;
bank_rpt_item[sd_i].up_debit_num++;
bank_rpt_total2.up_debit_amt += ls.tran_amt+cre_tip;
bank_rpt_total2.up_debit_num++;
bank_rpt_item[fk_i].down_credit_amt += ls.tran_amt+cre_tip;
bank_rpt_item[fk_i].down_credit_num++;
bank_rpt_total2.down_credit_amt += ls.tran_amt+cre_tip;
bank_rpt_total2.down_credit_num++;
break;
case PURCHASE:
case WITHDRAWAL:
cre_tip = get_qs_tip ( ls );
bank_rpt_item[sd_i].up_credit_amt += ls.tran_amt+cre_tip;
bank_rpt_item[sd_i].up_credit_num++;
bank_rpt_total2.up_credit_amt += ls.tran_amt+cre_tip;
bank_rpt_total2.up_credit_num++;
bank_rpt_item[fk_i].down_debit_amt += ls.tran_amt+cre_tip;
bank_rpt_item[fk_i].down_debit_num++;
bank_rpt_total2.down_debit_amt += ls.tran_amt+cre_tip;
bank_rpt_total2.down_debit_num++;
break;
}
if ( sd_i != fk_i ) {
if ( ( bank_rpt_item[sd_i].up_debit_num+\
bank_rpt_item[sd_i].up_credit_num ) == 1 )
FileHead_bank_up_mx ( &(bank_rpt_item[sd_i]) );
FileDetail_bank_up_mx ( &(bank_rpt_item[sd_i]) );
if ( ( bank_rpt_item[fk_i].down_credit_num+\
bank_rpt_item[fk_i].down_debit_num ) == 1 )
FileHead_bank_down_mx ( &(bank_rpt_item[fk_i]) );
FileDetail_bank_down_mx ( &(bank_rpt_item[fk_i]) );
}
if ( sd_i == fk_i ) {
if ( first_flag == 0 ) {
first_flag = 1;
// FileHead_cre_bank_bd_mx ( &(bank_rpt_item[sd_i]) );
}
// FileDetail_cre_bank_bd_mx ();
}
}
/*================== WuBin 2001-8-20 13:11 ======Start==============
void end_merchant_rpt ()
===========================2001-8-20 13:11=======End==============*/
void end_merchant_rpt1 ()
{
int i;
TER_RPT_ITEM *p;
FileHead_cre_mer_hz ();
for ( i = 0 ; i < mer_rpt_cnt ; i++ ) {
if ( mer_rpt_item[i].pur_num == 0 ) continue;
FileTail_cre_mer_mx ( &(mer_rpt_item[i]) );
p = mer_rpt_item[i].ter_ptr;
while ( p != NULL ) {
FileDetail_cre_mer_hz ( p , mer_rpt_item[i].m_id );
p=p->next;
}
}
FileTail_cre_mer_hz ( &mer_rpt_total2 );
}
/*================== WuBin 2001-8-20 13:12 ======Start==============
void end_wd_rpt ()
===========================2001-8-20 13:12=======End==============*/
void end_wd_rpt1 ()
{
int i;
FileHead_cre_wd_hz ();
for ( i = 0 ; i < wd_rpt_cnt ; i++ ) {
if ( ( wd_rpt_item[i].credit_num+wd_rpt_item[i].debit_num )\
== 0 )
continue;
FileTail_cre_wd_mx ( &(wd_rpt_item[i]) );
FileDetail_cre_wd_hz ( &(wd_rpt_item[i]) );
}
FileTail_cre_wd_hz ( &wd_rpt_total2 );
}
void end_bank_rpt ()
{
int i;
/* if ( first_flag != 0 )
FileTail_cre_bank_bd_mx ();
*/
FileHead_bank_up_hz ();
FileHead_bank_down_hz ();
FileHead_bank_in_fee ();
FileHead_bank_out_fee ();
for ( i=0 ; i < bank_rpt_cnt ; i++ ) {
if ( i == bank_rpt_cnt-1 && \
!strcmp ( bank_rpt_item[0].bank_id , bank_rpt_item[i].bank_id ) )
break;
if ( (bank_rpt_item[i].up_credit_num+\
bank_rpt_item[i].up_debit_num) != 0 ) {
FileTail_bank_up_mx ( &(bank_rpt_item[i]) );
FileDetail_bank_up_hz ( &(bank_rpt_item[i]) );
}
if ( (bank_rpt_item[i].down_credit_num+\
bank_rpt_item[i].down_debit_num) != 0 ) {
FileTail_bank_down_mx ( &(bank_rpt_item[i]) );
FileDetail_bank_down_hz ( &(bank_rpt_item[i]) );
}
if ( bank_rpt_item[i].in_fee_num != 0 )
FileDetail_bank_in_fee ( &(bank_rpt_item[i]) );
if ( bank_rpt_item[i].out_fee_num != 0 )
FileDetail_bank_out_fee ( &(bank_rpt_item[i]) );
}
FileTail_bank_up_hz ( &bank_rpt_total2 );
FileTail_bank_down_hz ( &bank_rpt_total2 );
FileTail_bank_in_fee ( &bank_rpt_total2 );
FileTail_bank_out_fee ( &bank_rpt_total2 );
}
static void free_all ()
{
TER_RPT_ITEM *p , *p1;
int i;
if ( mer_rpt_item != NULL ) {
for ( i=0 ; i < mer_rpt_cnt ; i++ ) {
p = mer_rpt_item[i].ter_ptr;
while ( p != NULL ) {
p1 = p;
p = p->next;
free ( p1 );
}
}
free ( mer_rpt_item );
}
if ( wd_rpt_item != NULL )
free ( wd_rpt_item );
if ( bank_rpt_item != NULL )
free ( bank_rpt_item );
}
int gen_credit_rpt ()
{
int first=0;
if ( init_bank_rpt_item () < 0 ) {
errcall ( ERROR , "Unable init bank_rpt item !" );
return -1;
}
getdatef ( cre_date , "" );
gettimef ( cre_time , "" );
$declare settle_rpt cursor for
select * from cur_settle_ls
where card_type = '01'; /* 信用卡01 */
if ( SQLCODE ) {
errcall ( ERROR , "Unable decalre settle_rpt cursor %d" , \
SQLCODE );
return -1;
}
$open settle_rpt;
if ( SQLCODE ) {
errcall ( ERROR , "Unable open settle_rpt %d " , SQLCODE );
return -1;
}
while ( 1 ) {
$fetch settle_rpt into $ls;
if ( SQLCODE == 100 ) break;
if ( SQLCODE < 0 ) {
errcall ( ERROR , "Error fetch settle_rpt %d" ,\
SQLCODE );
$close settle_rpt;
free_all ();
close_all_file ();
return -1;
}
del_st_space("tran_ls", &ls);
if ( first == 0 ) {
strcpy ( logic_date , ls.snd_settle_date );
first = 1;
}
merchant_rpt_proc ();
wd_rpt_proc ();
bank_rpt_proc ();
}
end_merchant_rpt ();
end_wd_rpt ();
/*================== WuBin 2001-8-20 13:20 ======Start==============
end_bank_rpt ();
===========================2001-8-20 13:20=======End==============*/
end_bank_rpt1 ();
free_all ();
close_all_file ();
create_cre_mer_mx ();
create_cre_wd_mx ();
create_cre_bank_up_mx ();
create_cre_bank_down_mx ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -