评论

收藏

[JavaScript] Node.js 调存储过程

开发技术 开发技术 发布于:2021-07-16 20:33 | 阅读数:214 | 评论:0

1 var spring = require("spring");
  2 //当前登录人ID
  3 var account_id = require('nodejava').toJs.parse(com.tt.pwp.framework.security.SecurityUtils.getLoginAccount()).attributes.ACCOUNT_ID;
  4 var result ={
  5         flag:false,
  6         cont:"操作失败"
  7 }
  8 
  9 
 10 /**
 11  * 需要 进行经济分类 会计辅助核算
 12  */
 13 var pzData_jjfl=param.pzData_jjfl;
 14 var    fdate_jjfl =    pzData_jjfl.fdate;//凭证日期
 15 var    fattachment_jjfl = pzData_jjfl.fattachment;//附件
 16 var    strOptionType_jjfl = pzData_jjfl.strOptionType;//操作类型 
 17 var    oper_idea_jjfl = pzData_jjfl.oper_idea;//审核意见
 18 var    delIds_jjfl = pzData_jjfl.delIds;
 19 var    zfpzid_jjfl = pzData_jjfl.zfpzid;
 20 var    check_status_jjfl = pzData_jjfl.check_status;
 21 var    voucher_no_jjfl = pzData_jjfl.voucher_no;
 22 var    voucher_type_jjfl = pzData_jjfl.voucher_type;
 23 var    amt_jjfl = pzData_jjfl.amt;
 24 var    arrpurpose_jjfl = pzData_jjfl.arrpurpose;
 25 var mappingtable_jjfl = pzData_jjfl.mappingtable;
 26 
 27 var lstVo_jjfl = new java.util.ArrayList();
 28 //只有书面银行回单的,手工对碰.传递支付凭证编号和加章信息
 29 for (var i = 0; i < zfpzid_jjfl.length; i++) {
 30   for (var j = 0; j < delIds_jjfl.length; j++) {
 31     if (zfpzid_jjfl[i]==(delIds_jjfl[j])) {
 32         var vo = new com.todaytech.yth.gdsd.gkzf.k3.model.ZfpzVO();
 33       vo.setGk_zfpz_id(parseInt(zfpzid_jjfl[i]));
 34       vo.setVoucher_no(voucher_no_jjfl[i]);   //支付凭证号
 35       vo.setVoucher_type(voucher_type_jjfl[i]);  //凭证类型
 36       vo.setAmt(new java.math.BigDecimal(amt_jjfl[i]));  //拨款金额
 37       vo.setPurpose(oper_idea_jjfl.replace(/^\s\s*/, '').replace(/\s\s*$/, '').length!=0?/*"("+oper_idea+")("+*/arrpurpose_jjfl[i]/*+")"*/:arrpurpose_jjfl[i]);//用途说明----用于摘要
 38       vo.setCheck_status(check_status_jjfl[i]);    // 对碰状态
 39       vo.setMappingTable(mappingtable_jjfl[i]);//来源表
 40 
 41 
 42       //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
 43       if (strOptionType_jjfl == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_AUTPAY/*="0"; //正常对碰的直接支付凭证*/) || strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_PAYEVI_AND_ROXYBILL/*="1"; //正常对碰的授权支付凭证和代扣代缴*/)) {
 44         vo.setAffirmer(parseInt(account_id));   //回单确认人编号
 45       //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
 46       } else if (strOptionType_jjfl == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_AUTPAY/*="2"; //退款的直接支付凭证*/) || strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_PAYEVI_AND_ROXYBILL/*="3"; //退款的授权支付凭证和代扣代缴*/)) {
 47         vo.setBack_oper_id(parseInt(account_id));//制单人userid
 48         vo.setBack_oper_idea(oper_idea);//意见
 49       }
 50       lstVo_jjfl.add(vo);
 51     }
 52   }
 53 }
 54 
 55 
 56 
 57 
 58 
 59 
 60 /**
 61  * 不需要 进行经济分类 会计辅助核算
 62  */
 63 var pzData=param.pzData;
 64 var    fdate =    pzData.fdate;//凭证日期
 65 var    fattachment = pzData.fattachment;//附件
 66 var    strOptionType = pzData.strOptionType;//操作类型 
 67 var    oper_idea = pzData.oper_idea;//审核意见
 68 var    delIds = pzData.delIds;
 69 var    zfpzid = pzData.zfpzid;
 70 var    check_status = pzData.check_status;
 71 var    voucher_no = pzData.voucher_no;
 72 var    voucher_type = pzData.voucher_type;
 73 var    amt = pzData.amt;
 74 var    arrpurpose = pzData.arrpurpose;
 75 var mappingtable = pzData.mappingtable;
 76 
 77 var lstVo = new java.util.ArrayList();
 78 //只有书面银行回单的,手工对碰.传递支付凭证编号和加章信息
 79 for (var i = 0; i < zfpzid.length; i++) {
 80   for (var j = 0; j < delIds.length; j++) {
 81     if (zfpzid[i]==(delIds[j])) {
 82         var vo = new com.todaytech.yth.gdsd.gkzf.k3.model.ZfpzVO();
 83       vo.setGk_zfpz_id(parseInt(zfpzid[i]));
 84       vo.setVoucher_no(voucher_no[i]);   //支付凭证号
 85       vo.setVoucher_type(voucher_type[i]);  //凭证类型
 86       vo.setAmt(new java.math.BigDecimal(amt[i]));  //拨款金额
 87       vo.setPurpose(oper_idea.replace(/^\s\s*/, '').replace(/\s\s*$/, '').length!=0?/*"("+oper_idea+")("+*/arrpurpose[i]/*+")"*/:arrpurpose[i]);//用途说明----用于摘要
 88       vo.setCheck_status(check_status[i]);    // 对碰状态
 89       vo.setMappingTable(mappingtable[i]);//来源表
 90       //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
 91       if (strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_AUTPAY/*="0"; //正常对碰的直接支付凭证*/) || strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_PAYEVI_AND_ROXYBILL/*="1"; //正常对碰的授权支付凭证和代扣代缴*/)) {
 92         vo.setAffirmer(parseInt(account_id));   //回单确认人编号
 93       //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
 94       } else if (strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_AUTPAY/*="2"; //退款的直接支付凭证*/) || strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_PAYEVI_AND_ROXYBILL/*="3"; //退款的授权支付凭证和代扣代缴*/)) {
 95         vo.setBack_oper_id(parseInt(account_id));//制单人userid
 96         vo.setBack_oper_idea(oper_idea);//意见
 97       }
 98       lstVo.add(vo);
 99     }
