专业版物料数据授权原创
金蝶云社区-凡城科技
凡城科技
6人赞赏了该文章 479次浏览 未经作者许可,禁止转载编辑于2021年04月11日 15:03:38

 专业版物料数据授权解决方法

客户是生成企业,业务员用移动应用开单,因为原料保密,不希望业务员看到原材料,专业版不支持物料数据授权,

目前只想到这个方法解决,大家可以参考下,看看有没有更完善的解决方法。

1、增加计量单位组 数量组 把除了产成品以外的计量单位都添加这个组里

2、增加物料 代码 9 名称 原材料,单位 数量组

3、所有物料 物料属性选自制(系统会生成成本对象)

   可以通过系统工具把所有物料引出 把物料属性改成自制 在覆盖引入

4执行语句-把产成品(代码02)以外的物料设置成半禁用(电脑端能看,手机上看不到)

Update t_ICItemCore set FDeleted=1 where  fnumber<'02' or fnumber>'03'

Update t_ICItemCore set FDeleted=0 where  fnumber='9'

 

5 执行语句在入库单、领料单、其他入库、其他出库单增加原材料列(取值成本对象)

DELETE FROM ICTemplateEntry WHERE FLookUpCls='2001' AND FID='A01'

INSERT INTO ICTemplateEntry

 (FID, FCtlOrder, FCtlIndex, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FEnable, FPrint,

 FHeadCaption, FWidth, FNeedCount, FMustInput, FDefaultCtl, FVisForBillType, FRelateOutTbl, FSysMustInputItem,

 FHeadCaption_CHT, FHeadCaption_EN, FStatCount, FIsVisibleForList, FCanEditedAllTime,

                      FAllowCopy,FPrintStatus, FIsVisibleForTemplate, FSelBill, FBillVisible)

VALUES ('A01',4,4,2,2001,1,1,1,'FCostOBJID',48,1,'原材料',1005,0,0,1,31,0,0,'原材料','CostObj',0,1,1,1,0,0,0,0)

--入库单增加原材料列

DELETE FROM ICTemplateEntry WHERE FLookUpCls='2001' AND FID='B04'

INSERT INTO ICTemplateEntry

 (FID, FCtlOrder, FCtlIndex, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FEnable, FPrint,

 FHeadCaption, FWidth, FNeedCount, FMustInput, FDefaultCtl, FVisForBillType, FRelateOutTbl, FSysMustInputItem,

 FHeadCaption_CHT, FHeadCaption_EN, FStatCount, FIsVisibleForList, FCanEditedAllTime,

                      FAllowCopy,FPrintStatus, FIsVisibleForTemplate, FSelBill, FBillVisible)

VALUES ('B04',4,4,2,2001,1,1,1,'FCostOBJID',48,1,'原材料',1005,0,0,1,31,0,0,'原材料','CostObj',0,1,1,1,0,0,0,0)

--领料单增加原材料列

DELETE FROM ICTemplateEntry WHERE FLookUpCls='2001' AND FID='A97'

INSERT INTO ICTemplateEntry

 (FID, FCtlOrder, FCtlIndex, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FEnable, FPrint,

 FHeadCaption, FWidth, FNeedCount, FMustInput, FDefaultCtl, FVisForBillType, FRelateOutTbl, FSysMustInputItem,

 FHeadCaption_CHT, FHeadCaption_EN, FStatCount, FIsVisibleForList, FCanEditedAllTime,

                      FAllowCopy,FPrintStatus, FIsVisibleForTemplate, FSelBill, FBillVisible)

VALUES ('A97',4,4,2,2001,1,1,1,'FCostOBJID',48,1,'原材料',1005,0,0,1,31,0,0,'原材料','CostObj',0,1,1,1,0,0,0,0)

--其他入库单增加原材料列

DELETE FROM ICTemplateEntry WHERE FLookUpCls='2001' AND FID='B09'

INSERT INTO ICTemplateEntry

 (FID, FCtlOrder, FCtlIndex, FCtlType, FLookUpCls, FNeedSave, FValueType, FSaveValue, FFieldName, FEnable, FPrint,

 FHeadCaption, FWidth, FNeedCount, FMustInput, FDefaultCtl, FVisForBillType, FRelateOutTbl, FSysMustInputItem,

 FHeadCaption_CHT, FHeadCaption_EN, FStatCount, FIsVisibleForList, FCanEditedAllTime,

                      FAllowCopy,FPrintStatus, FIsVisibleForTemplate, FSelBill, FBillVisible)

VALUES ('B09',4,4,2,2001,1,1,1,'FCostOBJID',48,1,'原材料',1005,0,0,1,31,0,0,'原材料','CostObj',0,1,1,1,0,0,0,0)

--其他出库单增加原材料列

6增加触发器 单据保存后 把物料代码9(内码868)更换成原材料列对应的原材料

1)执行语句 查出 物料代码9内码

select FItemID from t_ICItemCore where  fnumber='9'

2)把下面语句物料内码改成868 然后在查询分析器执行下

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

CREATE  TRIGGER [YLICStockBill] ON [dbo].[ICStockBill]

FOR  UPDATE

AS

  begin

Update t_ICItemCore set FDeleted=1 where  fnumber<'02' or fnumber>'03'

Update t_ICItemCore set FDeleted=0 where  fnumber='9'

--把产成品(代码02)以外的物料设置成半禁用(电脑端能看,手机上看不到)

update ICStockBillEntry set FItemID=cbCostObj.FStdProductID from

cbCostObj where ICStockBillEntry.FItemID=868 and ICStockBillEntry.FCostOBJID=cbCostObj.FItemID

--单据保存后 把物料代码9(内码868)更换成原材料列对应的原材料

END

 

7、做采购入库单时 物料选9  原料选择(成本对象里的原材料名称)

 

1.png

单据保存后点前单,点 就能看到变化

 

 

问题:物料半禁用后无法做入库出库,哪位大神有方法处理

如果能实现禁用的物料可以入库或出库,那样就禁用下物料就可以让手机只能看到成品了


赞 6