紧接着上篇文章,我们将继续讲解体检管理案例操作。
体检单
一、业务对象
创建体检单业务对象,以下是业务对象下的实体为主子孙结构
1.体检单
2. 体检项目_体检单子表
二、页面建模
1、根据业务对象创建一主多子结构单据命名为体检单
2、设置主表字段不允许修改
组织、客户、累计出库年月、单据状态
3、设置子表所有字段不允许修改
体检项目、物料、二维码编号、是否检测、检测结果、检测人
4、删除子表的新增、删行按钮
5、设置子表表格的编辑方式为侧滑弹框
6、 体检单列表页面删除新增按钮
7 、配置体检按审批流
8、配置业务流
9、体检预约下推体检单
防止重复下推: isNull(getValue(“AT1772AFF21C18000A.AT1772AFF21C18000A.examination_bill”,“id”,“source_id”,id))
错误提示语:下游数据已存在
触发设置:手工触发
生单方式:默认新增单据
转换规则配置如下图
10、体检单下推销售订单
目标交易类型:体检
过滤设置增加防止重复下推:isNull(getValue(“voucher.order.Order”,“id”,“srcBill”,id))&&verifystate==2
错误提示语:下游单据已存在或单据未审核
触发设置:手工触发
生单默认: 默认新增单据,勾选转单画面
转换规则配置如下图:
使用到的公式:
税目税率id : getValue(“bd.taxrate.TaxRateVO”,“id”,“code”,“VAT0”)
本币pk :getValue(“bd.currencytenant.CurrencyTenantVO”,“id”,“code”,“CNY”)
汇率类型id: getValue(“bd.exchangeRate.ExchangeRateTypeVO”,“id”,“code”,“01”)
单据日期: dateFormat(sysdate(),“yyyy-MM-dd”)
11、体检单列表页面增加月底汇总出库按钮,点击汇总消耗品生成其他出库单
(1).创建业务对象月底汇总
(2)、根据业务对象创建一个卡片页面,删除列表页面
(3)、将卡片页面设置为模态框,具体操作省略
(4)、保存按钮取消保存规则,然后增加保存函数
函数中调用了其他出库单接口,具体调用接口API脚本查看
viewModel.get('btnSave') && viewModel.get('btnSave').on('click', function (data) {
// 确定--单击
let date = viewModel.get("date").getValue();
let org = viewModel.get("org").getValue();
let warehouse = viewModel.get("warehouse").getValue();
let use_version = viewModel.get("use_version").getValue();
cb.rest.invokeFunction("AT1772AFF21C18000A.api.monthUsePro", {"date":date,"org":org,"warehouse":warehouse,"use_version":use_version},
function(err, res) {
if(err!=null){
cb.utils.alert(err);
return ;
}else{
cb.utils.alert("发起请求成功,请到其他出库节点查看");
viewModel.communication({type:'modal',payload:{data:false}});
}
})
});
(5)、调用出库单API脚本
获取日期函数
let AbstractTrigger = require('AbstractTrigger');
class MyTrigger extends AbstractTrigger {
execute(context,param){
Date.prototype.format = function(fmt)
{
var o = {
"M+" : this.getMonth()+1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
"H+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : t