概要
有些商流公司可能需要用到出库和入库的管理,
其实kintone也能进行简单的管理。
通过建立库存Master和出入库管理应用,
便可通过选择出入库方式,对库存中的产品数量进行更新。
如果在出库的时候,有库存不足情况,可以设置库存不足提醒,规避风险。
实现方法
建立产品库存用的库(库存Master)
1. 所用到的字段
字段名称 | 字段类型 | 字段代码 |
---|---|---|
商品编号 | 单行文本框 | code |
商品名称 | 单行文本框 | name |
在库数 | 数值 | count |
安全库存 | 数值 | safecount |
关于安全库存:
库存管理表中在库数小于安全在库数的时候,在库数项目高亮表示。
2.制作完后的效果
建立出入库管理应用
此处日期和出入库下拉菜单就不再赘述了。
接下来,给大家解释下出入库明细的各个项目。
此处的商品名称为lookup,具体设置如下:
商品编号的设置和库存Master中的商品编号设置相同,
数量的设置和库存Master中的在库设置相同,
此3项设定完后,把他们设置到一个表格中,字段名设置为table。
进行出入库管理应用的流程管理设置
编写代码
(function () { "use strict"; //////////////////////////////////////////////////////////////////////////// // 編集開始event //////////////////////////////////////////////////////////////////////////// function processProceed(event) { var record = event.record; var action = event.action; // 点击‘入库’或者‘出库’是执行 if(action.value == '入库' || action.value == '出库'){ var app = kintone.app.getLookupTargetAppId('name'); var params = {}; // 获取出入库明细中的所有产品编号 var query ='code in ('; for(var i = 0 ;i< record['Table']['value'].length; i++){ if(i == 0){ query = query + record['Table']['value'][i]['value']['code']['value']; }else{ query = query + ',' + record['Table']['value'][i]['value']['code']['value']; } } query = query + ')'; params['app'] = app; params['query'] = query; return new kintone.Promise(function(resolve, reject) { //取得在库master中相应产品的记录信息 kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params,function(resp) { var jsons = {}; jsons['app'] = app; var records = new Array(); var message = ''; var flg = false; for(var i in resp.records){ var json = {}; var data = resp.records[i] json['id'] = data['$id']['value']; json['revision'] =data['$revision']['value']; json['record']={}; json['record']['count'] = {}; var total = 0; for(var j=0; j<record['Table']['value'].length;j++ ){ // 库存Master中产品与出入库明细中产品相同的时候进行处理 if(record['Table']['value'][j]['value']['code']['value'] == data['code']['value']){ if(record['type']['value'] == '出库'){ //出库的时候,计算剩余库存 total = Number(data['count']['value']) - Number(record['Table']['value'][j]['value']['count']['value']); // 库存不足的时候,错误信息 if(Number(total)< 0){ message = message + data['code']['value'] + ' '; flg = true; } }else{ //入库的时候,计算合计库存 total = Number(data['count']['value']) + Number(record['Table']['value'][j]['value']['count']['value']); } } } json['record']['count']['value'] = total; records.push(json); } // 库存不足报错 if(flg){ event.error ='编号:'+ message + '库存不足'; resolve(event); return; } jsons['records'] = records; // 库存Master更新 kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', jsons, function(resp) { resolve(event); }); }, function(resp) { alert(JSON.stringify(resp)); resolve(event); }); }); } } kintone.events.on(['app.record.detail.process.proceed'], processProceed); })();
库存Master的应用
可在此应用中添加商品和管理安全在库数和在库数
出入库操作的应用
入库操作
1. 选择完相关项目后保存
2. 保存完了后进入流程管理
出库操作
1. 选择完相关项目后保存
2. 保存完了后进入流程管理