金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正虚仓不能保存)...
go
create trigger icstockbill_jade01 on icstockbill
for insert,update,delete
as
select @frob = frob,@finterid = finterid,@ftrantype = ftrantype,@fstatus = fstatus
from inserted
--from icstockbill where finterid = 26864
declare @fstatus1 smallint,@fstatus2 smallint,@fbillno varchar(40)
select @fbillno = fbillno,@fstatus1 = fstatus from inserted
--from icstockbill where finterid = 26864
--select @fstatus2 = 0
--更新步骤:供应商供货信息,以前月份的期末单价,以前月份的发出单价
--供应商供货信息只取RMB的平均单价
begin
--更新供应商供货信息平均单价
update a set fprice = isnull(b.fprice,0),famount = isnull(b.fprice,0) * fqty,fauxprice = isnull(b.fprice,0)
from icstockbillentry a ,(select fitemid,convert(decimal(18,2),avg(fprice)) as fprice from t_supplyentry where fcyid = 1 group by fitemid) b
where a.fitemid = b.fitemid and a.finterid = @finterid
--更新以前月的平均单价
update x set fprice = y.fprice,famount = y.fprice * fqty,fauxprice = y.fprice
from icstockbillentry x,
(select fstockid,fitemid,fyear * 100 + fperiod as fperiods,
convert(decimal(18,2),avg(case when fendqty = 0 then case when fsend <> 0 then fcredit/fsend end else fendbal / fendqty end)) as fprice
from icinvbal
where fsend <> 0 or fendqty <> 0
group by fstockid,fitemid,fyear * 100 + fperiod) y,
(select fstockid,fitemid,max(fyear * 100 + fperiod) as fperiods from icinvbal
where fsend <> 0 or fendqty <> 0
group by fstockid,fitemid) z
where y.fstockid = z.fstockid and y.fitemid = z.fitemid and y.fperiods = z.fperiods
and x.fscstockid = y.fstockid and x.fitemid = y.fitemid and x.finterid = @finterid
else
--更新以前月的平均单价
update x set fprice = y.fprice,famount = y.fprice * fqty,fauxprice = y.fprice
from icstockbillentry x,
(select fstockid,fitemid,fyear * 100 + fperiod as fperiods,
convert(decimal(18,2),avg(case when fendqty = 0 then case when fsend <> 0 then fcredit/fsend end else fendbal / fendqty end)) as fprice
from icinvbal
where fsend <> 0 or fendqty <> 0
group by fstockid,fitemid,fyear * 100 + fperiod) y,
(select fstockid,fitemid,max(fyear * 100 + fperiod) as fperiods from icinvbal
where fsend <> 0 or fendqty <> 0
group by fstockid,fitemid) z
where y.fstockid = z.fstockid and y.fitemid = z.fitemid and y.fperiods = z.fperiods
and x.fdcstockid = y.fstockid and x.fitemid = y.fitemid and x.finterid = @finterid
end
if @ftrantype = 2 and ((isnull(@fstatus1,0) = 1 and isnull(@fstatus2,0) = 0) or (isnull(@fstatus1,0) = 0 and isnull(@fstatus2,0) = 1))
begin
declare @fitemid_mp int,@fstockid_mp as int,@fqty_mp decimal(18,2)
--虚仓入库单最大内码
select @finterid_zp = isnull(max(finterid),0) + 1 from zpstockbill
--产品入库单第一行产品对应的毛坯
select @fitemid_mp = c.fitemid from icstockbillentry a,t_icitem b,t_icitem c
where a.fitemid = b.fitemid and finterid = @finterid
and c.fnumber = case left(b.fnumber,3) when '11.' then '15.001' when '12.' then '15.001' when '13.' then '15.002' when '14.' then '15.003' when '20.' then '15.002' end
and fentryid = 1
select @fstockid_mp = c.fitemid from icstockbillentry a,t_icitem b,t_stock c
where a.fitemid = b.fitemid and finterid = @finterid
and c.fnumber = case left(b.fnumber,3) when '11.' then '22' when '12.' then '22' when '13.' then '23' when '14.' then '22' when '20.' then '23' end
and fentryid = 1
--仓库入库单总数量
select @fqty_mp = sum(fqty) from icstockbillentry where finterid = @finterid
--审核过程
if isnull(@fstatus1,0) = 1 and isnull(@fstatus2,0) = 0
begin
--新增单据头
insert into zpstockbill(fbrno,finterid,ftrantype,frob,fdate,fbillno,fcheckerid,ffmanagerid,fsmanagerid,fbillerid,fdeptid,fstatus,fcheckdate,fbilltypeid)
select fbrno,@finterid_zp as finterid,26 as ftrantype,frob,fdate,fbillno,fcheckerid,ffmanagerid,fsmanagerid,fbillerid,fdeptid,fstatus,fcheckdate,12551 as fbilltypeid
from icstockbill where finterid = @finterid
--新增单据体
insert into zpstockbillentry(fbrno,finterid,fentryid,fitemid,fqty,funitid,fauxqty,fdcstockid)
select 0 as fbrno,@finterid_zp as finterid,1 as fentryid,
@fitemid_mp as fitemid,
@fqty_mp as fqty,@fqty_mp as fauxqty,
(select funitid from t_icitem where fitemid = @fitemid_mp) as funitid,
@fstockid_mp as fdcstockid
select @fqty_mp = - @fqty_mp
end
if isnull(@fstatus1,0) = 0 and isnull(@fstatus2,0) = 1
begin
update zpstockbill set fstatus = 0,fcheckerid = 0 where fbillno = @fbillno
delete zpstockbill where fbillno = @fbillno
end
if exists (select * from poinventory where fitemid = @fitemid_mp and fstockid = @fstockid_mp)
update poinventory set fqty = fqty + @fqty_mp where fitemid = @fitemid_mp and fstockid = @fstockid_mp
else
insert into poinventory(fbrno,fitemid,fstockid,fqty,fstocktypeid)
select 0,@fitemid_mp,@fstockid_mp,@fqty_mp,(select ftypeid from t_stock where fitemid = @fstockid_mp)
ext:
alter table icstockbill enable trigger icstockbill_jade01
附件:http://down.51cto.com/data/2347809
本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/22348,如需转载请自行联系原作者
金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正虚仓不能保存)...相关推荐
- 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(终结版)
金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正委外出库的入库及销售出库的入库冲减两次毛坯的问题) SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ...
- 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数
金蝶ERP实现产品入库冲减生产现场虚仓毛坯数,销售成品代码前一位数对应毛坯件的唯一代码,一一对应,其中增加委外加工时的半成品冲减功能.具体语句如下: if exists(select 1 from s ...
- 金蝶ERP实现产品入库冲减生产现场虚仓毛坯数
金蝶ERP实现产品入库冲减生产现场虚仓毛坯数,销售成品代码前一位数对应毛坯件的唯一代码,一一对应,具体语句如下: if exists(select 1 from sysobjects where na ...
- 学习金蝶ERP 之 K3 介绍
第1章 金蝶ERP K3 介绍 学习重点: l 金蝶ERP K/3系统数据流程图 l 金蝶ERP K/3 应用流程 1.1 金蝶ERP K/3 系统介绍 金的ERP K ...
- 金蝶ERP K3 介绍
学习重点: l 金蝶ERP K/3系统数据流程图 l 金蝶ERP K/3 应用流程 1.1 金蝶ERP K/3 系统介绍 金的ERP K/3共有56个子系统,在这里主要讲述了销售管理系统.生产数据系统 ...
- 委外订单_ERP软件教程:金蝶ERP的委外加工业务流程(一)
ERP软件教程:金蝶ERP的委外加工业务流程 关注我,我将定期分享更多的ERP解决方案 转发关注并私信我,了解更多的解决方案及操作方法哦 欢迎大家随时咨询关于金蝶ERP的任何问题! 一.应用软件版本: ...
- 用友和金蝶ERP产品私有云部署方案
用友和金蝶ERP产品私有云部署方案 [摘要] 用友 金蝶 私有云 部署 架构图 用友和金蝶ERP产品私有云部署方案 一. 前言 此文档用于用友.金蝶ERP服务端在云环境下部署说明.用友产品包括U8+. ...
- 金蝶K3如何根据生产领料情况控制产品入库
需求: 1.如何控制没有领料不允许做产品入库单? 2.如何控制领料领多少,入库就入库多少? 3.系统能不能控制必须领足够入库的材料才可以入库? 4.想实现材料没有生产领料完不允许产品入库? 5.做产品 ...
- el-date-picker设置默认日期_ERP入门教程:快速掌握金蝶ERP的基础-物料批次管理的应用及设置...
ERP入门教程:快速掌握金蝶ERP的基础-物料的批次管理的应用及设置 关注我,我将定期分享更多的ERP解决方案 转发关注并私信我,了解更多的解决方案及操作方法哦 一.应用软件版本:金蝶KIS旗舰版6. ...
最新文章
- java map prefix_从键以特定表达式开头的Map中获取所有值的最快方法
- php 多条查询结果插入新表,Mysql应用MySQL查询结果复制到新表的方法(更新、插入)...
- 你不好奇缓冲池里的秘密吗?
- Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
- python 基础之字典一
- 剪切工具怎么用_原创度检测工具是怎么用的?优质的内容更容易获得平台推荐...
- Mysql5.7后的password加密和md5
- flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...
- 准确率 召回率_机器学习中F值(F-Measure)、准确率(Precision)、召回率(Recall)
- checkAll全选的一个小例子
- sqlmap批量扫描burpsuite拦截的日志记录
- 顺序堆栈实现数制转换以十进制数转化为八进制数为例
- mysql_fdw在windows_Citus是否支持使用mysql_fdw创建分片?
- yuv 420 mp4 flv 视频与acc 各类音视频测试下载地址
- QFIL and FASTBOOT
- 【Markdown小技巧】 整理小图标和表情符号
- 百度一键Root授权管理完美卸载解决方案
- 达索系统与中国的那些创新
- 二十岁、我的青春散场
- python绘制地图的第三方库,geopandas,用python画地图原来这么简单!
热门文章
- 八猴模型html文件,4年来首次更新!八猴4.0都有哪些新功能?
- NuttX的学习笔记 13
- 互联网行业都有哪些岗位?看看自己适合哪个吧!
- GDAL/OGR 地理要素样式(四)
- 五款文件夹同步工具你会选择谁?(GoodSync/FreeFileSync/SyncToy/Allway Sync/Compare Advance)
- 《电池管理系统》总结
- 2020年R1快开门式压力容器操作复审模拟考试及R1快开门式压力容器操作作业模拟考试
- ubuntu双系统引导梅花_手把手教你安装win10+Ubuntu16.04的双系统(全网最详细)
- 亚马逊上怎么用连连支付结账?
- Uncaught URIError: URI malformed