📄 s11010.ec.c
字号:
/******************************************************************
* 功 能: 公私活期,公私定期,内部帐开户 Server 程序
* 交 易 码: 110100
* 作 者: E.C. 1998.05 珠海
******************************************************************/
#ifndef NORMAL
#define EXTERN
#endif
#include "easy.h"
#include "ybt.h"
$ include "dbbuf.h";
$ include "sqlca.h";
# define JBKHJYM "110100"
# define DHCZH 6
$struct struct_received {
int gyh;
int jym;
struct ffhz3 rfhz;
}s_rec1101;
$struct struct_send {
int flag;
long lsh;
long dyhh;
char gyxm[13];
char zh[14];
char errmsg[80];
}s_snd1101;
char _address[10],filename[80];
$char kh_jgm[10];
int getflag;
FILE *fp;
#ifdef NORMAL
main( argc , argv )
int argc;
char **argv;
{
#else
int s11010 ( cSock , cJym )
char *cSock , *cJym;
{
char argv[3][20];
#endif
int flag,i,tmpint,zt;
char pjgm[4],nbzh[14],MY[17];
$long kmxh,mybs,czcdh,wxbh;
$double djye;
$double ye,zxll=0.00;
FILE *fp;
long zhxh,intkl;
short mdy[3];
$char xjzh[14],zdsx[7];
$char pxqsh[9],pxjsh[9],chqsh1[9],chjsh1[9];
char checkbit;
char zl;
$char note[13];
$struct ffhz1 rxjzh;
int get_period();
long cal_dqrq();
long xh;
$long rq,dycdzh;
#ifndef NORMAL
strcpy ( argv[1] , cSock );
strcpy ( argv[2] , cJym );
#endif
memset ( &s_snd1101 , 0 , sizeof ( s_snd1101 ) );
memset ( &s_rec1101 , 0 , sizeof ( s_rec1101 ) );
flag = recv_from( argv[1] , argv[2] , _address , (void *)&s_rec1101, NULL );
printf("flag=[%d]\n",flag);fflush(stdout);
if ( flag < 0 ){
s_snd1101.flag = 1;
strcpy(s_snd1101.errmsg,"中心接受信息错!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
return 0;
}
/* add by tl 2001/05/21 因为没有开通银税系统*/
strcpy(s_rec1101.rfhz.nsbh,"000000");
/*add end*/
printf("gyh=%d,jym=%d\n",s_rec1101.gyh,s_rec1101.jym);fflush(stdout);
if ( strcmp (argv[2],JBKHJYM)!=0){
s_snd1101.flag = 1;
strcpy(s_snd1101.errmsg,"中心接受信息错!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
return 0;
}
/* add by tl 因为贷款开户时会自动开13210,10700科目*/
if ( s_rec1101.rfhz.kmh == 10600 /*|| s_rec1101.rfhz.kmh == 10702 || s_rec1101.rfhz.kmh == 10800*/){
s_snd1101.flag = 1;
strcpy(s_snd1101.errmsg,"该科目不能开户!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
return 0;
}
/*
if ( s_rec1101.rfhz.kmh == 10600 || s_rec1101.rfhz.kmh == 10800){
s_snd1101.flag = 1;
strcpy(s_snd1101.errmsg,"该科目不能开户!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
return 0;
}
*/
/* add end */
s_snd1101.flag = 0;
s_snd1101.dyhh = 0;
strcpy(s_snd1101.zh,"\0");
memset(MY,0,17);
intkl=0;
#ifdef NORMAL
$database easydb;
#endif
if((i=chk_gyqx(s_rec1101.gyh,0,"",s_rec1101.jym,0.00,0))!=0){
strcpy ( s_snd1101.errmsg , g_errmsg );
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag = 1;
goto return_back;
}
zl=s_rec1101.rfhz.zl[0];
if((zl<'0')||(zl>'8')||(zl=='5')){ /* zl is error! */
strcpy ( s_snd1101.errmsg , "上传帐类错!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag=1;
goto return_back;
}
/***** modi by zwq 20000614 *********/
if(s_rec1101.rfhz.czh==60){
switch(s_rec1101.rfhz.cq){
/************modify by fq 20010718*******
case 81:
if(fabs(s_rec1101.rfhz.ye)-1650.00>0.005){
strcpy ( s_snd1101.errmsg , "教育储蓄开户余额一年期不能超1650元!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag=1;
goto return_back;
}
break;
case 83:
if(fabs(s_rec1101.rfhz.ye)-550.00>0.005){
strcpy ( s_snd1101.errmsg , "教育储蓄开户余额三年期不能超550元!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag=1;
goto return_back;
}
break;
case 86:
if(fabs(s_rec1101.rfhz.ye)-250.00>0.005){
strcpy ( s_snd1101.errmsg , "教育储蓄开户余额六年期不能超250元!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag=1;
goto return_back;
}
break;
*********add end********/
case 81:
case 83:
case 86:
if(fabs(s_rec1101.rfhz.ye)-20000.00>0.005){
strcpy ( s_snd1101.errmsg , "教育储蓄开户余亩畈荒艹20000元!");
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag=1;
goto return_back;
}
default:
break;
}
}
/***** modi by zwq 20000614 *********/
/*控制前后台利率唯一*/
if(s_rec1101.rfhz.czh!=DHCZH ){
$select nll into $zxll from sllb
where czh=$s_rec1101.rfhz.czh and hbh=$s_rec1101.rfhz.hbh
and cq=$s_rec1101.rfhz.cq and bz='0';
if ( sqlca.sqlcode ) {
printf("czh=%d,hbh=%d,cq=%d",s_rec1101.rfhz.czh,s_rec1101.rfhz.hbh,s_rec1101.rfhz.cq);fflush(stdout);
s_snd1101.flag = 1;
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
sprintf(s_snd1101.errmsg,"取后台利率失败[%d]!",sqlca.sqlcode);
goto return_back;
}
if ( s_rec1101.rfhz.czh!=6 && s_rec1101.rfhz.czh!=7 && s_rec1101.rfhz.czh!=71){
s_rec1101.rfhz.ll=zxll;
/*****************/
if ( s_rec1101.rfhz.ll != zxll ) {
s_snd1101.flag = 1;
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
sprintf(s_snd1101.errmsg,"利率不同,前台[%7.4f]后台[%7.4f]!",
s_rec1101.rfhz.ll,zxll);
goto return_back;
}
}
}
else
s_rec1101.rfhz.ll=0.00;
/*判断是否一本通异所开户*****/
strcpy(kh_jgm,s_rec1101.rfhz.jgm);
$begin work;
/*判断纳税编号是否存在或唯一*/
if (strncmp(s_rec1101.rfhz.nsbh,"000000",6) && s_rec1101.rfhz.nsbh[0]!=0 && s_rec1101.rfhz.nsbh[0]!=' ') {
if ( zl=='1' )
$select * from ffhz1 where nsbh=$s_rec1101.rfhz.nsbh and zhzt[1]!='2';
else if ( zl=='2' )
$select * from ffhz2 where nsbh=$s_rec1101.rfhz.nsbh and zhzt[1]!='2';
if (sqlca.sqlcode && sqlca.sqlcode!=100) {
s_snd1101.flag = 1;
sprintf ( s_snd1101.errmsg , "检索分户帐错[%d]!" , sqlca.sqlcode );
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
$rollback work;
goto return_back;
}
else if (!sqlca.sqlcode){
s_snd1101.flag = 1;
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
strcpy ( s_snd1101.errmsg , "纳税编号已存在!");
$rollback work;
goto return_back;
}
}
/* insert kmzz ,insert by wei hua wu 1998 6 1 modify by lwy 1999 09 13*/
if(s_rec1101.rfhz.kbz!=1 || s_rec1101.rfhz.zl[0]!='3'){
memcpy(rzkmzz.jgm,s_rec1101.rfhz.jgm,9);
rzkmzz.jgm[9]=0;
rzkmzz.hbh=s_rec1101.rfhz.hbh;
rzkmzz.kmh=s_rec1101.rfhz.kmh;
$select * from zkmzz where jgm=$rzkmzz.jgm and
hbh=$rzkmzz.hbh and kmh=$rzkmzz.kmh;
if((sqlca.sqlcode!=0)&&(sqlca.sqlcode!=SQLNOTFOUND)){
errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag = 1;
sprintf ( s_snd1101.errmsg , "检索科目总帐错[%d]!" , sqlca.sqlcode );
$rollback work;
goto return_back;
}
if(sqlca.sqlcode==SQLNOTFOUND){
rzkmzz.ye=rzkmzz.jye=rzkmzz.js=rzkmzz.jjs=0.00;
rzkmzz.rcye=rzkmzz.rcjye=rzkmzz.rjfse=rzkmzz.rdfse=0.00;
rzkmzz.rjbs=rzkmzz.rdbs=0;
rzkmzz.ycjs=rzkmzz.ycjjs=rzkmzz.ycye=rzkmzz.ycjye=rzkmzz.yjfse=rzkmzz.ydfse=0.00;
rzkmzz.yjbs=rzkmzz.ydbs=0;
rzkmzz.jcjs=rzkmzz.jcjjs=rzkmzz.jcye=rzkmzz.jcjye=rzkmzz.jjfse=rzkmzz.jdfse=0.00;
rzkmzz.jjbs=rzkmzz.jdbs=0;
rzkmzz.ncjs=rzkmzz.ncjjs=rzkmzz.ncye=rzkmzz.ncjye=rzkmzz.njfse=rzkmzz.ndfse=0.00;
rzkmzz.njbs=rzkmzz.ndbs=0;
rzkmzz.rkhs=rzkmzz.ykhs=rzkmzz.jkhs=rzkmzz.nkhs=rzkmzz.ljkhs=1;
rzkmzz.rxhs=rzkmzz.yxhs=rzkmzz.jxhs=rzkmzz.nxhs=rzkmzz.ljxhs=0;
memcpy(rzkmzz.yef,s_rec1101.rfhz.yef,1);
rzkmzz.yef[1]=0;
rzkmzz.fsrq=rcxtzt.yyrq;
rjulmdy(rcxtzt.yyrq,mdy);
rzkmzz.yf=mdy[0];
rzkmzz.nf=mdy[2];
$insert into zkmzz values($rzkmzz);
if(sqlca.sqlcode!=0){
errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
printf("sqlca.errm=[%s]\n",sqlca.sqlerrm);
sprintf ( s_snd1101.errmsg , "插入科目总帐失败[%d]!" , sqlca.sqlcode );
s_snd1101.flag = 1;
$rollback work;
goto return_back;
}
}
else{
$update zkmzz set (rkhs,ykhs,jkhs,nkhs,ljkhs)=
(rkhs+1,ykhs+1,jkhs+1,nkhs+1,ljkhs+1)
where jgm=$rzkmzz.jgm and
hbh=$rzkmzz.hbh and kmh=$rzkmzz.kmh;
if(sqlca.sqlcode || sqlca.sqlerrd[2]!=1){
errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
sprintf ( s_snd1101.errmsg , "更新科目总帐失败[%d]!" ,sqlca.sqlcode );
s_snd1101.flag = 1;
$rollback work;
goto return_back;
}
}
}
/* insert fhz */
switch(zl){
case '0':
case '6':
case '7':
case '8':
$select kmxh into $kmxh from skmzd where kmh=$s_rec1101.rfhz.kmh;
if(sqlca.sqlcode){
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
strcpy ( s_snd1101.errmsg , "中心科目字典错!");
s_snd1101.flag = 1;
$rollback work;
goto return_back;
}
if ( zl=='6' ) {
xh=atoi(s_rec1101.rfhz.zh);
if (( xh>=1 ) && ( xh<10 ))
s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh + xh ;
if (( xh>=10 ) && ( xh<100 ))
s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*10 + xh;
if (( xh>=100 ) && ( xh<1000 ))
s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*100 + xh;
if (( xh>=1000 ) && ( xh<10000 ))
s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*1000 + xh;
}
strcpy(pjgm,"\0");
strncpy(pjgm,s_rec1101.rfhz.jgm+6,3);
pjgm[3]=0;
sprintf ( nbzh , "%3s%03d%04s%02d%c" , pjgm , kmxh , killblank(s_rec1101.rfhz.zh) , s_rec1101.rfhz.hbh , zl );
strcpy(s_rec1101.rfhz.zh,nbzh);
$select * from ffhz3 where zh=$s_rec1101.rfhz.zh;
if (!sqlca.sqlcode) {
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag = 1;
strcpy ( s_snd1101.errmsg , "分户帐中已存在该帐号!");
$rollback work;
goto return_back;
}
if (sqlca.sqlcode != SQLNOTFOUND) {
errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag = 1;
sprintf ( s_snd1101.errmsg , "检索分户帐错[%d]!" , sqlca.sqlcode );
$rollback work;
goto return_back;
}
$select * from dkxhdjb where zh=$s_rec1101.rfhz.zh;
if (!sqlca.sqlcode) {
errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd1101.flag = 1;
strcpy ( s_snd1101.errmsg , "开销户登记簿中已存在该帐号!");
$rollback work;
goto return_back;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -