场景描述:
记账功能可以用来记录公司、个人日常流水信息,每一次的流水结存都会参与下一次记账的计算。
前期准备:
数据表结构简单表示,可以根据实际需要自行调整。
创建一张“收支记账表”,用于记录每一次的记账信息。其中的“上一笔结存”、下一笔结存都关联本表。
实现步骤:
1. 新建一个“新增记账信息”功能,用于每一笔记账信息录入,并且使每一笔记账跟上一笔记账信息相互对应上。
获取上一笔记账步骤:
记账信息步骤:
更新上一笔记账步骤:
2. 新建一个“修改记账信息”功能,用于修改以往的记账记录,且同步更新后续的记账信息。
获取上一笔结存步骤:
记账信息步骤:
重新获取记账信息:
后续结余处理步骤:
步骤示例代码:
async function runProcess($model = model, $plugin = plugin, $params = params) {
let info = $params.info;//获取记账信息
let next_info = info["610cd8d3f6bd5ac63302e835"];//获取记账信息的下一笔记账数据id
//$model.log(next_info)
if (next_info) {//如果下一笔记账数据id存在
await $plugin.program.exec("610d08fc5ea7424eb3b929a4", {//调用本功能,功能id
"610d092b4723d84eb49c04e8": {//本功能选择步骤id
_id: next_info //本次结余数据的下一笔结余数据id,递归调用本修改功能,把后面数据进行修改
}
})
}
}
3. 新建一个“删除记账信息”功能,用于删除记账信息,以及更新后续记账信息。
获取上一笔记账步骤:
获取下一笔记账步骤:
更新上一笔步骤:
更新下一笔步骤:
重新获取上一笔步骤:
调用效果功能步骤:
步骤示例代码:
async function runProcess($model = model, $plugin = plugin, $params = params) {
let info = $params.info;//获取记账信息
let next_info = info["610cd8d3f6bd5ac63302e835"];//获取记账信息的下一笔记账数据id
//$model.log(next_info)
if (next_info) {//如果下一笔记账数据id存在
await $plugin.program.exec("610d08fc5ea7424eb3b929a4", {//调用本功能,功能id
"610d092b4723d84eb49c04e8": {//本功能选择步骤id
_id: next_info //本次结余数据的下一笔结余数据id,递归调用本修改功能,把后面数据进行修改
}
})
}
}
功能效果:
新增记账信息:
修改记账信息:
删除记账信息: