将进销存的出库明细记录存储到数据库中,thinkphp框架diygw-ui-php后台通常涉及以下几个步骤:
数据库表定义
实现我们定义了三张表、一个产品表、出库订单表、出库订单产品明细表
生成API
进入DIY可视化API代码生成器,我们生成这三张表结应的API。
出库订单明细记录操作
我们在设计的表单界面写上我们出库记录的API。
出库订单数据操作
最核心的代码来了,我们这个add方法里可以增加我们的处理。系统model默认的add方法里有beforeAdd跟afterAdd拦截处理。
只需要在afterAdd拦截处理增加自己的代码。
afterAdd拦截方法处理
在orderModel增加增加后处理订单产品明细数据,对产品原有的数据进行数量减掉出库数量。
增加的核心代码
/*
* 提交订单时加工产品数据增加入录记录明细
*/
public function afterAdd(&$data){
$products = $data['products'];
//循环出仓明细数据
foreach ($products as $product) {
$id = $product['id'];
//这里新增一个产品id来存放对应产品数据。
$product['productId'] = $product['id'];
//默认id是一个自增值
unset($product['id']);
$product['ordersId'] = $data['id'];
//增加出库记录
$productOutModel = new ProductOutModel();
$productOutModel->add($product);
//减少库存数量
$productModel = new ProductModel();
$productModel->decValue($id,'number',$product['number']);
}
return true;
}
主表orders操作框架已经集成,不需要任何操作,我们只需要操作明细的记录。