问题描述
我有PO的一对多关联-> podetail PO 有一个状态栏。 PO Detail 有 orderQty 和fulfiledQty。 要求是:每当 PO Detail fulFilledQty 更新时,应检查该 PO 是否有任何未履行的行项目,并标记为未履行或未履行。
示例:
PO - Id: 1,status = Unfulfilled
podetail = [ {id: 1,orderQty: 10,fulfilledQty : 6},{id:2,orderQty:4,fulfilledQty: 4}
如果我在 id = 1 的 podetail 中将 fullfulQty 更新为 10,我应该将 PO = 1 的状态更改为 Fulfilled。
我尝试过同样的续集。
var updatedPOLine = await models.sequelize.query(updateFulfilledQtysql,{
type: models.sequelize.Sequelize.QueryTypes.UPDATE,transaction: tx,returning: true,});
var result = await models.PurchaSEOrder.findByPk(unFulfilledOrder.poId,{
include: [
{
model: models.podetail,as: "lineItems",where: {
fulfilledQty: {
[Op.or]: [
{
[Op.eq]: null,},{
[Op.lt]: models.sequelize.col("orderQty"),],});
console.log("Result : " + JSON.stringify(result));
结果在更新前生成了带有 PO Detail 的 PO。它不反映采购订单详细信息的更新值。请注意,我正在传递相同的交易。隔离级别设置为 SERIALIZABLE。我什至尝试了 READ_COMMITTED,但没有按预期工作。
有什么帮助吗?
更新:
我忘记在上面的 transaction:tx
方法中包含 models.PurchaSEOrder.findByPk
,因此它没有读取上一步中更新的行。错失良机。
现在添加该行后它按预期工作。
var result = await models.PurchaSEOrder.findByPk(unFulfilledOrder.poId,**transaction:tx**
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)