东莞精诚网络技术交流论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 1788|回复: 0

<转>采购入库单直拨生成生产领料单

[复制链接]
发表于 2009-4-7 09:19:02 | 显示全部楼层 |阅读模式
第一步:
--加上直拨这一选项
insert into t_submessage
select fbrno,253,'P003',fparentid,'直拨',ftypeid,fdetail,fdeleted,null,fsystemtype,
fspec,uuid from t_submessage where FInterID>0 AND FDeleted=0  And FTypeID=162 and fname='现购'

第二步根据需求,也可略过)
设直拨为默认采购方式




第三步执行脚本:


use  这里输入你的数据库名称,比如:AIS2008226636333 等

go
create  trigger icstockbill_insert_bo on dbo.icstockbill
for update
as
begin
declare @sfinterid int --采购入库单单据内码
declare @cfinterid int --领料出库单单据内码
declare @fbillno varchar(255) --采购单单据编号
declare @fpostyle int --直拨内码
declare @ftrantype smallint --单据类型
declare @FStatus smallint--是否审核 0未审核,1审核
declare @FCancellation bit --0未作废,1作废
declare @FROB smallint -- 1蓝 -1红
declare @number int --单据号是否重复
select @sfinterid=finterid,@fbillno=fbillno,@fpostyle=fpostyle,
@ftrantype=ftrantype,@fstatus=fstatus,@fcancellation=fcancellation,
@frob=frob from inserted--定义内码
select @number=count(*) from icstockbill where ftrantype=24 and [email=fbillno=][email protected][/email]
select   @cfinterid=max(finterid)+1 from icstockbill  --定义内码
if @number>0
begin
rollback tran
raiserror('直拨单生成失败!!原因:单据号重复!',18,18)
end
if @fpostyle=253 and @fstatus=1 and @fcancellation=0 and @frob=1 and @ftrantype=1 and @number=0
begin
insert into icstockbill(
fbrno,
finterid,--单据内码
ftrantype,--单据类型
fdate,--单据日期
fbillno,--单据编码
fscstockid,--发货仓库
fdeptid,--领料部门
fbillerid,--制单人
fseltrantype,--源单类型 1
fcheckerid, --审核人
FStatus, --是否审核
FCheckDate, --审核日期
FFManagerID, --验收人
FSManagerID --领料人
)
select 0,@cfinterid,24,fdate,[email protected],fdcstockid,fdeptid,fbillerid,1,fcheckerid,1,fcheckdate,ffmanagerid,fsmanagerid
from icstockbill where [[email protected]][email protected][/email]
insert into icstockbillentry(
fbrno,
finterid,--单据内码
fentryid,--单据分录
fitemid,--物料内码
fqtymust,--基本单位数量
fqty,--实际数量
fauxqty,--数量
fauxqtymust,--数量
funitid,--单位
fsourceentryid,--源单分录
fsourcetrantype,--源单类型
fsourceinterid,--源单内码
fsourcebillno,--源单单号
fscstockid,--调出仓库
freproducetype--是否返工
)
select 0,@cfinterid,fentryid,fitemid,fqty,fqty,fqty,fqty,funitid,fentryid,1,@sfinterid,@fbillno,fdcstockid,1059
from icstockbillentry where [[email protected]][email protected][/email]
end

update ICMaxNum set fmaxnum=fmaxnum+1 where ftablename='icstockbill'--这里是更新ftrantype里面的值
end





第四步:新增单据测试效果
采购单是已审核的..采购方式是直拨,部门是必需选择的..
如果您想不审核就生成,那么改一下脚本这段.
if @fpostyle=253 and @fstatus=1 and @fcancellation=0 and @frob=1
把@fstatus=1改成@fstatus=0即可..判断条件都在这

顺便说明一下:
@fpostyle=253说明它的采购方式等于直拨.
@fcancellation=0说明它是未作废的
@frob=1说明它是蓝单
@ftrantype=1 说明它是采购入库单才会触发
想加其它条件限制触发就在这里添加吧


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|精诚网络 ( 粤ICP备13030199号 )

GMT+8, 2021-10-23 20:26 , Processed in 0.202956 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表