保质期

Carbon 如何为跟踪库存写入到期日,以及在过期后如何阻止消耗。

保质期决定序列号或批次跟踪的库存何时过期,以及过期后能否继续使用。到期日属于物理的**,因此保质期只适用于和**跟踪的物料。

三个值控制保质期:物料级的策略、跟踪实体的到期日,以及公司级的过期库存规则。

例如,在 180 天策略下收货一个批次,会把其到期日设为 180 天后。超过该日期后,Carbon 会阻止发料到生产订单,除非有权限的用户覆盖该阻止。

日期如何确定:三种模式

物料的保质期策略只有一个模式。NotManaged 是默认值——不跟踪过期,选择它会移除现有策略。其余三种模式各自决定到期日如何计算:

模式日期是……适用于
固定时长起始事件 + 天数制造或采购物料
计算得出所消耗组件的最早到期日制造物料
收货时设置收货时由操作员录入,不做计算采购物料
HEADS UP

保质期不是物料上的一个「天数」字段。只有固定时长是天数计数。 计算得出继承其输入中最早的到期日,收货时设置由人工录入供应商印制的日期。三种模式中有两种都不符合「收货日 + N 天」的直觉。

起始时间从何时算

对于固定时长,起始事件取决于物料的来源:

  • 制造物料从某个生产订单工序完成(或开始)时起算——可限定到特定的触发工艺(例如巴氏杀菌或包装),并选择之前或之后计时。子装配从其自身工序为自己的批次写日期。
  • 采购物料从收货单的过账日期起算(而不是「今天」),再加上配置的天数。

计算得出物料取其消耗的跟踪组件中的最早到期日,因此成品绝不会超过其最短保质期的原料。该最小值是覆盖所有有日期的输入,还是只覆盖自身带保质期策略的输入,由公司的计算输入范围决定:AllInputs(默认)或 ManagedInputsOnly。

策略字段

策略保存在物料的拣货方法上:

字段类型
固定时长、计算得出或收货时设置。(适用于:全部)
加到起始事件上的保质期长度。(适用于:固定时长)
启动计时的工序;留空表示任意工序。(适用于:固定时长(制造))
计时在触发工艺之前还是之后开始。(适用于:固定时长(制造))
同时把日期上限设为所消耗组件的最早到期日。(适用于:固定时长)
NOTE

到期日只在为空时写入一次。Carbon 绝不会悄悄覆盖批次已有的日期。可以手工覆盖,但必须填写原因,并保留在实体历史中。

过期库存会怎样

公司级的过期实体策略约束所有发料和库存调拨:

策略库存超过日期时的效果
警告允许,但给出警告。
阻止拒绝。(默认)
带覆盖的阻止拒绝,除非用户提供覆盖原因。
HEADS UP

过期是强制执行的,不是装饰性的。 默认策略是阻止。消耗或调拨过期批次会被直接拒绝,错误为 "Cannot consume expired tracked entit(y/ies)"。检查在所有消耗或移动库存的地方运行(发料、库存调拨和维护作业),因此无论操作来自办公室还是车间都同样生效。

拣货会考虑 (先到期先出):可用跟踪实体按最早到期优先提供,因此默认先出最老的库存。临近到期警告会在跟踪实体列表中高亮即将到期的批次;在公司设置中设置其提前天数,留空则关闭该标记。

公司设置

在设置 → 库存中设置公司级选项:

字段类型
发料和调拨时的 警告、阻止 或 带覆盖的阻止。
琥珀色「即将过期」标记的提前天数;留空则禁用。
策略需要默认值时的回退天数。
计算得出 模式下的 AllInputs 或 ManagedInputsOnly。

在哪里设置

设置位置
按物料的策略(模式、天数、触发工艺、计时)物料的拣货方法(物料 ↔ 地点)下的保质期字段。
过期实体策略、临近到期天数、默认天数设置 → 库存的保质期区域。
一次性日期更正跟踪实体上的到期日编辑操作(需填写原因)。
NOTE

只有序列号或批次物料才能设置保质期策略。通用库存和非库存物料没有可承载日期的跟踪实体,因此不适用。

相关内容