易飞ERP安全库存预警提示:以HTML表格发送至邮箱
来源:互联网 发布:mac office365激活码 编辑:程序博客网 时间:2024/05/03 10:42
if exists(select *from sysobjects where name='jf_SafetyStock')
drop procedure jf_SafetyStock
go
create procedure jf_SafetyStock
as
begin
if exists(
SELECT MB001,MB002,MB003,CAST((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0)) AS INT) AS QTY1,CAST((INVMC2.MC004)AS INT) AS QTY2,((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))/INVMC2.MC004) AS RATE FROM INVMB
LEFT JOIN (SELECT TB004,SUM(TB009) AS TB009 FROM PURTB WHERE TB025='Y' AND TB039='N' GROUP BY TB004) AS PURTB ON INVMB.MB001=PURTB.TB004
LEFT JOIN (SELECT TD004,SUM(TD008) AS TD008 FROM PURTD WHERE TD018='N' GROUP BY TD004) AS PURTD ON INVMB.MB001=PURTD.TD004
LEFT JOIN (SELECT TD004,SUM(TD008-TD015) AS TD008 FROM PURTD WHERE TD018='Y' AND TD016='N' GROUP BY TD004) AS PURTD2 ON INVMB.MB001=PURTD2.TD004
LEFT JOIN (SELECT TA006,SUM(TA015-TA017-TA018-TA060) AS TA015 FROM MOCTA WHERE TA011 NOT IN ('Y','y') GROUP BY TA006) AS MOCTA ON INVMB.MB001=MOCTA.TA006
LEFT JOIN (SELECT TB003,SUM(TB004-TB005) AS TB004 FROM MOCTB,MOCTA WHERE TA011 NOT IN ('Y','y') AND TA001=TB001 AND TA002=TB002 GROUP BY TB003) AS MOCTB ON INVMB.MB001=MOCTB.TB003
LEFT JOIN (SELECT TD004,SUM(TD008+TD024-TD009-TD025) AS TD008 FROM COPTD WHERE TD016='N' GROUP BY TD004) AS COPTD ON INVMB.MB001=COPTD.TD004
LEFT JOIN (SELECT MC001,SUM(MC007) AS MC007 FROM INVMC WHERE MC002<>'901' GROUP BY MC001) AS INVMC ON INVMB.MB001=INVMC.MC001
LEFT JOIN (SELECT MC001,SUM(MC004) AS MC004 FROM INVMC WHERE MC002<>'901'GROUP BY MC001) AS INVMC2 ON INVMB.MB001=INVMC2.MC001
WHERE INVMC2.MC004<>0 AND INVMC2.MC004 IS NOT NULL
AND ((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-
ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))-INVMC2.MC004)<0
)
begin
declare @tablehtml nvarchar(max);
declare @obj nvarchar(100);
set @obj =CONVERT(varchar(100), GETDATE(), 112) + '安全库存检视表'
set @tablehtml = N'<H1>库存可用量小于安全库存之品号预警</H1> '
+ N'<table border="1px" cellspacing="0px" style="border-collapse:collapse">' +
+ N'<tr><th>品号</th><th>品名</th><th>规格</th><th>库存可用</th><th>安全存量</th><th>低于数量</th></tr>'
+cast((
--库存可用量预计小于安全可用量(记得剔除中间仓库存)
SELECT
td=ISNULL(rtrim(MB001),''),'',
td=ISNULL(rtrim(MB002),''),'',
td=ISNULL(rtrim(MB003),''),'',
td=CAST((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0)) AS INT),'',
td=CAST((INVMC2.MC004)AS INT),'',
td=convert(decimal(18,3),((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))/INVMC2.MC004)),''
FROM INVMB
LEFT JOIN (SELECT TB004,SUM(TB009) AS TB009 FROM PURTB WHERE TB025='Y' AND TB039='N' GROUP BY TB004) AS PURTB ON INVMB.MB001=PURTB.TB004
LEFT JOIN (SELECT TD004,SUM(TD008) AS TD008 FROM PURTD WHERE TD018='N' GROUP BY TD004) AS PURTD ON INVMB.MB001=PURTD.TD004
LEFT JOIN (SELECT TD004,SUM(TD008-TD015) AS TD008 FROM PURTD WHERE TD018='Y' AND TD016='N' GROUP BY TD004) AS PURTD2 ON INVMB.MB001=PURTD2.TD004
LEFT JOIN (SELECT TA006,SUM(TA015-TA017-TA018-TA060) AS TA015 FROM MOCTA WHERE TA011 NOT IN ('Y','y') GROUP BY TA006) AS MOCTA ON INVMB.MB001=MOCTA.TA006
LEFT JOIN (SELECT TB003,SUM(TB004-TB005) AS TB004 FROM MOCTB,MOCTA WHERE TA011 NOT IN ('Y','y') AND TA001=TB001 AND TA002=TB002 GROUP BY TB003) AS MOCTB ON INVMB.MB001=MOCTB.TB003
LEFT JOIN (SELECT TD004,SUM(TD008+TD024-TD009-TD025) AS TD008 FROM COPTD WHERE TD016='N' GROUP BY TD004) AS COPTD ON INVMB.MB001=COPTD.TD004
LEFT JOIN (SELECT MC001,SUM(MC007) AS MC007 FROM INVMC WHERE MC002<>'901' GROUP BY MC001) AS INVMC ON INVMB.MB001=INVMC.MC001
LEFT JOIN (SELECT MC001,SUM(MC004) AS MC004 FROM INVMC WHERE MC002<>'901'GROUP BY MC001) AS INVMC2 ON INVMB.MB001=INVMC2.MC001
WHERE INVMC2.MC004<>0 AND INVMC2.MC004 IS NOT NULL
AND ((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-
ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))-INVMC2.MC004)<0
for xml path('tr'),type)AS NVARCHAR(MAX))
+N'</table>';
exec msdb.dbo.sp_send_dbmail
@profile_name='db_mail',
@recipients ='1137***@qq.com',
@blind_copy_recipients ='113***@qq.com',
@subject = @obj,
@body =@tablehtml,
@body_format='HTML'
drop procedure jf_SafetyStock
go
create procedure jf_SafetyStock
as
begin
if exists(
SELECT MB001,MB002,MB003,CAST((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0)) AS INT) AS QTY1,CAST((INVMC2.MC004)AS INT) AS QTY2,((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))/INVMC2.MC004) AS RATE FROM INVMB
LEFT JOIN (SELECT TB004,SUM(TB009) AS TB009 FROM PURTB WHERE TB025='Y' AND TB039='N' GROUP BY TB004) AS PURTB ON INVMB.MB001=PURTB.TB004
LEFT JOIN (SELECT TD004,SUM(TD008) AS TD008 FROM PURTD WHERE TD018='N' GROUP BY TD004) AS PURTD ON INVMB.MB001=PURTD.TD004
LEFT JOIN (SELECT TD004,SUM(TD008-TD015) AS TD008 FROM PURTD WHERE TD018='Y' AND TD016='N' GROUP BY TD004) AS PURTD2 ON INVMB.MB001=PURTD2.TD004
LEFT JOIN (SELECT TA006,SUM(TA015-TA017-TA018-TA060) AS TA015 FROM MOCTA WHERE TA011 NOT IN ('Y','y') GROUP BY TA006) AS MOCTA ON INVMB.MB001=MOCTA.TA006
LEFT JOIN (SELECT TB003,SUM(TB004-TB005) AS TB004 FROM MOCTB,MOCTA WHERE TA011 NOT IN ('Y','y') AND TA001=TB001 AND TA002=TB002 GROUP BY TB003) AS MOCTB ON INVMB.MB001=MOCTB.TB003
LEFT JOIN (SELECT TD004,SUM(TD008+TD024-TD009-TD025) AS TD008 FROM COPTD WHERE TD016='N' GROUP BY TD004) AS COPTD ON INVMB.MB001=COPTD.TD004
LEFT JOIN (SELECT MC001,SUM(MC007) AS MC007 FROM INVMC WHERE MC002<>'901' GROUP BY MC001) AS INVMC ON INVMB.MB001=INVMC.MC001
LEFT JOIN (SELECT MC001,SUM(MC004) AS MC004 FROM INVMC WHERE MC002<>'901'GROUP BY MC001) AS INVMC2 ON INVMB.MB001=INVMC2.MC001
WHERE INVMC2.MC004<>0 AND INVMC2.MC004 IS NOT NULL
AND ((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-
ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))-INVMC2.MC004)<0
)
begin
declare @tablehtml nvarchar(max);
declare @obj nvarchar(100);
set @obj =CONVERT(varchar(100), GETDATE(), 112) + '安全库存检视表'
set @tablehtml = N'<H1>库存可用量小于安全库存之品号预警</H1> '
+ N'<table border="1px" cellspacing="0px" style="border-collapse:collapse">' +
+ N'<tr><th>品号</th><th>品名</th><th>规格</th><th>库存可用</th><th>安全存量</th><th>低于数量</th></tr>'
+cast((
--库存可用量预计小于安全可用量(记得剔除中间仓库存)
SELECT
td=ISNULL(rtrim(MB001),''),'',
td=ISNULL(rtrim(MB002),''),'',
td=ISNULL(rtrim(MB003),''),'',
td=CAST((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0)) AS INT),'',
td=CAST((INVMC2.MC004)AS INT),'',
td=convert(decimal(18,3),((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))/INVMC2.MC004)),''
FROM INVMB
LEFT JOIN (SELECT TB004,SUM(TB009) AS TB009 FROM PURTB WHERE TB025='Y' AND TB039='N' GROUP BY TB004) AS PURTB ON INVMB.MB001=PURTB.TB004
LEFT JOIN (SELECT TD004,SUM(TD008) AS TD008 FROM PURTD WHERE TD018='N' GROUP BY TD004) AS PURTD ON INVMB.MB001=PURTD.TD004
LEFT JOIN (SELECT TD004,SUM(TD008-TD015) AS TD008 FROM PURTD WHERE TD018='Y' AND TD016='N' GROUP BY TD004) AS PURTD2 ON INVMB.MB001=PURTD2.TD004
LEFT JOIN (SELECT TA006,SUM(TA015-TA017-TA018-TA060) AS TA015 FROM MOCTA WHERE TA011 NOT IN ('Y','y') GROUP BY TA006) AS MOCTA ON INVMB.MB001=MOCTA.TA006
LEFT JOIN (SELECT TB003,SUM(TB004-TB005) AS TB004 FROM MOCTB,MOCTA WHERE TA011 NOT IN ('Y','y') AND TA001=TB001 AND TA002=TB002 GROUP BY TB003) AS MOCTB ON INVMB.MB001=MOCTB.TB003
LEFT JOIN (SELECT TD004,SUM(TD008+TD024-TD009-TD025) AS TD008 FROM COPTD WHERE TD016='N' GROUP BY TD004) AS COPTD ON INVMB.MB001=COPTD.TD004
LEFT JOIN (SELECT MC001,SUM(MC007) AS MC007 FROM INVMC WHERE MC002<>'901' GROUP BY MC001) AS INVMC ON INVMB.MB001=INVMC.MC001
LEFT JOIN (SELECT MC001,SUM(MC004) AS MC004 FROM INVMC WHERE MC002<>'901'GROUP BY MC001) AS INVMC2 ON INVMB.MB001=INVMC2.MC001
WHERE INVMC2.MC004<>0 AND INVMC2.MC004 IS NOT NULL
AND ((ISNULL(PURTB.TB009,0)+ISNULL(PURTD.TD008,0)+ISNULL(PURTD2.TD008,0)-ISNULL(MOCTA.TA015,0)-ISNULL(MOCTB.TB004,0)-
ISNULL(COPTD.TD008,0)+ISNULL(INVMC.MC007,0))-INVMC2.MC004)<0
for xml path('tr'),type)AS NVARCHAR(MAX))
+N'</table>';
exec msdb.dbo.sp_send_dbmail
@profile_name='db_mail',
@recipients ='1137***@qq.com',
@blind_copy_recipients ='113***@qq.com',
@subject = @obj,
@body =@tablehtml,
@body_format='HTML'
end
end
效果:
阅读全文
0 0
- 易飞ERP安全库存预警提示:以HTML表格发送至邮箱
- 入库,出库数据,自动生成库存,简单实用的仓库管理表格或ERP系统.请发一份到我的邮箱545451757@qq.com.谢谢
- 用python发送表格数据到邮箱
- Office 2003 出现异常提示遇到问题需要关闭“ 发送错误报告 ”“ 不发送 ”“以安全模式启动”
- HTML表格制作学习提示
- biee发送预警
- 以横向树方式显示Html表格
- Bugfree邮件发送设置(以QQ邮箱为例)
- Bugfree邮件发送设置(以QQ邮箱为例)
- Python发送邮件(以163邮箱为例)
- java邮件发送(以163邮箱为例)
- SAP 库存相关表格
- SAP 库存相关表格
- 2.以普通表格型单表为模板定制模块:库存管理
- javaMail实现以html格式发送邮件
- ERP安全
- [易飞]五、邮件预警-有库存未出货明细表(含客户名称 订单数量>100 交期<90天)-管理
- 仿照 邮箱的免登陆安全提示 javascript代码
- linux部署jenkins,tomcat9
- 关于Centos6或Centos7 root进不了系统解决方法
- ORA-28040: No matching authentication protocol 错误
- 【云星数据---Apache Flink实战系列(精品版)】:Apache Flink批处理API详解与编程实战001--DateSet实用API详解001
- navicat1130 ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL server
- 易飞ERP安全库存预警提示:以HTML表格发送至邮箱
- NestedScrollingParent, NestedScrollingChild 详解
- 重现Redis--数据结构与对象(一)
- LINUX下ECHO命令详解(转)
- 数组及存储剖析
- 去重的五种方法
- 端口大全
- 磁盘 OSD 读写性能测试
- php 二维数组排序