请问出入库单据 先进先出的问题怎么操作?
多商品同时出库 并确保 事务完整性现要求如下:
1.如果库存不足,事务回滚,单据状态不变。
2.1.如果库存足够,单据状态更新为“已审核”,库存表相应减少。
2.2.如果库存足够,同时更新库存表StockQuantity=当前库存数量-出入库数量
2.3.如果库存足够,同时更新入库子表 OutQuantity =OutQuantity -出入库数量
2.4.如果库存足够,当 入库子表Quantity =出库子表OutQuantity 同时更新入库子表 Bfinlish =true
给我具体的方案和代码

acces数据库表
1.1 库存表(tblStock)
字段名数据类型说明
ProductID文本产品编号
StockQuantity数字当前库存数量
数据如下:
ProductIDStockQuantity
P001100
P002200
1.2.1入库主表(RK_MF)
字段名数据类型说明
RK_ID文本入库单据唯一标识
RK_Date日期/时间入库日期
Status文本单据状态(如“待审核”、“已审核”)
BatchNo文本批次号
BlnTH布尔型(FALSE 物料入库,True 物料退货出库)
数据如下:
RK_IDRK_DateStatusBatchNoBlnTH
RK202503080012025/3/1已审核B001FALSE
RK202503080012025/3/1已审核B002FALSE
1.2.2 入库子表(RK_TF)
字段名数据类型说明
RK_ID文本入库记录唯一标识
ProductID文本产品编号
BatchNo文本批次号
Quantity数字入库数量
UnitPrice货币单价
OutQuantity 数字已出库数量
BTH布尔型(FALSE 物料入库,True 物料退货出库)
Bfinlish布尔型(FALSE 物料未出掉,True 物料全出掉了)
数据如下:
RK_IDProductIDQuantityUnitPriceBatchNoBTHOutQuantityBfinlish
RK20250308001P0018010.00B001FALSE 0FALSE
RK20250308001P0022005.00B002FALSE 0FALSE
RK20250308002P0015010.00B003FALSE 0FALSE
1.3.1 出库主表(CK_MF)
字段名数据类型说明
CK_ID文本出库单据唯一标识
RK_Date日期/时间出库日期
Status文本单据状态(如“待审核”、“已审核”)
BlnTH布尔型(FALSE 物料出库,True 物料退货入库)
数据如下:
CK_IDCK_DateStatusBlnTH
CK202503080012025/3/8待审核FALSE
1.3.2 出库子表(CK_TF)
字段名数据类型说明
CK_ID文本出库记录唯一标识
ProductID文本产品编号
BatchNo文本批次号
Quantity数字入库数量
UnitPrice货币单价
BTH布尔型(FALSE 物料入库,True 物料退货出库)
数据如下:
CK_IDProductIDQuantityUnitPriceBTH
CK20250308001P0019020.00FALSE
CK20250308001P0026012.00FALSE
我想要下面的结果tblBatch 表应该是如下:
CK_IDRK_IDProductIDBatchNoOutQtyUnitPrice
CK20250308001RK20250308001P001B0018010.00
CK20250308001RK20250308002P001B0031012.00
CK20250308001 RK20250308001P002B002 605.00
入库子表(CK_TF)数据如下:
RK_IDProductIDQuantityUnitPriceBatchNoBTHOutQuantityBfinlish
RK20250308001P0018010.00B001FALSE80True
RK20250308001P0022005.00B002FALSE60FALSE
RK20250308002P0015010.00B003FALSE10FALSE
库存表(tblStock)数据如下:
ProductIDStockQuantity
P00110
P002140
多商品同时出库 并确保 事务完整性现要求如下:
1.如果库存不足,事务回滚,单据状态不变。
2.1.如果库存足够,单据状态更新为“已审核”,库存表相应减少。
2.2.如果库存足够,同时更新库存表StockQuantity=当前库存数量-出入库数量
2.3.如果库存足够,同时更新入库子表 OutQuantity =OutQuantity -出入库数量
2.4.如果库存足够,当 入库子表Quantity =出库子表OutQuantity 同时更新入库子表 Bfinlish =true
给我具体的方案和代码

acces数据库表
1.1 库存表(tblStock)
字段名数据类型说明
ProductID文本产品编号
StockQuantity数字当前库存数量
数据如下:
ProductIDStockQuantity
P001100
P002200
1.2.1入库主表(RK_MF)
字段名数据类型说明
RK_ID文本入库单据唯一标识
RK_Date日期/时间入库日期
Status文本单据状态(如“待审核”、“已审核”)
BatchNo文本批次号
BlnTH布尔型(FALSE 物料入库,True 物料退货出库)
数据如下:
RK_IDRK_DateStatusBatchNoBlnTH
RK202503080012025/3/1已审核B001FALSE
RK202503080012025/3/1已审核B002FALSE
1.2.2 入库子表(RK_TF)
字段名数据类型说明
RK_ID文本入库记录唯一标识
ProductID文本产品编号
BatchNo文本批次号
Quantity数字入库数量
UnitPrice货币单价
OutQuantity 数字已出库数量
BTH布尔型(FALSE 物料入库,True 物料退货出库)
Bfinlish布尔型(FALSE 物料未出掉,True 物料全出掉了)
数据如下:
RK_IDProductIDQuantityUnitPriceBatchNoBTHOutQuantityBfinlish
RK20250308001P0018010.00B001FALSE 0FALSE
RK20250308001P0022005.00B002FALSE 0FALSE
RK20250308002P0015010.00B003FALSE 0FALSE
1.3.1 出库主表(CK_MF)
字段名数据类型说明
CK_ID文本出库单据唯一标识
RK_Date日期/时间出库日期
Status文本单据状态(如“待审核”、“已审核”)
BlnTH布尔型(FALSE 物料出库,True 物料退货入库)
数据如下:
CK_IDCK_DateStatusBlnTH
CK202503080012025/3/8待审核FALSE
1.3.2 出库子表(CK_TF)
字段名数据类型说明
CK_ID文本出库记录唯一标识
ProductID文本产品编号
BatchNo文本批次号
Quantity数字入库数量
UnitPrice货币单价
BTH布尔型(FALSE 物料入库,True 物料退货出库)
数据如下:
CK_IDProductIDQuantityUnitPriceBTH
CK20250308001P0019020.00FALSE
CK20250308001P0026012.00FALSE
我想要下面的结果tblBatch 表应该是如下:
CK_IDRK_IDProductIDBatchNoOutQtyUnitPrice
CK20250308001RK20250308001P001B0018010.00
CK20250308001RK20250308002P001B0031012.00
CK20250308001 RK20250308001P002B002 605.00
入库子表(CK_TF)数据如下:
RK_IDProductIDQuantityUnitPriceBatchNoBTHOutQuantityBfinlish
RK20250308001P0018010.00B001FALSE80True
RK20250308001P0022005.00B002FALSE60FALSE
RK20250308002P0015010.00B003FALSE10FALSE
库存表(tblStock)数据如下:
ProductIDStockQuantity
P00110
P002140