Ext.Ajax.request案例


背景:当创建完销售订单(SO)之后,如果要生产产品,必然要创建生产订单(PR),此时我们可以点击SO页 面创建生产订单按钮。想要PR生效则需要点击我们系统里面的POST按钮,此时问题来了...
问题:当点击POST按钮时我们必须判断SO的状态是否为OPEN或者SHIPPED,否则,则弹窗予以警告。
解决方法:
前台部分代码:

function checkReferenceSOStatus(name){ clickName = name; var params = {}; params.commandName="checkReferenceSOStatus"; params.referenceSONumber=document.getElementById("PB___referenceSONumber").value; Ext.Ajax.request({ url : PRODUCTION_URLMAP.MTOPROD_ORDER_LIST_JSON, //应该是个servlet吧 params: params, async: false, //这里填true和false差别在哪里啊? method : "POST", success : checkReferenceSOStatus_callback }); } function checkReferenceSOStatus_callback(returnVal) { var obj = Ext.util.JSON.decode(returnVal.responseText); if (obj.soStatus == 'ORDER_DRAFT'||obj.soStatus=='ORDER_CANCELLED'||obj.soStatus=='ORDER_CLOSED'){ isMTSSalesOrderOpenOrShipped = false; alert("${erp:getResStr3(requestScope.session,'MTOProductionOrder.Prop.Post.CheckSOStatus')}"); }else{ isMTSSalesOrderOpenOrShipped = true; page_action(clickName); } } var isMTSSalesOrderOpenOrShipped = false; function page_action(name) { clickName = name; if(name == "POST"){ var referenceSONumber = document.getElementById("PB___referenceSONumber").value; if (!Strings.isEmpty(referenceSONumber) && !isMTSSalesOrderOpenOrShipped){ checkReferenceSOStatus(name); return; } } }

后台部分代码:

private void checkReferenceSOStatus() {
		String referenceSONumber = requestBean.getValue("referenceSONumber");
		OrderHeader orderHeader = orderService.loadOrderHeaderBySequence(referenceSONumber);
		JSONObject qs = new JSONObject();
		qs.put("soStatus", orderHeader.getCurrentStatus().getStatusItem().getId());
		contextMap.put("JSONString", qs.toString());   //注意:保存的是JSON对象,以便在前台取值
	}



----以上都是个人学习用,欢迎大家指正,本人新手





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值