生产领料申请单
1、功能描述
车间领料员提出领料申请,仓管员根据领料申请单拣货,生成领料单出库。支持根据生产订单或成套领料发出领料申请,系统自动根据可用库存拣货,仓管员可查看汇总领料信息、并可修改领料申请的拣货数量,根据领料申请直接生成领料单。
2、使用前提
1)对应的生产订单分录需处于下达、开工、完工状态,且未挂起;
2)对应的生产用料清单必须处于审核状态。
3)用料清单分录【应发数量-领料选单数量-申请中数量+来料不良数量+良品退料数量】>0
3、功能路径
【生产制造】->【生产管理】->【生产领料】->【生产领料申请单】
4、生成方式
1)生产订单/生产用料清单分录下推生成;
2)生产领料申请单新增界面,通过选单生成;
3)生产成套领料界面点击“领料申请”生成
5、业务流程
1)领料申请和拣货由同一个角色完成时:
【业务流程】:根据生产订单/生产用料清单/生产成套领料生成生产领料申请单→点击‘自动拣货’按钮自动执行批号拣货→打印领料申请单→根据领料申请单线下拣货→微调领料申请单的实际拣货数量→提交、审核领料申请单→点击“发料”按钮生成领料单。
【权限分配】:新增、修改、删除、提交、审核、反审核、打印等权限。
【权限分配】:
车间领料人员:新增、修改、删除、提交等权限。
仓管员:审核、反审核、修改、拣货修改、打印等权限。若不同的仓管员负责不同仓库的领料申请,可考虑设置明细页签“仓库”的数据规则。
6、字段说明
6.1、基本信息页签
字段 | 说明 |
---|---|
单据编号 | 预设编码规则:常量4位(LLSQ)+流水号8位 |
单据类型 | 下拉选项为“生产领料申请单”,默认为该选项 |
单据状态 | 暂存/创建/审核中/重新审核/已审核 |
申请日期 | 默认为当天 |
申请组织 | 取用料清单的“生产组织”,为主业务组织 |
申请部门 | 取用料清单的“生产车间” |
申请人 | 默认携带当前操作用户 |
发料组织 | 根据用料清单分录的发料组织携带 |
发料仓库 | 默认为空 |
仓管员 | 默认为空 |
备注 | 默认为空 |
6.2、其他页签
字段 | 说明 |
---|---|
关闭状态 | 1、分为:未关闭、手工关闭、自动关闭; 2、手工关闭后状态变为手工关闭; 3、所有明细分录的“欠领数量”小于等于0时,关闭状态自动置为“自动关闭”,修改领料单后,若不满足该条件,则将“自动关闭”状态自动置为“未关闭”,若为“手工关闭”状态,则不自动置为“未关闭” |
6.3、明细/汇总页签
字段 | 说明 |
---|---|
物料编码 | 从用料清单携带 |
物料名称 | 从用料清单携带 |
规格型号 | 从用料清单携带 |
BOM版本 | 从用料清单携带,或者拣货时自动赋值 |
辅助属性 | 从用料清单携带,或者拣货时自动赋值 |
计划跟踪号 | 从用料清单携带,或者拣货时自动赋值 |
批号 | 从用料清单携带,或者拣货时自动赋值 |
生产日期 | 允许编辑,或者拣货时自动赋值 |
有效期至 | 允许编辑,或者拣货时自动赋值 |
保质期单位 | 允许编辑,或者拣货时自动赋值 |
保质期 | 允许编辑,或者拣货时自动赋值 |
单位 | 取用料清单“子项单位” |
基本单位 | 根据物料取值 |
主库存单位 | 根据物料取值 |
辅库存单位 | 根据物料取值 |
需求日期 | 从用料清单携带,仅明细页签显示,汇总页签不显示 |
应发数量 | 从用料清单携带 |
待申请总数 | =生产用料清单的【应发数量】-【领料选单数】+【良品退料数量】+【来料不良退料数量】-【申请中数量】,若结果小于0则取0,该字段锁定不允许编辑; |
本次申请数 | 1)默认取“待申请总数”,允许编辑 2)【同一行用料清单分录关联的多行申请单分录累计的“本次申请数”+用料清单“申请中数量”(排除本单的)+领料选单数-良品退料数量-来料不良退料数量】需满足超发控制方式 3)主要给领料申请员维护,仓管员不允许维护,即审核中状态下不允许维护; |
拣货数量 | 1)默认为0,允许编辑,或者通过点击“自动拣货”后自动填充拣货结果 2)【同一行用料清单分录关联的多行申请单分录累计的“拣货数量”+用料清单领料选单数-良品退料数量-来料不良退料数量】需满足超发控制方式 |
待拣货数量 | =本次申请数-拣货数量 |
已领数量 | 取申请单关联的领料单的累计“实发数量”,领料单保存即反写 |
拣货未领数量 | =拣货数量-已领数量 |
欠领数量 | =本次申请数-已领数量 |
超发控制方式 | 从用料清单携带 |
领料考虑最小发料批量 | 从用料清单携带 |
仓库 | 从用料清单携带,或者拣货时自动赋值 |
仓位 | 从用料清单携带,或者拣货时自动赋值 |
库存状态 | 取库存中的库存状态 |
车间 | 从用料清单携带 |
货主类型 | 从用料清单携带,或者拣货时自动赋值 |
货主 | 从用料清单携带,或者拣货时自动赋值 |
保管者类型 | 从用料清单携带,或者拣货时自动赋值 |
保管者 | 从用料清单携带,或者拣货时自动赋值 |
产品编码 | 从用料清单携带 |
产品名称 | 从用料清单携带 |
产品规格型号 | 从用料清单携带 |
备注 | 允许手工编辑 |
VMI业务 | 从用料清单携带 |
生产订单编号 | 取对应的生产订单编号 |
生产订单行号 | 取对应的生产订单行号 |
用料清单编号 | 取对应的用料清单编号 |
用料清单行号 | 取对应的用料清单行号 |
计划开工日期 | 取生产订单的计划开工日期 |
计划完工日期 | 取生产订单的计划完工日期 |
需求优先级 | 取生产订单的需求优先级 |
工序序列 | 从用料清单携带 |
工序号 | 从用料清单携带 |
作业 | 从用料清单携带 |
工作中心 | 从用料清单携带 |
7、操作
7.1、下推
- 生产订单、生产用料清单允许多选分录下推生产领料申请单,当多选的分录包含不同的生产组织或发料组织时,按【生产组织+发料组织】分别生成不同的领料申请单
- 下推时用料清单分录需满足的条件:【应发数量-领料选单数量-申请中数量+来料不良数量+良品退料数量】>0
- 下推到领料申请单界面时,不自动执行拣货,需要点击“自动拣货”按钮才拣货。
7.2、自动拣货
- 下推领料申请单时不执行批号拣货,需要点击界面上的“自动拣货”按钮执行批号拣货,拣货时根据【领料申请单上的分录对应的用料清单上的库存维度+该用料清单分录对应的领料申请单各分录的本次申请数之和】作为拣货的目标维度和数量。
- 若不希望一笔库存同时被多张领料申请单重复占用,需要勾选生产管理参数“领料申请单自动拣货时扣除其他领料申请单占用的库存”。
- 预计可发量参数,支持添加生产领料申请单,用于生产领料申请单在保存、提交、审核等环节进行预计可发量的判断(即扣除了其他领料申请单占用的库存后本次预计可发量是否足够)。
- 如果多次点击“自动拣货”按钮,每次都重新根据【用料清单的库存维度+领料申请单的本次申请数】来拣货,不考虑拣货前领料申请单上对库存维度所做的修改。
- 若用料清单中某个物料的辅助属性指定了具体的值,则即时库存中该辅助属性的值与用料清单一致才能匹配上;若用料清单辅助属性没有指定具体的值,则即时库存中该辅助属性的任意值均可与用料清单匹配。同一个物料有多个辅助属性时,则每个辅助属性都满足以上匹配规则时才能批号拣货。
- 多行相同物料一起批号拣货时,按分录顺序从上到下分配。
- 领料申请单生成领料单时,不再走批号拣货。
7.3、拣货修改
- 仅在审核中状态下允许点击。
- 用于领料申请单分车间领料员、仓管员2个角色使用时操作,车间领料员提交领料申请单,表示申请单已创建成功,仓管员可以拣货了;仓管员拣货时通过拣货修改按钮来拣货,以达到权限的隔离。
- 如果领料申请单只有1个用户使用,则不需要用到“拣货修改”按钮,使用流程为:下推领料申请单→自动拣货→微调明细页签或汇总页签的拣货数据→保存、提交、审核→发料生成领料单。
7.4、修改明细页签的数据
- 当基本页签的复选框“修改汇总页签”未勾选时,才允许修改明细页签的数据、且锁定汇总页签不允许编辑;
- 明细页签允许修改本次申请数量、拣货数量、仓库等库存维度字段;
- 明细页签点击“更新汇总”按钮、或勾选“修改汇总页签”或领料申请单保存时,自动将明细页签的数据更新到汇总页签;
- 若每次习惯查看或修改明细页签的数据,则选项参数不要勾选“默认勾选汇总页签”。
7.5、修改汇总页签的数据
- 当基本页签的复选框“修改汇总页签”勾选时,才允许修改汇总页签的数据、且锁定明细页签不允许编辑;
- 汇总页签允许修改本次申请数量、拣货数量、仓库等库存维度字段;
- 汇总页签点击“更新明细”按钮、或取消勾选“修改汇总页签”或领料申请单保存时,自动将汇总页签的数据分摊到明细页签;
- 若每次习惯查看或修改明细页签的数据,则选项参数勾选“默认勾选汇总页签”。
7.6、保存
- 明细页签至少有一行分录
- 明细页签【多行累计“本次申请数”+用料清单“申请中数量”+领料选单数-良品退料数量-来料不良退料数量】需满足超发控制方式
- 明细页签【多行累计“拣货数量”+领料选单数-良品退料数量-来料不良退料数量】需满足超发控制方式
- 保存时不校验库存是否足够
7.7、提交
- 提交后状态变为“审核中”,表示仓管员可以拣货了,仓管员拣货时通过点击“拣货修改”按钮来操作;
- 审核中状态下不允许修改“本次申请数”,以保留车间领料员的原始申请记录;
- 提交时不校验库存是否足够。
7.8、审核
- 审核后才允许发料;
- 审核时不校验库存是否足够。
7.9、发料
- 领料申请单为已审核时,允许点击“发料”生成领料单;
- 领料申请单界面勾选汇总页签需要发料的分录,点击发料按钮,弹出生产领料单界面,自动将汇总页签选中分录对应的明细分录携带到领料单上;
- 下推领料单时不再走批号拣货逻辑
- 领料单保存后,将领料单实发数量反写到领料申请单明细页签对应分录的“已领数量”字段;
- 当领料申请单所有明细分录的“拣货未领数量”⇐0时,单据的“关闭状态”置为“自动关闭”,自动关闭的单据不允许手工反关闭;
- 若领料申请单中部分分录对应的生产订单已结案,则这些分录不允许发料生成领料单;若选中发料的部分分录符合条件、部分不符合条件,则发料时仅将符合条件的分录带到领料单。
7.10、分仓领料
- 创建、审核中、重新审核状态均允许点击,根据“明细”页签“仓库”的不同分别生成多张生产领料申请单,新产生的领料申请单与原单的单据类型、单据状态保持一致;
- 可用于不同的仓管员负责处理各自的领料申请单。
7.11、作废
- 创建或重新审核状态下才允许作废;
- 作废后不允许提交。
7.12、关闭/反关闭
- 已审核、未关闭状态下才允许关闭;
- 手工点关闭后关闭状态置为“手工关闭”;
- 手工关闭状态的才允许反关闭;
- 反关闭后关闭状态置为“未关闭”;
- 反关闭时需校验领料申请单的“本次申请数、拣货数量”是否超额,同领料申请单保存时的校验。
8、算法逻辑
8.1、明细页签往汇总页签更新逻辑
- 汇总页签的数据按以下维度对“明细”页签的数据进行合并汇总:物料编码+辅助属性+BOM版本+计划跟踪号+仓库+仓位+库存状态+批号+货主类型+货主+保管者类型+保管者+生产日期+有效期至;
- 【本次申请数、拣货数量、待拣货数量、欠领数量】以及对应的基本单位数量、主库存单位数量、辅单位数量按上述库存维度直接合计;
- 【应发数量、待申请总数】以及对应的基本单位数量,按上述库存维度合并时,先按用料清单分录去重,然后合计各明细页签的应发数量、待申请总数;
8.2、领料考虑最小发料批量
- 用料清单上物料勾选了“领料考虑最小发料批量”,首次下推领料申请时需在汇总页签对“本次申请数”按最小发料批量放大后再分摊到明细页签中;【算法规则】如下:
1)找到明细行勾选了“领料考虑最小发料批量”的分录,对各分录的本次申请数进行汇总→按最小发料批量放大后,再加上其余未勾选的分录的本次申请数量作为汇总页签的“本次申请数”;
2)汇总页签的本次申请数量被放大的部分,需要分摊到明细页签上,分摊对象为:勾选了“领料考虑最小发料批量”、且本次申请数量不是最小发料批量整数倍的分录;
- 【算法示例】:
物料B勾选了“领料考虑最小发料批量”,可用库存为批次01、库存800;物料B有3张生产用料清单,数据如下:
用料清单编号 | 物料 | 应发数量 | 已领数量 | 领料考虑最小发料批量 | 最小发料批量 | 超发控制方式 |
PPBOM001 | B | 60 | 10 | 是 | 150 | 最小发料批量 |
PPBOM002 | B | 30 | 0 | 是 | 150 | 最小发料批量 |
PPBOM003 | B | 40 | 0 | 否 | 150 | 最小发料批量 |
3张领料申请单合并下推领料申请,汇总页签先对“本次申请数”按最小发料批量放大,汇总页签结果如下:
物料 | 应发数量 | 待申请总数 | 本次申请数 | 实发数量 | 批次 |
B | 130 | 120 | 190 | 0 |
【说明】:PPBOM001、002勾选了“领料考虑最小发料批量”,本次申请数为50+30=80,考虑“领料考虑最小发料批量”后为150,再加上PPBOM003的本次申请数40,总的本次申请数为190;
汇总页签再往明细页签分摊,分摊结果如下:
用料清单编号 | 物料 | 应发数量 | 待申请总数 | 本次申请数 | 实发数量 | 批次 |
PPBOM001 | B | 60 | 50 | 120 | 0 | 0 |
PPBOM002 | B | 30 | 30 | 30 | 0 | 0 |
PPBOM003 | B | 40 | 40 | 40 | 0 | 0 |
【说明】:汇总页签多出来需要再次分摊的本次申请总数为190-50-30-40=70;分摊到明细页签时,PPBOM001、002满足条件,先分配给PPBOM001,分配数量为MIN(需要分摊的数量,达到最小发料批量还缺少的数量),即MIN(70,150-50)=70,所以PPBOM001的本次申请数=50+70=120,分给PPBOM001后没有多余的待分配数量,不再继续分配,,PPBOM002、PPBOM003的本次申请数=待申请总数;
再通过点击“自动拣货”执行批号拣货,明细页签拣货结果如下:
用料清单编号 | 物料 | 应发数量 | 待申请总数 | 本次申请数 | 实发数量 | 批次 |
PPBOM001 | B | 60 | 50 | 120 | 120 | 01 |
PPBOM002 | B | 30 | 30 | 30 | 30 | 01 |
PPBOM003 | B | 40 | 40 | 40 | 40 | 01 |
汇总页签结果如下:
物料 | 应发数量 | 待申请总数 | 本次申请数 | 实发数量 | 批次 |
B | 130 | 120 | 190 | 190 | 01 |
- 明细页签修改【本次申请数】,不再按以上规则先放大汇总再分摊,仅按普通汇总规则汇总。
8.3、汇总页签往明细页签更新逻辑
- 汇总页签修改库存维度字段,如:辅助属性,货主等,直接更新明细页签对应行的库存维度,各数量字段不变;
- 修改拣货数量(改小):
找到修改的汇总行分录对应的是哪些明细页签的分录,再用修改前后的差值A(修改前-修改后)对这些分录从下往上分配,每行分配数量=MIN(拣货数量-已领数量,待分配的差值),最终每行的“拣货数量”=修改前的拣货数量-差值A在每行的分配数量。
- 修改拣货数量(改大):
找到修改的汇总行分录对应的是哪些明细页签的分录,再用修改前后的差值B(修改后-修改前)对这些分录从上往下分配,每行分配规则:
【第一轮】:取MIN(用料清单分录对应的各领料申请分录的【本行的本次申请数-拣货数量,用料清单分录对应的领料申请所有分录申请数合计-拣货数量合计,差值B),若结果小于0则取0;若分配后有剩余则进入第二轮;
【第一轮】:取MIN(用料清单分录对应的领料申请所有分录“本次申请数”合计-“拣货数量”合计,差值B),若结果小于0则取0;若分配后有剩余则进入第三轮;
【第三轮】:找到所有超发控制方式不为“允许超发”的分录进行分配,按超发控制方式计算每行最大可领数量(假设为X,未考虑已领料),取MIN(X-领料选单数+良品退料数量+来料不良退料数量-用料清单上对应的领料申请拣货数量合计,差值B剩余待分配量),若分配后又剩余则进入第四轮;
【第四轮】:本轮每行分配的数量为:第四轮可分配的总数量 * 每行“拣货数量”/ 所有超发控制方式为“允许超发”的分录的“拣货数量”之和;
【第五轮】:若经过以上四轮分配后仍有剩余(如:不存在允许超发的分录),则将剩余待分配数量放到分配的最后一行分录上。
【合计】:最终的拣货数量为:修改前的拣货数量+第一轮分配数量+第二轮分配数量+第三轮分配数量+第四轮分配数量+第五轮分配数量;
【说明】:涉及到汇总页签多行本次拣货数量修改时,先处理拣货数量改小的分录,再处理改大的分录。
- 修改本次申请数(改小):
找到修改的汇总行分录对应的是哪些明细页签的分录,再用修改前后的差值A(修改前-修改后)对这些分录从下往上分配,每行分配数量=MIN(本次申请数,待分配的差值),最终每行的“本次申请数”=修改前的本次申请数-差值A在每行的分配数量;
- 修改本次申请数(改大):找到修改的汇总行分录对应的是哪些明细页签的分录,再用修改前后的差值B(修改后-修改前)对这些分录从上往下分配,每行分配规则:
【第一轮】:取MIN(待申请总数-用料清单分录对应的领料申请所有分录的“本次申请数”之和,差值B),若结果小于0则取0;若分配后有剩余则进入第二轮;
【第二轮】:找到所有超发控制方式不为“允许超发”的分录进行分配,按超发控制方式计算每行最大可领数量(假设为X,未考虑已领料),取MIN(X-领料选单数+良品退料数量+来料不良退料数量-用料清单上除本领料申请单的合计欠领数量以外的申请中数量-本领料申请欠领数量合计,差值B剩余待分配量),若分配后又剩余则进入第三轮;
【第三轮】:本轮每行分配的数量为:第三轮可分配的总数量 * 每行“本次申请数量”/ 所有超发控制方式为“允许超发”的分录的“本次申请数量”之和;
【第四轮】:若经过以上三轮分配后仍有剩余(如:不存在允许超发的分录),则将剩余待分配数量放到分配的最后一行分录上。
【合计】:最终的本次申请数量为:修改前的本次申请数+第一轮分配数量+第二轮分配数量+第三轮分配数量+第四轮分配数量;
【说明】:涉及到汇总页签多行本次申请数量修改时,先处理拣货数量改小的分录,再处理改大的分录。