CREATE PROCEDURE Aipetech_sp_PoOrderExeStatus
@InterID int
AS
--创建一个临时表,用来生成"未完采购订单的执行情况"
Create Table #Aipetech_T002
(
采购订单内码 int,
分录号 int,
物料内码 int,
物料编码 varchar(80),
物料名称 varchar(80),
收货日期 datetime,
入库单号 varchar(80),
单位 varchar(30),
数量 decimal(13),
入库数量 decimal(13) default 0,
未完成数量 decimal(13) default 0,
交货日期 datetime,
备注 varchar(255)
)
insert into #Aipetech_T002
(采购订单内码,分录号,物料内码,物料编码,物料名称,单位,数量,交货日期,备注)
select 采购订单内码,分录号,物料内码,物料编码,物料名称,单位,数量,交货日期,备注 from Aipetech_v_PoOrderEntry where 采购订单内码=@InterID
--select * from #Aipetech_T002
Create Table #Aipetech_T003
(
采购订单内码 int,
物料内码 int,
入库数量 int)
insert into #Aipetech_T003
(采购订单内码,物料内码,入库数量)
select 采购订单内码,物料内码,sum(辅助实收数量) as 辅助实收数量 from aipetech_v_icstockbill where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%')) group by 物料内码,采购订单内码
--select * from #Aipetech_T003
--计算入库数量
update #Aipetech_T002 set 入库数量=A003.入库数量 from #aipetech_t003 a003,#aipetech_t002 a002 where a002.物料内码=a003.物料内码
--计算未完成数量
update #Aipetech_T002 set 未完成数量=数量-入库数量
insert into #Aipetech_T002
(物料名称,入库数量,未完成数量)
select '合计:',sum(入库数量),sum(未完成数量) from #Aipetech_t002
--select 采购订单内码,分录号,物料内码,物料编码,物料名称,入库单号,收货日期,单位,数量,入库数量,未完成数量,交货日期,备注 from #Aipetech_t002 a002
--union
--select 采购订单内码,1,物料内码,null,null,入库单号,单据日期,null,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%'))
--order by 分录号
--以下用游标来进行主细表的记录增加到#Aipetech_T004表中
Create Table #Aipetech_T004
(
采购订单内码 int,
分录号 int,
物料内码 int,
物料编码 varchar(80),
物料名称 varchar(80),
收货日期 datetime,
入库单号 varchar(80),
单位 varchar(30),
数量 decimal(13),
入库数量 decimal(13) default 0,
未完成数量 decimal(13) default 0,
交货日期 datetime,
备注 varchar(255)
)
declare @T1 int,@T2 int,@T3 int,@T4 varchar(80),@T5 varchar(80),@T6 datetime,@T7 varchar(80),
@T8 varchar(30),@T9 decimal(13),@T10 decimal(13),@T11 decimal(13),@T12 datetime,@T13 varchar(255)
declare A_T004_cur scroll cursor for select * from #Aipetech_T002
open A_T004_cur
Fetch first from A_T004_cur into @T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13
while @@fetch_status=0
begin
insert into #Aipetech_T004 values(@T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13)
insert into #Aipetech_T004
select 采购订单内码,@T2,物料内码,物料代码,物料名称,单据日期,入库单号,@T8,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%')and (物料内码=@T3))
Fetch next from A_T004_cur into @T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13
end
close A_T004_cur
deallocate A_T004_cur
--select * from #aipetech_t002
select * from #Aipetech_T004
--select 采购订单内码,1,物料内码,null,null,入库单号,单据日期,null,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%'))
Drop Table #Aipetech_T002
Drop Table #Aipetech_T003
Drop Table #Aipetech_T004
GO
@InterID int
AS
--创建一个临时表,用来生成"未完采购订单的执行情况"
Create Table #Aipetech_T002
(
采购订单内码 int,
分录号 int,
物料内码 int,
物料编码 varchar(80),
物料名称 varchar(80),
收货日期 datetime,
入库单号 varchar(80),
单位 varchar(30),
数量 decimal(13),
入库数量 decimal(13) default 0,
未完成数量 decimal(13) default 0,
交货日期 datetime,
备注 varchar(255)
)
insert into #Aipetech_T002
(采购订单内码,分录号,物料内码,物料编码,物料名称,单位,数量,交货日期,备注)
select 采购订单内码,分录号,物料内码,物料编码,物料名称,单位,数量,交货日期,备注 from Aipetech_v_PoOrderEntry where 采购订单内码=@InterID
--select * from #Aipetech_T002
Create Table #Aipetech_T003
(
采购订单内码 int,
物料内码 int,
入库数量 int)
insert into #Aipetech_T003
(采购订单内码,物料内码,入库数量)
select 采购订单内码,物料内码,sum(辅助实收数量) as 辅助实收数量 from aipetech_v_icstockbill where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%')) group by 物料内码,采购订单内码
--select * from #Aipetech_T003
--计算入库数量
update #Aipetech_T002 set 入库数量=A003.入库数量 from #aipetech_t003 a003,#aipetech_t002 a002 where a002.物料内码=a003.物料内码
--计算未完成数量
update #Aipetech_T002 set 未完成数量=数量-入库数量
insert into #Aipetech_T002
(物料名称,入库数量,未完成数量)
select '合计:',sum(入库数量),sum(未完成数量) from #Aipetech_t002
--select 采购订单内码,分录号,物料内码,物料编码,物料名称,入库单号,收货日期,单位,数量,入库数量,未完成数量,交货日期,备注 from #Aipetech_t002 a002
--union
--select 采购订单内码,1,物料内码,null,null,入库单号,单据日期,null,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%'))
--order by 分录号
--以下用游标来进行主细表的记录增加到#Aipetech_T004表中
Create Table #Aipetech_T004
(
采购订单内码 int,
分录号 int,
物料内码 int,
物料编码 varchar(80),
物料名称 varchar(80),
收货日期 datetime,
入库单号 varchar(80),
单位 varchar(30),
数量 decimal(13),
入库数量 decimal(13) default 0,
未完成数量 decimal(13) default 0,
交货日期 datetime,
备注 varchar(255)
)
declare @T1 int,@T2 int,@T3 int,@T4 varchar(80),@T5 varchar(80),@T6 datetime,@T7 varchar(80),
@T8 varchar(30),@T9 decimal(13),@T10 decimal(13),@T11 decimal(13),@T12 datetime,@T13 varchar(255)
declare A_T004_cur scroll cursor for select * from #Aipetech_T002
open A_T004_cur
Fetch first from A_T004_cur into @T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13
while @@fetch_status=0
begin
insert into #Aipetech_T004 values(@T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13)
insert into #Aipetech_T004
select 采购订单内码,@T2,物料内码,物料代码,物料名称,单据日期,入库单号,@T8,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%')and (物料内码=@T3))
Fetch next from A_T004_cur into @T1,@T2,@T3,@T4,@T5,@T6,@T7,@T8,@T9,@T10,@T11,@T12,@T13
end
close A_T004_cur
deallocate A_T004_cur
--select * from #aipetech_t002
select * from #Aipetech_T004
--select 采购订单内码,1,物料内码,null,null,入库单号,单据日期,null,null,辅助实收数量,null,null,null from aipetech_v_icstockbill avi where ((采购订单内码=@InterID) and(入库单号 LIKE 'win%'))
Drop Table #Aipetech_T002
Drop Table #Aipetech_T003
Drop Table #Aipetech_T004
GO