|
|
--日结插件入口
|
|
|
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 |