📄 comp.ec
字号:
and host_ls_no = :local.host_ls_no;
} else {
$update cur_tran_ls set
tran_flag = '1', /* 已撤消 */
rcv_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and invoice_no = :local.invoice_no
and host_ls_no = :local.host_ls_no;
}
} else {
if (flag == 'K') {
$update cur_tran_ls set
saf_flag = '1',
snd_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and invoice_no = :local.invoice_no
and host_ls_no = :local.host_ls_no;
} else {
$update cur_tran_ls set
tran_flag = '1', /* 已撤消 */
snd_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and invoice_no = :local.invoice_no
and host_ls_no = :local.host_ls_no;
}
}
if (SQLCODE) {
$close local_cur;
rollback_tran();
daylog(ERROR, "Update posls error!");
return(-1);
}
if (flag == 'C') {
$select * into :center from center_ls
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and void_invoice_no = :local.invoice_no;
if (SQLCODE) {
$close local_cur;
rollback_tran();
daylog(ERROR, "Select center_ls error!");
return(-1);
}
$delete from center_ls
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and void_invoice_no = :local.invoice_no;
if (SQLCODE) {
$close local_cur;
rollback_tran();
daylog(ERROR, "Delete center_ls error!");
return(-1);
}
if (i) {
strcpy(center.rcv_settle_flag, "Y");
strcpy(center.snd_settle_flag, "N");
} else {
strcpy(center.rcv_settle_flag, "N");
strcpy(center.snd_settle_flag, "Y");
}
/****
strcpy(center.flag1, "C");
*****/
strcpy(center.offline_flag, "0");
strcpy(center.edc_err_flag, "0");
strcpy(center.snd_settle_date, local.snd_settle_date);
strcpy(center.rcv_settle_date, local.rcv_settle_date);
strcpy(center.acq_bank_id, local.acq_bank_id);
strcpy(center.acq_host_id, local.acq_host_id);
strcpy(center.iss_bank_id, local.iss_bank_id);
strcpy(center.snd_bank_id, local.snd_bank_id);
strcpy(center.snd_host_id, local.snd_host_id);
strcpy(center.rcv_bank_id, local.rcv_bank_id);
strcpy(center.rcv_host_id, local.rcv_host_id);
$insert into cur_tran_ls values(:center);
if (SQLCODE) {
$close local_cur;
rollback_tran();
daylog(ERROR, "Insert cur_tran_ls error!");
return(-1);
}
}
}
$close local_cur;
$declare center_cur cursor for
select * from center_ls
where old_type = 0;
$open center_cur;
if (SQLCODE) {
rollback_tran();
daylog(ERROR, "Open center_cur error!");
return(-1);
}
while (1) {
$fetch center_cur into :center;
if (SQLCODE == 100) break;
if (SQLCODE) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Fetch center_cur error!");
return(-1);
}
del_st_space("tran_ls", ¢er);
i = s_chk(sys.bank_id, sys.host_id, center.acq_bank_id, center.acq_host_id);
if (i < 0) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Check depend error!");
return(-1);
}
$select res_flag into :flag from cur_tran_ls
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and invoice_no = :center.invoice_no
and trace_no = :center.trace_no;
if (SQLCODE < 0) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Select cur_tran_ls error!");
return(-1);
}
if (SQLCODE == 100) {
strcpy(tmp, center.snd_settle_date);
if (i) {
strcpy(center.rcv_settle_flag, "Y");
strcpy(center.snd_settle_flag, "N");
strcpy(center.rcv_bank_id,
center.snd_bank_id);
strcpy(center.rcv_host_id,
center.snd_host_id);
strcpy(center.snd_settle_date, sys.snd_settle_date);
} else {
strcpy(center.rcv_settle_flag, "N");
strcpy(center.snd_settle_flag, "Y");
strcpy(center.rcv_bank_id, center.iss_bank_id);
strcpy(center.rcv_host_id, "00");
strcpy(center.snd_settle_date, center.rcv_settle_date);
}
/********
strcpy(center.flag1, "C");
************/
strcpy(center.offline_flag, "0");
strcpy(center.edc_err_flag, "0");
strcpy(center.snd_bank_id, sys.bank_id);
strcpy(center.snd_host_id, sys.host_id);
strcpy(center.rcv_settle_date, tmp);
$insert into cur_tran_ls values(:center);
if (SQLCODE) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Insert cur_tran_ls error!");
return(-1);
}
} else {
if (i)
$update cur_tran_ls set
saf_flag = '0',
tran_flag = '0',
rcv_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and invoice_no = :center.invoice_no
and trace_no = :center.trace_no;
else
$update posls set
saf_flag = '0',
tran_flag = '0',
snd_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and invoice_no = :center.invoice_no
and trace_no = :center.trace_no;
if (SQLCODE) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Update cur_tran_ls error!");
return(-1);
}
if (flag == 'C') {
if (i)
$update cur_tran_ls set saf_flag = '1',
rcv_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and void_invoice_no = :center.invoice_no;
else
$update cur_tran_ls set saf_flag = '1',
snd_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and void_invoice_no = :center.invoice_no;
if (SQLCODE) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Update cur_tran_ls error!");
return(-1);
}
$delete from local_ls
where merchant_id = :center.merchant_id
and terminal_id = :center.terminal_id
and void_invoice_no = :center.invoice_no;
if (SQLCODE) {
$close center_cur;
rollback_tran();
daylog(ERROR, "Delete local_ls error!");
return(-1);
}
}
}
}
$close center_cur;
$declare local_cur_2 cursor for
select * from local_ls
where void_tran_type != 0;
$open local_cur_2;
if (SQLCODE) {
rollback_tran();
daylog(ERROR, "Open local_cur_2 error!");
return(-1);
}
while (1) {
$fetch local_cur_2 into :local;
if (SQLCODE == 100) break;
if (SQLCODE) {
$close local_cur_2;
rollback_tran();
daylog(ERROR, "Fetch local_cur_2 error!");
return(-1);
}
del_st_space("tran_ls", &local);
i = s_chk(sys.bank_id, sys.host_id, center.acq_bank_id, center.acq_host_id);
if (i < 0) {
$close local_cur_2;
rollback_tran();
daylog(ERROR, "Check depend error!");
return(-1);
}
if (i)
$update cur_tran_ls set
saf_flag = '0',
rcv_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and invoice_no = :local.invoice_no
and trace_no = :local.trace_no;
else
$update cur_tran_ls set
saf_flag = '0',
snd_settle_flag = 'Y',
offline_flag = '0'
where merchant_id = :local.merchant_id
and terminal_id = :local.terminal_id
and invoice_no = :local.invoice_no
and trace_no = :local.trace_no;
if (SQLCODE) {
$close local_cur_2;
rollback_tran();
daylog(ERROR, "Update cur_tran_ls error!");
return(-1);
}
}
$close local_cur_2;
$declare center_cur_2 cursor for
select * from center_ls
where void_tran_type != 0;
$open center_cur_2;
if (SQLCODE) {
rollback_tran();
daylog(ERROR, "Open center_cur_2 error!");
return(-1);
}
while (1) {
$fetch center_cur_2 into :center;
if (SQLCODE == 100) break;
if (SQLCODE) {
$close center_cur_2;
rollback_tran();
daylog(ERROR, "Fetch center_cur_2 error!");
return(-1);
}
del_st_space("tran_ls", ¢er);
i = s_chk(sys.bank_id, sys.host_id, center.acq_bank_id, center.acq_host_id);
if (i < 0) {
$close center_cur_2;
rollback_tran();
daylog(ERROR, "Check depend error!");
return(-1);
}
strcpy(tmp, center.snd_settle_date);
if (i) {
strcpy(center.rcv_settle_flag, "Y");
strcpy(center.snd_settle_flag, "N");
strcpy(center.rcv_bank_id, center.snd_bank_id);
strcpy(center.rcv_host_id, center.snd_host_id);
strcpy(center.snd_settle_date, sys.snd_settle_date);
} else {
strcpy(center.rcv_settle_flag, "N");
strcpy(center.snd_settle_flag, "Y");
strcpy(center.rcv_bank_id, center.iss_bank_id);
strcpy(center.rcv_host_id, "00");
strcpy(center.snd_settle_date, center.rcv_settle_date);
}
/******
strcpy(center.flag1, "C");
******/
strcpy(center.offline_flag, "0");
strcpy(center.edc_err_flag, "0");
strcpy(center.snd_bank_id, sys.bank_id);
strcpy(center.rcv_settle_date, tmp);
$insert into cur_tran_ls values(:center);
if (SQLCODE) {
$close center_cur_2;
rollback_tran();
daylog(ERROR, "Insert cur_tran_ls error!");
return(-1);
}
}
$close center_cur_2;
commit_tran();
return(0);
}
int s_chk(adm_bankid, adm_hostid, bankid, hostid)
char *adm_bankid, adm_hostid;
$parameter char *bankid, hostid;
{
$char adm_bank_id[12];
$char adm_host_id[3];
if (!strcmp(adm_bankid, bankid) && !strcmp(adm_hostid, hostid))
return(1);
$select adm_bank_id, adm_host_id
into :adm_bank_id, :adm_host_id
from bank_info
where bankid = :bankid and hostid = :hostid;
if (SQLCODE) return(-1);
DelSpace(adm_bank_id);
DelSpace(adm_host_id);
if (!strcmp(adm_bankid, adm_bank_id) &&
!strcmp(adm_hostid, adm_host_id) )
return(1);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -