分享一下泛微OA与用友NC对接自动生成凭证的任务(一)
近期主要忙的一件事情就是将OA报销单据与用友NC633对接,达到自动生成凭证的效果
当时一想很简单啊,就说OA到NC的数据由我这边写程序生成,结果就苦逼了。。。
先看看MSSQL的存储过程就知道了
日常费用报销
USE [ecology]
GO/****** Object: StoredProcedure [dbo].[create_voucher_normalcost] Script Date: 2017/2/17 18:12:38 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOcreate procedure [dbo].[create_voucher_normalcost](@requestid int)
as
DECLARE @vouchertype varchar(10)
DECLARE @oaworkcode int
set @oaworkcode=0
DECLARE @cost_type nvarchar(20)
set @cost_type='RCFYBX'
DECLARE @the_number_str varchar(100)
execute getVbillno @cost_type,@the_number_str output
DECLARE @mx_id int
DECLARE @mx_tax float
DECLARE @mx_realmoney float
DECLARE @add_in_subject nvarchar(20)
DECLARE @dt_sum float
DECLARE @mx_acc_sub_code nvarchar(40)
set @dt_sum=0
DECLARE @total_normal_cost float
DECLARE @total_reception_budget float
DECLARE @total_city_traffic_cost float
DECLARE @actual_pay_num float
DECLARE @write_off_num float
set @actual_pay_num=(select actual_num from formtable_main_5 where requestid=@requestid)
set @write_off_num=(select write_offs_total from formtable_main_5 where requestid=@requestid)
set @vouchertype=(select case actual_num when 0 then '02' else '01' end from formtable_main_5 where requestid=@requestid)
set @total_normal_cost=(select normal_cost from formtable_main_5 where requestid=@requestid)
set @total_reception_budget=(select reception_budget from formtable_main_5 where requestid=@requestid)
set @total_city_traffic_cost =(select city_traffic_cost from formtable_main_5 where requestid=@requestid)/*1 日常费用报销明细 生成凭证*/
IF((@total_normal_cost is not null) and @total_normal_cost>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_5_dt1 where mainid=(select id from formtable_main_5 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_5_dt1 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_5_dt1 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生日常费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.id=d.cost_class_02left join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生税额'+CAST(CAST(tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生日常费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生日常费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.id=d.cost_class_02 left join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生日常费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.id=d.cost_class_02 left join uf_dept_oa2nc f on f.oa_dept=d.cost_dept left join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+d.reason+'产生税额'+CAST(CAST(tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.id=d.cost_class_02 left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
/*2 市内交通费用明细 生成凭证*/
IF((@total_city_traffic_cost is not null) and @total_city_traffic_cost>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_5_dt3 where mainid=(select id from formtable_main_5 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_5_dt3 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_5_dt3 where id=@mx_id)
set @mx_acc_sub_code=(select '660210' from formtable_main_5_dt3 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+'前往'+d.destination+'产生市内交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+'前往'+d.destination+'产生税额'+CAST(CAST(tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+'前往'+d.destination+'产生市内交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+'前往'+d.destination+'产生市内交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date+'前往'+d.destination+'产生市内交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date++'前往'+d.destination+'产生税额'+CAST(CAST(tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
/*3 业务招待费用明细 生成凭证*/
IF((@total_reception_budget is not null) and @total_reception_budget>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_5_dt2 where mainid=(select id from formtable_main_5 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_5_dt2 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_5_dt2 where id=@mx_id)
set @mx_acc_sub_code=(select case guest_type when 0 then '66020802' when 1 then '66020803' when 2 then '66020801' when 3 then '66020899' end from formtable_main_5_dt2 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生税额'+CAST(CAST(tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'发生税额'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (e.project_code is not null and e.project_code!='') then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join formtable_main_5_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'产生日常费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@dt_sum,@dt_sum,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when t.project_name is not null then 'FI03' else null end,h.code,h.name,case when t.sec_acc_bank is not null then '0011' else null end,case when t.sec_acc_bank is not null then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case when t.sec_acc_bank is not null then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join cost_nc_account t on t.acc_sub_code='224103'left join [oa2nc].[dbo].v_project h on h.name=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org
/*4 针对冲销或者实际报销金额生成凭证 */
/*---当实际报销支付金额大于0*/
if(@actual_pay_num>0)
beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'产生日常费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元'+'实际支付'+CAST(CAST(@actual_pay_num AS DECIMAL(20,5)) AS VARCHAR(20))+'元',l.acc_sub_code,l.acc_sub_name,'CNY',1.00000,@actual_pay_num,@actual_pay_num,null,null,case l.sec_acc_dept when '部门' then '0001' else null end,case l.sec_acc_dept when '部门' then k.code else null end,case l.sec_acc_dept when '部门' then k.name else null end,case l.sec_acc_staff when '员工' then '0002' else null end,case l.sec_acc_staff when '员工' then j.code else null end,case l.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,convert(varchar(19),getDate(),120),0,null,0from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join cost_nc_account l on l.acc_sub_code='224103'left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=l.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'产生日常费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元'+'实际支付'+CAST(CAST(@actual_pay_num AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@actual_pay_num,@actual_pay_num,case when t.sec_acc_bank is not null then '0011' else null end,case when t.sec_acc_bank is not null then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case when t.sec_acc_bank is not null then '********银行-活期' else null end,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when (t.project_name is not null and t.project_name!='') then 'FI03' else null end,h.code,h.name,null,null,null,null,null,convert(varchar(19),getDate(),120),0,1124,1from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join cost_nc_account t on t.acc_sub_code='100202'left join [oa2nc].[dbo].v_project h on h.name=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org
end
/*冲销金额大于0或者不为空时--*/
if((@write_off_num is not null) and (@write_off_num>0))
beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'产生日常费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元'+'其中冲销'+CAST(CAST(@write_off_num AS DECIMAL(20,5)) AS VARCHAR(20))+'元',l.acc_sub_code,l.acc_sub_name,'CNY',1.00000,@write_off_num,@write_off_num,null,null,case l.sec_acc_dept when '部门' then '0001' else null end,case l.sec_acc_dept when '部门' then k.code else null end,case l.sec_acc_dept when '部门' then k.name else null end,case l.sec_acc_staff when '员工' then '0002' else null end,case l.sec_acc_staff when '员工' then j.code else null end,case l.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,convert(varchar(19),getDate(),120),0,l.cashflow_code,1from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join cost_nc_account l on l.acc_sub_code='224103'left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.name=l.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select distinct c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'产生日常费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元'+'其中冲销'+CAST(CAST(@write_off_num AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@write_off_num,@write_off_num,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,case t.sec_acc_bank when '银行' then '0011' else null end,case t.sec_acc_bank when '银行' then (select accnum from [oa2nc].[dbo].v_bankdoc where accname='********银行-活期') else null end,case t.sec_acc_bank when '银行' then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,1from formtable_main_5 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join [oa2nc].[dbo].v_orgs c on c.name=b.subcompanyname left join cost_nc_account t on t.acc_sub_code='12210204' left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join [oa2nc].[dbo].v_dept g on f.nc_dept=g.pk_deptleft join [oa2nc].[dbo].v_project h on h.code=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org end
GO
差旅费用报销
USE [ecology]
GO/****** Object: StoredProcedure [dbo].[create_voucher_travel] Script Date: 2017/2/17 18:20:12 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOcreate procedure [dbo].[create_voucher_travel](@requestid int)
as
DECLARE @vouchertype varchar(10)
DECLARE @oaworkcode int
set @oaworkcode=0
DECLARE @cost_type nvarchar(20)
set @cost_type='CLFYBX'
DECLARE @the_number_str varchar(100)
execute getVbillno @cost_type,@the_number_str output
DECLARE @mx_id int
DECLARE @mx_tax float
DECLARE @mx_realmoney float
DECLARE @add_in_subject nvarchar(20)
DECLARE @dt_sum float
DECLARE @mx_acc_sub_code nvarchar(40)
set @dt_sum=0
DECLARE @total_travel float
DECLARE @total_meal float
DECLARE @total_accom float
DECLARE @total_enter float
DECLARE @actual_pay_num float
DECLARE @write_off_num float
set @actual_pay_num=(select actual_pay_num from formtable_main_22 where requestid=@requestid)
set @write_off_num=(select write_off_num from formtable_main_22 where requestid=@requestid)
set @vouchertype=(select case actual_pay_num when 0 then '02' else '01' end from formtable_main_22 where requestid=@requestid)
set @total_travel=(select total_travel from formtable_main_22 where requestid=@requestid)
set @total_meal=(select total_meal from formtable_main_22 where requestid=@requestid)
set @total_accom=(select total_accom from formtable_main_22 where requestid=@requestid)
set @total_enter=(select total_enter from formtable_main_22 where requestid=@requestid)/*1 差旅交通明细 生成凭证*/
IF((@total_travel is not null) and @total_travel>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_22_dt1 where mainid=(select id from formtable_main_22 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_22_dt1 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_22_dt1 where id=@mx_id)
set @mx_acc_sub_code=(select case vehicle when 16 then '66020601'when 91 then '66020601'when 17 then '66020602'when 18 then '66020602'when 19 then '66020602' endfrom formtable_main_22_dt1 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅交通费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'从'+d.departure_place+'出发到'+d.destination+'产生差旅费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt1 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
----
/*2 差旅工作餐明细 生成凭证*/
IF((@total_meal is not null) and @total_meal>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_22_dt2 where mainid=(select id from formtable_main_22 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_22_dt2 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_22_dt2 where id=@mx_id)
set @mx_acc_sub_code=(select '66020603' from formtable_main_22_dt2 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_02+'在'+d.cost_palce_02+'产生差旅工作餐费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt2 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
/*3 差旅工作 酒店 生成凭证*/
IF((@total_accom is not null) and @total_accom>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_22_dt3 where mainid=(select id from formtable_main_22 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_22_dt3 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_22_dt3 where id=@mx_id)
set @mx_acc_sub_code=(select '66020604' from formtable_main_22_dt3 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.cost_date_01+'在'+d.cost_palce_02+d.hotel_name+'产生差旅住宿费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt3 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
/*4 差旅发生的对外招待明细 生成凭证*/
IF((@total_enter is not null) and @total_enter>0)
begin
DECLARE this_cursor Cursor for
select id from formtable_main_22_dt4 where mainid=(select id from formtable_main_22 where requestid=@requestid)
Open this_cursor Fetch Next From this_cursor Into @mx_id
While ( @@Fetch_Status=0 )
begin
set @mx_tax=(select tax from formtable_main_22_dt4 where id=@mx_id)
SET @mx_realmoney=(select real_money from formtable_main_22_dt4 where id=@mx_id)
set @mx_acc_sub_code=(select case guest_type when 0 then '66020802' end from formtable_main_22_dt4 where id=@mx_id)
set @add_in_subject=(select add_in_subject from uf_cost_category where acc_sub_code=@mx_acc_sub_code)
---1、不进成本
if(@add_in_subject is null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org
if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax end---2、进成本if(@add_in_subject is not null)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.acc_sub_code,e.acc_sub_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,real_money,real_money,null,null,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用'+CAST(CAST(real_money AS DECIMAL(20,5)) AS VARCHAR(20))+'元',e.add_in_subject_code,e.add_in_subject_name,'CNY',1.00000,null,null,real_money,real_money,case e.sec_acc_dept when 0 then '0001' else null end,case e.sec_acc_dept when 0 then k.code else null end,case e.sec_acc_dept when 0 then k.name else null end,case e.sec_acc_staff when 0 then '0002' else null end,case e.sec_acc_staff when 0 then j.code else null end,case e.sec_acc_staff when 0 then j.name else null end,case e.sec_acc_customer when 0 then '004' else null end,null,null,case e.sec_acc_supplier when 0 then '004' else null end,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case e.sec_acc_bank when 0 then '0011' else null end,case e.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,e.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org if(@mx_tax>0)beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,g.name+j.name+d.reception_date+'在'+d.guest_place+'产生业务招待费用税额'+CAST(CAST(d.tax AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,d.tax,d.tax,null,null,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when e.project_code is not null then 'FI03' else null end,e.project_code,h.name,case t.sec_acc_bank when 0 then '0011' else null end,case t.sec_acc_bank when 0 then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case e.sec_acc_bank when 0 then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join formtable_main_22_dt4 d on d.mainid=a.idleft join uf_cost_category e on e.acc_sub_code=@mx_acc_sub_code left join cost_nc_account t on t.acc_sub_code=e.tax_subject_codeleft join uf_dept_oa2nc f on f.oa_dept=d.cost_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=e.project_codeleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and d.id=@mx_id and k.pk_org=c.pk_org and j.pk_org=c.pk_org endset @dt_sum=@dt_sum+@mx_realmoney+@mx_tax endFetch Next From this_cursor Into @mx_idend
Close this_cursor
Deallocate this_cursor
end
INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'出差产生差旅费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元',t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@dt_sum,@dt_sum,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when t.project_name is not null then 'FI03' else null end,h.code,h.name,case when t.sec_acc_bank is not null then '0011' else null end,case when t.sec_acc_bank is not null then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case when t.sec_acc_bank is not null then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join cost_nc_account t on t.acc_sub_code='224103'left join oa2nc.dbo.v_project h on h.name=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org
/*5 针对冲销或者实际报销金额生成凭证 *//*---当实际报销支付金额大于0*/
if(@actual_pay_num>0)
beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'出差产生差旅费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元 实际报销'+CAST(CAST(@actual_pay_num AS DECIMAL(20,5)) AS VARCHAR(20)),q.acc_sub_code,q.acc_sub_name,'CNY',1.00000,@actual_pay_num,@actual_pay_num,null,null,case q.sec_acc_dept when '部门' then '0001' else null end,case q.sec_acc_dept when '部门' then k.code else null end,case q.sec_acc_dept when '部门' then k.name else null end,case q.sec_acc_staff when '员工' then '0002' else null end,case q.sec_acc_staff when '员工' then j.code else null end,case q.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,convert(varchar(19),getDate(),120),0,null,0from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join cost_nc_account q on q.acc_sub_code='224103'left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=q.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'出差产生差旅费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元 实际报销'+CAST(CAST(@actual_pay_num AS DECIMAL(20,5)) AS VARCHAR(20)),t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@actual_pay_num,@actual_pay_num,case when t.sec_acc_bank is not null then '0011' else null end,case when t.sec_acc_bank is not null then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case when t.sec_acc_bank is not null then '********银行-活期' else null end,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,case when t.project_name is not null then 'FI03' else null end,h.code,h.name,null,null,null,null,null,convert(varchar(19),getDate(),120),0,1124,1from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join cost_nc_account t on t.acc_sub_code='100202'left join oa2nc.dbo.v_project h on h.name=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.name where a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org
end
/*冲销金额大于0或者不为空时--*/
if((@write_off_num is not null) and (@write_off_num>0))
beginINSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'出差产生差旅费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元 冲销借款'+CAST(CAST(@write_off_num AS DECIMAL(20,5)) AS VARCHAR(20)),q.acc_sub_code,q.acc_sub_name,'CNY',1.00000,@write_off_num,@write_off_num,null,null,case q.sec_acc_dept when '部门' then '0001' else null end,case q.sec_acc_dept when '部门' then k.code else null end,case q.sec_acc_dept when '部门' then k.name else null end,case q.sec_acc_staff when '员工' then '0002' else null end,case q.sec_acc_staff when '员工' then j.code else null end,case q.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,convert(varchar(19),getDate(),120),0,q.cashflow_code,1from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join cost_nc_account q on q.acc_sub_code='224103'left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.name=q.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org INSERT INTO [oa2nc].[dbo].[bd_voucher]([pk_corp],[pk_group],[pk_org],[billmaker],[billdate],[creator],[creationtime],[glorgbook_code],[glorgbook],[vouchertype],[tallydate]
,[oarequestID],[oaworkcode],[Oacode],[vbillno],[explanation],[accsubjcode],[accsubjname],[currency],[exchange],[baldebitmny],[baldebitlocalmny],[balcreditmny],[balcreditlocalmny],[checktype1]
,[checkcode1],[checkname1],[checktype2],[checkcode2],[checkname2],[checktype3],[checkcode3],[checkname3],[checktype4],[checkcode4],[checkname4],[checktype5],[checkcode5],[checkname5]
,[checktype6],[checkcode6],[checkname6],[vdef1],[vdef2],[vdef3],[vdef4],[vdef5],[ts],[dr],[pk_cashflow],[cashflowflag])select c.code,'01',c.code,'v-wantao.zhang',convert(varchar(10),getDate(),120),'v-wantao.zhang',convert(varchar(19),getDate(),120),c.accountcode,c.accountname,@vouchertype,convert(varchar(10),getDate(),120),@requestid,@oaworkcode,doc_number,@the_number_str,j.name+'因'+a.applay_reason+'出差产生差旅费用'+CAST(CAST(@dt_sum AS DECIMAL(20,5)) AS VARCHAR(20))+'元 实际报销'+CAST(CAST(@write_off_num AS DECIMAL(20,5)) AS VARCHAR(20)),t.acc_sub_code,t.acc_sub_name,'CNY',1.00000,null,null,@write_off_num,@write_off_num,case t.sec_acc_dept when '部门' then '0001' else null end,case t.sec_acc_dept when '部门' then k.code else null end,case t.sec_acc_dept when '部门' then k.name else null end,case t.sec_acc_staff when '员工' then '0002' else null end,case t.sec_acc_staff when '员工' then j.code else null end,case t.sec_acc_staff when '员工' then j.name else null end,null,null,null,null,null,null,null,null,null,case t.sec_acc_bank when '银行' then '0011' else null end,case t.sec_acc_bank when '银行' then (select accnum from oa2nc.dbo.v_bankdoc where accname='********银行-活期') else null end,case t.sec_acc_bank when '银行' then '********银行-活期' else null end,null,null,null,null,null,convert(varchar(19),getDate(),120),0,t.cashflow_code,1from formtable_main_22 aleft join hrmsubcompany b on a.reimbursement_unit=b.idleft join oa2nc.dbo.v_orgs c on c.name=b.subcompanyname left join cost_nc_account t on t.acc_sub_code='12210204' left join uf_dept_oa2nc f on f.oa_dept=a.applay_deptleft join oa2nc.dbo.v_dept g on f.nc_dept=g.pk_deptleft join oa2nc.dbo.v_project h on h.code=t.project_nameleft join uf_staff_oa2nc i on i.oa_staff=a.applicant_submitleft join [oa2nc].[dbo].v_psndoc j on i.nc_psndoc=j.pk_psndoc left join oa2nc.dbo.v_dept_normal k on g.name=k.namewhere a.requestid=@requestid and k.pk_org=c.pk_org and j.pk_org=c.pk_org end
GO
分享一下泛微OA与用友NC对接自动生成凭证的任务(一)相关推荐
- 友空间自建应用 集成泛微OA移动端
因公司领导要求,购买了用友的NCC21111的人力模块,然后移动端使用的友空间 发现贼不好用. 所以NCC能完成的人事功能放在了NCC上,完不成的放在了泛微OA ecology上. 现在人力总监想在友 ...
- ajax 泛微oa表单js_泛微oa流程表单二次开发新人注意事项,
泛微oa流程表单二次开发新人注意事项, 1.泛微的PC端和手机端使用的jQuery代码通用吗? 答:根据实际操作情况,泛微的PC端和手机端使用的jQuery代码并不是通用的,pc端的代码有些不能在手机 ...
- 雨润oa系统服务器 e-mobile,泛微OA系统e-mobile让办公更安全
<泛微OA系统e-mobile让办公更安全>由会员分享,可在线阅读,更多相关<泛微OA系统e-mobile让办公更安全(2页珍藏版)>请在人人文库网上搜索. 1.移动办公专家. ...
- 泛微OA系统助力江南电缆打造“六合一”数字管理平台
近日,知名电线电缆品牌--无锡江南电缆有限公司携手泛微OA系统,通过打造协同管理平台,实现集团业务与信息的统一协同. ...
- 泛微OA二次开发环境搭建
泛微OA二次开发环境搭建 **前言:**本次分享主要分两个方面,1.基于泛微e8测试安装包的二次开发环境:2.基于公司内容OA搭建备份后的二次开发环境,20190819这天是我搭建成功的第一天,经验欠 ...
- SAP ABAP 我的文章合集:SAP ERP 与泛微 OA 的系统集成
SAP ABAP 我的文章合集:SAP ERP 与泛微 OA 的系统集成 简介: 本文章合集收录了我关于 SAP ERP 与泛微 OA 的系统集成相关文章,新的文章会被及时更新到本合集中.SAP ER ...
- webservice python开发接口_基于Python的Webservice开发(四)-泛微OA的SOAP接口
一.功能需求 泛微e-cology可以在流程中调用Webservice接口实现与其他系统的联动等复杂功能.但是目前泛微文档中仅提供了调用的方法,但是没有关于接口的相关开发信息. 本次案例是用Pytho ...
- 泛微oa系统什么框架_泛微移动办公OA系统走进江苏国曜信息科技有限公司
近日,泛微凭借以"简单高效"为核心的协同OA办公系统与江苏国曜信息科技有限公司成功合作,泛微将助力企业信息化建设,促进其管理水平的迅速提升.江苏国曜信息科技有限公司成立于2018年 ...
- 【文档留存】泛微OA POC
泛微OA &&POC 泛微OA 多版本存在命令执行 POC&EXP来源于网络 漏洞描述: 泛微e-cology OA系统的J**A Beanshell接口可被未授权访问,攻击者 ...
- 泛微OA二次开发E8之UE富文本编辑器增加按钮操作
泛微OA协同办公系统在这里就不多作描述,有需要的可自行了解. 现在说说我遇到的问题以及解决方案. 遇到的需求问题 公司有自己的文件存储服务器,所以想把图片上传和文件上传都传输到自己的服务器上,所以需要 ...
最新文章
- 不懂这几个问题就落后了:Python、Android开发者必读!
- boost::math模块查找正态分布的均值或标准差的示例
- sql2000 中 存储过程 相关
- QT与openCV,与PCL结合!
- 个人博客管理系统_教程 | 一文搭建你的第一个免费专属博客
- GDB与远程(交叉)GDB调试
- C#递归遍历指定目录下文件和文件夹
- SS不能在Win7中打开,出现停止运行
- uBLAS——Boost 线性代数基础程序库 (三)
- spark checkpoint
- 《Java核心技术 卷12》读书笔记
- 处理minidump文件用到的“工具”的分享
- 使用octomap_server将点云地图转化为八叉树地图和占据栅格地图
- vlan tenant network on ovn based dvr (by quqi99)
- linux的adsl拨号上网,详细讲解Linux系统下ADSL拨号上网的方法
- windows server测评 等保2.0
- ICASPP2022论文阅读记录2 - Transformer-S2A
- 高红梅 第二章 第二节 性别焦虑、两性关系与个人身份认同的困境
- zhuan 常用图像数据集:标注、检索
- 项目经理必须知道的7种项目管理方案