金蝶ERP实现产品入库冲减生产现场虚仓毛坯数,销售成品代码前一位数对应毛坯件的唯一代码,一一对应,其中增加委外加工时的半成品冲减功能。在此语句具体操作中出现虚仓入库单不能保存,提示不能删除己审核的单据的提示,现修改如下(文中修改以红字显示),具体语句如下:
if exists(select 1 from sysobjects where name = 'icstockbill_jade01') drop trigger icstockbill_jade01
go

create  trigger icstockbill_jade01 on icstockbill
for insert,update,delete
as
declare @frob int,@finterid int,@ftrantype int,@fstatus int
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 = fstatus from deleted
--select @fstatus2 = 0
--更新蓝字,未审核状态的 '销售出库单','领料单','委外出库单','其他出库单'的单价和金额
--更新步骤:供应商供货信息,以前月份的期末单价,以前月份的发出单价
--供应商供货信息只取RMB的平均单价
if @frob = 1 and @fstatus = 0 and (@ftrantype = 21 or @ftrantype = 24 or @ftrantype = 28 or @ftrantype = 29)
    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
if @ftrantype = 24
     --更新以前月的平均单价
     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 @finterid_zp int
 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
if isnull(@fitemid_mp,0) = 0 goto ext
--产品入库单第一行产品对应的毛坯虚仓
 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)
update icmaxnum set fmaxnum  = (select max(finterid) from zpstockbill) where ftablename = 'zpstockbill'  
end

ext:
/*
alter table icstockbill disable trigger icstockbill_jade01
alter table icstockbill enable trigger icstockbill_jade01
*/

附件:http://down.51cto.com/data/2347809

本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/22348,如需转载请自行联系原作者

金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正虚仓不能保存)...相关推荐

  1. 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(终结版)

    金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正委外出库的入库及销售出库的入库冲减两次毛坯的问题) SET QUOTED_IDENTIFIER ON  GO SET ANSI_NULLS ...

  2. 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数

    金蝶ERP实现产品入库冲减生产现场虚仓毛坯数,销售成品代码前一位数对应毛坯件的唯一代码,一一对应,其中增加委外加工时的半成品冲减功能.具体语句如下: if exists(select 1 from s ...

  3. 金蝶ERP实现产品入库冲减生产现场虚仓毛坯数

    金蝶ERP实现产品入库冲减生产现场虚仓毛坯数,销售成品代码前一位数对应毛坯件的唯一代码,一一对应,具体语句如下: if exists(select 1 from sysobjects where na ...

  4. 学习金蝶ERP 之 K3 介绍

    第1章 金蝶ERP K3 介绍 学习重点: l         金蝶ERP K/3系统数据流程图 l         金蝶ERP K/3 应用流程 1.1 金蝶ERP K/3 系统介绍 金的ERP K ...

  5. 金蝶ERP K3 介绍

    学习重点: l 金蝶ERP K/3系统数据流程图 l 金蝶ERP K/3 应用流程 1.1 金蝶ERP K/3 系统介绍 金的ERP K/3共有56个子系统,在这里主要讲述了销售管理系统.生产数据系统 ...

  6. 委外订单_ERP软件教程:金蝶ERP的委外加工业务流程(一)

    ERP软件教程:金蝶ERP的委外加工业务流程 关注我,我将定期分享更多的ERP解决方案 转发关注并私信我,了解更多的解决方案及操作方法哦 欢迎大家随时咨询关于金蝶ERP的任何问题! 一.应用软件版本: ...

  7. 用友和金蝶ERP产品私有云部署方案

    用友和金蝶ERP产品私有云部署方案 [摘要] 用友 金蝶 私有云 部署 架构图 用友和金蝶ERP产品私有云部署方案 一. 前言 此文档用于用友.金蝶ERP服务端在云环境下部署说明.用友产品包括U8+. ...

  8. 金蝶K3如何根据生产领料情况控制产品入库

    需求: 1.如何控制没有领料不允许做产品入库单? 2.如何控制领料领多少,入库就入库多少? 3.系统能不能控制必须领足够入库的材料才可以入库? 4.想实现材料没有生产领料完不允许产品入库? 5.做产品 ...

  9. el-date-picker设置默认日期_ERP入门教程:快速掌握金蝶ERP的基础-物料批次管理的应用及设置...

    ERP入门教程:快速掌握金蝶ERP的基础-物料的批次管理的应用及设置 关注我,我将定期分享更多的ERP解决方案 转发关注并私信我,了解更多的解决方案及操作方法哦 一.应用软件版本:金蝶KIS旗舰版6. ...

最新文章

  1. java map prefix_从键以特定表达式开头的Map中获取所有值的最快方法
  2. php 多条查询结果插入新表,Mysql应用MySQL查询结果复制到新表的方法(更新、插入)...
  3. 你不好奇缓冲池里的秘密吗?
  4. Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
  5. python 基础之字典一
  6. 剪切工具怎么用_原创度检测工具是怎么用的?优质的内容更容易获得平台推荐...
  7. Mysql5.7后的password加密和md5
  8. flutter 自定义键盘_掘金 AMA:听闲鱼客户端架构师邬吉风聊 Flutter 和移动端开发那些事...
  9. 准确率 召回率_机器学习中F值(F-Measure)、准确率(Precision)、召回率(Recall)
  10. checkAll全选的一个小例子
  11. sqlmap批量扫描burpsuite拦截的日志记录
  12. 顺序堆栈实现数制转换以十进制数转化为八进制数为例
  13. mysql_fdw在windows_Citus是否支持使用mysql_fdw创建分片?
  14. yuv 420 mp4 flv 视频与acc 各类音视频测试下载地址
  15. QFIL and FASTBOOT
  16. 【Markdown小技巧】 整理小图标和表情符号
  17. 百度一键Root授权管理完美卸载解决方案
  18. 达索系统与中国的那些创新
  19. 二十岁、我的青春散场
  20. python绘制地图的第三方库,geopandas,用python画地图原来这么简单!

热门文章

  1. 八猴模型html文件,4年来首次更新!八猴4.0都有哪些新功能?
  2. NuttX的学习笔记 13
  3. 互联网行业都有哪些岗位?看看自己适合哪个吧!
  4. GDAL/OGR 地理要素样式(四)
  5. 五款文件夹同步工具你会选择谁?(GoodSync/FreeFileSync/SyncToy/Allway Sync/Compare Advance)
  6. 《电池管理系统》总结
  7. 2020年R1快开门式压力容器操作复审模拟考试及R1快开门式压力容器操作作业模拟考试
  8. ubuntu双系统引导梅花_手把手教你安装win10+Ubuntu16.04的双系统(全网最详细)
  9. 亚马逊上怎么用连连支付结账?
  10. Uncaught URIError: URI malformed