add:仓位物料设置
This commit is contained in:
@@ -101,6 +101,7 @@ public class StructattrController {
|
|||||||
@Log("修改仓位库存")
|
@Log("修改仓位库存")
|
||||||
//("查询联级仓位")
|
//("查询联级仓位")
|
||||||
public ResponseEntity<Object> setMaterial(@RequestBody JSONObject json) {
|
public ResponseEntity<Object> setMaterial(@RequestBody JSONObject json) {
|
||||||
return new ResponseEntity<>(ivtStructattrService.getSectCascader(json),HttpStatus.OK);
|
ivtStructattrService.setStructMaterial(json);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,4 +56,10 @@ public interface IStIvtStructattrService extends IService<StIvtStructattr> {
|
|||||||
* @param inv_code
|
* @param inv_code
|
||||||
*/
|
*/
|
||||||
void lockStruct(String struct_code, String type, String inv_code);
|
void lockStruct(String struct_code, String type, String inv_code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置仓位物料信息
|
||||||
|
* @param jo
|
||||||
|
*/
|
||||||
|
void setStructMaterial(JSONObject jo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
package org.nl.wms.masterdata_manage.storage.service.storage.impl;
|
package org.nl.wms.masterdata_manage.storage.service.storage.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import io.jsonwebtoken.lang.Assert;
|
import io.jsonwebtoken.lang.Assert;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
@@ -17,7 +19,8 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr;
|
|||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper;
|
import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
@@ -39,6 +42,11 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IStIvtSectattrService sectattrService;
|
private IStIvtSectattrService sectattrService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtIostorinvBcpOutService bcpOutService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtIostorinvBcpService bcpInvService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject form) {
|
public String create(JSONObject form) {
|
||||||
@@ -163,4 +171,30 @@ public class StIvtStructattrServiceImpl extends ServiceImpl<StIvtStructattrMappe
|
|||||||
.set(StIvtStructattr::getInv_code,inv_code)
|
.set(StIvtStructattr::getInv_code,inv_code)
|
||||||
.set(StIvtStructattr::getTask_code,inv_code));
|
.set(StIvtStructattr::getTask_code,inv_code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStructMaterial(JSONObject jo) {
|
||||||
|
Assert.notNull(jo.getString("struct_id"),"仓位信息不能为空");
|
||||||
|
Boolean is_emptyvehicle = jo.getBoolean("is_emptyvehicle");
|
||||||
|
this.update(new UpdateWrapper<StIvtStructattr>()
|
||||||
|
.set("is_emptyvehicle",is_emptyvehicle)
|
||||||
|
.set("storagevehicle_code",StringUtils.isNotEmpty(jo.getString("storagevehicle_code"))?jo.getString("storagevehicle_code"):"")
|
||||||
|
.set("update_id",SecurityUtils.getCurrentUserId())
|
||||||
|
.set("update_name",SecurityUtils.getCurrentNickName())
|
||||||
|
.set("update_time",new Date())
|
||||||
|
.eq("struct_id",jo.getString("struct_id")));
|
||||||
|
if (is_emptyvehicle || StringUtils.isEmpty(jo.getString("storagevehicle_code"))){
|
||||||
|
//删除库存,生产操作记录表
|
||||||
|
JSONObject form = new JSONObject();
|
||||||
|
form.put("struct_id",jo.getString("struct_id"));
|
||||||
|
form.put("storagevehicle_code",jo.getString("storagevehicle_code"));
|
||||||
|
bcpOutService.onlyConfirm(form);
|
||||||
|
}else {
|
||||||
|
//更新库存更新生产记录
|
||||||
|
if (StringUtils.isEmpty(jo.getString("material_code"))||jo.getInteger("qty")==null || jo.getInteger("qty")<=0){
|
||||||
|
throw new BadRequestException("有载具非空载具时,物料编码跟数量不能为空");
|
||||||
|
}
|
||||||
|
bcpInvService.onlyConfirm(jo);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -124,6 +125,9 @@ public class PdaStCpInServiceImpl implements PdaStCpInService {
|
|||||||
@Override
|
@Override
|
||||||
public JSONObject getMaterial(JSONObject whereJson) {
|
public JSONObject getMaterial(JSONObject whereJson) {
|
||||||
List<Map> list = iMpsSaleOrderService.getPdaMaterial(whereJson);
|
List<Map> list = iMpsSaleOrderService.getPdaMaterial(whereJson);
|
||||||
|
for (Map map : list) {
|
||||||
|
map.put("create_time",DateUtil.date((Date) map.get("plandeliver_date")).toString());
|
||||||
|
}
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("data", JSONArray.parseArray(JSON.toJSONString(list)));
|
result.put("data", JSONArray.parseArray(JSON.toJSONString(list)));
|
||||||
result.put("message", "查询成功");
|
result.put("message", "查询成功");
|
||||||
|
|||||||
@@ -47,6 +47,13 @@ public interface IStIvtIostorinvBcpOutService extends IService<StIvtIostorinvBcp
|
|||||||
*/
|
*/
|
||||||
String confirm(JSONObject form);
|
String confirm(JSONObject form);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库确认
|
||||||
|
* @param form
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void onlyConfirm(JSONObject form);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自动出库
|
* 自动出库
|
||||||
* @param param
|
* @param param
|
||||||
|
|||||||
@@ -35,6 +35,13 @@ public interface IStIvtIostorinvBcpService extends IService<StIvtIostorinvBcp> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String confirm(JSONObject form);
|
String confirm(JSONObject form);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存变动
|
||||||
|
* @param form
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void onlyConfirm(JSONObject form);
|
||||||
/**
|
/**
|
||||||
* 下发单据
|
* 下发单据
|
||||||
* @param form
|
* @param form
|
||||||
|
|||||||
@@ -247,6 +247,44 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void onlyConfirm(JSONObject form) {
|
||||||
|
|
||||||
|
StIvtStructivtBcp ivtDao = structivtBcpService.getById(form.getString("struct_id"));
|
||||||
|
if (ivtDao!=null){
|
||||||
|
//删除库存
|
||||||
|
structivtBcpService.remove(new QueryWrapper<StIvtStructivtBcp>().eq("struct_id", form.getString("struct_id")));
|
||||||
|
|
||||||
|
// 插入库存变动记录
|
||||||
|
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
|
||||||
|
param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY);
|
||||||
|
param.put("change_qty", ivtDao.getCanuse_qty());
|
||||||
|
param.put("result_qty", 0);
|
||||||
|
param.put("bill_code","");
|
||||||
|
param.put("inv_id","");
|
||||||
|
param.put("bill_type_scode","");
|
||||||
|
iStIvtStructivtflowService.insetIvtChange(param);
|
||||||
|
//维护载具
|
||||||
|
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
|
.eq(StIvtStructattr::getStruct_code, ivtDao.getStruct_code())
|
||||||
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.set(StIvtStructattr::getInv_code,"")
|
||||||
|
.set(StIvtStructattr::getStoragevehicle_code, StringUtils.isNotEmpty(form.getString("storagevehicle_code"))?form.getString("storagevehicle_code"):""));
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(form.getString("storagevehicle_code"))){
|
||||||
|
// 更新载具扩展属性 - 释放载具对应物料关系 清空数量
|
||||||
|
iMdPbStoragevehicleextService.update(
|
||||||
|
new MdPbStoragevehicleext()
|
||||||
|
.setMaterial_id("")
|
||||||
|
.setStorage_qty(BigDecimal.valueOf(0)),
|
||||||
|
new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
||||||
|
.eq(MdPbStoragevehicleext::getStoragevehicle_code,form.getString("storagevehicle_code"))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public StIvtStructivtBcp autoConfirmout(JSONObject form) {
|
public StIvtStructivtBcp autoConfirmout(JSONObject form) {
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ import org.nl.modules.common.exception.BadRequestException;
|
|||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService;
|
||||||
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
|
import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext;
|
||||||
@@ -37,6 +39,7 @@ import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
|||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.IVTEnum;
|
||||||
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService;
|
||||||
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService;
|
||||||
@@ -55,6 +58,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@@ -85,6 +89,8 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
|
private ISchBaseTaskService iSchBaseTaskService; // 任务表服务
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService materialbaseService; // 任务表服务
|
||||||
|
@Autowired
|
||||||
private IStIvtStructivtflowService iStIvtStructivtflowService; // 库存变动服务
|
private IStIvtStructivtflowService iStIvtStructivtflowService; // 库存变动服务
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息
|
protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息
|
||||||
@@ -181,6 +187,51 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onlyConfirm(JSONObject form) {
|
||||||
|
Assert.notNull(new Object[]{form.getString("struct_id"),form.getString("stor_id"),form.getString("material_code")},"参数不全");
|
||||||
|
structivtBcpService.removeById(form.getString("struct_id"));
|
||||||
|
StIvtBsrealstorattr stor = storattrService.getById(form.getString("stor_id"));
|
||||||
|
MdMeMaterialbase mdMeMaterialbase = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
|
||||||
|
.eq("material_code",form.getString("material_code")));
|
||||||
|
if (mdMeMaterialbase==null){
|
||||||
|
throw new BadRequestException("物料编码不正确"+form.getString("material_code"));
|
||||||
|
}
|
||||||
|
//新增库存
|
||||||
|
StIvtStructivtBcp ivtDao = StIvtStructivtBcp.builder()
|
||||||
|
.struct_id(form.getString("struct_id"))
|
||||||
|
.struct_code(form.getString("struct_code"))
|
||||||
|
.struct_name(form.getString("struct_name"))
|
||||||
|
.material_id(mdMeMaterialbase.getMaterial_id())
|
||||||
|
.quality_scode(IVTEnum.QUALITY_SCODE.code("合格品"))
|
||||||
|
.pcsn(DateUtil.today())
|
||||||
|
.ivt_level(IVTEnum.IVT_LEVEL.code("一级"))
|
||||||
|
.is_active(true)
|
||||||
|
.qty_unit_id(mdMeMaterialbase.getBase_unit_id())
|
||||||
|
.instorage_time(DateUtil.now())
|
||||||
|
.stor_id(form.getString("stor_id"))
|
||||||
|
.canuse_qty(form.getBigDecimal("qty"))
|
||||||
|
.workshop_id(stor.getProduct_area())
|
||||||
|
.unit_weight(mdMeMaterialbase.getNet_weight())
|
||||||
|
.build();
|
||||||
|
structivtBcpService.save(ivtDao);
|
||||||
|
// 插入库存变动记录
|
||||||
|
JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao));
|
||||||
|
param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY);
|
||||||
|
param.put("change_qty", ivtDao.getCanuse_qty());
|
||||||
|
param.put("result_qty", ivtDao.getCanuse_qty());
|
||||||
|
param.put("bill_code","");
|
||||||
|
param.put("inv_id","");
|
||||||
|
param.put("bill_type_scode","");
|
||||||
|
iStIvtStructivtflowService.insetIvtChange(param);
|
||||||
|
//维护载具
|
||||||
|
structattrService.update(new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
|
.eq(StIvtStructattr::getStruct_code, form.getString("struct_code"))
|
||||||
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.set(StIvtStructattr::getInv_code, "")
|
||||||
|
.set(StIvtStructattr::getStoragevehicle_code, form.getString("storagevehicle_code")));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String confirm(JSONObject form) {
|
public String confirm(JSONObject form) {
|
||||||
|
|||||||
@@ -85,15 +85,6 @@
|
|||||||
<el-input v-model="materialForm.material_code" style="width: 200px;" />
|
<el-input v-model="materialForm.material_code" style="width: 200px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="物料编码" prop="material_code">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-input v-model="materialForm.material_code" clearable style="width: 370px">
|
|
||||||
<el-button slot="append" icon="el-icon-plus" @click="queryMater(materialForm)" />
|
|
||||||
</el-input>
|
|
||||||
</template>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item v-if="materialForm.is_emptyvehicle==false" label="物料数量">
|
<el-form-item v-if="materialForm.is_emptyvehicle==false" label="物料数量">
|
||||||
<el-input-number v-model="materialForm.qty" style="width: 200px;" />
|
<el-input-number v-model="materialForm.qty" style="width: 200px;" />
|
||||||
@@ -103,7 +94,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="text" @click="closeView">取消</el-button>
|
<el-button type="text" @click="closeView">取消</el-button>
|
||||||
<el-button type="primary" @click="setStructMaterial(form)">确认</el-button>
|
<el-button type="primary" @click="setStructMaterial(materialForm)">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
@@ -317,7 +308,7 @@
|
|||||||
:data="scope.row"
|
:data="scope.row"
|
||||||
:permission="permission"
|
:permission="permission"
|
||||||
/>
|
/>
|
||||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="toView(scope.row)">仓位设置</el-button>
|
<el-button v-if="scope.row.stor_id=='15286279952695336962'" size="mini" type="text" icon="el-icon-edit" @click="toView(scope.row)">仓位设置</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -492,10 +483,11 @@ export default {
|
|||||||
form.cascader = val
|
form.cascader = val
|
||||||
},
|
},
|
||||||
setStructMaterial(data){
|
setStructMaterial(data){
|
||||||
console.log(data)
|
|
||||||
crudStructattr.setMaterial(data).then(res => {
|
crudStructattr.setMaterial(data).then(res => {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.closeView()
|
||||||
|
crud.refresh()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
setMaterValue(row) {
|
setMaterValue(row) {
|
||||||
|
|||||||
Reference in New Issue
Block a user