销售订单审核修改物料销售表
This commit is contained in:
parent
1cc6ae357d
commit
fd7c6b1f67
|
@ -0,0 +1,116 @@
|
||||||
|
package nc.ui.so.m30.billui.action;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.itf.bd.material.sale.IMaterialSaleService;
|
||||||
|
import nc.itf.pubapp.pub.exception.IResumeException;
|
||||||
|
import nc.md.persist.framework.IMDPersistenceQueryService;
|
||||||
|
import nc.ui.pubapp.uif2app.AppUiState;
|
||||||
|
import nc.ui.pubapp.uif2app.actions.pflow.ApproveScriptAction;
|
||||||
|
import nc.ui.scmpub.util.ResumeExceptionUIProcessUtils;
|
||||||
|
import nc.vo.bd.material.MaterialVO;
|
||||||
|
import nc.vo.bd.material.sale.MaterialSaleVO;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.lang.UFDouble;
|
||||||
|
import nc.vo.so.m30.entity.SaleOrderBVO;
|
||||||
|
import nc.vo.so.m30.entity.SaleOrderVO;
|
||||||
|
import nc.vo.so.pub.enumeration.BillStatus;
|
||||||
|
import nccloud.framework.service.ServiceLocator;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class SaleOrderApproveAction
|
||||||
|
extends ApproveScriptAction
|
||||||
|
{
|
||||||
|
protected boolean isActionEnable() {
|
||||||
|
Object[] seldatas = this.model.getSelectedOperaDatas();
|
||||||
|
|
||||||
|
if (this.model.getAppUiState() == AppUiState.NOT_EDIT && null != seldatas && seldatas.length > 1)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Object selectedData = this.model.getSelectedData();
|
||||||
|
Integer status = null;
|
||||||
|
if (null != selectedData && selectedData instanceof SaleOrderVO) {
|
||||||
|
SaleOrderVO selorder = (SaleOrderVO)selectedData;
|
||||||
|
status = selorder.getParentVO().getFstatusflag();
|
||||||
|
String actionName = getFlowContext().getActionName();
|
||||||
|
//销售订单审核通过之后同步修改物料销售表
|
||||||
|
if(status == 2 && "APPROVE".equals(actionName) && this.enabled) {
|
||||||
|
updateMaterialBySaleOrder(selorder);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return (this.model
|
||||||
|
.getAppUiState() == AppUiState.NOT_EDIT && selectedData != null && (BillStatus.FREE
|
||||||
|
|
||||||
|
.equalsValue(status) || BillStatus.AUDITING
|
||||||
|
.equalsValue(status)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务逻辑:销售订单子表的 cmaterialvid(物料编码) 和 pk_org(销售组织)
|
||||||
|
* 去同步 这个物料销售表中相同销售组织(pk_org) 和物料编码(code)的 参考售价
|
||||||
|
*/
|
||||||
|
protected void updateMaterialBySaleOrder(SaleOrderVO selorder) {
|
||||||
|
//根据销售订单子表的物料编码和销售组织查询物料主表
|
||||||
|
SaleOrderBVO[] saleOrderitems = selorder.getChildrenVO();
|
||||||
|
//循环销售订单子表
|
||||||
|
for(int i = 0; i < saleOrderitems.length; i++) {
|
||||||
|
SaleOrderBVO item = saleOrderitems[i];
|
||||||
|
//取销售订单子表的物料编码和销售组织
|
||||||
|
String cmaterialvid = item.getCmaterialvid(); //物料主键
|
||||||
|
String pk_org = item.getPk_org(); //销售组织
|
||||||
|
UFDouble nqtorigprice = item.getNqtorigprice(); //无税单价
|
||||||
|
String whereSql = "nvl(bd_material.dr,0) = 0 and bd_material.code = '" + cmaterialvid + "' and bd_material.pk_org = '" + pk_org + "'";
|
||||||
|
// IMDPersistenceQueryService aggvoQueryService = ServiceLocator.find(IMDPersistenceQueryService.class);
|
||||||
|
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
|
||||||
|
// 条件查询得到物料MaterialSaleVO
|
||||||
|
try {
|
||||||
|
whereSql = "nvl(bd_materialsale.dr,0) = 0 and bd_materialsale.pk_material = '" + cmaterialvid + "' and bd_materialsale.pk_org = '" + pk_org + "'";
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
ArrayList<MaterialSaleVO> materialSaleVOs = (ArrayList<MaterialSaleVO>)aggvoQueryService.queryBillOfVOByCond(MaterialSaleVO.class, whereSql, true, false);
|
||||||
|
if(materialSaleVOs.size() <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for(MaterialSaleVO materialSaleVO : materialSaleVOs) {
|
||||||
|
materialSaleVO.setResaleprice(nqtorigprice);
|
||||||
|
//实体更新物料销售表
|
||||||
|
// IMaterialSaleService iMaterialSaleService = ServiceLocator.find(IMaterialSaleService.class);
|
||||||
|
IMaterialSaleService iMaterialSaleService = NCLocator.getInstance().lookup(IMaterialSaleService.class);
|
||||||
|
iMaterialSaleService.updateMaterialSaleVO(materialSaleVO);
|
||||||
|
}
|
||||||
|
}catch(BusinessException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected boolean isResume(IResumeException resumeInfo) {
|
||||||
|
return ResumeExceptionUIProcessUtils.isResume(resumeInfo, getFlowContext()); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Location: E:\project\taikai\ncchome\modules\so\client\li\\uiso_salesorder.jar!/nc/ui/so/m30/billui/action/SaleOrderApproveAction.class
|
||||||
|
* Java compiler version: 8 (52.0)
|
||||||
|
* JD-Core Version: 1.0.7
|
||||||
|
*/
|
Loading…
Reference in New Issue