You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1520 lines
71 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

--日结插件入口
if exists (select name from sysobjects where name='p_sys_day_over_plugin' and xtype='p')
drop procedure p_sys_day_over_plugin
go
create procedure p_sys_day_over_plugin
(
@orgcode varchar(10),
@accdate varchar(10),
@acctimes int,
@usercode varchar(10),
@vipdbname varchar(20),
@message varchar(200) out
)
as
declare @psmsg varchar(200)
begin
declare @curedition varchar(1)
declare @finaltype varchar(1)
declare @irtnresult int
declare @srtnmsg varchar(200)
declare @sautopdaccount varchar(1)
declare @ssql varchar(2000)
set @sautopdaccount = isnull(@sautopdaccount,'0')
set @finaltype = null
--销售明细
exec @irtnresult = p_int_gen_flow_item @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--销售成本
exec @irtnresult = p_int_gen_flow_chg @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--支付方式
exec @irtnresult = p_int_gen_flow_pay @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--现金缴存
exec @irtnresult = p_int_gen_flow_pay_cash @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--非油采购验收
exec @irtnresult = p_int_gen_accept @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--非油采购退货
exec @irtnresult = p_int_gen_return @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--历史进价调整
exec @irtnresult = p_int_gen_buy_price_his @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--现存进价调整
exec @irtnresult = p_int_gen_buy_price_now @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--领用
exec @irtnresult = p_int_gen_draw @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--自然报损
exec @irtnresult = p_int_gen_scrap @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--非自然报损
exec @irtnresult = p_int_gen_damage @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--盘点
exec @irtnresult = p_int_gen_differ @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--配送
exec @irtnresult = p_int_gen_dist @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--配退
exec @irtnresult = p_int_gen_dist_return @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--配送销售
exec @irtnresult = p_int_gen_dist_sale @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--配送成本
exec @irtnresult = p_int_gen_dist_chg @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--调拨
exec @irtnresult = p_int_gen_out_trans @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--批发销售
exec @irtnresult = p_int_gen_wh_sale @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
--批发成本
exec @irtnresult = p_int_gen_wh_chg @orgcode, @accdate, @srtnmsg out
if @irtnresult <> 1
begin
insert into t_over_error (orgcode, overdate, overtime, errreason)
values (@orgcode, @accdate, convert(varchar(10), getdate(), 24), @srtnmsg)
end
set @message = ''
return (1)
end
go
--非油销售收入
if exists (select name from sysobjects where name='p_int_gen_flow_item' and xtype='p')
drop procedure p_int_gen_flow_item
go
create procedure p_int_gen_flow_item
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @tablename varchar(40)
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @tablename = 't_plusale_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if not exists(select * from sysobjects where name=@tablename)
begin
set @psmsg = '不存在表'+@tablename
return(-1)
end
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and sale.OrgCode = ''' + @psorgcode + ''''
end
set @sql = 'insert into t_int_sap_drysalesinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,ZYWDAT,ZTYPE,ZCXLX,ZJYFS,' +
' VVTYP,MATNR,MENGE,MEINS,PRICE,SKTAK,SKTBT,TMWSTS,GTTAX,WAERS,ZTOLAMT,' +
' ZTSDAT,ZGZDAT,ZFNAME,ZUNFLG,ZYZLX,MWSKZ)' +
'select ''' + @createdate + ''' as CREATEDATE,''F01'' as IFTYPE,FinaCode as BUKRS,OrgCode as WERKS,''1'' as ZSIGN,''P''+FinaCode+''1''+OrgCode as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F01'' as ZTYPE,''Z30'' as ZCXLX,''Z01'' as ZJYFS,' +
' '''' as VVTYP,ClsCode as MATNR,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,Total as PRICE,Total as SKTAK,0 as SKTBT,round(Total-Total/(1+STaxRate/100.00),2) as TMWSTS,0 as GTTAX,''CNY'' as WAERS,0 as ZTOLAMT,' +
' ''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,'''' as ZFNAME,case when Amount < 0 then ''Y'' else '''' end as ZUNFLG,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,' +
' case STaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end as MWSKZ' +
' from (' +
' select AccDate,FinaCode,OrgCode,ClsCode,STaxRate,OrgType,sum(Total) as Total,sum(Amount) as Amount,sum(Counts) as Counts' +
' from (' +
' select sale.AccDate,shop.FinaCode,sale.OrgCode,class.UpperCode1 as ClsCode,sale.STaxRate,' +
' isnull((select JyMode from t_supplier where SupCode = sale.SupCode),''0'') as JyMode,' +
' sale.Counts,sale.Total,sale.Amount,shop.OrgType' +
' from ' + @tablename + ' sale, t_shop shop, t_plu plu, t_gclass class' +
' where sale.OrgCode = shop.OrgCode' +
' and sale.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and sale.AccDate = ''' + @psaccdate + '''' + @where +
' ) b' +
' where JyMode = ''0''' +
' group by AccDate,FinaCode,OrgCode,ClsCode,STaxRate,OrgType' +
' ) a' +
' where Amount <> 0 or Counts <> 0'
exec(@sql)
set @sql = 'insert into t_int_sap_drysalesinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,ZYWDAT,ZTYPE,ZCXLX,ZJYFS,' +
' VVTYP,MATNR,MENGE,MEINS,PRICE,SKTAK,SKTBT,TMWSTS,GTTAX,WAERS,ZTOLAMT,' +
' ZTSDAT,ZGZDAT,ZFNAME,ZUNFLG,ZYZLX,MWSKZ)' +
'select ''' + @createdate + ''' as CREATEDATE,''F01'' as IFTYPE,FinaCode as BUKRS,OrgCode as WERKS,''1'' as ZSIGN,''P''+FinaCode+''1''+OrgCode as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F01'' as ZTYPE,''Z30'' as ZCXLX,''Z03'' as ZJYFS,' +
' '''' as VVTYP,ClsCode as MATNR,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,Amount as PRICE,Total as SKTAK,DkTotal as SKTBT,round(DkTotal-DkTotal/(1+STaxRate/100.00),2) as TMWSTS,0 as GTTAX,''CNY'' as WAERS,0 as ZTOLAMT,' +
' ''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,'''' as ZFNAME,case when Counts < 0 then ''Y'' else '''' end as ZUNFLG,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,' +
' case STaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end as MWSKZ' +
' from (' +
' select AccDate,FinaCode,OrgCode,ClsCode,STaxRate,OrgType,sum(Total) as Total,sum(Amount) as Amount,sum(Total-Cost) as DkTotal,sum(Counts) as Counts' +
' from (' +
' select sale.AccDate,shop.FinaCode,sale.OrgCode,class.UpperCode1 as ClsCode,sale.STaxRate,' +
' isnull((select JyMode from t_supplier where SupCode = sale.SupCode),''0'') as JyMode,' +
' sale.Counts,sale.Cost,sale.Total,sale.Amount,shop.OrgType' +
' from ' + @tablename + ' sale, t_shop shop, t_plu plu, t_gclass class' +
' where sale.OrgCode = shop.OrgCode' +
' and sale.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and sale.AccDate = ''' + @psaccdate + '''' + @where +
' ) b' +
' where JyMode = ''2''' +
' group by AccDate,FinaCode,OrgCode,ClsCode,STaxRate,OrgType' +
' ) a' +
' where Amount <> 0 or Counts <> 0'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总销售明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drysalesinfo
set DOCNO = 'XSD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F01' and ZJYFS in ('Z01','Z03') and DOCNO is null
set @psmsg = ''
return (1)
end
go
--非油库存成本
if exists (select name from sysobjects where name='p_int_gen_flow_chg' and xtype='p')
drop procedure p_int_gen_flow_chg
go
create procedure p_int_gen_flow_chg
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @tablename varchar(40)
declare @where varchar(2000)
declare @sql varchar(2000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @tablename = 't_plusale_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if not exists(select * from sysobjects where name=@tablename)
begin
set @psmsg = '不存在表'+@tablename
return(-1)
end
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and sale.OrgCode = ''' + @psorgcode + ''''
end
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,' +
' SLTWR,WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG)' +
'select ''' + @createdate + ''' as CREATEDATE,''F11'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,OrgCode as WERKS,''P''+FinaCode+''1''+OrgCode as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F11'' as ZTYPE,ClsCode as MATNR,case JyMode when ''0'' then ''Z01'' else ''Z03'' end as ZJYFS,' +
' NetCost as SLTWR,''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,case when Counts < 0 then ''Y'' else '''' end as UNFLG' +
' from (' +
' select AccDate,FinaCode,OrgCode,ClsCode,JyMode,OrgType,sum(NetCost+NetAdjustProfit) as NetCost,sum(Counts) as Counts' +
' from (' +
' select sale.AccDate,shop.FinaCode,sale.OrgCode,class.UpperCode1 as ClsCode,' +
' isnull((select JyMode from t_supplier where SupCode = sale.SupCode),''0'') as JyMode,' +
' sale.NetCost,sale.NetAdjustProfit,sale.Counts,shop.OrgType' +
' from ' + @tablename + ' sale, t_shop shop, t_plu plu, t_gclass class' +
' where sale.OrgCode = shop.OrgCode' +
' and sale.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and sale.AccDate = ''' + @psaccdate + '''' + @where +
' ) b' +
' where JyMode = ''0''' +
' group by AccDate,FinaCode,OrgCode,ClsCode,OrgType,JyMode' +
' ) a' +
' where NetCost <> 0 or Counts <> 0'
exec(@sql)
if @@error <>0
begins
set @psmsg = '汇总销售成本失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'XSC' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F11' and ZJYFS in ('Z01','Z03') and DOCNO is null
set @psmsg = ''
return (1)
end
go
--非油支付
if exists (select name from sysobjects where name='p_int_gen_flow_pay' and xtype='p')
drop procedure p_int_gen_flow_pay
go
create procedure p_int_gen_flow_pay
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @tablename varchar(40)
declare @where varchar(2000)
declare @sql varchar(2000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @tablename = 't_int_flow_pay_deily_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if not exists(select * from sysobjects where name=@tablename)
begin
set @psmsg = '不存在表'+@tablename
return(-1)
end
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and shop.OrgCode = ''' + @psorgcode + ''''
end
set @sql = 'insert into t_int_sap_paymentreportinfo' +
' (CREATEDATE,IFTYPE,ZSIGN,ZTSDAT,BUKRS,PRCTR,KUNNR,' +
' SKART,ZYYDAT,WRBTR,WEARS,ZCXBS)' +
'select ''' + @createdate + ''' as CREATEDATE,''Z01'' as IFTYPE,''1'' as ZSIGN,''' + @tsdat + ''' as ZTSDAT,FinaCode as BUKRS,''P''+FinaCode+''1''+OrgCode as PRCTR,OrgCode as KUNNR,' +
' PayCode,replace(AccDate,''-'','''') as ZYYDAT,Amount as WRBTR,''CNY'' as WEARS,case when Amount < 0 then ''Y'' else '''' end as ZCXBS' +
' from (' +
' select pay.BUSINESS_DATE as AccDate,shop.FinaCode,pay.WERKS as OrgCode,pay.MOP_ID as PayCode,sum(pay.AMOUNT) as Amount' +
' from ' + @tablename + ' pay, t_shop shop' +
' where pay.WERKS = shop.OrgCode' +
' and pay.ITEM_ID like ''20%''' + -- 只传非油品
' and pay.BUSINESS_DATE > ''2023-09-15''' +
' and pay.BUSINESS_DATE = ''' + @psaccdate + '''' + @where +
' group by pay.BUSINESS_DATE,shop.FinaCode,pay.WERKS,pay.MOP_ID' +
' ) a' +
' where Amount <> 0'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总销售支付方式失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_paymentreportinfo
set DOCNO = 'ZFD' + ZTSDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'Z01' and DOCNO is null
set @psmsg = ''
return (1)
end
go
--非油现金
if exists (select name from sysobjects where name='p_int_gen_flow_pay_cash' and xtype='p')
drop procedure p_int_gen_flow_pay_cash
go
create procedure p_int_gen_flow_pay_cash
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @tablename varchar(40)
declare @where varchar(2000)
declare @sql varchar(2000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @tablename = 't_int_flow_pay_deily_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if not exists(select * from sysobjects where name=@tablename)
begin
set @psmsg = '不存在表'+@tablename
return(-1)
end
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and shop.OrgCode = ''' + @psorgcode + ''''
end
set @sql = 'insert into t_int_sap_cashpaymentinfo' +
' (CREATEDATE,IFTYPE,ZSIGN,ZTSDAT,BUKRS,PRCTR,KUNNR,SKART,' +
' ZYRDAT,JCRQ,WRBTR,JCYYK,SYBTR,CDYSK,JKDOC,ZGZDAT,WAERS,ZCXBS)' +
'select ''' + @createdate + ''' as CREATEDATE,''Z02'' as IFTYPE,''1'' as ZSIGN,''' + @tsdat + ''' as ZTSDAT,FinaCode as BUKRS,''P''+FinaCode+''1''+OrgCode as PRCTR,OrgCode as KUNNR,''1000001'' as SKART,' +
' replace(AccDate,''-'','''') as ZYRDAT,replace(AccDate,''-'','''') as JCRQ,Amount as WRBTR,Amount as JCYYK,0 as SYBTR,0 as CDYSK,'''' as JKDOC,replace(AccDate,''-'','''') as ZGZDAT,''CNY'' as WAERS,case when Amount < 0 then ''Y'' else '''' end as ZCXBS' +
' from (' +
' select pay.BUSINESS_DATE as AccDate,shop.FinaCode,pay.WERKS as OrgCode,sum(pay.AMOUNT) as Amount' +
' from ' + @tablename + ' pay, t_shop shop' +
' where pay.WERKS = shop.OrgCode' +
' and pay.MOP_ID = ''40''' + -- 40-现金该支付方式编码由BOS系统直接下发
' and pay.ITEM_ID like ''20%''' + -- 只传非油品
' and pay.BUSINESS_DATE > ''2023-09-15''' +
' and pay.BUSINESS_DATE = ''' + @psaccdate + '''' + @where +
' group by pay.BUSINESS_DATE,shop.FinaCode,pay.WERKS' +
' ) a' +
' where Amount <> 0'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总现金支付失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_cashpaymentinfo
set DOCNO = 'ZFX' + ZTSDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'Z02' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_accept' and xtype='p')
drop procedure p_int_gen_accept
go
create procedure p_int_gen_accept
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--采购单汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo ' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CREATEDATE,''F02'' as IFTYPE,FinaCode as BUKRS,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,ClsCode as MATNR,SupCode as LIFNR,case JyMode when ''0'' then ''Z01'' else ''Z03'' end as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F02'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode,head.SupCode,sup.JyMode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts' +
' from t_accept_head head, t_accept_body body, t_shop shop, t_plu plu, t_gclass class, t_supplier sup, t_financial_body fina' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and head.SupCode = sup.SupCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and shop.FinaCode = fina.FinaCode' +
' and head.BillType in (''1'',''2'')' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and fina.FinaType = ''0''' +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,head.SupCode,sup.JyMode,shop.OrgType' +
' ) a'
exec(@sql)
--子公司配送单汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo ' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CREATEDATE,''F02'' as IFTYPE,FinaCode as BUKRS,ShopCode as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+ShopCode as PRCTR,ClsCode as MATNR,SupCode as LIFNR,''Z02'' as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F02'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.ZpCount) as Counts,shop.OrgType,fina.SupCode' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class, t_financial_body fina' +
' where head.BillNo = body.BillNo' +
' and head.ShopCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and shop.FinaCode = fina.FinaCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount > 0' +
' and fina.FinaType = ''1''' +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType,fina.SupCode' +
' ) a';
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总验收明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drypurchaseinfo
set DOCNO = 'JHD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F02' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_return' and xtype='p')
drop procedure p_int_gen_return
go
create procedure p_int_gen_return
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--退货单汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CREATEDATE,''F03'' as IFTYPE,FinaCode as BUKRS,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,ClsCode as MATNR,SupCode as LIFNR,case JyMode when ''0'' then ''Z01'' else ''Z03'' end as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F03'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode,head.SupCode,sup.JyMode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts' +
' from t_return_head head, t_return_body body, t_shop shop, t_plu plu, t_gclass class, t_supplier sup, t_financial_body fina' +
' where head.BillNo = body.BillNo ' +
' and head.OrgCode = shop.OrgCode ' +
' and head.SupCode = sup.SupCode' +
' and body.PluCode = plu.PluCode ' +
' and plu.ClsCode = class.ClsCode ' +
' and shop.FinaCode = fina.FinaCode ' +
' and head.BillType in (''0'',''2'') ' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and fina.FinaType = ''0''' +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,head.SupCode,sup.JyMode,shop.OrgType' +
' ) a'
exec(@sql)
--子公司配送退货单汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo ' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CREATEDATE,''F03'' as IFTYPE,FinaCode as BUKRS,ShopCode as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+ShopCode as PRCTR,ClsCode as MATNR,SupCode as LIFNR,''Z02'' as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F03'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,' +
' sum(-body.NetCost) as NetCost,sum(-body.ZpCount) as Counts,shop.OrgType,fina.SupCode' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class, t_financial_body fina' +
' where head.BillNo = body.BillNo' +
' and head.ShopCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and shop.FinaCode = fina.FinaCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount < 0' +
' and fina.FinaType = ''1''' +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType,fina.SupCode' +
' ) a';
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总退货明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drypurchaseinfo
set DOCNO = 'THD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F03' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_buy_price_his' and xtype='p')
drop procedure p_int_gen_buy_price_his
go
create procedure p_int_gen_buy_price_his
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--历史进价调整汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZUNFLG,ZYZLX)' +
'select ''' + @createdate + ''' as CreateDate,''F14'' as IFTYPE,FinaCode as BUKRS,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,ClsCode as MATNR,SupCode as LIFNR,case JyMode when ''0'' then ''Z01'' else ''Z03'' end as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F14'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case when NetCost < 0 then ''Y'' else '''' end as ZUNFLG,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode, head.SupCode,sup.JyMode,' +
' sum(body.NetCjCost) as NetCost,sum(body.TzCount) as Counts' +
' from t_adjbuyprice_head head, t_adjbuyprice_body body, t_shop shop, t_plu plu, t_gclass class, t_supplier sup' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and head.SupCode = sup.SupCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.TzType = ''0''' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,head.SupCode,sup.JyMode,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总历史进价调整失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drypurchaseinfo
set DOCNO = 'TJS' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F14' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_buy_price_now' and xtype='p')
drop procedure p_int_gen_buy_price_now
go
create procedure p_int_gen_buy_price_now
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--现存进价调整汇总
set @sql = 'insert into t_int_sap_drypurchaseinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,MATNR,LIFNR,ZJYFS,' +
' ZYWDAT,ZTYPE,WAERS,SLTWR,DWERT,MENGE,MEINS,ZTSDAT,ZGZDAT,ZUNFLG,ZYZLX)' +
'select ''' + @createdate + ''' as CreateDate,''F15'' as IFTYPE,FinaCode as BUKRS,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS, ''1'' as ZSIGN,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,ClsCode as MATNR,SupCode as LIFNR,case JyMode when ''0'' then ''Z01'' else ''Z03'' end as ZJYFS,' +
' replace(AccDate,''-'','''') as ZYWDAT,''F15'' as ZTYPE,''CNY'' as WAERS,NetCost as SLTWR,0 as DWERT,Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case when NetCost < 0 then ''Y'' else '''' end as ZUNFLG,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode, head.SupCode,sup.JyMode,' +
' sum(body.NetCjCost) as NetCost,sum(body.TzCount) as Counts' +
' from t_adjbuyprice_head head, t_adjbuyprice_body body, t_shop shop, t_plu plu, t_gclass class, t_supplier sup' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and head.SupCode = sup.SupCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.TzType = ''1''' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,head.SupCode,sup.JyMode,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总现存进价调整失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drypurchaseinfo
set DOCNO = 'TJC' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F15' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_draw' and xtype='p')
drop procedure p_int_gen_draw
go
create procedure p_int_gen_draw
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--领用单汇总
set @sql = 'insert into t_int_sap_stockconsumer' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZHQBS,KOSTL,PRCTR,ZLYLB,' +
' ZTYPE,BLDAT,MATNR,SLTWR,ZXSZJ,MENGE,WAERS,MEINS,' +
' MWSKZ,TSDAT,BUDAT,UNFLG,SGTXT,ZPLXH)' +
'select ''' + @createdate + ''' as CreateDate,''F13'' as IFTYPE,FinaCode as BUKRS,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS, ''1'' as ZHQBS,CostCenter as KOSTL,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,LyType as ZLYLB,' +
' ''F13'' as ZTYPE,replace(AccDate,''-'','''') as BLDAT,ClsCode as MATNR,NetCost as SLTWR,Total as ZXSZJ,Counts as MENGE,''CNY'' as WAERS,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,' +
' case left(LyType,2) when ''A1'' then case JTaxRate when 0 then ''J0'' when 17 then ''J1'' when 13 then ''J2'' when 11 then ''J3'' when 6 then ''J4'' when 4 then ''J5'' when 3 then ''J6'' when 5 then ''J7'' when 16 then ''J8'' when ''10'' then ''J9'' when 9 then ''JA'' when 1 then ''JB'' end' +
' when ''A2'' then case STaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end' +
' else ''X0'' end as MWSKZ,''' + @tsdat + ''' as TSDAT,replace(AccDate,''-'','''') as BUDAT,'''' as UNFLG,PurPose as SGTXT,'''' as ZPLXH' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,head.LyType,head.CostCenter,head.PurPose,class.UpperCode1 as ClsCode,body.JTaxRate,plu.STaxRate,' +
' sum(body.NetCost) as NetCost,sum(body.Total) as Total,sum(body.Counts) as Counts' +
' from t_draw_head head, t_draw_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.billno = body.billno ' +
' and head.OrgCode = shop.OrgCode ' +
' and body.PluCode = plu.PluCode ' +
' and plu.ClsCode = class.ClsCode ' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.AccDate,shop.FinaCode,head.OrgCode,head.LyType,head.CostCenter,head.PurPose,class.UpperCode1,shop.OrgType,body.JTaxRate,plu.STaxRate' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总领用明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_stockconsumer
set DOCNO = 'LYD' + BLDAT + convert(varchar(10),SERIALNO), DOCNO1 = 'LYD'+BLDAT+convert(varchar(10),SERIALNO)
where IFTYPE = 'F13' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_scrap' and xtype='p')
drop procedure p_int_gen_scrap
go
create procedure p_int_gen_scrap
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--报损单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,SLTWR,' +
' WEARS,MENGE,DWERT,MEINS,MWSKZ,TMWSTS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG)' +
'select ''' + @createdate + ''' as CreateDate,''F08'' as IFTYPE,FinaCode as BUKRS, ''1'' as ZSIGN,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F08'' as ZTYPE,ClsCode as MATNR,''Z01'' as ZJYFS,NetCost as SLTWR,' +
' ''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''JB'' as MWSKZ,TaxTotal as TMWSTS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,'''' as UNFLG' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts,sum(body.Cost-body.NetCost) as TaxTotal' +
' from t_scrap_head head, t_scrap_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.BsType = ''01''' +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总自然报损失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'BSZ' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F08' and ZJYFS = 'Z01' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_damage' and xtype='p')
drop procedure p_int_gen_damage
go
create procedure p_int_gen_damage
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--报损单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,SLTWR,' +
' WEARS,MENGE,DWERT,MEINS,MWSKZ,TMWSTS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG)' +
'select ''' + @createdate + ''' as CreateDate,''F09'' as IFTYPE,FinaCode as BUKRS, ''1'' as ZSIGN,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F09'' as ZTYPE,ClsCode as MATNR,''Z01'' as ZJYFS,NetCost as SLTWR,' +
' ''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''JB'' as MWSKZ,TaxTotal as TMWSTS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,'''' as UNFLG' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts,sum(body.Cost-body.NetCost) as TaxTotal' +
' from t_scrap_head head, t_scrap_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.BsType = ''02''' +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总非自然报损失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'BSF' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F09' and ZJYFS = 'Z01' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_differ' and xtype='p')
drop procedure p_int_gen_differ
go
create procedure p_int_gen_differ
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--盈亏单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,' +
' ZJYFS,SLTWR,WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG)' +
'select ''' + @createdate + ''' as CreateDate,''F10'' as IFTYPE,FinaCode as BUKRS, ''1'' as ZSIGN,case OrgType when ''2'' then ''2Y00'' else OrgCode end as WERKS,''P''+FinaCode+''1''+case OrgType when ''2'' then ''2Y00'' else OrgCode end as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F10'' as ZTYPE,ClsCode as MATNR,' +
' ''Z01'' as ZJYFS,NetCost as SLTWR,''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,case when Counts < 0 then ''Y'' else '''' end as UNFLG' +
' from (' +
' select head.AccDate,shop.FinaCode,shop.OrgType,head.OrgCode,class.UpperCode1 as ClsCode,' +
' sum(body.YkNetCost) as NetCost,sum(body.YkCount) as Counts' +
' from t_differ_head head, t_differ_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.BillType in (''0'',''1'',''3'')' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.AccDate,shop.FinaCode,head.OrgCode,class.UpperCode1,shop.OrgType' +
' ) a' +
' where NetCost <> 0 or Counts <> 0'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总盈亏明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'PKD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F10' and ZJYFS = 'Z01' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_dist' and xtype='p')
drop procedure p_int_gen_dist
go
create procedure p_int_gen_dist
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--配送单汇总
set @sql = 'insert into t_int_sap_drydeliveryinfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,SDWRK,SPRCTR,WERKS,PRCTR,ZYWDAT,ZTYPE,' +
' MATNR,ZJYFS,DMBTR,WAERS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CreateDate,''F04'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,ShopCode as SDWRK,''P''+FinaCode+''1''+ShopCode as SPRCTR,''2Y00'' as WERKS,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F04'' as ZTYPE,' +
' ClsCode as MATNR,''Z01'' as ZJYFS,NetCost as DMBTR,''CNY'' as WAERS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.ZpCount) as Counts,shop.OrgType' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class, t_financial_body fina' +
' where head.BillNo = body.BillNo' +
' and head.ShopCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and shop.FinaCode = fina.FinaCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount > 0' +
' and fina.FinaType = ''0''' +
' group by head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总配送明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drydeliveryinfo
set DOCNO = 'PSD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F04' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_dist_return' and xtype='p')
drop procedure p_int_gen_dist_return
go
create procedure p_int_gen_dist_return
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--配送退货单汇总
set @sql = 'insert into t_int_sap_drydeliveryinfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,SDWRK,SPRCTR,WERKS,PRCTR,ZYWDAT,ZTYPE,' +
' MATNR,ZJYFS,DMBTR,WAERS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZYZLX)' +
'select ''' + @createdate + ''' as CreateDate,''F05'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,ShopCode as SDWRK,''P''+FinaCode+''1''+ShopCode as SPRCTR,''2Y00'' as WERKS,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F05'' as ZTYPE,' +
' ClsCode as MATNR,''Z01'' as ZJYFS,NetCost as DMBTR,''CNY'' as WAERS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX' +
' from (' +
' select head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,' +
' sum(-body.NetCost) as NetCost,sum(-body.ZpCount) as Counts,shop.OrgType' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class, t_financial_body fina' +
' where head.BillNo = body.BillNo' +
' and head.ShopCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and shop.FinaCode = fina.FinaCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount < 0' +
' and fina.FinaType = ''0''' +
' group by head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总配送退货明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drydeliveryinfo
set DOCNO = 'PST' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F05' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_dist_sale' and xtype='p')
drop procedure p_int_gen_dist_sale
go
create procedure p_int_gen_dist_sale
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--配送单汇总
set @sql = 'insert into t_int_sap_drysalesinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,ZYWDAT,ZTYPE,ZCXLX,ZJYFS,VVTYP,MATNR,' +
' MENGE,MEINS,PRICE,SKTAK,SKTBT,TMWSTS,GTTAX,WAERS,ZTOLAMT,ZTSDAT,ZGZDAT,ZYZLX,' +
' ZFNAME,ZUNFLG,VBELN,KUNNR,KUNWE,MWSKZ)' +
'select ''' + @createdate + ''' as CreateDate,''F01'' as IFTYPE,FinaCode as BUKRS,''2Y00'' as WERKS,''1'' as ZSIGN,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F01'' as ZTYPE,''Z30'' as ZCXLX,''Z20'' as ZJYFS,'''' as VVTYP,ClsCode as MATNR,' +
' Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,ZpAmount as PRICE,ZpAmount as SKTAK,0 as SKTBT,TaxAmount as TMWSTS,0 as GTTAX,''CNY'' as WAERS,0 as ZTOLAMT,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,' +
' '''' as ZFNAME,case when Counts < 0 then ''Y'' else '''' end as ZUNFLG,BillNo as VBELN,ShopCode as KUNNR,ShopCode as KUNWE,case JTaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end as MWSKZ' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,body.JTaxRate,' +
' sum(body.ZpAmount) as ZpAmount,sum(body.ZpAmount-body.ZpNetAmount) as TaxAmount,sum(body.ZpCount) as Counts,shop.OrgType' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate is not null and head.AccDate <> ''''' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount <> 0' +
' and exists (select OrgCode from t_shop a, t_financial_body b where a.FinaCode = b.FinaCode and a.OrgCode = head.ShopCode and b.FinaType = ''1'')' +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType,body.JTaxRate' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总配送销售失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drysalesinfo
set DOCNO = 'PSX' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F01' and ZJYFS = 'Z20' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_dist_chg' and xtype='p')
drop procedure p_int_gen_dist_chg
go
create procedure p_int_gen_dist_chg
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--配送单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,SLTWR,' +
' WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,VBELN,KUNNR,KUNWE,UNFLG)' +
'select ''' + @createdate + ''' as CreateDate,''F11'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,''2Y00'' as WERKS,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F11'' as ZTYPE,ClsCode as MATNR,''Z20'' as ZJYFS,NetCost as SLTWR,' +
' ''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,' +
' case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,BillNo as VBELN,ShopCode as KUNNR,ShopCode as KUNWE,case when Counts < 0 then ''Y'' else '''' end as UNFLG' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.ZpCount) as Counts,shop.OrgType' +
' from t_dist_head head, t_dist_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' and body.ZpCount <> 0' +
' and exists (select OrgCode from t_shop a, t_financial_body b where a.FinaCode = b.FinaCode and a.OrgCode = head.ShopCode and b.FinaType = ''1'')' +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.ShopCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总配送成本失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'PSC' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F11' and ZJYFS = 'Z20' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_out_trans' and xtype='p')
drop procedure p_int_gen_out_trans
go
create procedure p_int_gen_out_trans
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--调拨单汇总
set @sql = 'insert into t_int_sap_drytransferinfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,SDWRK,SPRCTR,WERKS,PRCTR,ZYWDAT,' +
' ZTYPE,MATNR,ZJYFS,SLTWR,WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZYZLX,UNFLG)' +
'select ''' + @createdate + ''' as CreateDate,''F06'' as IFTYPE,FinaCode as BUKRS, ''1'' as ZSIGN,OutOrgCode as SDWRK,''P''+FinaCode+''1''+OutOrgCode as SPRCTR,InOrgCode as WERKS,''P''+FinaCode+''1''+InOrgCode as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,' +
' ''F06'' as ZTYPE,ClsCode as MATNR,''Z01'' as ZJYFS,NetCost as SLTWR,''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,'''' as UNFLG' +
' from (' +
' select head.AccDate,shop.FinaCode,head.OutOrgCode,head.InOrgCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts,shop.OrgType' +
' from t_outtrans_head head, t_outtrans_body body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OutOrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.BillType = ''1''' +
' and head.IsOut = ''1''' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.AccDate,shop.FinaCode,head.OutOrgCode,head.InOrgCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总调拨明细失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drytransferinfo
set DOCNO = 'DBD' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F06' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_wh_sale' and xtype='p')
drop procedure p_int_gen_wh_sale
go
create procedure p_int_gen_wh_sale
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--批发销售单汇总
set @sql = 'insert into t_int_sap_drysalesinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,ZYWDAT,ZTYPE,ZCXLX,ZJYFS,VVTYP,MATNR,' +
' MENGE,MEINS,PRICE,SKTAK,SKTBT,TMWSTS,GTTAX,WAERS,ZTOLAMT,ZTSDAT,ZGZDAT,ZYZLX,' +
' ZFNAME,ZUNFLG,VBELN,KUNNR,KUNWE,MWSKZ)' +
'select ''' + @createdate + ''' as CreateDate,''F01'' as IFTYPE,FinaCode as BUKRS,''2Y00'' as WERKS,''1'' as ZSIGN,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F01'' as ZTYPE,''Z30'' as ZCXLX,''Z21'' as ZJYFS,'''' as VVTYP,ClsCode as MATNR,' +
' Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,PfTotal as PRICE,PfTotal as SKTAK,0 as SKTBT,TaxAmount as TMWSTS,0 as GTTAX,''CNY'' as WAERS,0 as ZTOLAMT,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,' +
' '''' as ZFNAME,'''' as ZUNFLG,BillNo as VBELN,CustCode as KUNNR,CustCode as KUNWE,case STaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end as MWSKZ' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1 as ClsCode,plu.STaxRate,' +
' sum(body.PfTotal) as PfTotal,sum(body.PfTotal - body.NetPfTotal) as TaxAmount,sum(body.Counts) as Counts,shop.OrgType' +
' from t_whsale_head head, t_whsale_body2 body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1,shop.OrgType,plu.STaxRate' +
' ) a'
exec(@sql)
--批发退货单汇总
set @sql = 'insert into t_int_sap_drysalesinfo' +
' (CREATEDATE,IFTYPE,BUKRS,WERKS,ZSIGN,PRCTR,ZYWDAT,ZTYPE,ZCXLX,ZJYFS,MATNR,' +
' MENGE,MEINS,PRICE,SKTAK,SKTBT,TMWSTS,GTTAX,WAERS,ZTOLAMT,ZTSDAT,ZGZDAT,ZYZLX,' +
' ZFNAME,ZUNFLG,VBELN,KUNNR,KUNWE,MWSKZ)' +
'select ''' + @createdate + ''' as CreateDate,''F01'' as IFTYPE,FinaCode as BUKRS,''2Y00'' as WERKS,''1'' as ZSIGN,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F01'' as ZTYPE,''Z30'' as ZCXLX,''Z21'' as ZJYFS,ClsCode as MATNR,' +
' Counts as MENGE,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,PfTotal as PRICE,PfTotal as SKTAK,0 as SKTBT,TaxAmount as TMWSTS,0 as GTTAX,''CNY'' as WAERS,0 as ZTOLAMT,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,' +
' '''' as ZFNAME,''Y'' as ZUNFLG,BillNo as VBELN,CustCode as KUNNR,CustCode as KUNWE,case STaxRate when 0 then ''X0'' when 17 then ''X1'' when 13 then ''X2'' when 2 then ''X3'' when 6 then ''X4'' when 11 then ''X5'' when 16 then ''X7'' when 10 then ''X8'' when 9 then ''X9'' end as MWSKZ' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1 as ClsCode,plu.STaxRate,' +
' sum(-body.PfTotal) as PfTotal,sum(body.NetPfTotal - body.PfTotal) as TaxAmount,sum(body.ZrTotal-body.PfTotal) as SsTotal,sum(-body.Counts) as Counts,shop.OrgType' +
' from t_whreturn_head head, t_whreturn_body2 body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate is not null and head.AccDate <> ''''' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1,shop.OrgType,plu.STaxRate' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总批发销售失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_drysalesinfo
set DOCNO = 'PFX' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F01' and ZJYFS = 'Z21' and DOCNO is null
set @psmsg = ''
return (1)
end
go
if exists (select name from sysobjects where name='p_int_gen_wh_chg' and xtype='p')
drop procedure p_int_gen_wh_chg
go
create procedure p_int_gen_wh_chg
(
@psorgcode varchar(10),
@psaccdate varchar(10),
@psmsg varchar(2000) out
)
as
begin
declare @where varchar(2000)
declare @sql varchar(5000)
declare @createdate varchar(20)
declare @tsdat varchar(10)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
set @tsdat = convert(varchar(8),getdate(),112)
if @psorgcode <> '' and @psorgcode is not null and @psorgcode <> '*'
begin
set @where = ' and head.OrgCode = ''' + @psorgcode + ''''
end
--批发销售单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,SLTWR,' +
' WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG,VBELN,KUNNR,KUNWE)' +
'select ''' + @createdate + ''' as CreateDate,''F11'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,''2Y00'' as WERKS,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F11'' as ZTYPE,ClsCode as MATNR,''Z21'' as ZJYFS,NetCost as SLTWR,' +
' ''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,'''' as UNFLG,BillNo as VBELN,CustCode as KUNNR,CustCode as KUNWE' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1 as ClsCode,' +
' sum(body.NetCost) as NetCost,sum(body.Counts) as Counts,shop.OrgType' +
' from t_whsale_head head, t_whsale_body2 body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
--批发退货单汇总
set @sql = 'insert into t_int_sap_inventorychginfo' +
' (CREATEDATE,IFTYPE,BUKRS,ZSIGN,WERKS,PRCTR,ZYWDAT,ZTYPE,MATNR,ZJYFS,SLTWR,' +
' WEARS,MENGE,DWERT,MEINS,ZTSDAT,ZGZDAT,ZCSBS,ZYZLX,UNFLG,VBELN,KUNNR,KUNWE)' +
'select ''' + @createdate + ''' as CreateDate,''F11'' as IFTYPE,FinaCode as BUKRS,''1'' as ZSIGN,''2Y00'' as WERKS,''P''+FinaCode+''1''+''2Y00'' as PRCTR,replace(AccDate,''-'','''') as ZYWDAT,''F11'' as ZTYPE,ClsCode as MATNR,''Z21'' as ZJYFS,NetCost as SLTWR,' +
' ''CNY'' as WEARS,Counts as MENGE,0 as DWERT,case ClsCode when ''2018'' then ''L'' else ''EA'' end as MEINS,''' + @tsdat + ''' as ZTSDAT,replace(AccDate,''-'','''') as ZGZDAT,''X'' as ZCSBS,case OrgType when ''1'' then ''DO'' else ''COCO'' end as ZYZLX,'''' as UNFLG,BillNo as VBELN,CustCode as KUNNR,CustCode as KUNWE' +
' from (' +
' select head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1 as ClsCode,' +
' sum(-body.NetCost) as NetCost,sum(-body.Counts) as Counts,shop.OrgType' +
' from t_whreturn_head head, t_whreturn_body2 body, t_shop shop, t_plu plu, t_gclass class' +
' where head.BillNo = body.BillNo' +
' and head.OrgCode = shop.OrgCode' +
' and body.PluCode = plu.PluCode' +
' and plu.ClsCode = class.ClsCode' +
' and head.AccDate = ''' + @psaccdate + '''' + @where +
' group by head.BillNo,head.AccDate,shop.FinaCode,head.OrgCode,head.CustCode,class.UpperCode1,shop.OrgType' +
' ) a'
exec(@sql)
if @@error <>0
begin
set @psmsg = '汇总批发成本失败'
return(-1)
end
--更新零管单号3位业务前缀+6位日期+6流水号物理记录
update t_int_sap_inventorychginfo
set DOCNO = 'PFC' + ZYWDAT + convert(varchar(10),SERIALNO)
where IFTYPE = 'F11' and ZJYFS = 'Z21' and DOCNO is null
set @psmsg = ''
return (1)
end
go