100   }
101 }
102 
103 
104     //用于生成会计凭证  ZwvchVO
105     var zwvchvo= spring.getBean("ZwvchVO");     //
106 
107     //会计凭证(zwvch)
108     zwvchvo.setFgroup("");// 凭证类型:"总"预算
109     zwvchvo.setFdate(new Date(fdate));//填制日期
110     //凭证号(FNUM):按月水,在ZwvchCreateHelper类中根据"表名(ZWVCH)和月份"自动生成
111     zwvchvo.setFpreparer(parseInt(account_id));//填制人(FPREPARER):为空
112     zwvchvo.setFchecker("");//审核人员(FCHECKER):为空
113     zwvchvo.setFposter("");//记帐人员(FPOSTER):为空
114     zwvchvo.setFattachment(fattachment);//附件张数(FATTACHMENT):
115     zwvchvo.setFmodule("");//接转凭证标志(FMODULE):为空
116     zwvchvo.setFdeleted("");//作废标记(FDELETED):为空
117     zwvchvo.setOrg_type(pzData.src_type);//资金来源类型
118 
119     zwvchvo.setOpertype(pzData.org_type);//20180119 新增   (界面选择用到的)操作类型    
120     if(pzData.org_type==0||pzData.org_type==1){
121           zwvchvo.setOrign_type("1");
122     }else if(pzData.org_type==2||pzData.org_type==3){
123           zwvchvo.setOrign_type("3");
124     }
125 
126 //  数据来源类型
127     try {
128       var facade = spring.getBean("zysZfzxPayCtl");  // zwvchNewFacade
129 
130     //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
131     if (strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_AUTPAY/*="0"; //正常对碰的直接支付凭证*/)||
132             strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_AUTPAY/*="2"; //退款的直接支付凭证*/)||
133             strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_BACK_BILL_PAYEVI_AND_ROXYBILL/*="3"; //退款的授权支付凭证和代扣代缴*/) ||
134         strOptionType == (com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_SQZFPZ_CHECK_STATUS_SUCCEED_PAYEVI_AND_ROXYBILL/*="1"; //正常对碰的授权支付凭证和代扣代缴*/)) {
135       //正常对碰的直接支付凭证
136       //正常对碰的授权支付凭证和代扣代缴
137       /*  var orign_type = com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_ZWVCH_REFER_ORIGN_TYPE_PAYEVI;
138         zwvchvo.setOrign_type(orign_type);
139       facade.createCZGKZwvch(zwvchvo, lstVo,lstVo_jjfl);*/
140 
141 
142         //获取GK_ZWVCH_IDS pk_id值
143         var pk_id=0;
144         var pk_idSql="select nextid('GK_ZWVCH_IDS_SEQ') nextid  FROM DUAL";
145         var pk_idData = db.queryService.query(pk_idSql,{});
146         if(pk_idData.data.length>0){
147                for(var i=0;i<pk_idData.data.length;i++){
148                    // 获取id
149                    pk_id=pk_idData.data[i].get("nextid");
150                }
151         }
152 
153         /** 开启一个新事务,把数据插入到业务表中
154          * 事务传播级别,共有PROPAGATION_REQUIRED, PROPAGATION_SUPPORTS,
155          * PROPAGATION_MANDATORY, PROPAGATION_REQUIRES_NEW,
156          * PROPAGATION_NOT_SUPPORTED, PROPAGATION_NEVER,
157          * PROPAGATION_NESTED七种
158          */
159          var transaction = "PROPAGATION_REQUIRES_NEW";
160          var timeout = -1;
161          var readonly = false;
162          db.doInTransaction(TransactionDefinition[transaction],timeout,readonly,
163              function(){
164                   var   insertSql="";
165                 insertSql += " begin\n ";
166                for(var index=0;index<zfpzid_jjfl.length;index++){
167                     insertSql +=" insert into GK_ZWVCH_IDS   (pk_id, GK_ZFPZ_ID) values ('"+pk_id+"', '"+zfpzid_jjfl[index]+"');";
168                 }
169                 for(var index=0;index<zfpzid.length;index++){
170                    insertSql +=" insert into GK_ZWVCH_IDS   (pk_id, GK_ZFPZ_ID) values ("+pk_id+", "+zfpzid[index]+");";
171                }
172                 insertSql+="  end;";
173                 var ret = db.update(insertSql,{});
174          });
175           var dataBaseName="";
176           if ( pzData.src_type=="0" ) {//预算内
177         //获取支付中心预算内对应数据库
178         var sqlZfzx = "select t.value  as databasename from pwp_sysparam t where t.name ='payZ'";
179         var dataBaseNameData=db.queryService.query(sqlZfzx,{});
180                   for(var i=0;i<dataBaseNameData.data.length;i++){
181                     // 获取id
182                    dataBaseName=dataBaseNameData.data[i].get("databasename");
183              }
184      } else if (pzData.src_type=="1" ) {//预算外
185        //获取支付中心预算外对应数据库
186        var sqlZfzx = "select t.value  as databasename  from pwp_sysparam t where t.name ='payZout'";
187        var dataBaseNameData=db.queryService.query(sqlZfzx,{});
188              for(var i=0;i<dataBaseNameData.data.length;i++){
189                  // 获取id
190                  dataBaseName=dataBaseNameData.data[i].get("databasename");
191              }
192      }
193          /**
194           * 调用存储过程  PRO_K3_ZFZXZ
195           *1 org_type    入参 varchar2, --预算内外
196           *2 opertype    入参 varchar2, --操作类型
197           *3 fdate     入参 varchar2, --日期
198           *4 i_pk_id     入参 varchar2, --主键id
199           *5 i_database  入参 varchar2, --数据库名
200           *6 i_fgroup    入参 varchar2, -- 字号,
201           *7 i_fpreparer   入参 number, -- 制单人,
202           *8 i_fattachment 入参 number, -- 附件数
203           *9 o_ret     出参 number
204           */
205 
206           var results = db.callProcedure(function(conn){
207             var storedProc = "{call PRO_K3_ZFZXZ(?,?,?,?,?,?,?,?,?)}";// 调用的sql 
208             var cs = conn.prepareCall(storedProc);
209             cs.setString(1, ""+pzData.src_type+"");
210             cs.setString(2, ""+pzData.org_type+"");
211             cs.setString(3, ""+pzData.fdate+"");
212             cs.setString(4, ""+pk_id+"");
213             cs.setString(5, ""+dataBaseName+"");
214             cs.setString(6, "记");
215             cs.setInt(7, parseInt(account_id));
216             cs.setInt(8, fattachment);
217             cs.registerOutParameter(9, 2);
218             return cs;
219             },function(cs){
220             cs.execute();
221               var rs = cs.getObject(9);
222             return 0 ;
223             });
224 
225           if(results==0){
226               result.flag = true;
227               result.cont= "操作成功";
228            }
229           //用于正常回单生成会计凭证和退款以及调帐管理生成会计凭证 和汇总清算通知单
230     } else if (strOptionType =='5'
231         ||strOptionType =='6' ) {
232       //退款的直接支付凭证
233       //退款的授权支付凭证和代扣代缴
234 
235         var orign_type = com.todaytech.yth.gdsd.gkzf.k3.ReceiveBillEnum.GK_ZWVCH_REFER_ORIGN_TYPE_BACKBILL;
236         zwvchvo.setOrign_type(orign_type);
237       facade.createRubricCZGKZwvch(zwvchvo, lstVo,lstVo_jjfl);
238 
239 
240       result.flag = true;
241         result.cont= "操作成功";
242     }
243 
244     }catch (e) {
245         console.log(e);
246         result.flag = false;
247         result.cont ="操作失败"
248     }
249     return result;
250 
251 
252
1 CREATE OR REPLACE VIEW VIEW_K3_ZFZXZ_DIR AS
  2 SELECT   v.id GK_ZFPZ_ID ,v.id ,  v.ORIGIN_ID,  v.VOUCHER_NO,  v.MAKE_DATE,  v.FK_ACCOUNT,   v.FK_BANK,  v.SRC_ID,  v.SK_NAME,  v.SK_ACCOUNT,   v.SK_BANK,
  3    ------支付中心账务: 预算内 直接支付凭证  含义政府经济分类辅助核算 部分 视图
  4          v.unitno,  v.UNIT_NAME,  v.budget_type,  v.acc_bdgid bdgt_accid,  v.budgetno,  v.budget_name,   v.PRJNO,  v.prj_name,  v.amt as zfpz_amt,
  5 
  6           v.amt  as AMT,
  7           (case  when v.PURPOSE is null then   '-'   else  v.PURPOSE  end) as PURPOSE,
  8           v.REMARK,   v.CHECKER,   v.CHECKER_DATE,  v.AFFIRMER,  v.AFFIRM_DATE,   v.VOUCHER_TYPE,  v.CHECK_STATUS,   v.WF_STATUS,  v.GK_HZQSD_ID,
  9           v.FUND,  v.ORG_TYPE,  v.BACK_OPER_ID,  v.BACK_OPER_IDEA,  v.BACK_OPER_DATE,  v.BACK_CHECKER_ID,  v.BACK_CHECKER_IDEA,  v.BACK_CHECKER_DATE,
 10           nvl(v.zf_item_amt, 0) as zf_item_amt ,
 11          zf_itemno,
 12           zf_itemname,
 13           (case
 14           when v.bm_itemnos is null then   '-'
 15           when v.bm_itemnos is not null and  length(TRIM(v.bm_itemnos)) < 1 then    '-'   else  v.bm_itemnos
 16           end) as bm_itemnos
 17   FROM (select  gz_i.*
 18       from (select gz.id,  gz.origin_id,  gz.zbz_bal_id,  gz.quota_id,  gz.voucher_no,   gz.make_date,  gz.voucher_type,
 19              gz.funds_type,  gz.balance_type,  gz.src_id,  gz.fk_name,  gz.fk_account,  gz.fk_bank,  gz.fk_bank_code,  gz.sk_name,
 20              gz.sk_account,  gz.sk_bank,  gz.sk_bank_code,  gz.unitno, gz.unit_name,  gz.budget_type,  gz.budgetno,
 21              gz.budget_name,  gz.prjno,  gz.prj_name, gz.itemno,  gz.item_name,  gz.purpose,  gz.remark,  gz.wf_status,  gz.print_status,
 22              gz.send_status, gz.check_status, gz.affirm_date,  gz.affirmer,  gz.back_oper_date,  gz.back_oper_id,
 23              gz.back_oper_idea,  gz.back_checker_id, gz.back_checker_idea,  gz.back_checker_date,  gz.source_voucher_id,
 24              gz.gk_hzqsd_id, gz.cx_gk_hzqsd_id,  gz.qs_date,  gz.jy_no,  gz.jy_date,  gz.oper_account,
 25              gz.oper_dt, gz.oper_org,  gz.process_instance_id,  gz.status,  gz.zjzfsq_id,  gz.is_paper_print,
 26              gz.pay_type,  gz.cheque_no,  gz.checker,  gz.checker_date,  gz.ryjf_type,   bg.acc_bdgid,
 27              zqdi.amt as amt,
 28              zqdi.amt as zf_item_amt,
 29              zqdi.itemno as bm_itemnos,
 30              bz.org_type,  bz.fund,   bg.func_bdgname,   bu.unit_name as unit_names,
 31 
 32          (case
 33           when zqdi.itemno is not null and zqdi.itemno = '-' then  zqdi.itemno
 34           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 35           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '301' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
 36           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50201'
 37           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   '50502'
 38           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 39           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
 40           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30311' AND  gz.unitno <> '0017' THEN '50501'
 41           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '31199' THEN  '50799'
 42           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30403' THEN  '50299'
 43           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '399' THEN  '59999'
 44           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '312' THEN  '50799'
 45           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno ='30499' then  '50799'
 46           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30401' then  '50799'
 47 
 48            else
 49              ( select  zfi.zf_itemno  from view_get_zf_itemname zfi  where  zqdi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))
 50           end) as zf_itemno,
 51           (case
 52            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 53            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 54            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50201'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 55            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50502'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 56            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 57            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 58            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30311' AND  gz.unitno <> '0017' THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 59            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '31199' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 60            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30403' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502' and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50299'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 61            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '399' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '599'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '59999'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 62            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '312' THEN  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799' and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 63            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30499' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 64            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30401' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 65 
 66           else  ( select  zfi.zf_itemname  from view_get_zf_itemname zfi  where  zqdi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))   end) as zf_itemname
 67 
 68           from gk_zfpz gz,
 69              bs_bdg_unit bu,
 70              bs_gnflyskm bg,
 71              bs_zjly bz,
 72              (select *   from gk_zjzfsq_detail_item gzdi where gzdi.amt is not null  and gzdi.amt != 0) zqdi
 73          where gz.budgetno = bg.func_bdgid(+)
 74            and gz.unitno = bu.unitno(+)
 75            and gz.src_id = bz.fundno(+)
 76            and gz.budget_type = bg.func_bdg_type(+)
 77            and to_char(gz.make_date, 'yyyy') = bg.bdgyear
 78            and gz.voucher_type = '0'
 79            and gz.origin_id = zqdi.gk_zjzfsq_detail_id(+)) gz_i
 80       /*union all
 81       select gz_i.*
 82       from (
 83 
 84        select gz.id,  gz.origin_id,  gz.zbz_bal_id,  gz.quota_id,  gz.voucher_no,   gz.make_date, gz.voucher_type,  gz.funds_type, gz.balance_type,  gz.src_id,
 85              gz.fk_name, gz.fk_account,  gz.fk_bank,  gz.fk_bank_code,   gz.sk_name,  gz.sk_account,
 86              gz.sk_bank,  gz.sk_bank_code,  gz.unitno,  gz.unit_name,  gz.budget_type,  gz.budgetno,  gz.budget_name,  gz.prjno,  gz.prj_name,
 87              gz.itemno,  gz.item_name, gz.purpose,  gz.remark,  gz.wf_status,  gz.print_status,  gz.send_status,  gz.check_status,  gz.affirm_date,  gz.affirmer,
 88              gz.back_oper_date,  gz.back_oper_id,   gz.back_oper_idea,  gz.back_checker_id,  gz.back_checker_idea, gz.back_checker_date,  gz.source_voucher_id,
 89              gz.gk_hzqsd_id,  gz.cx_gk_hzqsd_id,  gz.qs_date,  gz.jy_no,  gz.jy_date,  gz.oper_account,  gz.oper_dt,  gz.oper_org,   gz.process_instance_id,
 90              gz.status,  gz.zjzfsq_id,  gz.is_paper_print,  gz.pay_type,  gz.cheque_no,  gz.checker,  gz.checker_date,  gz.ryjf_type,   bg.acc_bdgid,
 91              gzi.amt as amt,
 92              gzi.amt as zf_item_amt,
 93              gzi.itemno  as bm_itemnos,
 94              bz.org_type,  bz.fund,  bg.func_bdgname, bu.unit_name as unit_names,
 95 
 96          (case
 97           when gzi.itemno is not null and gzi.itemno = '-' then  gzi.itemno
 98           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 99           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '301' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
100           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50201'
101           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   '50502'
102           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
103           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
104           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30311' AND  gz.unitno <> '0017' THEN '50501'
105           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '31199' THEN  '50799'
106           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30403' THEN  '50299'
107           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '399' THEN  '59999'
108           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '312' THEN  '50799'
109           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno ='30499' then  '50799'
110           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30401' then  '50799'
111 
112            else
113              ( select  zfi.zf_itemno  from view_get_zf_itemname zfi  where  gzi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))
114           end) as zf_itemno,
115           (case
116            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
117            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
118            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50201'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
119            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50502'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
120            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
121            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
122            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30311' AND  gz.unitno <> '0017' THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
123            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '31199' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
124            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30403' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502' and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50299'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
125            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '399' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '599'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '59999'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
126            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '312' THEN  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799' and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
127            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30499' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
128            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30401' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
129 
130           else  ( select  zfi.zf_itemname  from view_get_zf_itemname zfi  where  gzi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))   end) as zf_itemname
131 
132           from gk_zfpz    gz,  bs_bdg_unit  bu,  bs_zjly  bz,   bs_gnflyskm  bg,   gk_zfpz_item gzi
133          where gz.budgetno = bg.func_bdgid(+)
134            and gz.unitno = bu.unitno(+)
135            and gz.src_id = bz.fundno(+)
136            and gz.budget_type = bg.func_bdg_type(+)
137            and to_char(gz.make_date, 'yyyy') = bg.bdgyear
138            and gz.voucher_type = '1'
139            and gz.id = gzi.gk_zfpz_id(+)
140 
141            ) gz_i*/
142    ) v;
143
1 CREATE OR REPLACE VIEW VIEW_K3_ZFZXZ_ACC AS
  2 SELECT   v.id GK_ZFPZ_ID ,v.id ,  v.ORIGIN_ID,  v.VOUCHER_NO,  v.MAKE_DATE,  v.FK_ACCOUNT,   v.FK_BANK,  v.SRC_ID,  v.SK_NAME,  v.SK_ACCOUNT,   v.SK_BANK,
  3    ------支付中心账务: 预算内 直接支付凭证  含义政府经济分类辅助核算 部分 视图
  4          v.unitno,  v.UNIT_NAME,  v.budget_type,  v.acc_bdgid bdgt_accid,  v.budgetno,  v.budget_name,   v.PRJNO,  v.prj_name,  v.amt as zfpz_amt,
  5 
  6           v.amt  as AMT,
  7           (case  when v.PURPOSE is null then   '-'   else  v.PURPOSE  end) as PURPOSE,
  8           v.REMARK,   v.CHECKER,   v.CHECKER_DATE,  v.AFFIRMER,  v.AFFIRM_DATE,   v.VOUCHER_TYPE,  v.CHECK_STATUS,   v.WF_STATUS,  v.GK_HZQSD_ID,
  9           v.FUND,  v.ORG_TYPE,  v.BACK_OPER_ID,  v.BACK_OPER_IDEA,  v.BACK_OPER_DATE,  v.BACK_CHECKER_ID,  v.BACK_CHECKER_IDEA,  v.BACK_CHECKER_DATE,
 10           nvl(v.zf_item_amt, 0) as zf_item_amt ,
 11          zf_itemno,
 12           zf_itemname,
 13           (case
 14           when v.bm_itemnos is null then   '-'
 15           when v.bm_itemnos is not null and  length(TRIM(v.bm_itemnos)) < 1 then    '-'   else  v.bm_itemnos
 16           end) as bm_itemnos
 17   FROM (/*select  gz_i.*
 18       from (select gz.id,  gz.origin_id,  gz.zbz_bal_id,  gz.quota_id,  gz.voucher_no,   gz.make_date,  gz.voucher_type,
 19              gz.funds_type,  gz.balance_type,  gz.src_id,  gz.fk_name,  gz.fk_account,  gz.fk_bank,  gz.fk_bank_code,  gz.sk_name,
 20              gz.sk_account,  gz.sk_bank,  gz.sk_bank_code,  gz.unitno, gz.unit_name,  gz.budget_type,  gz.budgetno,
 21              gz.budget_name,  gz.prjno,  gz.prj_name, gz.itemno,  gz.item_name,  gz.purpose,  gz.remark,  gz.wf_status,  gz.print_status,
 22              gz.send_status, gz.check_status, gz.affirm_date,  gz.affirmer,  gz.back_oper_date,  gz.back_oper_id,
 23              gz.back_oper_idea,  gz.back_checker_id, gz.back_checker_idea,  gz.back_checker_date,  gz.source_voucher_id,
 24              gz.gk_hzqsd_id, gz.cx_gk_hzqsd_id,  gz.qs_date,  gz.jy_no,  gz.jy_date,  gz.oper_account,
 25              gz.oper_dt, gz.oper_org,  gz.process_instance_id,  gz.status,  gz.zjzfsq_id,  gz.is_paper_print,
 26              gz.pay_type,  gz.cheque_no,  gz.checker,  gz.checker_date,  gz.ryjf_type,   bg.acc_bdgid,
 27              zqdi.amt as amt,
 28              zqdi.amt as zf_item_amt,
 29              zqdi.itemno as bm_itemnos,
 30              bz.org_type,  bz.fund,   bg.func_bdgname,   bu.unit_name as unit_names,
 31 
 32          (case
 33           when zqdi.itemno is not null and zqdi.itemno = '-' then  zqdi.itemno
 34           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 35           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '301' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
 36           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50201'
 37           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   '50502'
 38           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 39           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
 40           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30311' AND  gz.unitno <> '0017' THEN '50501'
 41           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '31199' THEN  '50799'
 42           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30403' THEN  '50299'
 43           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '399' THEN  '59999'
 44           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '312' THEN  '50799'
 45           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno ='30499' then  '50799'
 46           when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30401' then  '50799'
 47 
 48            else
 49              ( select  zfi.zf_itemno  from view_get_zf_itemname zfi  where  zqdi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))
 50           end) as zf_itemno,
 51           (case
 52            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 53            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '301' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 54            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50201'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 55            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '302' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50502'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 56            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 57            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30107' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 58            when zqdi.itemno is not null and zqdi.itemno != '-' and   zqdi.itemno = '30311' AND  gz.unitno <> '0017' THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 59            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '31199' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 60            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30403' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502' and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50299'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 61            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '399' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '599'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '59999'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 62            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '312' THEN  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799' and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 63            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30499' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 64            when zqdi.itemno is not null and zqdi.itemno != '-' and  zqdi.itemno = '30401' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
 65 
 66           else  ( select  zfi.zf_itemname  from view_get_zf_itemname zfi  where  zqdi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))   end) as zf_itemname
 67 
 68           from gk_zfpz gz,
 69              bs_bdg_unit bu,
 70              bs_gnflyskm bg,
 71              bs_zjly bz,
 72              (select *   from gk_zjzfsq_detail_item gzdi where gzdi.amt is not null  and gzdi.amt != 0) zqdi
 73          where gz.budgetno = bg.func_bdgid(+)
 74            and gz.unitno = bu.unitno(+)
 75            and gz.src_id = bz.fundno(+)
 76            and gz.budget_type = bg.func_bdg_type(+)
 77            and to_char(gz.make_date, 'yyyy') = bg.bdgyear
 78            and gz.voucher_type = '0'
 79            and gz.origin_id = zqdi.gk_zjzfsq_detail_id(+)) gz_i
 80       union all*/
 81       select gz_i.*
 82       from (
 83 
 84        select gz.id,  gz.origin_id,  gz.zbz_bal_id,  gz.quota_id,  gz.voucher_no,   gz.make_date, gz.voucher_type,  gz.funds_type, gz.balance_type,  gz.src_id,
 85              gz.fk_name, gz.fk_account,  gz.fk_bank,  gz.fk_bank_code,   gz.sk_name,  gz.sk_account,
 86              gz.sk_bank,  gz.sk_bank_code,  gz.unitno,  gz.unit_name,  gz.budget_type,  gz.budgetno,  gz.budget_name,  gz.prjno,  gz.prj_name,
 87              gz.itemno,  gz.item_name, gz.purpose,  gz.remark,  gz.wf_status,  gz.print_status,  gz.send_status,  gz.check_status,  gz.affirm_date,  gz.affirmer,
 88              gz.back_oper_date,  gz.back_oper_id,   gz.back_oper_idea,  gz.back_checker_id,  gz.back_checker_idea, gz.back_checker_date,  gz.source_voucher_id,
 89              gz.gk_hzqsd_id,  gz.cx_gk_hzqsd_id,  gz.qs_date,  gz.jy_no,  gz.jy_date,  gz.oper_account,  gz.oper_dt,  gz.oper_org,   gz.process_instance_id,
 90              gz.status,  gz.zjzfsq_id,  gz.is_paper_print,  gz.pay_type,  gz.cheque_no,  gz.checker,  gz.checker_date,  gz.ryjf_type,   bg.acc_bdgid,
 91              gzi.amt as amt,
 92              gzi.amt as zf_item_amt,
 93              gzi.itemno  as bm_itemnos,
 94              bz.org_type,  bz.fund,  bg.func_bdgname, bu.unit_name as unit_names,
 95 
 96          (case
 97           when gzi.itemno is not null and gzi.itemno = '-' then  gzi.itemno
 98           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
 99           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '301' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
100           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50201'
101           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   '50502'
102           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  '50101'
103           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND   substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  '50501'
104           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30311' AND  gz.unitno <> '0017' THEN '50501'
105           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '31199' THEN  '50799'
106           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30403' THEN  '50299'
107           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '399' THEN  '59999'
108           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '312' THEN  '50799'
109           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno ='30499' then  '50799'
110           when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30401' then  '50799'
111 
112            else
113              ( select  zfi.zf_itemno  from view_get_zf_itemname zfi  where  gzi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))
114           end) as zf_itemno,
115           (case
116            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
117            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '301' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
118            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND  substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50201'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
119            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '302' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN   (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50502'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
120            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND   substr( gz.unitno, 0, 2) IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50101'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
121            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30107' AND  substr( gz.unitno, 0, 2) NOT IN ('00', '20') THEN  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
122            when gzi.itemno is not null and gzi.itemno != '-' and   gzi.itemno = '30311' AND  gz.unitno <> '0017' THEN   (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '505'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50501'   and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
123            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '31199' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
124            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30403' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '502' and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '50299'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
125            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '399' THEN (select bzj.econ_bdg  from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '599'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg   from bs_zf_jjflyskm bzj   where bzj.econ_bdgid = '59999'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
126            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '312' THEN  (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' || (select bzj.econ_bdg  from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799' and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
127            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30499' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
128            when gzi.itemno is not null and gzi.itemno != '-' and  gzi.itemno = '30401' THEN (select bzj.econ_bdg   from bs_zf_jjflyskm bzj where bzj.econ_bdgid = '507'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy')) || '--' ||  (select bzj.econ_bdg from bs_zf_jjflyskm bzj  where bzj.econ_bdgid = '50799'  and bzj.bdgyear = to_char(gz.make_date, 'yyyy'))
129 
130           else  ( select  zfi.zf_itemname  from view_get_zf_itemname zfi  where  gzi.itemno = zfi.bm_itemno(+)  and zfi.year(+) = to_char(gz.make_date, 'yyyy'))   end) as zf_itemname
131 
132           from gk_zfpz    gz,  bs_bdg_unit  bu,  bs_zjly  bz,   bs_gnflyskm  bg,   gk_zfpz_item gzi
133          where gz.budgetno = bg.func_bdgid(+)
134            and gz.unitno = bu.unitno(+)
135            and gz.src_id = bz.fundno(+)
136            and gz.budget_type = bg.func_bdg_type(+)
137            and to_char(gz.make_date, 'yyyy') = bg.bdgyear
138            and gz.voucher_type = '1'
139            and gz.id = gzi.gk_zfpz_id(+)
140 
141            ) gz_i
142    ) v;
143
1 create or replace procedure PRO_K3_ZFZXZ(org_type    in varchar2, --预算内外
  2                      opertype    in varchar2, --操作类型
  3                      fdate     in varchar2, --日期
  4                      i_pk_id     in varchar2, --主键id
  5                      i_database  in varchar2, --数据
  6                      i_fgroup    in varchar2, -- 字号,
  7                      i_fpreparer   in number, -- 制单人,
  8                      i_fattachment in number, -- 附件数
  9                      o_ret out number
 10                      ) is
 11 
 12 
 13   v_total    number(16, 2);
 14   v_fserialnum_1 number(16, 2); -- 流水号
 15   v_fserialnum_2 number(16, 2); -- 流水号
 16   v_max_index  number;
 17   v_count number;
 18 
 19 
 20 begin
 21 o_ret := 0;
 22   select nextid('GK_ZWVCH_SEQ') into v_fserialnum_1 from dual;
 23   select nextid('GK_ZWVCH_SEQ') into v_fserialnum_2 from dual;
 24 
 25 
 26   select count(1) into v_count from  GK_ZWVCH_IDS a where a.pk_id  = i_pk_id;
 27 
 28   if v_count = 0 then
 29   return ;
 30   end if;
 31 
 32   --先判断入参是否有值,如果没有值 整个存储过程返回空值
 33   if org_type is not null and opertype is not null and fdate is not null  and i_pk_id is not null then
 34 
 35  --插入主表
 36   insert into gk_zwvch
 37     (fserialnum,
 38    FPERIOD,
 39    fgroup,
 40    fdate,
 41    fnum,
 42    fpreparer,
 43    fattachment,
 44    fmodule,
 45    jz_database,
 46    org_type,
 47    jz_fserialnum,
 48    orign_type,
 49    make_date)
 50 
 51     select v_fserialnum_1,
 52        substr(fdate, 6, 2),
 53        i_fgroup,
 54        to_date(fdate, 'yyyy-MM-dd'),
 55        0,
 56        i_fpreparer,
 57        i_fattachment,
 58        1,
 59        i_database,
 60        org_type,
 61        0,
 62        '1',
 63        sysdate
 64 
 65     from dual;
 66 
 67  /*直接支付 正常对碰*/
 68   if opertype = 0 then
 69 
 70     insert into gk_zwentry(fserialnum,fentryid,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname)
 71       select fserialnum,ROWNUM,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname from (
 72       SELECT v_fserialnum_1 fserialnum ,z.bdgt_accid || '01' || (select a.src_id_identify from bs_zjly a where a.fundno = Z.SRC_ID) facctid,'1' fclsid ,min(z.purpose) fexp,SUM(z.zf_item_amt) fdebit,0 fcredit,'1' fbanksettel ,z.prjno ftransid,'RMB' fcyid,z.unitno fobjid,z.zf_itemno zf_itemno,z.zf_itemname zf_itemname
 73        FROM (
 74       SELECT
 75          z.bdgt_accid,
 76          Z.voucher_type,
 77          z.purpose purpose,
 78          z.zf_item_amt,
 79          z.prjno,
 80          z.unitno,
 81          Z.SRC_ID,
 82          Z.budget_type,
 83          Z.budgetno,
 84          z.zf_itemno zf_itemno,
 85          z.zf_itemname zf_itemname,
 86          Z.ORG_TYPE
 87         FROM VIEW_K3_ZFZXZ_DIR Z
 88        WHERE Z.id IN
 89          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id)
 90        ) Z GROUP BY
 91        z.unitno,
 92       z.prjno,
 93       z.src_id,
 94       z.budget_type,
 95       z.budgetno,
 96       z.bdgt_accid,
 97       --z.purpose,
 98       z.prjno,
 99       z.zf_itemno
100       ,z.org_type,
101       z.voucher_type
102       ,z.zf_itemname);
103 
104     select sum(a.fdebit) into v_total from gk_zwentry a where a.fserialnum = v_fserialnum_1 ;
105     select max(a.fentryid) + 1 into v_max_index from gk_zwentry a where a.fserialnum = v_fserialnum_1;
106     insert into gk_zwentry
107     (fserialnum,
108      fentryid,
109      facctid,
110      fclsid,
111      fexp,
112      fdebit,
113      fcredit,
114      fbanksettel,
115      ftransid,
116      fcyid,
117      fobjid,
118      zf_itemno,
119      zf_itemname)
120     SELECT v_fserialnum_1,
121        v_max_index,
122        '1005',
123        '0',
124        '',
125        0,
126        v_total,
127        '1',
128        '000',
129        'RMB',
130        '*',
131        '',
132        ''
133       from dual;
134 
135       insert into gk_zwvch
136     (fserialnum,
137    FPERIOD,
138    fgroup,
139    fdate,
140    fnum,
141    fpreparer,
142    fattachment,
143    fmodule,
144    jz_database,
145    org_type,
146    jz_fserialnum,
147    orign_type,
148    make_date)
149 
150     select v_fserialnum_2,
151        substr(fdate, 6, 2),
152        i_fgroup,
153        to_date(fdate, 'yyyy-MM-dd'),
154        0,
155        i_fpreparer,
156        i_fattachment,
157        1,
158        i_database,
159        org_type,
160        0,
161        '1',
162        sysdate
163 
164     from dual;
165 
166 
167     insert into gk_zwentry
168     (fserialnum,
169      fentryid,
170      facctid,
171      fclsid,
172      fexp,
173      fdebit,
174      fcredit,
175      fbanksettel,
176      ftransid,
177      fcyid,
178      fobjid,
179      zf_itemno,
180      zf_itemname)
181     SELECT v_fserialnum_2,
182        1,
183        '1005',
184        '0',
185        '',
186        v_total,
187        0,
188        '1',
189        '000',
190        'RMB',
191        '*',
192        '',
193        ''
194       from dual;
195 
196     insert into gk_zwentry
197     (fserialnum,
198      fentryid,
199      facctid,
200      fclsid,
201      fexp,
202      fdebit,
203      fcredit,
204      fbanksettel,
205      ftransid,
206      fcyid,
207      fobjid,
208      zf_itemno,
209      zf_itemname)
210     SELECT v_fserialnum_2,
211        2,
212        '2091001',
213        '0',
214        '',
215        0,
216        v_total,
217        '1',
218        '000',
219        'RMB',
220        '*',
221        '',
222        ''
223       from dual;
224 
225     insert into gk_zwvch_refer(FSERIALNUM, orign_type,orign_id,voucher_type,origin_teable,fmodule)
226    select v_fserialnum_1 ,
227      '1' ORIGN_TYPE,
228     z.id ORIGN_ID,
229     z.voucher_type VOUCHER_TYPE,
230     'GK_ZFPZ' ORIGIN_TEABLE,
231     '1' FMODULE
232  from gk_zfpz z
233  WHERE Z.id IN
234          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id);
235 
236 
237   end if;
238    /*正常对碰 授权支付*/
239   if opertype = '1' then
240 
241    insert into gk_zwentry(fserialnum,fentryid,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname)
242       select fserialnum,ROWNUM,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname from (
243       SELECT v_fserialnum_1 fserialnum ,z.bdgt_accid || '02' || (select a.src_id_identify from bs_zjly a where a.fundno = Z.SRC_ID) facctid,'1' fclsid ,min(z.purpose) fexp,SUM(z.zf_item_amt) fdebit,0 fcredit,'1' fbanksettel ,z.prjno ftransid,'RMB' fcyid,z.unitno fobjid,z.zf_itemno zf_itemno,z.zf_itemname zf_itemname
244        FROM (
245       SELECT
246          z.bdgt_accid,
247          Z.voucher_type,
248          z.purpose purpose,
249          z.zf_item_amt,
250          z.prjno,
251          z.unitno,
252          Z.SRC_ID,
253          Z.budget_type,
254          Z.budgetno,
255          z.zf_itemno zf_itemno,
256          z.zf_itemname zf_itemname,
257          Z.ORG_TYPE
258         FROM VIEW_K3_ZFZXZ_ACC Z
259        WHERE Z.id IN
260          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id)
261        ) Z GROUP BY
262        z.unitno,
263       z.prjno,
264       z.src_id,
265       z.budget_type,
266       z.budgetno,
267       z.bdgt_accid,
268       --z.purpose,
269       z.prjno,
270       z.zf_itemno
271       ,z.org_type,
272       z.voucher_type
273       ,z.zf_itemname);
274 
275 
276       select max(a.fentryid) + 1 into v_max_index  from gk_zwentry a   where a.fserialnum = v_fserialnum_1;
277       select sum(a.fdebit) into v_total from gk_zwentry a where a.fserialnum = v_fserialnum_1 ;
278 
279 
280     insert into gk_zwentry
281     (fserialnum,
282      fentryid,
283      facctid,
284      fclsid,
285      fexp,
286      fdebit,
287      fcredit,
288      fbanksettel,
289      ftransid,
290      fcyid,
291      fobjid,
292      zf_itemno,
293      zf_itemname)
294     SELECT v_fserialnum_1,
295        v_max_index,
296        '2091002',
297        '0',
298        '',
299        0,
300        v_total,
301        '1',
302        '000',
303        'RMB',
304        '*',
305        '',
306        ''
307       from dual;
308 
309     insert into gk_zwvch_refer(FSERIALNUM, orign_type,orign_id,voucher_type,origin_teable,fmodule)
310    select v_fserialnum_1 ,
311      '1' ORIGN_TYPE,
312     z.id ORIGN_ID,
313     z.voucher_type VOUCHER_TYPE,
314     'GK_ZFPZ' ORIGIN_TEABLE,
315     '1' FMODULE
316  from gk_zfpz z
317  WHERE Z.id IN
318          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id);
319 
320 
321   end if;
322   /*全额退款的直接支付 */
323   if opertype = '2' then
324 
325     insert into gk_zwentry(fserialnum,fentryid,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname)
326       select fserialnum,ROWNUM+1,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname from (
327       SELECT v_fserialnum_1 fserialnum ,z.bdgt_accid || '01' || (select a.src_id_identify from bs_zjly a where a.fundno = Z.SRC_ID) facctid,'1' fclsid ,min(z.purpose) fexp,SUM(z.zf_item_amt) fdebit,0 fcredit,'1' fbanksettel ,z.prjno ftransid,'RMB' fcyid,z.unitno fobjid,z.zf_itemno zf_itemno,z.zf_itemname zf_itemname
328        FROM (
329       SELECT
330          z.bdgt_accid,
331          Z.voucher_type,
332          z.purpose purpose,
333          z.zf_item_amt,
334          z.prjno,
335          z.unitno,
336          Z.SRC_ID,
337          Z.budget_type,
338          Z.budgetno,
339          z.zf_itemno zf_itemno,
340          z.zf_itemname zf_itemname,
341          Z.ORG_TYPE
342         FROM VIEW_K3_ZFZXZ_DIR Z
343        WHERE Z.id IN
344          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id)
345        ) Z GROUP BY
346        z.unitno,
347       z.prjno,
348       z.src_id,
349       z.budget_type,
350       z.budgetno,
351       z.bdgt_accid,
352       --z.purpose,
353       z.prjno,
354       z.zf_itemno
355       ,z.org_type,
356       z.voucher_type
357       ,z.zf_itemname);
358 
359     select sum(a.fdebit) into v_total from gk_zwentry a where a.fserialnum = v_fserialnum_1 ;
360 
361 
362 
363     insert into gk_zwentry
364     (fserialnum,
365      fentryid,
366      facctid,
367      fclsid,
368      fexp,
369      fdebit,
370      fcredit,
371      fbanksettel,
372      ftransid,
373      fcyid,
374      fobjid,
375      zf_itemno,
376      zf_itemname)
377     SELECT v_fserialnum_1,
378        1,
379        '1005',
380        '0',
381        '',
382        v_total,
383        0,
384        '1',
385        '000',
386        'RMB',
387        '*',
388        '',
389        ''
390       from dual;
391 
392 
393 
394 
395     insert into gk_zwvch
396     (fserialnum,
397    FPERIOD,
398    fgroup,
399    fdate,
400    fnum,
401    fpreparer,
402    fattachment,
403    fmodule,
404    jz_database,
405    org_type,
406    jz_fserialnum,
407    orign_type,
408    make_date)
409 
410     select v_fserialnum_2,
411        substr(fdate, 6, 2),
412        i_fgroup,
413        to_date(fdate, 'yyyy-MM-dd'),
414        0,
415        i_fpreparer,
416        i_fattachment,
417        1,
418        i_database,
419        org_type,
420        0,
421        '1',
422        sysdate
423 
424     from dual;
425 
426     insert into gk_zwentry
427     (fserialnum,
428      fentryid,
429      facctid,
430      fclsid,
431      fexp,
432      fdebit,
433      fcredit,
434      fbanksettel,
435      ftransid,
436      fcyid,
437      fobjid,
438      zf_itemno,
439      zf_itemname)
440     SELECT v_fserialnum_2,
441        1,
442        '2091001',
443        '0',
444        '',
445        v_total,
446        0,
447        '1',
448        '000',
449        'RMB',
450        '*',
451        '',
452        ''
453       from dual;
454 
455 
456     insert into gk_zwentry
457     (fserialnum,
458      fentryid,
459      facctid,
460      fclsid,
461      fexp,
462      fdebit,
463      fcredit,
464      fbanksettel,
465      ftransid,
466      fcyid,
467      fobjid,
468      zf_itemno,
469      zf_itemname)
470     SELECT v_fserialnum_2,
471        2,
472        '1005',
473        '0',
474        '',
475        0,
476        v_total,
477        '1',
478        '000',
479        'RMB',
480        '*',
481        '',
482        ''
483       from dual;
484 
485     insert into gk_zwvch_refer(FSERIALNUM, orign_type,orign_id,voucher_type,origin_teable,fmodule)
486    select v_fserialnum_1 ,
487      '3' ORIGN_TYPE,
488     z.id ORIGN_ID,
489     z.voucher_type VOUCHER_TYPE,
490     'GK_ZFPZ' ORIGIN_TEABLE,
491     '1' FMODULE
492  from gk_zfpz z
493  WHERE Z.id IN
494          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id);
495 
496 
497   end if;
498    /*全额退款的授权支付*/
499   if opertype = '3' then
500 
501    insert into gk_zwentry(fserialnum,fentryid,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname)
502       select fserialnum,ROWNUM+1,facctid,fclsid,fexp,fdebit,fcredit,fbanksettel,ftransid,fcyid,fobjid,zf_itemno,zf_itemname from (
503       SELECT v_fserialnum_1 fserialnum ,z.bdgt_accid || '02' || (select a.src_id_identify from bs_zjly a where a.fundno = Z.SRC_ID) facctid,'1' fclsid ,min(z.purpose) fexp,SUM(z.zf_item_amt) fdebit,0 fcredit,'1' fbanksettel ,z.prjno ftransid,'RMB' fcyid,z.unitno fobjid,z.zf_itemno zf_itemno,z.zf_itemname zf_itemname
504        FROM (
505       SELECT
506          z.bdgt_accid,
507          Z.voucher_type,
508          z.purpose purpose,
509          z.zf_item_amt,
510          z.prjno,
511          z.unitno,
512          Z.SRC_ID,
513          Z.budget_type,
514          Z.budgetno,
515          z.zf_itemno zf_itemno,
516          z.zf_itemname zf_itemname,
517          Z.ORG_TYPE
518         FROM VIEW_K3_ZFZXZ_ACC Z
519        WHERE Z.id IN
520          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id)
521        ) Z GROUP BY
522        z.unitno,
523       z.prjno,
524       z.src_id,
525       z.budget_type,
526       z.budgetno,
527       z.bdgt_accid,
528       --z.purpose,
529       z.prjno,
530       z.zf_itemno
531       ,z.org_type,
532       z.voucher_type
533       ,z.zf_itemname);
534 
535     select sum(a.fdebit) into v_total from gk_zwentry a where a.fserialnum = v_fserialnum_1 ;
536 
537 
538     insert into gk_zwentry
539     (fserialnum,
540      fentryid,
541      facctid,
542      fclsid,
543      fexp,
544      fdebit,
545      fcredit,
546      fbanksettel,
547      ftransid,
548      fcyid,
549      fobjid,
550      zf_itemno,
551      zf_itemname)
552     SELECT v_fserialnum_1,
553        1,
554        '2091002',
555        '0',
556        '',
557        v_total,
558        0,
559        '1',
560        '000',
561        'RMB',
562        '*',
563        '',
564        ''
565       from dual;
566 
567 
568     insert into gk_zwvch_refer(FSERIALNUM, orign_type,orign_id,voucher_type,origin_teable,fmodule)
569    select v_fserialnum_1 ,
570      '3' ORIGN_TYPE,
571     z.id ORIGN_ID,
572     z.voucher_type VOUCHER_TYPE,
573     'GK_ZFPZ' ORIGIN_TEABLE,
574     '1' FMODULE
575  from gk_zfpz z
576  WHERE Z.id IN
577          (select GK_ZFPZ_ID from GK_ZWVCH_IDS a where pk_id = i_pk_id);
578 
579   end if;
580 
581 
582 
583 
584 
585   end if;
586 exception
587 when others then
588 o_ret := 1;
589 end PRO_K3_ZFZXZ;
590 /
591


关注下面的标签,发现更多相似文章