📄 cif_ps.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <memory.h>#include "apgloble.h"#include "bms_strcdef.h"#include "bms_micro.h"extern double Max_Limit_Amt;/* ------------------------------------------------------------------------功 能: 个人客户档案信息登记 交易码: 8101--------------------------------------------------------------------------- */int c8101( TRADE_HEAD *tr_h, BIG_STRC *bs){ PERSON_INFO ps_info ; PS_ACCINFO ps_accinfo ; int ret = -1; memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; AllTrim(bs->pz_num); if( bs->pz_type == 1) { if( CheckID(bs->pz_num) ) { /* 非法身份证号码 */ bs->result = 7013; return FAILURE; } ret= DB_check_dupID(bs->pz_num) ; if( ret < 0 ) { bs->result = 1002; return FAILURE; } if( ret == 0) { bs->result = 8001; return FAILURE; } } /* 查询客户是否存在,并取得客户号证件和客户姓名*/ ret = DB_search_ps_info( bs->cid, bs->pz_type, bs->pz_num, &ps_info) ; if ( ret != 100 ) { if ( ret == SUCCESS ) { if ( ps_info.status == STATUS_ACTIVE ) { bs->result = 8001 ; } else { bs->result = 8002 ; } return( FAILURE) ; } bms_trace("c8101 search_ps_info failed"); bs->result = DATABASE_PROGRAM_ERROR ; return( FAILURE) ; } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; memset( (char *)&ps_accinfo, '\0', sizeof( ps_accinfo)) ; SetPsInfo( bs, &ps_info, &ps_accinfo) ; AllTrim(bs->cid); if( !strlen(bs->cid) || !atol(bs->cid) ) { if( DB_GenPCid(bs->cid) ) { bms_trace("get cid error."); bs->result = 1600; return FAILURE; } strcpy( ps_info.cid, bs->cid) ; strcpy( ps_accinfo.cid, bs->cid) ; } bms_trace("[%d][%s][%s]", ps_info.ic_type, ps_info.ic_no, ps_info.cid); if ( (ret=DB_add_ps_info( &ps_info, &ps_accinfo) ) != SUCCESS ) { bms_trace("c8101 add_ps_info[%d]!", ret) ; bs->result = DATABASE_PROGRAM_ERROR ; return( FAILURE) ; } strcpy( bs->cid, ps_info.cid) ; return( SUCCESS) ;}int SetPsInfo( BIG_STRC *bs, PERSON_INFO *ps_info, PS_ACCINFO *ps_accinfo){ char ctrycode[3 + 1]; char pacetype[2]; /* 客户档案信息*/ sprintf( ps_info->zoneno, "%05d", bs->zoneno) ; strcpy( ps_info->cid, bs->cid) ; strcpy( ps_info->name, bs->auth_no) ; ps_info->sex = bs->bid ; ps_info->ic_type = bs->pz_type ; strncpy( ps_info->ic_no, bs->pz_num, 18) ; ps_info->ic_no[strlen(ps_info->ic_no)] = 0;/**/ strcpy(ps_info->ctrycode , bs->notes7 ); ps_info->pacetype = (int)atoi(bs->notes6) ;/**/ ps_info->utypeid = bs->bill_flg ; strcpy(ps_info->birthday, bs->date1) ; ps_info->marriage = bs->debi_curr ; ps_info->study = bs->debi_acct_type ; ps_info->techlvl = bs->cred_curr ; strncpy( ps_info->consort, bs->cred_bank, 10) ; strncpy( ps_info->address1, bs->address, 60) ; strcpy( ps_info->zip, bs->postcode) ; strncpy( ps_info->mobile, bs->incall_num, 22) ; strcpy( ps_info->phone1, bs->tele) ; strcpy( ps_info->email, bs->notes5) ; strcpy( ps_info->empdate, bs->date2) ; strcpy( ps_info->unitname, bs->notes1) ; strncpy( ps_info->phone2, bs->notes2, 22) ; strncpy( ps_info->postcode, bs->notes3, 6) ; sprintf( ps_info->flagoemp, "%01d", bs->deduct_type) ; strncpy( ps_info->widno, bs->notes4, 10) ; sprintf( ps_info->level, "%01d", bs->source_typ) ; strcpy( ps_info->remark, bs->name) ; strcpy( ps_info->valid_date, bs->rate) ; bms_trace(bs->cred_bank); memset(ctrycode, 0, sizeof(ctrycode)); memset(pacetype, 0, sizeof(pacetype)); GetField(bs->cred_bank, ':', ctrycode, 1); GetField(bs->cred_bank, ':', pacetype, 2); bms_trace(ctrycode); bms_trace(pacetype); strcpy( ps_info->ctrycode, ctrycode) ; ps_info->pacetype = atoi(pacetype); strcpy( ps_info->reg_mode, "1") ; sprintf( ps_info->func_def, "%020d", 0) ; ps_info->fee_type = 0 ; ps_info->crednc = 0 ; ps_info->status = STATUS_ACTIVE ; strcpy( ps_info->reg_teller, bs->teller) ; strcpy( ps_info->reg_brch, bs->term_no); pub_get_year_second( ps_info->reg_date) ; strcpy( ps_info->modi_teller, bs->teller) ; strcpy( ps_info->modi_brch, bs->term_no) ; pub_get_year_second( ps_info->modi_date) ; ps_info->job = atoi(bs->notes8) ; strcpy(ps_info->engname, bs->debi_acct); strcpy(ps_info->engcard, bs->debi_bank); strcpy( ps_accinfo->zoneno, ps_info->zoneno) ; strcpy( ps_accinfo->cid, ps_info->cid) ; icbc_des(bs->passwd1, ps_accinfo->ppasswd); strcpy(ps_accinfo->spasswd, ps_accinfo->ppasswd) ; ps_accinfo->status = STATUS_ACTIVE ; ps_accinfo->acct_num = 0 ; ps_accinfo->detail_num = 0L ; strcpy( ps_accinfo->reg_teller, ps_info->reg_teller) ; strcpy( ps_accinfo->reg_brch, ps_info->reg_brch) ; strcpy( ps_accinfo->reg_date, ps_info->reg_date) ; strcpy( ps_accinfo->modi_teller, ps_info->modi_teller) ; strcpy( ps_accinfo->modi_brch, ps_info->modi_brch) ; strcpy( ps_accinfo->modi_date, ps_info->modi_date) ; return( SUCCESS) ;}/* ------------------------------------------------------------------------功 能: 个人客户档案信息查询 交易码: 8102--------------------------------------------------------------------------- */int c8102( TRADE_HEAD *tr_h, BIG_STRC *bs){ PERSON_INFO ps_info ; PS_ACCINFO ps_accinfo ; int ret ; AllTrim(bs->pz_num); if( bs->pz_type == 1) { if( CheckID(bs->pz_num) ) { /* 非法身份证号码 */ bs->result = 7014; return FAILURE; }/** ret= DB_check_dupID(bs->pz_num) ; if( ret < 0 ) { bs->result = 1002; return FAILURE; } if( ret == 0) { bs->result = 8001; return FAILURE; }**/ } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; memset( (char *)&ps_accinfo, '\0', sizeof( ps_accinfo)) ; ret = DB_search_ps_info( bs->cid, bs->pz_type, bs->pz_num, &ps_info) ; if ( ret != SUCCESS ) { if ( ret != 100 ) { bms_trace("CMS[%d] c8102 search_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; } else bs->result = 8004 ; return( FAILURE) ; } strcpy( bs->cid, ps_info.cid) ; /* 客户号*/ bs->pz_type = ps_info.ic_type ; /* 证件种类*/ strcpy( bs->pz_num, ps_info.ic_no) ; /* 证件号码*/ bms_trace(ps_info.engname); bms_trace(ps_info.engcard); bms_trace("%s", ps_info.ctrycode); bms_trace("%d", ps_info.pacetype); WritePsInfo( &ps_info, &ps_accinfo, bs) ; return( SUCCESS) ;}int WritePsInfo( PERSON_INFO *ps_info, PS_ACCINFO *ps_accinfo, BIG_STRC *bs){ /* 客户档案信息*/ strcpy( bs->cid, ps_info->cid) ; /* 客户号*/ bs->pz_type = ps_info->ic_type ; /* 证件种类*/ strcpy( bs->pz_num, ps_info->ic_no) ; /* 证件号码*/ strncpy( bs->auth_no, ps_info->name, 20) ; /* 客户姓名*/ bs->bid = ps_info->sex ; /* 性别*/ strcpy( bs->debi_bank, ps_info->ratepayno) ; /* 纲税号*/ strcpy( bs->debi_acct, ps_info->insrncno) ; /* 社会保险号*/ strcpy( bs->date1, ps_info->birthday) ; /* 出生日期*/ bs->debi_curr = ps_info->marriage ; /* 婚姻状况*/ bs->debi_acct_type = ps_info->study ; /* 学历*/ bs->cred_curr = ps_info->techlvl ; /* 技术职称*/ strcpy( bs->cred_bank, ps_info->consort) ; /* 配合姓名*/ strcpy( bs->address, ps_info->address1) ; /* 联系地址*/ strcpy( bs->postcode, ps_info->zip) ; /* 邮政编码*/ strcpy( bs->incall_num, ps_info->mobile) ; /* 手机号码*/ strncpy( bs->tele, ps_info->phone1, 20) ; /* 家庭电话*/ strncpy( bs->notes5, ps_info->email, 30) ; /* Email地址*/ strncpy( bs->date2, ps_info->empdate, 10) ; /* 参加工作时间*/ strncpy( bs->notes1, ps_info->unitname, 30) ; /* 工作单位*/ bs->bill_flg = ps_info->utypeid ; /* 单位类别*/ strcpy( bs->notes2, ps_info->phone2) ; /* 单位电话*/ strcpy( bs->notes3, ps_info->postcode) ; /* 单位邮编*/ bs->deduct_type = atoi( ps_info->flagoemp) ; /* 银行员工标志*/ strcpy( bs->notes4, ps_info->widno) ; /* 工作证号*/ bs->source_typ = atoi( ps_info->level) ; /* 客户等级*/ strncpy( bs->name, ps_info->remark, 80) ; /* 备注*/ strcpy( bs->rate, ps_info->valid_date) ; /* 有效日期*/ bs->cred_acct_type = ps_info->status ; /* 客户状态*/ strcpy( bs->cred_acct, ps_info->func_def) ; /* 业务功能*/ strcpy( bs->abstract, ps_info->reg_teller) ; /* 开户柜员*/ strcpy( bs->sonsign_no, ps_info->reg_date) ; /* 开户日期*/ strcpy( bs->passwd1, ps_info->modi_teller) ; /* 修改柜员*/ strcpy( bs->trade_brch, ps_info->modi_date) ; /* 修改日期*/ bs->source_ser = ps_accinfo->acct_num ; /* 基本帐号数*/ sprintf(bs->notes6,"%d",ps_info->pacetype);/*民族*/ sprintf(bs->notes7,"%s",ps_info->ctrycode);/*国籍*/ sprintf(bs->notes8,"%d",ps_info->job) ;/*职业*/ return( SUCCESS) ;}/* ------------------------------------------------------------------------功 能: 个人客户档案信息修改 交易码: 8103--------------------------------------------------------------------------- */int c8103( TRADE_HEAD *tr_h, BIG_STRC *bs){ PERSON_INFO ps_info ; PS_ACCINFO ps_accinfo ; int ret ; AllTrim(bs->pz_num); if( bs->pz_type == 1) { if( CheckID(bs->pz_num) ) { /* 非法身份证号码 */ bs->result = 7014; return FAILURE; }/* ret= DB_check_dupID(bs->pz_num) ; if( ret < 0 ) { bs->result = 1002; return FAILURE; } if( ret == 0) { bs->result = 8001; return FAILURE; }*/ } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; /* 查询客户是否存在,并取得客户号证件和客户姓名*/ ret = DB_search_ps_info( bs->cid, bs->pz_type, bs->pz_num, &ps_info) ; if ( ret != SUCCESS ) { if ( ret != 100 ) { bms_trace("CMS[%d] c8103 search_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; } else bs->result = 8004 ; /* 客户档案信息不存在*/ return( FAILURE) ; } strcpy( bs->cid, ps_info.cid) ; /* 客户号*/ bs->pz_type = ps_info.ic_type ; /* 证件种类*/ strcpy( bs->pz_num, ps_info.ic_no) ; /* 证件号码*/ if ( ps_info.status == STATUS_DISA ) { bs->result = 8006 ; /* 该客户已注销,不能修改*/ return( FAILURE) ; } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; memset( (char *)&ps_accinfo, '\0', sizeof( ps_accinfo)) ; SetPsInfo( bs, &ps_info, &ps_accinfo) ; if ( (ret=DB_modi_ps_info( bs->cid, &ps_info)) != SUCCESS ) { bms_trace("CMS[%d] c8103 modi_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; return( FAILURE) ; } return( SUCCESS) ;}/* ------------------------------------------------------------------------功 能: 个人客户档案信息注销 交易码: 8104--------------------------------------------------------------------------- */int c8104( TRADE_HEAD *tr_h, BIG_STRC *bs){ PERSON_INFO ps_info ; int ret ; AllTrim(bs->pz_num); if( bs->pz_type == 1) { if( CheckID(bs->pz_num) ) { /* 非法身份证号码 */ bs->result = 7014; return FAILURE; }/* ret= DB_check_dupID(bs->pz_num) ; if( ret < 0 ) { bs->result = 1002; return FAILURE; } if( ret == 0) { bs->result = 8001; return FAILURE; }*/ } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; /* 查询客户是否存在,并取得客户号证件和客户姓名*/ ret = DB_search_ps_info( bs->cid, bs->pz_type, bs->pz_num, &ps_info) ; if ( ret != SUCCESS ) { if ( ret != 100 ) { bms_trace("CMS[%d] c8104 search_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; } else bs->result = 8004 ; /* 客户档案信息不存在*/ return( FAILURE) ; } strcpy( bs->cid, ps_info.cid) ; /* 客户号*/ bs->pz_type = ps_info.ic_type ; /* 证件种类*/ strcpy( bs->pz_num, ps_info.ic_no) ; /* 证件号码*/ if ( ps_info.status == STATUS_DISA ) { bs->result = 8007 ; /* 该客户已注销,不能再注销*/ return( FAILURE) ; } strcpy( ps_info.modi_teller, bs->teller) ; strcpy( ps_info.modi_brch, bs->term_no) ; pub_get_year_second( ps_info.modi_date) ; if ( (ret=DB_del_ps_info( bs->cid, &ps_info)) != SUCCESS ) { bms_trace("CMS[%d] c8104 del_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; return( FAILURE) ; } return( SUCCESS) ;}/* ------------------------------------------------------------------------功 能: 个人客户密码挂失 交易码: 8105--------------------------------------------------------------------------- */int c8105( TRADE_HEAD *tr_h, BIG_STRC *bs){ PERSON_INFO ps_info ; PS_ACCINFO ps_accinfo ; int ret ; AllTrim(bs->pz_num); if( bs->pz_type == 1) { if( CheckID(bs->pz_num) ) { /* 非法身份证号码 */ bs->result = 7014; return FAILURE; }/* ret= DB_check_dupID(bs->pz_num) ; if( ret < 0 ) { bs->result = 1002; return FAILURE; } if( ret == 0) { bs->result = 8001; return FAILURE; }*/ } memset( (char *)&ps_info, '\0', sizeof( ps_info)) ; memset( (char *)&ps_accinfo, '\0', sizeof( ps_accinfo)) ; /* 查询客户是否存在,并取得客户号证件和客户姓名*/ ret = DB_search_ps_info( bs->cid, bs->pz_type, bs->pz_num, &ps_info) ; if ( ret != SUCCESS ) { if ( ret != 100 ) { bms_trace("CMS[%d] c8105 search_ps_info[%d]!", mypid, ret) ; bs->result = DATABASE_PROGRAM_ERROR ; } else bs->result = 8004 ; /* 客户档案信息不存在*/ return( FAILURE) ; } strcpy( bs->cid, ps_info.cid) ; /* 客户号*/ bs->pz_type = ps_info.ic_type ; /* 证件种类*/ strcpy( bs->pz_num, ps_info.ic_no) ; /* 证件号码*/ if ( ps_info.status == STATUS_DISA ) { bs->result = 8008 ; /* 该客户已注销,不能改密*/ return( FAILURE) ; } strcpy( ps_accinfo.cid, bs->cid) ; icbc_des( bs->passwd1, ps_accinfo.ppasswd) ; AllTrim(ps_accinfo.ppasswd); strcpy( ps_accinfo.spasswd, ps_accinfo.ppasswd) ; strcpy( ps_accinfo.modi_teller, bs->teller) ; strcpy( ps_accinfo.modi_brch, bs->term_no) ; pub_get_year_second( ps_accinfo.modi_date) ; if ( (ret=DB_set_ps_passwd( bs->cid, &ps_accinfo)) != SUCCESS ) { bms_trace("CMS[%d] c8105 set_ps_passwd[%d]!", mypid, ret) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -