⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dpsttodeposit.pc

📁 proc业务处理程序
💻 PC
📖 第 1 页 / 共 2 页
字号:
	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 + -