[易飞]五、邮件预警-有库存未出货明细表(含客户名称 订单数量>100 交期<90天)-管理

来源:互联网 发布:英雄无敌3 hd mac版 编辑:程序博客网 时间:2024/04/27 21:13

存储过程

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo/* *用途:订单已完工入库未出货提醒 *作者:龚德辉 2010-09-19 */ALTER Procedure [dbo].[UP_QtyForDeliverForMgr](@0 as nvarchar(15)=null)asBegin Declare @tmp Table( 客户编号 CHAR(10),最近入库日期距今天 int,订单号 char(15),序号  char(4),库存数量 decimal(10,2),        库存金额 decimal(10,2),        品号    char(20),        品名    char(50),        订单数量 decimal(10,2),        已出数量 decimal(10,2),        未出数量 decimal(10,2),        工单入库数 decimal(10,2),        工单别 char(4),工单号 char(20),        客户订单号 char(50),        客户名称   char(50),        区域       char(10)        ) Declare  @客户编号 CHAR(10),  @旧客户编号 CHAR(10),@最近入库日期距今天 int,@订单号 char(15),@序号  char(4),@库存数量 decimal(10,2),@库存金额 decimal(10,2),        @品号    char(20),@旧品号 char(20),        @品名    char(50),        @订单数量 decimal(10,2),        @已出数量 decimal(10,2),        @未出数量 decimal(10,2),        @工单入库数 decimal(10,2),@工单别 char(4),        @工单号 char(20),        @客户订单号 char(50),        @客户名称  char(50),@区域      char(10) SET @旧品号='' Declare MyCursor CURSOR Local Static FOR    --------------------20110401修改仓库库存数量金额和排序规则--------------------------------------------------- select distinct  * from (  SELECT  TC004 客户编号,case when ZE.dbo.GetPrd_InMaxdate(TA001,TA002)='' then 0 else   datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate()) end as 最近入库日期距今天,rtrim(TD002) 订单号,TD003 序号,convert(decimal(15,2),i.MC007) as 库存数量,i.MC008 as 库存金额,TD004 品号,TD005 品名,convert(decimal(15,2),TD008) 订单数量,convert(decimal(15,2),TD009) 已出数量,convert(decimal(15,2),TD008)-convert(decimal(15,2),TD009) 未出数量,ZE.dbo.Qty_WOintoInv(TA001,TA002) as 工单入库数,TA001 工单别,TA002 工单号,TC012 客户订单号,MA002 客户名称,MR003 区域FROM  ZE.dbo.COPTD inner join ZE.dbo.MOCTA ON TD001=TA026 AND TD002=TA027  AND TD003=TA028            inner JOIN ZE.dbo.COPTC ON TC001=TD001 AND TC002=TD002            inner JOIN ZE.dbo.COPMA ON TC004=MA001            left join (select * from CMSMR where MR001='2') b on MA076=b.MR002             inner join ZE.dbo.INVMB on TD004=MB001            inner join (select a.MC001,a.MC002,c.MC002 仓库,a.MC007,a.MC008 from INVMC a Inner join CMSMC c on a.MC002=c.MC001 WHERE a.MC007<>0 AND a.MC002  in('03')) i on TD004=i.MC001WHERE (TD016='N' and TD021='Y'             and i.MC007>100              and datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate())>10              and convert(decimal(15,2),TD008)>100              and ZE.dbo.GetMainQty(TD004)-(convert(decimal(15,2),TD008)-convert(decimal(15,2),TD009))>=0 --库存数量-未出数量>0              and ZE.dbo.Date10(COPTC.TC003)<convert(varchar(10),dateadd(month,2,getdate()),120)              and datediff(day,getdate(),TD013)<90              and ZE.dbo.GetPrd_InMaxdate(TA001,TA002)<>'' ) OR              (      TD016='N' and TD021='Y'  --未结束订单 已审核            and i.MC007>100  --库存大于100                and datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate())>10 --取最近入库日期超过10天的              and convert(decimal(15,2),TD008)>100 --订单数量>100              and ZE.dbo.Date10(COPTC.TC003)<convert(varchar(10),dateadd(month,2,getdate()),120)              and datediff(day,getdate(),TD013)<90              and ZE.dbo.GetPrd_InMaxdate(TA001,TA002)<>''              ) )aorder by 品号 desc ,a.最近入库日期距今天 desc   Open MyCursor While 1=1 Begin Fetch MyCursor into         @客户编号,@最近入库日期距今天,@订单号,@序号,@库存数量,        @库存金额,        @品号,        @品名,        @订单数量,        @已出数量,        @未出数量,        @工单入库数,        @工单别,        @工单号,        @客户订单号,        @客户名称,@区域   if @@fetch_status<>0   Break  PRINT   @旧品号  PRINT  @品号             if (@旧品号<>@品号) BEGIN         INSERT @tmp(客户编号,最近入库日期距今天,订单号,序号,库存数量,库存金额,品号,品名,订单数量,已出数量,未出数量,工单入库数,工单别,工单号,客户订单号,客户名称,区域)                VALUES(         @客户编号,@最近入库日期距今天,@订单号,@序号,@库存数量,@库存金额,        @品号,        @品名,        @订单数量,        @已出数量,        @未出数量,        @工单入库数,        @工单别,                        @工单号,        @客户订单号,        @客户名称,@区域) END      ELSE  BEGIN         INSERT @tmp(客户编号,最近入库日期距今天,订单号,序号,库存数量,库存金额,品号,品名,订单数量,已出数量, 未出数量,工单入库数,工单别,工单号,客户订单号,客户名称,区域)                VALUES(         @客户编号,@最近入库日期距今天,@订单号,@序号,NULL,NULL,        @品号,       @品名,        @订单数量,       @已出数量,        @未出数量,        @工单入库数,        @工单别,@工单号,        @客户订单号,        @客户名称,@区域) END       SET @旧品号=@品号            End Close MyCursor Deallocate MyCursor  select * from  @tmp  where 最近入库日期距今天>30End


原创粉丝点击