K3处理双单位计价的解决方案(比如采购下的物料单位为PCS,入库按平方或公斤)原创
金蝶云社区-云社区用户c4S19006
云社区用户c4S19006
4人赞赏了该文章 464次浏览 未经作者许可,禁止转载编辑于2022年03月23日 15:18:26

相信使用K3的朋友经常会遇到这样一个问题,
比如螺丝,钉子这些物料,采购部下的采购订单数量单位是“个”,但实际供应商是按公斤发货,单价也是按公斤结算,
这会导致外购入库单上按“个”入库的单价每次都要手工去换算,非常麻烦。


按我的方法,可以按【供应商】或【物料分类】自动将现实中以“公斤”结算的单价换算成系统中以“个”结算的单价。

第一步:以“公斤”换算成“PCS”为例。先建一个价格模块,将需要把换算的物料按供应商都登录到表里。

1.png

2.png


第二步,做触发器,根据条件,让他们自动换算,求出以“PCS”为单位的单价

3.png

触发器代码,各位根据需求自行修改吧


create TRIGGER [dbo].[ICStockBill_ye]
on  [dbo].[ICStockBill]
FOR INSERT,update
AS


declare @Finterid int select @Finterid=Finterid from inserted; 
declare @FTranType int select @FTranType=FTranType from inserted; 
declare @Fstatus int select @Fstatus=Fstatus from inserted;                 
declare @FSupplyID int  select @FSupplyID=FSupplyID from inserted;   --读取供应商内码


declare @FDate datetime select @FDate=FDate from inserted;
update v1 set v1.FEntrySelfA0185=@FDate 
from ICStockBillEntry v1
inner join  ICStockBill v2  on   v1.finterid=v2.Finterid
where v2.finterid=@Finterid  and v2.FTranType=1 

   --该段后加,将外购入库单制单日期复制到表体新建的字段里,条件是单据类型为外购入库单 FTranType=1 
 

IF @Fstatus=0  AND @FTranType =1    and      @FSupplyID  in('25770','479')     --这段是如果是外购入库单,并且是其中一个供应商【越来  内码25770或 海廷  内码479】 的情况下执行触发
BEGIN                            
SET NOCOUNT ON;

UPDATE v1 SET  v1.FEntrySelfA0182=v4.FName,
v1.FEntrySelfA0184=v2.FPrice*FEntrySelfA0183,
v1.FEntrySelfA0181=v2.FPrice,
v1.FPurchasePrice=v2.FPrice*FEntrySelfA0183/v1.FQty,
v1.FPurchaseAmount=v1.FPurchasePrice*v1.FQty--这段是用计价单价总金额除以入库数量,得到弹簧的采购单价和根据新采购单价,反写新的采购金额(如果不一并反写采购金额,采购金额会是错的)
from ICStockBillEntry v1
inner join t_BOS216100003Entry2 v2  on  v1.FItemid=v2.Fbase
inner join ICStockBill v3 on  V1.FInterID=V3.FInterID  and v3.FSupplyID=v2.FBase2
inner join t_MeasureUnit v4 on v2.FBase1=v4.FMeasureUnitID
 where  V1.FInterID=@Finterid 
end 



赞 4