标签:存储 同步 mtcode 过程 tt mst WHEN MTCode ref
四家公司数据同步
目录
MaterialTransactionsView需要的表
item |
itemloc |
matltran |
transfer |
prodvar |
prodcode |
matltran_amt |
reason |
non_inventory_item |
jobmatl |
projmatl |
rmaitem |
coitem |
poitem |
citemh |
pitemh |
parms |
已同步的表
item |
poitem |
itemloc |
matltran |
prodcode |
reason |
non_inventory_item |
jobmatl |
rmaitem |
coitem |
parms |
未同步的表
transfer |
prodvar |
matltran_amt |
projmatl |
citemh |
pitemh |
(transfer_mst)转移单同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步转移单表
修改描述:
修改日期:
执行过程:
EXEC BI_projmatl_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
--select count(*) from syscolumns where id = object_id('transfer');
create proc BI_transfer_mst as --从ERP里取(transfer)转移单表
begin
declare @sql nvarchar(max) --sql语句变量
,
@select nvarchar(max) --sql语句中的select
--,@select1 nvarchar(max) --sql语句中的select
,
@table1 nvarchar(100) = '[192.168.0.12\slsqlserver].nydt_app10.dbo.transfer_mst with(nolock)' --南阳转移单表
,
@table2 nvarchar(100) = '[192.168.0.62\slsqlserver].gddtgk_app.dbo.transfer_mst with(nolock)' --广东转移单表
,
@table3 nvarchar(100) = '[192.168.0.12\slsqlserver].dtcz_app.dbo.transfer_mst with(nolock)' --超智转移单表
,
@table4 nvarchar(100) = '[192.168.0.12\slsqlserver].dtx_app.dbo.transfer_mst with(nolock)' --鼎泰鑫转移单表
,
@record int --记录数
,
@dateS datetime = dateadd(month, -3, getdate()),
@where nvarchar(max) = ' where ' if object_id('tempdb..##transfer_mst') is not null drop table ##transfer_mst
if object_id('tempdb..#transfer_mst_all') is not null drop table #transfer_mst_all
--设置获取的列
set @select = 'select site_ref
,trn_num
,from_whse
,to_whse
,stat
,ship_code
,weight
,qty_packages
,from_site
,to_site
,entered_site
,fob_site
,exch_rate
,freight_vendor
,duty_vendor
,brokerage_vendor
,frt_alloc_percent
,duty_alloc_percent
,brk_alloc_percent
,est_freight_amt
,act_freight_amt
,est_brokerage_amt
,act_brokerage_amt
,est_duty_amt
,act_duty_amt
,freight_amt_t
,brokerage_amt_t
,duty_amt_t
,duty_alloc_meth
,frt_alloc_meth
,brk_alloc_meth
,duty_alloc_type
,frt_alloc_type
,brk_alloc_type
,trans_nat
,process_ind
,delterm
,NoteExistsFlag
,RecordDate
,RowPointer
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,ins_vendor
,ins_alloc_percent
,ins_alloc_type
,est_insurance_amt
,ins_alloc_meth
,act_insurance_amt
,insurance_amt_t
,loc_frt_vendor
,loc_frt_alloc_percent
,loc_frt_alloc_type
,est_local_freight_amt
,loc_frt_alloc_meth
,act_local_freight_amt
,local_freight_amt_t
,trans_nat_2
,export_type
,order_date
,fs_mobile_transfer_match
,fs_mobile_transfer_lot
,fs_mobile_transfer_ser_num
,empnum
from ' --把4个库的表合并
--把4个库的表合并
-- select * into 表b from 表a where 1=2
--这样实现了拷贝一个表结构的目的;
--如果条件是“1=1”就是选择所有记录。
SET @sql = 'select * into ##transfer_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##transfer_mst
select * from(' + @select + @table1 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table2 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table3 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table4 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + '''' + ')a' exec (@sql) --源表s 与目标表t 完全外联,条件:站点、单号、修改时间
select s.site_ref,
s.trn_num,
s.recordDate,
t.site_ref as site_ref_t,
t.trn_num as trn_num_t,
t.RecordDate as recordDate_t into #transfer_mst_all
from (
select *
from transfer_mst
where CreateDate > convert(nvarchar(10), @dateS, 20)
) t
full outer join ##transfer_mst s on s.site_ref =t.site_ref
and s.trn_num = t.trn_num
and s.RecordDate = t.RecordDate --源表s 为空的删除目标表对应数据
select @record = count(*)
from #transfer_mst_all where site_ref is null
if @record > 0 begin delete t
from transfer_mst t,
#transfer_mst_all a
where t.site_ref = a.site_ref_t
and t.trn_num = a.trn_num_t
and a.site_ref is null
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('transfer_mst', @record, '删除数据', getdate())
end --源表s 为空的删除目标表对应数据
select @record = count(*)
from #transfer_mst_all where site_ref_t is null
if @record > 0 begin
insert into transfer_mst
select s.*
from ##transfer_mst s
join #transfer_mst_all a on s.site_ref=a.site_ref and s.trn_num=a.trn_num and a.site_ref_t is null
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('transfer_mst', @record, '插入数据', getdate())
end if object_id('tempdb..#transfer_mst') is not null drop table #transfer_mst
if object_id('tempdb..#transfer_mst_all') is not null drop table #transfer_mst_all
end
(prodvar_mst)产品码同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步产品码表
修改描述:
修改日期:
执行过程:
EXEC BI_projmatl_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
--select count(*) from syscolumns where id = object_id('prodvar');
create proc BI_prodvar_mst as --从ERP里取(prodvar)产品码
begin
declare @sql nvarchar(max) --sql语句变量
,
@select nvarchar(max) --sql语句中的select
--,@select1 nvarchar(max) --sql语句中的select
,
@table1 nvarchar(100) = '192.168.0.12\slsqlserver.nydt_app10.dbo.prodvar_mst with(nolock)' --南阳产品码表
,
@table2 nvarchar(100) = '192.168.0.62\slsqlserver.gddtgk_app.dbo.prodvar_mst with(nolock)' --广东产品码表
,
@table3 nvarchar(100) = '192.168.0.12\slsqlserver.dtcz_app.dbo.prodvar_mst with(nolock)' --超智产品码表
,
@table4 nvarchar(100) = '192.168.0.12\slsqlserver.dtx_app.dbo.prodvar_mst with(nolock)' --鼎泰鑫产品码表
,
@record int --记录数
,
@dateS datetime = dateadd(month, -3, getdate()),
@where nvarchar(max) = ' where ' if object_id('tempdb..##prodvar_mst') is not null drop table ##prodvar_mst
if object_id('tempdb..#prodvar_mst_all') is not null drop table #prodvar_mst_all
--设置获取的列
set @select = 'select site_ref
,product_code
,pcv_acct
,muv_acct
,lrv_acct
,luv_acct
,flouv_acct
,vlouv_acct
,fmouv_acct
,vmouv_acct
,srv_acct
,slr_acct
,dcv_acct
,fcv_acct
,bcv_acct
,fmcouv_acct
,vmcouv_acct
,pcv_acct_unit1
,pcv_acct_unit2
,pcv_acct_unit3
,pcv_acct_unit4
,muv_acct_unit1
,muv_acct_unit2
,muv_acct_unit3
,muv_acct_unit4
,lrv_acct_unit1
,lrv_acct_unit2
,lrv_acct_unit3
,lrv_acct_unit4
,luv_acct_unit1
,luv_acct_unit2
,luv_acct_unit3
,luv_acct_unit4
,flouv_acct_unit1
,flouv_acct_unit2
,flouv_acct_unit3
,flouv_acct_unit4
,vlouv_acct_unit1
,vlouv_acct_unit2
,vlouv_acct_unit3
,vlouv_acct_unit4
,fmouv_acct_unit1
,fmouv_acct_unit2
,fmouv_acct_unit3
,fmouv_acct_unit4
,vmouv_acct_unit1
,vmouv_acct_unit2
,vmouv_acct_unit3
,vmouv_acct_unit4
,srv_acct_unit1
,srv_acct_unit2
,srv_acct_unit3
,srv_acct_unit4
,slr_acct_unit1
,slr_acct_unit2
,slr_acct_unit3
,slr_acct_unit4
,dcv_acct_unit1
,dcv_acct_unit2
,dcv_acct_unit3
,dcv_acct_unit4
,fcv_acct_unit1
,fcv_acct_unit2
,fcv_acct_unit3
,fcv_acct_unit4
,bcv_acct_unit1
,bcv_acct_unit2
,bcv_acct_unit3
,bcv_acct_unit4
,fmcouv_acct_unit1
,fmcouv_acct_unit2
,fmcouv_acct_unit3
,fmcouv_acct_unit4
,vmcouv_acct_unit1
,vmcouv_acct_unit2
,vmcouv_acct_unit3
,vmcouv_acct_unit4
,NoteExistsFlag
,RecordDate
,RowPointer
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,icv_acct
,icv_acct_unit1
,icv_acct_unit2
,icv_acct_unit3
,icv_acct_unit4
,lfcv_acct
,lfcv_acct_unit1
,lfcv_acct_unit2
,lfcv_acct_unit3
,lfcv_acct_unit4
,pouv_acct
,pouv_acct_unit1
,pouv_acct_unit2
,pouv_acct_unit3
,pouv_acct_unit4
from ' --把4个库的表合并
--把4个库的表合并
-- select * into 表b from 表a where 1=2
--这样实现了拷贝一个表结构的目的;
--如果条件是“1=1”就是选择所有记录。
SET @sql = 'select * into ##prodvar_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##prodvar_mst
select * from(' + @select + @table1
+ ' union all' + @select + @table2
+ ' union all' + @select + @table3
+ ' union all' + @select + @table4
+ ')a' exec (@sql) --源表s 与目标表t 完全外联,条件:站点、产品码、修改时间
select s.site_ref,
s.product_code,
s.RecordDate,
t.site_ref as site_ref_t,
t.product_code as trn_num_t,
t.RecordDate as recordDate_t into #prodvar_mst_all
from prodvar_mst t
full outer join ##prodvar_mst s on s.site_ref=t.site_ref and s.product_code=t.product_code and s.RecordDate=t.RecordDate
--源表s 为空的删除目标表对应数据
select @record = count(*)
from #prodvar_mst_all where site_ref is null
if @record > 0 begin delete t
from prodvar_mst t,
#prodvar_mst_all a
where t.site_ref = a.site_ref_t
and t.product_code = a.product_code
and a.site_ref is null
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('prodvar_mst', @record, '删除数据', getdate())
end --源表s 为空的删除目标表对应数据
select @record = count(*)
from #prodvar_mst_all where site_ref_t is null
if @record > 0 begin
insert into prodvar_mst
select s.*
from ##prodvar_mst s
join #prodvar_mst_all a on s.site_ref=a.site_ref and s.product_code=a.product_code and a.site_ref_t is null
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('prodvar_mst', @record, '插入数据', getdate())
end if object_id('tempdb..##prodvar_mst') is not null drop table ##prodvar_mst
if object_id('tempdb..#prodvar_mst_all') is not null drop table #prodvar_mst_all
end
(projmatl_mst)项目物料表同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步项目物料表
修改描述:
修改日期:
执行过程:
EXEC BI_projmatl_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
--select count(*) from syscolumns where id = object_id('projmatl');
create proc BI_projmatl_mst as --从ERP里取(projmatl)项目物料表
begin
declare @sql nvarchar(max) --sql语句变量
,
@select nvarchar(max) --sql语句中的select
--,@select1 nvarchar(max) --sql语句中的select
,
@table1 nvarchar(100) = '192.168.0.12\slsqlserver.nydt_app10.dbo.projmatl_mst with(nolock)' --南阳项目物料表
,
@table2 nvarchar(100) = '192.168.0.62\slsqlserver.gddtgk_app.dbo.projmatl_mst with(nolock)' --广东项目物料表
,
@table3 nvarchar(100) = '192.168.0.12\slsqlserver.dtcz_app.dbo.projmatl_mst with(nolock)' --超智项目物料表
,
@table4 nvarchar(100) = '192.168.0.12\slsqlserver.dtx_app.dbo.projmatl_mst with(nolock)' --鼎泰鑫项目物料表
,
@record int --记录数
,
@dateS datetime = dateadd(month, -3, getdate()),
@where nvarchar(max) = ' where ' if object_id('tempdb..##projmatl_mst') is not null drop table ##projmatl_mst
if object_id('tempdb..#projmatl_mst_all') is not null drop table #projmatl_mst_all
--设置获取的列
set @select = 'select site_ref
,proj_num
,task_num
,seq
,item
,item_desc
,cost_code
,matl_type
,matl_qty
,matl_qty_conv
,u_m
,cost
,cost_conv
,matl_cost
,lbr_cost
,fovhd_cost
,vovhd_cost
,out_cost
,ref_type
,ref_num
,ref_line_suf
,ref_release
,qty_issued
,a_cost
,matl_a_cost
,lbr_a_cost
,fovhd_a_cost
,vovhd_a_cost
,out_a_cost
,matl_cost_conv
,lbr_cost_conv
,fovhd_cost_conv
,vovhd_cost_conv
,out_cost_conv
,whse
,charfld1
,charfld2
,charfld3
,datefld
,decifld1
,decifld2
,decifld3
,logifld
,qty_packed
,qty_shipped
,projected_date
,NoteExistsFlag
,RecordDate
,RowPointer
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,trans_nat
,trans_nat_2
,delterm
,process_ind
,comm_code
,origin
,unit_weight
,suppl_qty_conv_factor
,ec_code
,export_value
,transport
,due_date
from ' --把4个库的表合并
--把4个库的表合并
-- select * into 表b from 表a where 1=2
--这样实现了拷贝一个表结构的目的;
--如果条件是“1=1”就是选择所有记录。
SET @sql = 'select * into ##projmatl_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##projmatl_mst
select * from(' + @select + @table1 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table2 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table3 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + ''''
+ ' union all' + @select + @table4 + '''' + @where + ' CreateDate>''' + convert(nvarchar(10), @dateS, 20) + '''' + ')a' exec (@sql) --使用 FULL OUTER JOIN 全连接新表和旧表,将两张表的指定字段存入,条件:站点、项目单号、任务单号、seq、修改时间
select s.site_ref,
s.proj_num,
s.task_num,
s.seq,
s.RecordDate,
t.site_ref as site_ref_t,
t.proj_num as proj_num_t,
t.task_num as task_num_t,
t.seq as seq_t,
t.RecordDate as RecordDate_t into #projmatl_mst_all
from (
select *
from projmatl_mst
where CreateDate > convert(nvarchar(10), @dateS, 20)
) t
full outer join ##projmatl_mst s on s.site_ref = t.site_ref_t and
s.proj_num = t.proj_num_t
and s.task_num = t.task_num_t
and s.seq = t.seq_t
and s.RecordDate = t.RecordDate_t --检测是否存在 site_ref 为 null 的记录 (检测是否有新表已删除的记录)
select @record = count(*)
from #projmatl_mst_all where site_ref is null
if @record > 0 begin delete t
from projmatl_mst t,
#projmatl_mst_all a
where s.site_ref = a.site_ref_t
and s.proj_num = a.proj_num_t
and s.task_num = a.task_num_t
and s.seq = a.seq_t
and a.site_ref_t is null --在 ERPToBIDataUupdateLog 表中,存入对数据的删除操作
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('projmatl_mst', @record, '删除数据', getdate())
end --检测是否存在 site_ref_t 为 null 的记录 (检测是否有旧表未存入的记录)
select @record = count(*)
from #projmatl_mst_all where site_ref_t is null
if @record > 0 begin
insert into projmatl_mst
select s.*
from ##projmatl_mst s
join #projmatl_mst_all a on s.site_ref = a.site_ref_t and
s.proj_num = a.proj_num_t
and s.task_num = a.task_num_t
and s.seq = a.seq_t
and a.site_ref_t is null --在 ERPToBIDataUupdateLog 表中,存入对数据的添加操作
insert into ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
values('projmatl_mst', @record, '插入数据', getdate())
end if object_id('tempdb..##projmatl_mst') is not null drop table ##projmatl_mst
if object_id('tempdb..#projmatl_mst_all') is not null drop table #projmatl_mst_all
end
(matltran_amt_mst)物料处理金额表同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步物料处理金额表
修改描述:
修改日期:
执行过程:
EXEC BI_matltran_amt_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
create PROCEDURE dbo.BI_matltran_amt_mst AS BEGIN --return
DECLARE @sql NVARCHAR(MAX);
--sql语句变量
DECLARE @select NVARCHAR(MAX);
--sql语句中的select
DECLARE @table1 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtcz_app.dbo.matltran_amt_mst with(nolock)';
--超智物料处理金额表
DECLARE @table2 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtx_app.dbo.matltran_amt_mst with(nolock)';
--鼎泰鑫物料处理金额表
DECLARE @table3 NVARCHAR(100) = '192.168.0.12\slsqlserver.nydt_app10.dbo.matltran_amt_mst with(nolock)';
--南阳物料处理金额表
DECLARE @table4 NVARCHAR(100) = '192.168.0.62\slsqlserver.gddtgk_app.dbo.matltran_amt_mst with(nolock)';
--广东物料处理金额表
DECLARE @record INT --记录数
,
@dateS datetime = dateadd(day, -3, getdate()) --,@dateS datetime=dateadd(month,-1,getdate())
--set @dateS = '2021-01-01'
set @dateS = convert(nvarchar(10), @dateS, 20)
DECLARE @where NVARCHAR(MAX) = ' where CreateDate>=' + '''' + convert(nvarchar(100), @dateS, 120) + ''''
IF OBJECT_ID('tempdb..##matltran_amt_mst') IS NOT NULL BEGIN DROP TABLE ##matltran_amt_mst
END --删除旧临时表(#matltran_amt_mstall)
IF OBJECT_ID('tempdb..#matltran_amt_mstall') IS NOT NULL BEGIN DROP TABLE #matltran_amt_mstall
END --从指定表中提出共同的需求的表字段,填充select语句
SET @select = 'select site_ref
,trans_num
,trans_seq
,amt
,acct
,acct_unit1
,acct_unit2
,acct_unit3
,acct_unit4
,matl_amt
,matl_acct
,matl_acct_unit1
,matl_acct_unit2
,matl_acct_unit3
,matl_acct_unit4
,lbr_amt
,lbr_acct
,lbr_acct_unit1
,lbr_acct_unit2
,lbr_acct_unit3
,lbr_acct_unit4
,fovhd_amt
,fovhd_acct
,fovhd_acct_unit1
,fovhd_acct_unit2
,fovhd_acct_unit3
,fovhd_acct_unit4
,vovhd_amt
,vovhd_acct
,vovhd_acct_unit1
,vovhd_acct_unit2
,vovhd_acct_unit3
,vovhd_acct_unit4
,out_amt
,out_acct
,out_acct_unit1
,out_acct_unit2
,out_acct_unit3
,out_acct_unit4
,NoteExistsFlag
,RecordDate
,RowPointer
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,include_in_inventory_bal_calc from ' --拼接sql语句 功能: 将指定表中共同的需求的字段填充入 ##matltran_amt_mst 临时表内
SET @sql = 'select * into ##matltran_amt_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##matltran_amt_mst
select * from(' + @select + @table1 + @where + ' union all ' + @select + @table2 + @where + ' union all ' + @select + @table3 + @where + ' union all ' + @select + @table4 + @where + ') a' --执行sql
--print @sql
EXEC (@sql) --使用 FULL OUTER JOIN 全连接新表和旧表,将两张表的指定字段存入 #matltran_amt_mstall
SELECT s.site_ref,
s.trans_num,
s.trans_seq,
s.RecordDate,
t.site_ref AS site_ref_t,
t.trans_num AS trans_num_t,
t.trans_seq AS trans_seq_t,
t.RecordDate AS recordDate_t INTO #matltran_amt_mstall
FROM (
select *
from matltran_amt_mst with(nolock)
where CreateDate >= @dateS
) t
FULL OUTER JOIN ##matltran_amt_mst s
ON s.site_ref = t.site_ref
AND s.trans_num = t.trans_num_t
AND s.trans_seq = t.trans_seq_t
AND s.RecordDate = t.recordDate_t --检测是否存在 site_ref 为 null 的记录 (检测是否有新表已删除的记录)
SELECT @record = COUNT(*)
FROM #matltran_amt_mstall WHERE site_ref IS NULL
--如果有,进行筛选,并在 matltran_amt_mst 表中删除
IF @record > 0 BEGIN DELETE t
FROM matltran_amt_mst t
join #matltran_amt_mstall a
on t.site_ref = a.site_ref_t
AND t.trans_num = a.trans_num_t
AND t.trans_seq = a.trans_seq_t
AND a.site_ref IS NULL --在 ERPToBIDataUupdateLog 表中,存入对数据的删除操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('matltran_amt_mst', @record, '删除数据', GETDATE())
END --检测是否存在 site_ref_t 为 null 的记录 (检测是否有旧表未存入的记录)
SELECT @record = COUNT(*)
FROM #matltran_amt_mstall WHERE site_ref_t IS NULL
--如果有,进行筛选,并在 matltran_amt_mst 表中添加
IF @record > 0 BEGIN
INSERT INTO matltran_amt_mst
SELECT s.*
FROM ##matltran_amt_mst s
JOIN #matltran_amt_mstall a ON s.site_ref = a.site_ref AND t.trans_num = a.trans_num_t AND t.trans_seq = a.trans_seq_t AND a.site_ref_t IS NULL
--在 ERPToBIDataUupdateLog 表中,存入对数据的添加操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('matltran_amt_mst', @record, '插入数据', GETDATE())
END --删除旧临时表(##matltran_amt_mst)
IF OBJECT_ID('tempdb..##matltran_amt_mst') IS NOT NULL BEGIN DROP TABLE ##matltran_amt_mst
END --删除旧临时表(#matltran_amt_mstall)
IF OBJECT_ID('tempdb..#matltran_amt_mstall') IS NOT NULL BEGIN DROP TABLE #matltran_amt_mstall
END
END
(citemh_mst)客户订单物料历史记录表同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步客户订单物料历史记录表
修改描述:
修改日期:
执行过程:
EXEC BI_citemh_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
create PROCEDURE dbo.BI_citemh_mst AS BEGIN --return
DECLARE @sql NVARCHAR(MAX);
--sql语句变量
DECLARE @select NVARCHAR(MAX);
--sql语句中的select
DECLARE @table1 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtcz_app.dbo.citemh_mst with(nolock)';
--超智客户订单物料历史记录表
DECLARE @table2 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtx_app.dbo.citemh_mst with(nolock)';
--鼎泰鑫客户订单物料历史记录表
DECLARE @table3 NVARCHAR(100) = '192.168.0.12\slsqlserver.nydt_app10.dbo.citemh_mst with(nolock)';
--南阳客户订单物料历史记录表
DECLARE @table4 NVARCHAR(100) = '192.168.0.62\slsqlserver.gddtgk_app.dbo.citemh_mst with(nolock)';
--广东客户订单物料历史记录表
DECLARE @record INT --记录数
,
@dateS datetime = dateadd(day, -3, getdate()) --前三个月的时间
--,@dateS datetime=dateadd(month,-1,getdate())
--set @dateS = '2021-01-01'
set @dateS = convert(nvarchar(10), @dateS, 20)
DECLARE @where NVARCHAR(MAX) = ' where CreateDate>=' + '''' + convert(nvarchar(100), @dateS, 120) + '''' --删除旧临时表(##citemh_mst)
IF OBJECT_ID('tempdb..##citemh_mst') IS NOT NULL BEGIN DROP TABLE ##citemh_mst
END --删除旧临时表(#citemh_mstall)
IF OBJECT_ID('tempdb..#citemh_mstall') IS NOT NULL BEGIN DROP TABLE #citemh_mstall
END --从指定表中提出共同的需求的表字段,填充select语句
SET @select = 'select site_ref
,co_num
,co_line
,co_release
,item
,qty_ordered
,qty_ready
,qty_shipped
,qty_packed
,disc
,cost
,price
,ref_type
,ref_num
,ref_line_suf
,ref_release
,due_date
,ship_date
,reprice
,cust_item
,qty_invoiced
,qty_returned
,cgs_total
,feat_str
,stat
,cust_num
,cust_seq
,prg_bill_tot
,prg_bill_app
,release_date
,promise_date
,whse
,comm_code
,trans_nat
,process_ind
,unit_weight
,delterm
,origin
,cons_num
,tax_code1
,tax_code2
,transport
,ec_code
,export_value
,pick_date
,pricecode
,u_m
,qty_ordered_conv
,price_conv
,matl_cost
,lbr_cost
,fovhd_cost
,vovhd_cost
,out_cost
,cgs_total_matl
,cgs_total_lbr
,cgs_total_fovhd
,cgs_total_vovhd
,cgs_total_out
,cost_conv
,matl_cost_conv
,lbr_cost_conv
,fovhd_cost_conv
,vovhd_cost_conv
,out_cost_conv
,ship_site
,sync_reqd
,co_orig_site
,cust_po
,rma_num
,rma_line
,projected_date
,NoteExistsFlag
,RecordDate
,RowPointer
,description
,config_id
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,trans_nat_2
,suppl_qty_conv_factor
,print_kit_components
,external_reservation_ref
,non_inv_acct
,non_inv_acct_unit1
,non_inv_acct_unit2
,non_inv_acct_unit3
,non_inv_acct_unit4
,days_shipped_before_due_date_tolerance
,days_shipped_after_due_date_tolerance
,shipped_over_ordered_qty_tolerance
,shipped_under_ordered_qty_tolerance
,manufacturer_id
,manufacturer_item
,co_cust_num
,wks_basis
,wks_value
,qty_picked
,promotion_code
from ' --拼接sql语句 功能: 将指定表中共同的需求的字段填充入 ##citemh_mst 临时表内
SET @sql = 'select * into ##citemh_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##citemh_mst
select * from(' + @select + @table1 + @where +
' union all ' + @select + @table2 + @where +
' union all ' + @select + @table3 + @where +
' union all ' + @select + @table4 + @where + ') a' --执行sql
--print @sql
EXEC (@sql) --使用 FULL OUTER JOIN 全连接新表和旧表,将两张表的指定字段存入 #citemh_mstall
SELECT s.site_ref,
s.co_num,
s.co_line,
s.co_release,
s.RecordDate,
t.site_ref AS site_ref_t,
t.co_num AS co_num_t,
t.co_line AS co_line_t,
t.co_release AS co_release_t,
t.RecordDate AS recordDate_t INTO #citemh_mstall
FROM (
select *
from citemh_mst with(nolock)
where CreateDate >= @dateS
) t
FULL OUTER JOIN ##citemh_mst s
ON s.site_ref = t.site_ref
AND s.co_num = t.co_num_t
AND s.co_line = t.co_line_t
AND s.co_release = t.co_release_t
AND s.RecordDate = t.recordDate_t --检测是否存在 site_ref 为 null 的记录 (检测是否有新表已删除的记录)
SELECT @record = COUNT(*)
FROM #citemh_mstall WHERE site_ref IS NULL
--如果有,进行筛选,并在 citemh_mst 表中删除
IF @record > 0 BEGIN DELETE t
FROM citemh_mst t
join #citemh_mstall a
on t.site_ref = a.site_ref_t
AND t.co_num = a.co_num_t
AND t.co_line = a.co_line_t
AND t.co_release = a.co_release_t
AND a.site_ref IS NULL --在 ERPToBIDataUupdateLog 表中,存入对数据的删除操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('citemh_mst', @record, '删除数据', GETDATE())
END --检测是否存在 site_ref_t 为 null 的记录 (检测是否有旧表未存入的记录)
SELECT @record = COUNT(*)
FROM #citemh_mstall WHERE site_ref_t IS NULL
--如果有,进行筛选,并在 citemh_mst 表中添加
IF @record > 0 BEGIN
INSERT INTO citemh_mst
SELECT s.*
FROM ##citemh_mst s
JOIN #citemh_mstall a ON s.site_ref = a.site_ref AND t.co_num = a.co_num_t AND t.co_line = a.co_line_t AND t.co_release = a.co_release_t AND a.site_ref_t IS NULL
--在 ERPToBIDataUupdateLog 表中,存入对数据的添加操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('citemh_mst', @record, '插入数据', GETDATE())
END --删除旧临时表(##citemh_mst)
IF OBJECT_ID('tempdb..##citemh_mst') IS NOT NULL BEGIN DROP TABLE ##citemh_mst
END --删除旧临时表(#citemh_mstall)
IF OBJECT_ID('tempdb..#citemh_mstall') IS NOT NULL BEGIN DROP TABLE #citemh_mstall
END
END
(pitemh_mst)采购单物料历史表同步存储过程
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步采购单物料历史表
修改描述:
修改日期:
执行过程:
EXEC BI_pitemh_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
create PROCEDURE dbo.BI_pitemh_mst AS BEGIN --return
DECLARE @sql NVARCHAR(MAX);
--sql语句变量
DECLARE @select NVARCHAR(MAX);
--sql语句中的select
DECLARE @table1 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtcz_app.dbo.pitemh_mst with(nolock)';
--超智采购单物料历史表
DECLARE @table2 NVARCHAR(100) = '192.168.0.12\slsqlserver.dtx_app.dbo.pitemh_mst with(nolock)';
--鼎泰鑫采购单物料历史表
DECLARE @table3 NVARCHAR(100) = '192.168.0.12\slsqlserver.nydt_app10.dbo.pitemh_mst with(nolock)';
--南阳采购单物料历史表
DECLARE @table4 NVARCHAR(100) = '192.168.0.62\slsqlserver.gddtgk_app.dbo.pitemh_mst with(nolock)';
--广东采购单物料历史表
DECLARE @record INT --记录数
,
@dateS datetime = dateadd(day, -3, getdate()) --前三月的记录数
--,@dateS datetime=dateadd(month,-1,getdate())
--set @dateS = '2021-01-01'
set @dateS = convert(nvarchar(10), @dateS, 20)
DECLARE @where NVARCHAR(MAX) = ' where CreateDate>=' + '''' + convert(nvarchar(100), @dateS, 120) + '''' --删除旧临时表(##pitemh_mst)
IF OBJECT_ID('tempdb..##pitemh_mst') IS NOT NULL BEGIN DROP TABLE ##pitemh_mst
END --删除旧临时表(#pitemh_mstall)
IF OBJECT_ID('tempdb..#pitemh_mstall') IS NOT NULL BEGIN DROP TABLE #pitemh_mstall
END --从指定表中提出共同的需求的表字段,填充select语句
SET @select = 'select site_ref
,po_num
,po_line
,po_release
,item
,stat
,qty_ordered
,qty_received
,qty_rejected
,qty_voucher
,qty_returned
,item_cost
,ref_type
,ref_num
,ref_line_suf
,ref_release
,due_date
,rcvd_date
,vend_item
,root_job
,root_suf
,plan_cost
,voucher_cost
,non_inv_acct
,drop_ship_no
,drop_seq
,ship_addr
,promise_date
,release_date
,whse
,item_type
,cost_type
,comm_code
,trans_nat
,process_ind
,unit_weight
,delterm
,origin
,cons_num
,unit_mat_cost
,unit_duty_cost
,unit_freight_cost
,unit_brokerage_cost
,tax_code1
,tax_code2
,transport
,ec_code
,export_value
,req_num
,req_line
,u_m
,qty_ordered_conv
,item_cost_conv
,plan_cost_conv
,unit_mat_cost_conv
,unit_duty_cost_conv
,unit_freight_cost_conv
,unit_brokerage_cost_conv
,non_inv_acct_unit1
,non_inv_acct_unit2
,non_inv_acct_unit3
,non_inv_acct_unit4
,revision
,drawing_nbr
,NoteExistsFlag
,RecordDate
,RowPointer
,description
,CreatedBy
,UpdatedBy
,CreateDate
,InWorkflow
,expedited
,unit_insurance_cost
,unit_insurance_cost_conv
,unit_loc_frt_cost
,unit_loc_frt_cost_conv
,trans_nat_2
,suppl_qty_conv_factor
,preassign_lots
,preassign_serials
,ipr_id
,ipr_seq
,manufacturer_id
,manufacturer_item
,fa_num
,fa_class
,dept from ' --拼接sql语句 功能: 将指定表中共同的需求的字段填充入 ##pitemh_mst 临时表内
SET @sql = 'select * into ##pitemh_mst
from (' + @select + @table + ' where 1=2 )a
insert into ##pitemh_mst
select * from(' + @select + @table1 + @where + ' union all ' + @select + @table2 + @where + ' union all ' + @select + @table3 + @where + ' union all ' + @select + @table4 + @where + ') a' --执行sql
--print @sql
EXEC (@sql) --使用 FULL OUTER JOIN 全连接新表和旧表,将两张表的指定字段存入 #pitemh_mstall
SELECT s.site_ref,
s.po_num,
s.po_line,
s.po_release,
s.RecordDate,
t.site_ref AS site_ref_t,
t.po_num AS po_num_t,
t.po_line AS po_line_t,
t.po_release AS po_release_t,
t.RecordDate AS recordDate_t INTO #pitemh_mstall
FROM (
select *
from pitemh_mst with(nolock)
where CreateDate >= @dateS
) t
FULL OUTER JOIN ##pitemh_mst s
ON s.site_ref = t.site_ref
AND s.po_num = t.po_num_t
AND s.po_line = t.po_line_t
AND s.po_release = t.po_release_t
AND s.RecordDate = t.recordDate_t --检测是否存在 site_ref 为 null 的记录 (检测是否有新表已删除的记录)
SELECT @record = COUNT(*)
FROM #pitemh_mstall WHERE site_ref IS NULL
--如果有,进行筛选,并在 pitemh_mst 表中删除
IF @record > 0 BEGIN DELETE t
FROM pitemh_mst t
join #pitemh_mstall a
on t.site_ref = a.site_ref_t
AND t.po_num = a.po_num_t
AND t.po_line = a.po_line_t
AND t.po_release = a.po_release_t
AND a.site_ref IS NULL --在 ERPToBIDataUupdateLog 表中,存入对数据的删除操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('pitemh_mst', @record, '删除数据', GETDATE())
END --检测是否存在 site_ref_t 为 null 的记录 (检测是否有旧表未存入的记录)
SELECT @record = COUNT(*)
FROM #pitemh_mstall WHERE site_ref_t IS NULL
--如果有,进行筛选,并在 pitemh_mst 表中添加
IF @record > 0 BEGIN
INSERT INTO pitemh_mst
SELECT s.*
FROM ##pitemh_mst s
JOIN #pitemh_mstall a ON s.site_ref = a.site_ref AND t.po_num = a.po_num_t AND t.po_line = a.po_line_t AND t.po_release = a.po_release_t AND a.site_ref_t IS NULL
--在 ERPToBIDataUupdateLog 表中,存入对数据的添加操作
INSERT INTO ERPToBIDataUupdateLog (table_name, qty_record, note, record_date)
VALUES('pitemh_mst', @record, '插入数据', GETDATE())
END --删除旧临时表(##pitemh_mst)
IF OBJECT_ID('tempdb..##pitemh_mst') IS NOT NULL BEGIN DROP TABLE ##pitemh_mst
END --删除旧临时表(#pitemh_mstall)
IF OBJECT_ID('tempdb..#pitemh_mstall') IS NOT NULL BEGIN DROP TABLE #pitemh_mstall
END
END
创建MaterialTransactionsView视图
/***********************************************************
创 建 者:姚铖霖
创建日期:2023-05-15
系统用途:同步创建MaterialTransactionsView 视图
修改描述:
修改日期:
执行过程:
EXEC BI_pitemh_mst
*************** 修改记录 ************************************
修改人 修改日期 修改原因
*************************************************************/
CREATE VIEW dbo.MaterialTransactionsView (
Trans_Num,
TransDate,
TransType,
Item,
ItemDesc,
ItemUM,
Whse,
Qty,
Cost,
TotalCost,
TotalPost,
Loc,
Job,
Ref,
From,
To,
Type,
RefDesc,
LocCode,
UserCode,
DocumentNum,
Backflush,
WC,
ReasonCode,
ReasonDesc,
RefType,
RefNum,
RefLineSuf,
RefRelease,
DerivedMatltranCode
) AS
SELECT
mt.site_ref
mt.trans_num -- AS TransNum
,
mt.trans_date -- AS TransDate
,
mt.trans_type -- AS TransType
,
mt.item -- AS Item
,
ISNULL(
tt_MTCode.InvItemDesc,
ISNULL(
tt_MTCode.NonInvItemDesc,
ISNULL(
tt_MTCode.LineItemDesc,
tt_MTCode.HistLineItemDesc
)
)
) -- AS ItemDesc
,
item.u_m -- AS ItemUM
,
mt.whse -- AS Whse
,
mt.qty -- AS Qty
,
CASE
WHEN ISNULL(mt.cost, 0) <> 0 THEN (mt.cost)
ELSE (
mt.matl_cost + mt.lbr_cost + mt.fovhd_cost + mt.vovhd_cost + mt.out_cost
)
END -- AS Cost
,
(mt.qty * mt.cost) -- AS TotalCost
,
(
CASE
WHEN tt_MTCode.mtcode IN ('A', 'NL', 'NK', 'NS', 'NW', 'DS') THEN CASE
WHEN (
SELECT mtamt.amt
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
AND mtamt.trans_seq = 1
and mtamt.site_ref=mt.site_ref
) <> 0 THEN (
SELECT mtamt.amt
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
AND mtamt.trans_seq = 1
and mtamt.site_ref=mt.site_ref
)
END
WHEN tt_MTCode.mtcode = 'CF' THEN 0
WHEN tt_MTCode.mtcode = 'AC' THEN (
SELECT SUM(mtamt.amt)
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
AND mtamt.acct IS NULL
and mtamt.site_ref=mt.site_ref
)
WHEN tt_MTCode.mtcode = 'V' THEN (
SELECT SUM(mtamt.amt)
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
and mtamt.site_ref=mt.site_ref
AND mtamt.acct = CASE
WHEN item.cost_type = 'S' THEN (
SELECT prodvar.pcv_acct
FROM prodvar_mst prodvar with (readuncommitted)
INNER JOIN item_mst itempv with (readuncommitted) ON itempv.product_code = prodvar.product_code
AND itempv.item = mt.item
and prodvar.site_ref = itempv.site_ref
)
ELSE (
SELECT prodcode.inv_adj_acct
FROM prodcode_mst prodcode with (readuncommitted)
INNER JOIN item_mst itempc with (readuncommitted) ON itempc.product_code = prodcode.product_code
AND itempc.item = mt.item
and prodcode.site_ref = itempc.site_ref
)
END
/* CASE WHEN item.cost_type */
)
WHEN tt_MTCode.mtcode IN ('L', 'TT', 'T') THEN ISNULL(
(
SELECT SUM(mtamt.amt)
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
and mtamt.site_ref=mt.site_ref
AND (
(
mt.qty >= 0
and mtamt.amt >= 0
)
OR (
mt.qty < 0
and mtamt.amt < 0
)
)
AND mtamt.include_in_inventory_bal_calc = 1
),
0
)
ELSE CASE
WHEN EXISTS(
SELECT 1
FROM matltran_amt_mst matltran_amt with (readuncommitted)
WHERE matltran_amt.trans_num = mt.trans_num and
matltran_amt.site_ref=mt.site_ref
AND (
(
mt.qty >= 0
and matltran_amt.amt >= 0
)
OR (
mt.qty < 0
and matltran_amt.amt < 0
)
)
) THEN (
SELECT SUM(mtamt.amt)
FROM matltran_amt_mst mtamt with (readuncommitted)
WHERE mtamt.trans_num = mt.trans_num
and mtamt.site_ref=mt.site_ref
AND (
(
mt.qty >= 0
and mtamt.amt >= 0
)
OR (
mt.qty < 0
and mtamt.amt < 0
)
)
)
ELSE 0
END
END
) -- AS TotalPost
,
tt_MTCode.loc -- AS Loc
,
tt_MTCode.job -- AS Job
-- @Ref
,
(
CASE
WHEN mt.trans_type = 'A' THEN (tt_MTCode.Ref)
WHEN mt.trans_type = 'B' THEN (tt_MTCode.Ref)
WHEN tt_MTCode.mtcode = 'CS' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'CM' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'CA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'CB' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'C' THEN (tt_MTCode.job)
WHEN mt.trans_type = 'D' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'FK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode)
)
WHEN tt_MTCode.mtcode = 'FS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'F' THEN (tt_MTCode.job)
WHEN mt.trans_type = 'G' THEN (tt_MTCode.Ref)
WHEN mt.trans_type = 'H' THEN (tt_MTCode.Ref)
WHEN tt_MTCode.mtcode = 'IC' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'CK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'IK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'CP' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'IS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'IW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
WHEN tt_MTCode.mtcode = 'CF' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'I' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'L' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN mt.trans_type = 'M' THEN (tt_MTCode.Ref)
WHEN tt_MTCode.mtcode = 'NK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'NA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'NS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'NB' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'NW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
WHEN tt_MTCode.mtcode = 'NL' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'N' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'OW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'O' THEN (tt_MTCode.job)
WHEN mt.trans_type = 'P' THEN (tt_MTCode.Ref)
WHEN tt_MTCode.mtcode = 'RK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode)
)
WHEN tt_MTCode.mtcode = 'RS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'RA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'R' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'V' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'SA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'S' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
/* for matltran.type = T and matltran.qty > 0, MTCode = 'TT', -- Transfer To; and
* for matltran.type = T and matltran.qty <= 0, MTCode = 'T', -- Transfer From
*/
/* FOR MULTI-SITE TRANSFER ORDERS WE WANT TO DISPLAY THE SITE IDENTIFIER
* ALONG WITH THE TRANSFER ORDER NUMBER AND LINE IF THE OTHER HALF OF THE
* BALANCING TRANSACTION IS LOCATION IN THE OTHER SITES DATABASE. THIS
* CAN BE DETERMINED AS FOLLOWS:
*
* SCENARIO 1
* ----------
* SITE A SHIPS TO SITE B'S TRANSIT LOCATION AND THEN SITE B RECEIVES THE
* ITEM FROM SITE B'S TRANSIT LOCATION INTO SITE B'S INVENTORY. FOB =
* SITE A.
*
* SCENARIO 2
* ----------
* SITE A SHIPS TO SITE A'S TRANSIT LOCATION AND THEN SITE B RECEIVES THE
* ITEM FROM SITE A'S TRANSIT LOCATION INTO SITE B'S INVENTORY. FOB =
* SITE B.
*
* SELECTED FIELD VALUES WOULD BE AS FOLLOWS:
* ------------------------------------------
* SCENARIO 1
* matltran from-site to-site fob-site local-site itemloc FRM/TO TRX
* 1 A B A A T from
* 2 A B A B T to
* 3 A B A B <>T from
* 4 A B A B <>T to
*
* SCENARIO 2
* matltran from-site to-site fob-site local-site itemloc FRM/TO TRX
* 5 A B B A T from
* 6 A B B A T to
* 7 A B B A <>T from
* 8 A B B B <>T to
*
* WE WANT THE SITE IDENTIFIER TO PRINT ONLY WITH matltran NUMBERS 1, 2,
* 7 and 8.
*/
WHEN tt_MTCode.mtcode = 'TT' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
) + (
CASE
WHEN trn1.RowPointer IS NOT NULL
AND iloc.RowPointer IS NOT NULL
AND (
trn2.RowPointer IS NOT NULL
OR (
trn3.RowPointer IS NOT NULL
AND ilocTypeT.RowPointer IS NOT NULL
)
) THEN ' ' + (trn1.from_site)
ELSE ''
END
)
WHEN tt_MTCode.mtcode = 'T' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
) + (
CASE
WHEN trn1.RowPointer IS NOT NULL
AND iloc.RowPointer IS NOT NULL
AND (
trn2.RowPointer IS NOT NULL
OR (
trn3.RowPointer IS NOT NULL
AND ilocTypeNotT.RowPointer IS NOT NULL
)
) THEN ' ' + (trn1.from_site)
ELSE ''
END
)
WHEN tt_MTCode.mtcode = 'WC' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + CAST(mt.ref_line_suf AS NVARCHAR) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'W' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'WK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'WO' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WM' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WR' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WP' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'WW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
ELSE (mt.ref_type + ' ' + tt_MTCode.Ref)
END
) -- AS Ref
-- @From
,
(
CASE
WHEN mt.trans_type = 'A' THEN (tt_MTCode.loc)
WHEN mt.trans_type = 'B' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'CS' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'CM' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.loc
)
WHEN tt_MTCode.mtcode = 'CA' THEN ''
WHEN tt_MTCode.mtcode = 'CB' THEN ''
WHEN tt_MTCode.mtcode = 'C' THEN ''
WHEN mt.trans_type = 'D' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'FK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode)
)
WHEN tt_MTCode.mtcode = 'FS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'F' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'G' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'H' THEN (
CASE
WHEN mt.ref_type = 'F' THEN (
dbo.GetLabel('@fs_pck_hdr.sro_num') + ' ' + tt_MTCode.Ref
)
ELSE (tt_MTCode.loc)
END
)
WHEN tt_MTCode.mtcode = 'IC' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'CK' THEN ''
WHEN tt_MTCode.mtcode = 'IK' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'CP' THEN ''
WHEN tt_MTCode.mtcode = 'IS' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'IW' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'CF' THEN ''
WHEN tt_MTCode.mtcode = 'I' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'L' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'MT' THEN ''
WHEN tt_MTCode.mtcode = 'M' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'NK' THEN ''
WHEN tt_MTCode.mtcode = 'NA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'NS' THEN ''
WHEN tt_MTCode.mtcode = 'NB' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'NW' THEN ''
WHEN tt_MTCode.mtcode = 'NL' THEN ''
WHEN tt_MTCode.mtcode = 'N' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'OW' THEN ''
WHEN tt_MTCode.mtcode = 'O' THEN ''
WHEN tt_MTCode.mtcode = 'P' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'RK' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'RS' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'RA' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'R' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'V' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'SA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'S' THEN (tt_MTCode.loc)
/* for matltran.type = T and matltran.qty > 0, MTCode = 'TT', -- Transfer To; and
* for matltran.type = T and matltran.qty <= 0, MTCode = 'T', -- Transfer From
* see comments above
*/
WHEN tt_MTCode.mtcode = 'TT' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
) + (
CASE
WHEN trn1.RowPointer IS NOT NULL
AND iloc.RowPointer IS NOT NULL
AND (
trn2.RowPointer IS NOT NULL
OR (
trn3.RowPointer IS NOT NULL
AND ilocTypeT.RowPointer IS NOT NULL
)
) THEN ' ' + (trn1.from_site)
ELSE ''
END
)
WHEN tt_MTCode.mtcode = 'T' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WC' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'W' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'WK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'WO' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WA' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WM' THEN (
CASE
WHEN mt.qty > 0 THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
ELSE (tt_MTCode.loc)
END
)
WHEN tt_MTCode.mtcode = 'WR' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WP' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'WW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
ELSE (tt_MTCode.Ref)
END
) -- AS tFrom
-- @To
,
(
CASE
WHEN mt.trans_type = 'A' THEN (tt_MTCode.loc)
WHEN mt.trans_type = 'B' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'CS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.loc
)
WHEN tt_MTCode.mtcode = 'CM' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'CA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'CB' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'C' THEN (tt_MTCode.job)
WHEN mt.trans_type = 'D' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'FK' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'FS' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'F' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'G' THEN (
CASE
WHEN mt.ref_type = 'F' THEN (
dbo.GetLabel('@fs_pck_hdr.sro_num') + ' ' + tt_MTCode.Ref
)
ELSE ''
END
)
WHEN tt_MTCode.mtcode = 'H' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'IC' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'CK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'IK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'CP' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'IS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'IW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
WHEN tt_MTCode.mtcode = 'CF' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'I' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'L' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'MT' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'M' THEN ''
WHEN tt_MTCode.mtcode = 'NK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'NA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + mt.loc
)
WHEN tt_MTCode.mtcode = 'NS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'NB' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + mt.loc
)
WHEN tt_MTCode.mtcode = 'NW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.wc
)
WHEN tt_MTCode.mtcode = 'NL' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'N' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + '-' + REPLICATE('0', 4 - LEN(CAST(ref_line_suf AS NVARCHAR))) + CAST(ref_line_suf AS NVARCHAR) + ' ' + LTRIM(mt.loc)
)
WHEN tt_MTCode.mtcode = 'OW' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num
)
WHEN tt_MTCode.mtcode = 'O' THEN (tt_MTCode.job)
WHEN tt_MTCode.mtcode = 'P' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'RK' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode)
)
WHEN tt_MTCode.mtcode = 'RS' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + mt.ref_num + ' ' + (
CASE
WHEN mt.ref_release > 0 THEN CAST(mt.ref_release AS NVARCHAR(4))
ELSE ''
END
)
)
WHEN tt_MTCode.mtcode = 'RA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'R' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'V' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'SA' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'S' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'TT' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'T' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
) + (
CASE
WHEN trn1.RowPointer IS NOT NULL
AND iloc.RowPointer IS NOT NULL
AND (
trn2.RowPointer IS NOT NULL
OR (
trn3.RowPointer IS NOT NULL
AND ilocTypeNotT.RowPointer IS NOT NULL
)
) THEN ' ' + (trn1.from_site)
ELSE ''
END
)
WHEN tt_MTCode.mtcode = 'WC' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'W' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WK' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WO' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WA' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WM' THEN (
CASE
WHEN mt.qty > 0 THEN (tt_MTCode.loc)
ELSE (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
END
)
WHEN tt_MTCode.mtcode = 'WR' THEN (
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) + ' ' + tt_MTCode.Ref
)
WHEN tt_MTCode.mtcode = 'WP' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WS' THEN (tt_MTCode.loc)
WHEN tt_MTCode.mtcode = 'WW' THEN (tt_MTCode.loc)
ELSE (tt_MTCode.loc)
END
) -- AS tTo
,
(
CASE
WHEN tt_MTCode.mtcode = 'CF' THEN 'I' + ' ' + dbo.GetLabel('@:MatlTransType:' + tt_MTCode.mtcode)
WHEN tt_MTCode.mtcode = 'V' THEN 'R' + ' ' + dbo.GetLabel('@:MatlTransType:' + tt_MTCode.mtcode)
WHEN tt_MTCode.mtcode = 'G'
AND mt.ref_type = 'F' THEN tt_MTCode.mtcode + ' ' + dbo.GetLabel('@SSSFSSROIssue')
WHEN tt_MTCode.mtcode = 'H'
AND mt.ref_type = 'F' THEN tt_MTCode.mtcode + ' ' + dbo.GetLabel('@SSSFSSROReturn')
ELSE tt_MTCode.mtcode + ' ' + dbo.GetLabel('@:MatlTransType:' + tt_MTCode.mtcode)
END
) -- AS Type
,
dbo.GetLabel('@:MatltranRefDesc:' + tt_MTCode.mtcode) -- AS RefDesc
,
dbo.GetLabel('@:MatltranLocalCode:' + tt_MTCode.mtcode) -- AS LocCode
,
mt.user_code -- AS UserCode
,
mt.document_num -- AS DocumentNum
,
mt.backflush -- AS Backflush
,
mt.wc -- AS WC
,
mt.reason_code AS ReasonCode,
(
SELECT reason.description
FROM reason_mst reason with (readuncommitted)
WHERE reason.reason_class = CASE
tt_MTCode.mtcode
WHEN 'A' THEN 'INV ADJUST'
WHEN 'G' THEN 'MISC ISSUE'
WHEN 'H' THEN 'MISC RCPT'
WHEN 'L' THEN 'TRN LOSS'
WHEN 'T' then 'TRANSFER RETURN'
WHEN 'TT' then 'TRANSFER RETURN'
WHEN 'WA' THEN 'CO RETURN'
WHEN 'WC' THEN 'CO RETURN'
WHEN 'WO' THEN 'CO RETURN'
WHEN 'SA' THEN 'CO RETURN'
WHEN 'WM' THEN 'RMA RETURN'
WHEN 'RA' THEN 'PO RETURN'
WHEN 'R' THEN 'PO RETURN'
WHEN 'WP' THEN 'PO RETURN'
WHEN 'WR' THEN 'PO RETURN'
ELSE 'MFG SCRAP'
/* when 'D' or 'WR' or 'WS' or 'WW' then */
END
AND reason.reason_code = mt.reason_code
and reason.site_ref=mt.site_ref
) -- AS ReasonDesc
,
mt.ref_type,
mt.ref_num,
mt.ref_line_suf,
mt.ref_release,
tt_MTCode.mtcode -- AS DerivedMatltranCode
FROM (
SELECT trans_num,
(
ISNULL(
ref_num + ' ' + CAST(ref_line_suf AS NVARCHAR) + CASE
WHEN ref_release > 0 THEN '-' + CAST(ref_release AS NVARCHAR(4))
ELSE ''
END,
''
)
) AS Ref,
(
dbo.GetLabel('@:MatltranRefDesc:F') + ' ' + ref_num + '-' + + REPLICATE('0', 4 - LEN(CAST(ref_line_suf AS NVARCHAR))) + CAST(ref_line_suf AS NVARCHAR) + CASE
WHEN ref_release > 0 THEN ' ' + CAST(ref_release AS NVARCHAR(4))
ELSE ''
END
) AS job,
(
loc + (
CASE
WHEN lot IS NOT NULL THEN '/' + lot
ELSE ''
END
)
) AS loc -- ITEM DESCRIPTION
,
(
SELECT item.description
FROM item_mst item with (readuncommitted)
WHERE item.item = matltran.item
and item.site_ref=matltran.site_ref
) AS InvItemDesc,
(
SELECT non_inventory_item.description
FROM non_inventory_item_mst non_inventory_item with (readuncommitted)
WHERE non_inventory_item.item = matltran.item
and non_inventory_item.site_ref = matltran.site_ref
) AS NonInvItemDesc,
(
CASE
WHEN ref_type = 'J' THEN (
SELECT TOP 1 jobmatl.description
FROM jobmatl_mst jobmatl with (readuncommitted)
WHERE jobmatl.job = matltran.ref_num
AND jobmatl.suffix = matltran.ref_line_suf
AND jobmatl.oper_num = matltran.ref_release
AND jobmatl.item = matltran.item
and jobmatl.site_ref = matltran.site_ref
)
WHEN ref_type = 'C' THEN (
SELECT projmatl.item_desc
FROM projmatl_mst projmatl with (readuncommitted)
WHERE projmatl.proj_num = matltran.ref_num
AND projmatl.task_num = matltran.ref_line_suf
AND projmatl.seq = matltran.ref_release
and projmatl.site_ref = matltran.site_ref
)
WHEN ref_type = 'R' THEN (
SELECT rmaitem.description
FROM rmaitem_mst rmaitem with (readuncommitted)
WHERE rmaitem.rma_num = matltran.ref_num
AND rmaitem.rma_line = matltran.ref_line_suf
and rmaitem.site_ref = matltran.site_ref
)
WHEN ref_type = 'O' THEN (
SELECT coitem.description
FROM coitem_mst coitem with (readuncommitted)
WHERE coitem.co_num = matltran.ref_num
AND coitem.co_line = matltran.ref_line_suf
AND coitem.co_release = matltran.ref_release
and coitem.site_ref = matltran.site_ref
)
WHEN ref_type = 'P' THEN (
SELECT poitem.description
FROM poitem_mst poitem with (readuncommitted)
WHERE poitem.po_num = matltran.ref_num
AND poitem.po_line = matltran.ref_line_suf
AND poitem.po_release = matltran.ref_release
and poitem.site_ref = matltran.site_ref
)
ELSE NULL
END
) AS LineItemDesc,
(
CASE
WHEN ref_type = 'O' THEN (
SELECT citemh.description
FROM citemh_mst citemh with (readuncommitted)
WHERE citemh.co_num = matltran.ref_num
AND citemh.co_line = matltran.ref_line_suf
AND citemh.co_release = matltran.ref_release
and citemh.site_ref = matltran.site_ref
)
WHEN ref_type = 'P' THEN (
SELECT pitemh.description
FROM pitemh_mst pitemh with (readuncommitted)
WHERE pitemh.po_num = matltran.ref_num
AND pitemh.po_line = matltran.ref_line_suf
AND pitemh.po_release = matltran.ref_release
and pitemh.site_ref = matltran.site_ref
)
ELSE NULL
END
) AS HistLineItemDesc -- ITEM DESCRIPTION
,
(
CASE
WHEN trans_type = 'A' THEN CASE
WHEN qty = 0 THEN 'AC'
/* Cost Adjust */
ELSE 'A'
/* Stock Adjust */
END
WHEN trans_type = 'B' THEN 'B'
/* Cycle Count */
WHEN trans_type = 'C' THEN CASE
WHEN loc IS NOT NULL THEN CASE
WHEN qty < 0 THEN 'CS'
/* Job Split */
ELSE 'CM'
/* Job Merge */
END
WHEN ref_type = 'K' THEN 'CA'
/* JIT WIP Create */
WHEN ref_type = 'S' THEN 'CB'
/* PS WIP Create */
ELSE 'C'
/* Job WIP Create */
END
WHEN trans_type = 'D' THEN CASE
WHEN qty < 0 THEN 'DA'
/* PS Scrap Return */
ELSE 'DS'
/* PS Scrap Issue */
END
WHEN trans_type = 'F' THEN CASE
WHEN ref_type = 'K' THEN 'FK'
/* JIT Finish */
WHEN ref_type = 'S' THEN 'FS'
/* PS Finish */
ELSE 'F'
/* Job Finish */
END
WHEN trans_type = 'G' THEN 'G'
/* Misc Issue */
WHEN trans_type = 'H' THEN 'H'
/* Misc Rcpt */
WHEN trans_type = 'I' THEN CASE
WHEN ref_type = 'C' THEN 'IC'
/* Project Resource Issue */
WHEN ref_type = 'K' THEN CASE
WHEN qty = 0 THEN 'CK'
/* JIT WIP Change */
ELSE 'IK'
/* JIT Issue */
END
WHEN ref_type = 'S' THEN CASE
WHEN qty = 0 THEN 'CP'
/* PS WIP Change */
ELSE 'IS'
/* PS Issue */
END
WHEN ref_type = 'W' THEN 'IW'
/* WC Matl Issue */
ELSE CASE
WHEN qty = 0 THEN 'CF'
/* Job WIP Change */
ELSE 'I'
/* Job Issue */
END
END
WHEN trans_type = 'L' THEN 'L'
/* Transfer Loss */
WHEN trans_type = 'M' THEN CASE
WHEN qty > 0 THEN 'MT'
/* Stock Move To */
ELSE 'M'
/* Stock Move From */
END
WHEN trans_type = 'N' THEN CASE
WHEN ref_type = 'K' THEN CASE
WHEN qty = 0 THEN 'NK'
/* JIT Labor */
ELSE 'NA'
/* JIT Next Oper */
END
WHEN ref_type = 'S' THEN CASE
WHEN qty = 0 THEN 'NS'
/* PS Labor */
ELSE 'NB'
/* PS Next Oper */
END
WHEN ref_type = 'W' THEN 'NW'
/* WC Labor */
ELSE CASE
WHEN qty = 0 THEN 'NL'
/* Job Labor */
ELSE 'N'
/* Job Next Oper */
END
END
WHEN trans_type = 'O' THEN CASE
WHEN ref_type = 'W' THEN 'OW'
/* WC Other Cost */
ELSE 'O'
/* Job Other Cost */
END
WHEN trans_type = 'P' THEN 'P'
/* Physical Inventory */
WHEN trans_type = 'R' THEN CASE
WHEN ref_type = 'K' THEN 'RK'
/* JIT Receipt */
WHEN ref_type = 'S' THEN 'RS'
/* PS Receipt */
ELSE CASE
WHEN qty < 0 THEN 'RA'
/* PO Receipt Adj */
WHEN qty > 0 THEN 'R'
/* PO Receipt */
ELSE 'V'
/* PO Cost Variance */
END
END
WHEN trans_type = 'S' THEN CASE
WHEN qty > 0 THEN 'SA'
/* CO Ship Adj */
ELSE 'S'
/* CO Ship */
END
WHEN trans_type = 'T' THEN CASE
WHEN qty > 0 THEN 'TT'
/* Transfer To */
ELSE 'T'
/* Transfer From */
END
WHEN trans_type = 'W' THEN CASE
WHEN ref_type = 'C' THEN 'WC'
/* Project Resource Return */
WHEN ref_type = 'J' THEN 'W'
/* Job Withdrawal */
WHEN ref_type = 'K' THEN 'WK'
/* JIT Return */
WHEN ref_type = 'O' THEN CASE
WHEN qty > 0 THEN 'WO'
/* CO Return */
ELSE 'WA'
/* CO Return Adj */
END
WHEN ref_type = 'R' THEN 'WM'
/* RMA Return */
WHEN ref_type = 'P' THEN CASE
WHEN qty < 0 THEN 'WR'
/* PO Return Adj */
ELSE 'WP'
/* PO Return */
END
WHEN ref_type = 'S' THEN 'WS'
/* PS Return */
WHEN ref_type = 'W' THEN 'WW'
/* WC Matl Return */
ELSE ''
END
ELSE ''
END
) AS MTCode
FROM matltran_mst matltran
) tt_MTCode
JOIN matltran_mst mt with (readuncommitted) ON mt.trans_num = tt_MTCode.trans_num and mt.site_ref= tt_MTCode.site_ref
LEFT JOIN item_mst item with (readuncommitted) ON item.item = mt.item And item.site_ref = mt.site_ref
LEFT JOIN itemloc_mst iloc with (readuncommitted) ON iloc.whse = mt.whse
AND iloc.item = mt.item
AND iloc.loc = mt.loc
and iloc.site_ref=mt.site_ref
LEFT JOIN itemloc_mst ilocTypeT with (readuncommitted) ON ilocTypeT.whse = mt.whse
AND ilocTypeT.item = mt.item
AND ilocTypeT.loc = mt.loc
and ilocTypeT.loc_type = 'T'
and ilocTypeT.site_ref=mt.site_ref
LEFT JOIN itemloc_mst ilocTypeNotT with (readuncommitted) ON ilocTypeNotT.whse = mt.whse
AND ilocTypeNotT.item = mt.item
AND ilocTypeNotT.loc = mt.loc
and ilocTypeNotT.loc_type <> 'T'
and ilocTypeNotT.site_ref=mt.site_ref
LEFT JOIN transfer_mst trn1 with (readuncommitted) ON trn1.trn_num = mt.ref_num
LEFT JOIN transfer_mst trn2 with (readuncommitted) ON trn2.trn_num = mt.ref_num
AND trn2.fob_site = mt.site_ref
LEFT JOIN transfer_mst trn3 with (readuncommitted) ON trn3.trn_num = mt.ref_num
AND trn3.from_site = trn3.fob_site
AND trn3.to_site = mt.site_ref
GO
标签:存储,
同步,
mtcode,
过程,
tt,
mst,
WHEN,
MTCode,
ref
From: https://www.cnblogs.com/yxyc/p/17482531.html