JEPaas代码———出库数量
以下功能都是通过“按钮”添加脚本来实现
//出库数量(药库出库)
/**
* @param {} column 列
* @param {} context 内容 (属性:grid,record,field,value,row,column,rowIdx,colIdx)
*/
function(column,context){
var grid=context.grid;//获取列表
var index=context.rowIdx;//获取当前编辑行数
var row=grid.getStore().getAt(index);//获取当前编辑的数据所在行的所有数据
var data=row.data;
console.warn(data);
//获取父功能的数据
var func=JE.getFunc('yk_ypck_pkbf');
var g=func.formview.getForm().getValues();
console.warn(g.yk_ypck_ID);
//查询库存
var obj = JE.DB.selectOne("yk_ypck"," and yk_ypck_ID = '"+g.yk_ypck_ID+"'"," order by ypck_CKFS desc","ypck_DJZT,yk_ypck_ID");
console.warn(obj.ypck_DJZT);
var db=JE.DB.selectOne('yk_ypkc',' and ypkc_YPID="'+data.ckmx_YPID+'"','order by ypkc_YPMC desc','ypkc_YPMC,ypkc_KCSL,ypkc_YPID,yk_ypkc_ID');
console.warn(db);
//库存数量-减去数量
var newKCSL=parseInt(db.ypkc_KCSL)-parseInt(data.ckmx_CKSL);
console.warn(newKCSL);
//如果单据状态已处理
if(obj.ypck_DJZT!='1') {
JE.alert('无法进行!内容已保存,不能再强制添加修改!!!!');
grid.getStore().reload();
return;
}
if(context.value < 0||newKCSL<0){
JE.msg('出库数量不能小于0或仓库数量不足');
row.set('ckmx_CKSL',0);
JE.DB.update('yk_ckmx',{ckmx_CKSL:0});
return;
}
var data=row.data;
//进货价格
var jhjg=data.ckmx_JHJG;
//零售价格
var lsjg=data.ckmx_LSJG;
//出库数量
var cksl=data.ckmx_CKSL;
//进货合计
// row.set('ckmx_JHHJ',parseInt(jhjg*cksl).toFixed(2));//给进货合计赋值
//零售合计
//row.set('ckmx_LSHJ',parseInt(lsjg*cksl).toFixed(2));//给零售合计赋值
JE.DB.update('yk_ckmx',{
yk_ckmx_ID:data.yk_ckmx_ID,
ckmx_CKSL: cksl,
ckmx_JHHJ:(jhjg*cksl).toFixed(2),
ckmx_LSHJ:(lsjg*cksl).toFixed(2)
});
//刷新表
grid.getStore().reload();
}
添加明细
//#####添加明细(药库出库)
function(btn,event,eOpts){
var form=btn.up('form'); //出库主表
var grid=form.down('grid');//出库明细列表
var id=form.getValue('yk_ypck_ID');//主表ID
//主表ID为空,则表示主表表单还没保存,提示用户
if(!id){ JE.alert('请先保存主表');
return; }
var ids=[];//所有已选的药品价格ID
grid.getStore().each(function(data){
var d=data.data;
console.warn(data);
ids.push(d.ypjg_ID);
});
console.warn(ids.join(','))
//打开选择窗口
JE.selectWin({
title :'选择药品',
configInfo :'yk_ypkc,,,M',
type :'grid',
whereSql :ids.length>0?" and ypjg_ID not in ("+ids.join(',')+")":'', //sql查询条件:排除列表中已经存在的价格ID的查询
callback :function(sels){
Ext.each(sels,function(sel){
var data=sel.data;
JE.DB.insert('yk_ckmx',{
'yk_CKMX_ID':JE.uuid(),
"yk_ypck_ID":id,
'ckmx_YPMC':data.ypkc_YPMC,
'ckmx_YPID':data.ypgl_ID,
'ckmx_CDJC':data.ypkc_CDJC,
'ckmx_CDID':data.sccjgl_ID,
'ckmx_YPYXQ':data.ypkc_YXQ,
'ckmx_DW':data.ypkc_YPDW,
'ckmx_GG':data.ypkc_YPGG,
'ckmx_PH':data.ypkc_PZWH,
'ckmx_JHJG':data.ypkc_JHJG,
'ckmx_LSJG':data.ypkc_LSJG,
'ypjg_ID': data.ypjg_ID
});
});
grid.getStore().reload();
}
});
return false;
}
确认出库
根据获取的表单数据和数量出库
function(btn,event,eOpts){
//获取form表格
var parent=btn.up('form');
//获取grid列表
var grid=parent.down('grid');
//获取store
var store=grid.getStore();
var f=parent.getForm();
var values=f.getValues();
console.warn(values.ypck_DJZT);
if(values.ypck_DJZT!='1'){
JE.alert('单据已确认,不能重复保存');
return false;
}
//自动配置id
var config=AppUtil.getConfig('ykxz');
//判断是否保存数据
if(!config){
JE.alert('请先设置您的药库','错误');
return false;
}
var canConfirm=true;
//获取每一个元素
store.each(function(data,i){
var data=data.data;
if(data.ckmx_CKSL='0'){
console.warn("data.ckmx_CKSL"+data.ckmx_CKSL);
JE.alert('【数量】0存在,请删除或更改出库数量!');
canConfirm=false;
return;
}
//查询库存
var db=JE.DB.selectList('yk_ypkc',' and ypkc_YPID="'+data.ckmx_YPID+'"','order by ypkc_YPMC desc','ypkc_YPMC,ypkc_KCSL,ypkc_YPID,yk_ypkc_ID');
//迭代一个数组或是可迭代的值,在每个元素上调用给定的回调函数
Ext.each(db,function(item,index){
console.warn(item);
var KCSL=item.ypkc_KCSL;
if(db){
//库存数量-减去数量
var newKCSL=parseInt(item.ypkc_KCSL)-parseInt(data.ckmx_CKSL);
//当需求大于库存数量时
if(newKCSL<0){
alert('仓库不足!!药品欠缺!!');
canConfirm =false;
return ;
}
JE.DB.update("yk_ypkc",{ ypkc_KCSL:newKCSL,yk_ypkc_ID:item.yk_ypkc_ID });
console.warn(newKCSL);
}
});
});
if(canConfirm){
JE.DB.update("yk_ypck",{ ypck_DJZT:'2',yk_ypck_ID:values.yk_ypck_ID });
console.warn('updated');
}else{
JE.msg('错误,请检查(仓库)');
}
}