📄 dpsttodeposit.pc
字号:
Char_9 s_acptsiteid;
EXEC SQL END DECLARE SECTION;
bzero(s_paydate, sizeof(s_paydate));
bzero(s_paysn,sizeof(s_paysn));
bzero(s_predepositsn,sizeof(s_predepositsn));
bzero(s_transn,sizeof(s_transn));
bzero(s_areaid,sizeof(s_areaid));
bzero(s_subscrbchrtid,sizeof(s_subscrbchrtid));
bzero(s_svcid,sizeof(s_svcid));
bzero(s_opendate,sizeof(s_opendate));
bzero(s_svcstat,sizeof(s_svcstat));
bzero(s_acptsiteid,sizeof(s_acptsiteid));
/*得到预交日期*/
EXEC SQL select to_char(sysdate,'yyyymmddhh24miss')
into :s_paydate from dual;
if(sqlca.sqlcode!=0)
{
fprintf(gfp_err,"Get the date failed with error_code %d\n",sqlca.sqlcode);
fflush(gfp_err);
printf("Get the date failed with error_code %d\n",sqlca.sqlcode);
exit(0);
}
int j = dpst->rownum;
int i = 0;
/*通过从mdpst取出transn,找到操作员的工号和营业厅,地区号,svcid,svcnum,subscrbid,ordertype=312,放进workflow中,其它操作类似上面函数*/
while (j>i) {
printf("subscrbid=%d,transn=%s\n", dpst->subscrbid[i], dpst->transn[i]);
/* 得到流水号 */
EXEC SQL
select to_char(sysdate,'yymmdd')||lpad(to_char(payseq.nextval),10,'0'),
to_char(sysdate,'yymmdd')||lpad(to_char(transeq.nextval),10,'0')
into :s_paysn,:s_transn from dual;
if (sqlca.sqlcode!=0) {
fprintf(gfp_err,"Get the sequence number failed with error_code %d\n",sqlca.sqlcode);
fflush(gfp_err);
printf(
"Get the sequence number failed with error_code %d\n",
sqlca.sqlcode);
exit(0);
}
printf("s_paysn=%s,s_transn=%s\n",s_paysn,s_transn);
EXEC SQL
select svcid,svcnum,optrid,acptsiteid
into :s_svcid,:l_svcnum,:optrid,:s_acptsiteid from tab_workflow a
where a.subscrbid=:dpst->subscrbid[i] and a.transn=:dpst->transn[i];
if (sqlca.sqlcode!=0) {
fprintf(gfp_err,"Get the tab_workflow transn failed with error_code %d\n",sqlca.sqlcode);
fprintf(gfp_err,"tab_workflow中不存在的transn: %s\n",dpst->transn[i]);
fflush(gfp_err);
printf("Get the tab_workflow transn failed with error_code %d\n",
sqlca.sqlcode);
printf("tab_workflow中不存在的transn: %s\n",dpst->transn[i]);
exit(0);
}
printf("s_svcid=%s,l_svcnum=%s,optrid=%s,s_acptsiteid=%s\n",s_svcid,l_svcnum,optrid,s_acptsiteid);
/*置值*/
strcpy(p_workflow->transn[i],s_transn);
strcpy(p_workflow->areaid[i],dpst->areaid[i]);
strcpy(p_workflow->ordertype[i],"312");
strcpy(p_workflow->svcid[i],s_svcid);
strcpy(p_workflow->svcnum[i],l_svcnum);
p_workflow->subscrbid[i]=dpst->subscrbid[i];
strcpy(p_workflow->rsrcremarks[i],"三个月后退押金,已转预存款");
strcpy(p_workflow->optrid[i],optrid);
strcpy(p_workflow->acptsiteid[i],s_acptsiteid);
strcpy(p_workflow->state[i],"10");
strcpy(p_workflow->opendpt[i],dpst->opendpt[i]);
strcpy(p_workflow->remarks[i],"三个月后退押金,已转预存款");
p_workflow->execcounts[i]=0;
strcpy(p_workflow->createtime[i],s_paydate);
strcpy(p_workflow->pretime[i],s_paydate);
strcpy(p_workflow->statetime[i],s_paydate);
/*费用*/
p_deposit->balance[i] = (-1)*(double)dpst->deposit[i];
strcpy(p_deposit->paysn[i],s_paysn);
strcpy(p_deposit->paydate[i],s_paydate);
strcpy(p_deposit->paymode[i],"10");
strcpy(p_deposit->optrtype[i],"10");
strcpy(p_deposit->optrsn[i],s_transn);
strcpy(p_deposit->optrid[i],optrid);
p_deposit->amnt[i]=(-1)*(double)dpst->deposit[i];
p_deposit->acptsitetype[i]=20;
strcpy(p_deposit->acptsiteid[i],s_acptsiteid);
strcpy(p_deposit->recstat[i],"1");
strcpy(p_deposit->transn[i],s_transn);
strcpy(p_deposit->feeid[i],"118");
strcpy(p_deposit->state[i],"0");
strcpy(p_deposit->ordertype[i],"10");
strcpy(p_deposit->servitm[i],"107");
strcpy(p_deposit->servdtal[i],"押金转预存款");
++i;
p_deposit->rows=i;
p_workflow->rows=i;
}
l_db_ins_pay();
l_db_ins_paydetail();
l_db_ins_workflow(p_workflow);
}
int l_db_ins_workflow(WORKFLOW_RECORD *workflow) {
WORKFLOW_RECORD *p_workflow;
long l_count;
p_workflow=workflow;
while (p_workflow) {
l_count=p_workflow->rows;
EXEC SQL for :
l_count
INSERT INTO TAB_workflow
(
transn,
areaid,
ordertype,
svcid,
svcnum,
subscrbid,
rsrcremarks,
createtime,
pretime,
optrid,
acptsiteid,
state,
statetime,
opendpt,
remarks,
execcounts
)
VALUES
(
:p_workflow->transn,
:p_workflow->areaid,
:p_workflow->ordertype,
:p_workflow->svcid,
:p_workflow->svcnum,
:p_workflow->subscrbid,
:p_workflow->rsrcremarks,
to_date(:p_workflow->createtime,'yyyymmddhh24miss'),
to_date(:p_workflow->pretime,'yyyymmddhh24miss'),
:p_workflow->optrid,
:p_workflow->acptsiteid,
:p_workflow->state,
to_date(:p_workflow->statetime,'yyyymmddhh24miss'),
:p_workflow->opendpt,
:p_workflow->remarks,
:p_workflow->execcounts
);
if (sqlca.sqlcode<0) {
fprintf(
gfp_err,
"insert into TAB_workflow failed %d,%ld,%s\n",
sqlca.sqlcode, sqlca.sqlerrd[2],
sqlca.sqlerrm.sqlerrmc);
fflush(gfp_err);
printf(
"insert into TAB_workflow failed %d,%ld,%s\n",
sqlca.sqlcode, sqlca.sqlerrd[2],
sqlca.sqlerrm.sqlerrmc);
printf(
"transn:[%s]\n",
p_workflow->transn[sqlca.sqlerrd[2]]);
printf(
"areaid:[%s]\n",
p_workflow->areaid[sqlca.sqlerrd[2]]);
printf(
"ordertype:[%s]\n",
p_workflow->ordertype[sqlca.sqlerrd[2]]);
printf("svcid:[%s]\n",
p_workflow->svcid[sqlca.sqlerrd[2]]);
printf(
"svcnum:[%s]\n",
p_workflow->svcnum[sqlca.sqlerrd[2]]);
printf(
"subscrbid:[%d]\n",
p_workflow->subscrbid[sqlca.sqlerrd[2]]);
printf(
"rsrcremarks:[%s]\n",
p_workflow->rsrcremarks[sqlca.sqlerrd[2]]);
printf(
"createtime:[%s]\n",
p_workflow->createtime[sqlca.sqlerrd[2]]);
printf(
"pretime:[%s]\n",
p_workflow->pretime[sqlca.sqlerrd[2]]);
printf(
"optrid:[%s]\n",
p_workflow->optrid[sqlca.sqlerrd[2]]);
printf(
"acptsiteid:[%s]\n",
p_workflow->acptsiteid[sqlca.sqlerrd[2]]);
printf("state:[%s]\n",
p_workflow->state[sqlca.sqlerrd[2]]);
printf(
"statetime:[%s]\n",
p_workflow->statetime[sqlca.sqlerrd[2]]);
printf(
"opendpt:[%s]\n",
p_workflow->opendpt[sqlca.sqlerrd[2]]);
printf(
"remarks:[%s]\n",
p_workflow->remarks[sqlca.sqlerrd[2]]);
printf(
"execcounts:[%d]\n",
p_workflow->execcounts[sqlca.sqlerrd[2]]);
EXEC SQL ROLLBACK;
exit(0);
}
p_workflow=p_workflow->next;
}
return 0;
}
int l_db_upd_subscrbdpst(DPST_RECORD * dpst) {
char s_sql[2000];
int i = 0;
DPST_RECORD * mydpst;
mydpst = dpst;
bzero(s_sql, sizeof(s_sql));
sprintf(s_sql,"update tab_subscrbdpst Set stat = '0',updatetime = sysdate where transn=:v_transn and subscrbid=:v_subscrbid and areaid=:v_areaid ");
/*printf("%s\n",s_sql);*/
EXEC SQL PREPARE s FROM :s_sql;
if(sqlca.sqlcode!=0)
{
fprintf(gfp_err,"PREPARE UPDATE TAB_subscrbdpst ERROR! SQLCODE: %d\n",sqlca.sqlcode);
fflush(gfp_err);
printf("PREPARE UPDATE TAB_subscrbdpst ERROR! SQLCODE: %d\n",sqlca.sqlcode);
EXEC SQL ROLLBACK;
exit(0);
}
while(mydpst)
{
while(mydpst->rownum>i) {
EXEC SQL EXECUTE s USING
:mydpst->transn[i],
:mydpst->subscrbid[i],
:mydpst->areaid[i];
if(sqlca.sqlcode!=0)
{
fprintf(gfp_err,"UPDATE TAB_subscrbdpst failed %d,%ld,%s\n",sqlca.sqlcode,sqlca.sqlerrd[2],sqlca.sqlerrm.sqlerrmc);
fflush(gfp_err);
printf("UPDATE TAB_subscrbdpst failed %d,%ld,%s\n",
sqlca.sqlcode,sqlca.sqlerrd[2],sqlca.sqlerrm.sqlerrmc);
printf("transn:%s\n",mydpst->transn[i]);
printf("subscrbid:%d\n",mydpst->subscrbid[i]);
printf("areaid:%s\n",mydpst->areaid[i]);
EXEC SQL ROLLBACK;
exit(0);
}
i++;
}
mydpst=mydpst->next;
}
return 0;
}
void Open_File(void) {
if ((gfp_err=fopen(g_err_filename, "w"))==NULL) {
printf("open the file %s failed\n", g_err_filename);
exit(0);
}
if ((gfp_log=fopen(g_log_filename, "a"))==NULL) {
printf("open the file %s failed\n", g_log_filename);
exit(0);
}
}
void Close_File(void) {
fclose(gfp_err);
fclose(gfp_log);
}
void Write_Log(DPST_RECORD * dpst) {
GetSysDate(gs_time, 0);
DPST_RECORD *mdpst;
mdpst = dpst;
int j = mdpst->rownum;
int i = 0;
while (j>i) {
fprintf(gfp_log, "%s 用户id %d 押金转预存款 %d \n", gs_time, dpst->subscrbid[i],
dpst->deposit[i]);
fflush(gfp_log);
printf("%s 用户id %d 押金转预存款 %d \n", gs_time, dpst->subscrbid[i],
dpst->deposit[i]);
++i;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -