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

📄 svrf313.ec

📁 一个银行业务的程序
💻 EC
字号:
#include "../incl/serverpub.h"
$include sqlca;

/***************************
 联社日终累计总帐
 日期:2003/03/14
 参数:工作日期	
****************************/

SvrF313(int argc,char *argv[])
{
    $char e_cDate[11],e_cYM[7],e_cBeforDate[11],e_bank_no[11];
    int i,viYear,viMonth,viFlag;
    $char e_bef_sub[7],e_aft_sub[7],e_bef_form[2];
    $char e_aft_form[2],e_source[5],e_attribute[3];
    $double e_banlance,e_interest,e_corpus;
    $int e_num,e_lCount;

#ifdef QDCS
        for(i=0;i<argc;i++)
                WriteTest("argv[%d]:%s\n",i,argv[i]);
#endif

    strcpy(e_cDate,argv[0]);
    strncpy(e_cYM,e_cDate,6);
    e_cYM[6]=0;
    viFlag=0;

    $delete from sumacct_tmp;
    if(SQLCODE)
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	CreateStruct("返回码","020");
	return 0;
    }

    $select count(*) into $e_lCount from sumacct where trade_date[1,6]=$e_cYM;
    if(e_lCount==0)
    {/*取上月数据*/
	viMonth=atoi(e_cYM+4);
	e_cYM[4]=0;
	viYear=atoi(e_cYM);
	viMonth--;
	if(viMonth<=0)
	{
		viMonth+=12;
		viYear--;
	}
	sprintf(e_cYM,"%04d%02d",viYear,viMonth);
	viFlag=1;
    }

    $insert into sumacct_tmp select * from sumacct 
			where trade_date[1,6]=$e_cYM;
    if(SQLCODE)
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	CreateStruct("返回码","020");
	return 0;
    }

    if(viFlag==1)
    	$update sumacct_tmp set trade_date=$e_cDate,
		            loan_amt=0.0,
			    repay_amt=0.0,
			    repay_int=0.0;
    else
    	$update sumacct_tmp set trade_date=$e_cDate;
    if(SQLCODE)
    {
    	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
    	CreateStruct("返回码","020");
    	return 0;
    }

    $declare s_ur cursor for select bank_no,bef_sub,aft_sub,bef_form,aft_form,source,attribute,banlance,interest,corpus from trade_log where attribute in ('11','12','13','14') and state='0';
    if(SQLCODE)	
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	CreateStruct("返回码","020");
	return 0;
    }

    $open s_ur;
    if(SQLCODE)	
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	CreateStruct("返回码","020");
	return 0;
    }

    $fetch s_ur into $e_bank_no,$e_bef_sub,$e_aft_sub,
		     $e_bef_form,$e_aft_form,$e_source,
		     $e_attribute,$e_banlance,$e_interest,$e_corpus;
    if(SQLCODE<0)
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	CreateStruct("返回码","020");
	return 0;
    }

    while(SQLCODE==0)
    {
        if(e_banlance==NULL)   e_banlance=0.0;
        if(e_interest==NULL)   e_interest=0.0;
        if(e_corpus==NULL)   e_corpus=0.0;
		
	WriteTest("bank[%s]sub[%s][%s]form[%s][%s]source[%s]attri[%s]amt[%.2f][%.2f][%.2f]\n",e_bank_no,e_bef_sub,e_aft_sub,e_bef_form,e_aft_form,e_source,e_attribute,e_corpus,e_interest,e_banlance);

	//01 新增,02 修改,03 删除,11 放贷,12 还贷,13 转形态,14 核销
	switch(atoi(e_attribute))
	{
	  case 11:
		$select count(*) into $e_lCount from sumacct_tmp
				where bank_no=$e_bank_no 
			  	  and subject=$e_aft_sub 
 			  	  and source=$e_source;
		if(e_lCount!=0)
		    $update sumacct_tmp set loan_num=loan_num+1,
				        loan_amt=loan_amt+$e_corpus,
					loan_bal=loan_bal+$e_corpus
			where bank_no=$e_bank_no 
			  and subject=$e_aft_sub 
 			  and source=$e_source;
		else
	    	    $insert into sumacct_tmp
			values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
			       $e_corpus,0,0,$e_corpus,1);
	        if(SQLCODE)
		{
		    WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
		    CreateStruct("返回码","020");
		    return 0;
		}

		break;
	  case 12:
	  case 14:
		//0 正常,1 逾期,2呆滞,3 呆帐,5 归还
		if(atoi(e_aft_form)==5)	
			e_num=1;
		else	
			e_num=0;

		$select count(*) into $e_lCount from sumacct_tmp
				where bank_no=$e_bank_no 
			  	  and subject=$e_bef_sub 
 			  	  and source=$e_source;
		if(e_lCount!=0)
		    $update sumacct_tmp set loan_num=loan_num-$e_num,
				        repay_amt=repay_amt+$e_corpus,
					repay_int=repay_int+$e_interest,
					loan_bal=loan_bal-$e_corpus
			where bank_no=$e_bank_no 
			  and subject=$e_bef_sub 
			  and source=$e_source;
		else
		{
		    e_banlance=0-e_corpus;
		    e_num=0-e_num;
	    	    $insert into sumacct_tmp
			values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
			       0,$e_corpus,$e_interest,$e_banlance,$e_num);
		}
	        if(SQLCODE)
		{
		    WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
		    CreateStruct("返回码","020");
		    return 0;
		}

		break;
	  case 13:
		e_corpus=e_banlance;

		$select count(*) into $e_lCount from sumacct_tmp
				where bank_no=$e_bank_no 
			  	  and subject=$e_bef_sub 
 			  	  and source=$e_source;
		if(e_lCount!=0)
		    $update sumacct_tmp set loan_num=loan_num-1,
				        repay_amt=repay_amt+$e_corpus,
					loan_bal=loan_bal-$e_corpus
			where bank_no=$e_bank_no 
			  and subject=$e_bef_sub 
			  and source=$e_source;
		else
		{
		    e_banlance=0-e_corpus;
	    	    $insert into sumacct_tmp
			values($e_bank_no,$e_bef_sub,$e_source,$e_cDate,
			       0,$e_corpus,0,$e_banlance,-1);
		}
	        if(SQLCODE)
		{
		    WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
		    CreateStruct("返回码","020");
		    return 0;
		}

		$select count(*) into $e_lCount from sumacct_tmp
				where bank_no=$e_bank_no 
			  	  and subject=$e_aft_sub 
 			  	  and source=$e_source;
		if(e_lCount!=0)
		    $update sumacct_tmp set loan_num=loan_num+1,
					loan_amt=loan_amt+$e_corpus,
					loan_bal=loan_bal+$e_corpus
			where bank_no=$e_bank_no 
			  and subject=$e_aft_sub 
			  and source=$e_source;
		else
	    	    $insert into sumacct_tmp
			values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
			       $e_corpus,0,0,$e_corpus,1);
	        if(SQLCODE)
		{
		    WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
		    CreateStruct("返回码","020");
		    return 0;
		}

		break;
	}

    	$fetch s_ur into $e_bank_no,$e_bef_sub,$e_aft_sub,
			 $e_bef_form,$e_aft_form,$e_source,
			 $e_attribute,$e_banlance,$e_interest,$e_corpus;
    }//end while

    $close s_ur;
    $free  s_ur;

    if(viFlag==0)
    	$delete from sumacct where trade_date[1,6]=$e_cYM;

    $insert into sumacct select * from sumacct_tmp;
    if(SQLCODE)	
    {
	WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
	return 0;
    }

    /*更新合同状态*/
    $update contract set state="1" 
		where end_date is not null and end_date<=$e_cDate;
    if(sqlca.sqlcode!=0)
	WriteTest("svrf313:update contract err[%d]\n",SQLCODE);

    /*年终结转,增加月底结转,放到日初始化中处理
    if(strcmp(e_cDate+4,"1231")==0)
    {
    	$delete from due_hisbill;
    	$insert into due_hisbill select * from due_bill where state1<>"5";
    }*/

    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -