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.

362 lines
16 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
--sap销售明细汇总
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
--sap销售成本汇总
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
--sap支付方式汇总
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
--sap现金缴存汇总
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
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)
set @tablename = 't_plusale_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
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,' +
' convert(varchar(8),getdate(),112) 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(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,' +
' convert(varchar(8),getdate(),112) 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)
set @tablename = 't_plusale_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
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,convert(varchar(8),getdate(),112) 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
begin
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)
set @tablename = 't_int_flow_pay_deily_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
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,convert(varchar(8),getdate(),112) 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)
set @tablename = 't_int_flow_pay_deily_'+substring(@psaccdate,1,4)+substring(@psaccdate,6,2)
set @where = ''
set @createdate = convert(varchar(20),getdate(),120)
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,convert(varchar(8),getdate(),112) 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