Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java =================================================================== diff -u -r13424 -r13490 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 13424) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 13490) @@ -51,6 +51,15 @@ * @return */ public JSONObject searchDisposableGoodsList(String simpleSpell, String allItems,String handleDepartCode,boolean showExternalCodeOfDisposableGoods); + + /** + * 获取一次性物品定义及材料定义的列表 + * @param simpleSpell 拼音或五笔码,或者是物品名称 + * @param allItems 是否能被科室申请的标志,值yes表示能 + * @param wareHouseId 科室的id,可以为null + * @return + */ + public JSONObject searchDisposableGoodsAndMaterialList(String simpleSpell, String allItems,String handleDepartCode,boolean showExternalCodeOfDisposableGoods); /** * 获取材料或者一次性物品的NAME和ID,用于store中 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GoodPurchaseItem.java =================================================================== diff -u -r12562 -r13490 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GoodPurchaseItem.java (.../GoodPurchaseItem.java) (revision 12562) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/assestmanagement/GoodPurchaseItem.java (.../GoodPurchaseItem.java) (revision 13490) @@ -71,6 +71,16 @@ */ private String supplierName ; + /** + * 一次性物品定义Id + */ + private Long disposableGoodsId; + + /** + * 材料定义id + */ + private Long materialDefinitionId; + @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -179,4 +189,20 @@ public void setSupplierName(String supplierName) { this.supplierName = supplierName; } + + public Long getDisposableGoodsId() { + return disposableGoodsId; + } + + public void setDisposableGoodsId(Long disposableGoodsId) { + this.disposableGoodsId = disposableGoodsId; + } + + public Long getMaterialDefinitionId() { + return materialDefinitionId; + } + + public void setMaterialDefinitionId(Long materialDefinitionId) { + this.materialDefinitionId = materialDefinitionId; + } } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r13444 -r13490 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 13444) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 13490) @@ -24,6 +24,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFRow; @@ -57,6 +58,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; import com.forgon.disinfectsystem.entity.disposablegoods.DisposableGoodsInventory; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.invoicemanager.DiposableGoodsItem; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; @@ -551,6 +553,45 @@ } return jsonArray.toString(); } + + /** + * 获取一次性物品定义及材料定义的列表 + * @param simpleSpell 拼音或五笔码,或者是物品名称 + * @param allItems 是否能被科室申请的标志,值yes表示能 + * @param wareHouseId 科室的id,可以为null + * @return + */ + public JSONObject searchDisposableGoodsAndMaterialList(String simpleSpell, String allItems,String handleDepartCode,boolean showExternalCodeOfDisposableGoods){ + //一次性物品sql + String sql = buildGetDisposableGoodsSql(simpleSpell, allItems); + //一次性物品结果 + List> disposableGoodsMapList = getDisposableGoodsListInternal( + handleDepartCode, sql,false,showExternalCodeOfDisposableGoods); + + //材料结果 + List> materialDefinitionMapList = getMaterialDefinitionListInternal( + handleDepartCode, buildGetMaterialDefinitionSql(simpleSpell),false,false); + + List> mapList = new ArrayList>(); + if(CollectionUtils.isNotEmpty(disposableGoodsMapList)){ + for(Map map : disposableGoodsMapList){ + mapList.add(map); + } + } + + if(CollectionUtils.isNotEmpty(materialDefinitionMapList)){ + for(Map map : materialDefinitionMapList){ + mapList.add(map); + } + } + + Map map = new HashMap(); + map.put("totalCount", mapList.size()); + + map.put("data", mapList); + System.out.println("JSONObject.fromObject(map)=\n"+JSONObject.fromObject(map)); + return JSONObject.fromObject(map); + } /** * 获取一次性物品NAME和ID @@ -572,6 +613,39 @@ map.put("data", mapList); return JSONObject.fromObject(map); } + + /** + * 查询材料 + * @param handleDepartCode + * @param sql + * @param showReferencePrice + * @param showExternalCodeOfDisposableGoods + * @return + */ + private List> getMaterialDefinitionListInternal( + String handleDepartCode, String sql,boolean showReferencePrice,boolean showExternalCodeOfDisposableGoods) { + List materialDefinitionList = objectDao.findBySql( + MaterialDefinition.class.getSimpleName(), sql); + List> mapList = new ArrayList>(); + if(CollectionUtils.isNotEmpty(materialDefinitionList)){ + for(MaterialDefinition md : materialDefinitionList){ + Map temp = new HashMap(); + temp.put("id", md.getId()); + temp.put("materialDefinitionId", md.getId()); + temp.put("type", GoodsStock.TYPE_MATERIAL); + temp.put("name", CssdUtils.getMaterialName(md)); + temp.put("displayName", CssdUtils.getMaterialName(md)); + temp.put("spelling", md.getSpelling()); + temp.put("externalCode", md.getExternalCode()); + temp.put("unit", StringTools.getDefaultString(md.getUnit())); + temp.put("tousseType", GoodsStock.TYPE_MATERIAL); + temp.put("amount", 0); + temp.put("price", 0.00); + mapList.add(temp); + } + } + return mapList; + } private List> getDisposableGoodsListInternal( String handleDepartCode, String sql,boolean showReferencePrice,boolean showExternalCodeOfDisposableGoods) { @@ -636,6 +710,7 @@ } temp.put("id", disposableGoods.getId()); + temp.put("disposableGoodsId", disposableGoods.getId()); temp.put("type", "一次性物品"); temp.put("name", goodsName); temp.put("spelling", disposableGoods.getSpelling()); @@ -744,6 +819,23 @@ } return sql; } + + private String buildGetMaterialDefinitionSql(String simpleSpell) { + String sql = " where 1=1 "; + + Matcher m = Constants.ChineseCharPattern.matcher(simpleSpell); + String searchMode = AcegiHelper.getLoginUser().getSearchMode(); + if (StringUtils.isNotBlank(simpleSpell)) { + simpleSpell = simpleSpell.toUpperCase(); + if (m.find()) { + sql += " and po.name like '%" + simpleSpell + "%'"; + } else { + sql += Util.getSearchSQLByUserSetting(searchMode, + simpleSpell); + } + } + return sql; + } /** * 获取一次性物品定义的浮动价格,是diposableGoodBatchStockManager中的方法 public Double getRecentPrice(DisposableGoodsStock disposableGoodsStock);对一次性物品定义的替代版本 * @param disposableGoods Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java =================================================================== diff -u -r12917 -r13490 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java (.../GoodPurchaseAction.java) (revision 12917) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/action/GoodPurchaseAction.java (.../GoodPurchaseAction.java) (revision 13490) @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; import javax.servlet.http.HttpServletResponse; @@ -18,13 +19,17 @@ import org.apache.struts2.convention.annotation.ParentPackage; import com.forgon.Constants; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.OrgUnitManager; +import com.forgon.disinfectsystem.diposablegoods.service.DiposableGoodsManager; import com.forgon.disinfectsystem.diposablegoods.service.GoodPurchasePlanManager; import com.forgon.disinfectsystem.diposablegoods.service.IdentificationOfDiposableGoodsManager; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchaseItem; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlan; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.json.JSONUtil; import com.opensymphony.xwork2.ModelDriven; @@ -41,6 +46,10 @@ private IdentificationOfDiposableGoodsManager identificationOfDiposableGoodsManager; + private String spell; + + private DiposableGoodsManager diposableGoodsManager; + public IdentificationOfDiposableGoodsManager getIdentificationOfDiposableGoodsManager() { return identificationOfDiposableGoodsManager; } @@ -64,6 +73,18 @@ this.orgUnitManager = orgUnitManager; } + public String getSpell() { + return spell; + } + + public void setSpell(String spell) { + this.spell = spell; + } + + public void setDiposableGoodsManager(DiposableGoodsManager diposableGoodsManager) { + this.diposableGoodsManager = diposableGoodsManager; + } + /** * @param out * :输出流 @@ -81,6 +102,34 @@ + printValue + "'}"); out.close(); } + + /** + * 根据拼音简拼,获取一次性物品及材料的数据 + * + * @return + * @throws Exception + */ + public String getDiposableGoodsAndMaterialData() { + spell = spell == null ? "" : spell; + try { + spell = java.net.URLDecoder.decode(spell, "UTF-8"); + //是否搜索全部一次性物品 + String allItems = StrutsParamUtils.getPraramValue("allItems", + null); + String handleDepartCode = AcegiHelper.getCurrentOrgUnitCode(); + //一次性物品数据 + JSONObject disposableGoodsAndMaterialJson = diposableGoodsManager.searchDisposableGoodsAndMaterialList( + spell, allItems,handleDepartCode,true); + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setContentType("text/html;charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.print(disposableGoodsAndMaterialJson); + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } private void setGoodPurchasePlanPropertiesFromParams(GoodPurchasePlan entry,String formParams,String items){ JSONObject formParamsObj = JSONObject.fromObject(formParams); @@ -127,6 +176,15 @@ String supplierName = obj.optString("supplierName");// 供应商 String manufacturer = obj.optString("manufacturer");// 生产厂家 + String disposableGoodsId = obj.optString("disposableGoodsId"); + String materialDefinitionId = obj.optString("materialDefinitionId"); + if(DatabaseUtil.isPoIdValid(disposableGoodsId)){ + goodPurchaseItem.setDisposableGoodsId(Long.parseLong(disposableGoodsId)); + } + if(DatabaseUtil.isPoIdValid(materialDefinitionId)){ + goodPurchaseItem.setMaterialDefinitionId(Long.parseLong(materialDefinitionId)); + } + goodPurchaseItem.setGoodPurchasePlan(goodPurchasePlan); goodPurchaseItem.setOrgUnit(orgUnit); goodPurchaseItem.setName(name); @@ -233,6 +291,8 @@ obj.put("supplierName", item.getSupplierName()); obj.put("unit", item.getUnit()); obj.put("totalPrice", item.getTotalPrice()); + obj.put("disposableGoodsId", item.getDisposableGoodsId()); + obj.put("materialDefinitionId", item.getMaterialDefinitionId()); jsonArray.add(obj); } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java =================================================================== diff -u -r13059 -r13490 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java (.../GoodPurchasePlanManagerImpl.java) (revision 13059) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/GoodPurchasePlanManagerImpl.java (.../GoodPurchasePlanManagerImpl.java) (revision 13490) @@ -213,6 +213,8 @@ curGodownEntryItem.setPurchase(price); } } + //总价也需要更新 + curGodownEntryItem.setTotalPrice(amount * price); // 修改上期消耗数 Integer originalLastConsumption = originalGodownEntryItem.getLastConsumption(); Integer lastConsumption = goodPurchaseItem.getLastConsumption(); Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r13416 -r13490 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 13416) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 13490) @@ -260,10 +260,16 @@ {hidden :SSTS_WarehouseEntryOut_Menu,text:"调拨单管理",href:WWWROOT+'/disinfectsystem/assestManagement/godownEntry/appropriationView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_WarehouseEntryOut_Menu,text:"盘盈盘亏管理",href:WWWROOT+'/disinfectsystem/assestManagement/godownEntry/godownStockTakeView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_JJJL_Menu,text:"一次性物品盘点管理",href:WWWROOT+'/disinfectsystem/stocktakerecordmanager/inventoryrecordView.jsp?type=disposableGoods',hrefTarget:linkTarget,leaf:true}, - {hidden :SSTS_stockTakeInfoNode_Menu,text:"一次性物品结算管理",href:WWWROOT+'/disinfectsystem/reportforms/stocktakeView.jsp',hrefTarget:linkTarget,leaf:true}, - {hidden :SSTS_godownEntryNode_Menu,text:"一次性物品采购计划",href:WWWROOT+'/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.jsp',hrefTarget:linkTarget,leaf:true} + {hidden :SSTS_stockTakeInfoNode_Menu,text:"一次性物品结算管理",href:WWWROOT+'/disinfectsystem/reportforms/stocktakeView.jsp',hrefTarget:linkTarget,leaf:true} ] },{ + text:"采购计划", + singleClickExpand:singleClickExpandTree, + hidden:SSTS_Warehouse_Menu, + children:[ + {hidden :SSTS_godownEntryNode_Menu,text:"采购计划",href:WWWROOT+'/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.jsp',hrefTarget:linkTarget,leaf:true} + ] +},{ text:"器械仓库管理", singleClickExpand:singleClickExpandTree, hidden:SSTS_Warehouse_Menu, Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java =================================================================== diff -u -r13024 -r13490 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java (.../GoodPurchaseTableManager.java) (revision 13024) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/dwr/table/GoodPurchaseTableManager.java (.../GoodPurchaseTableManager.java) (revision 13490) @@ -18,7 +18,10 @@ import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchaseItem; import com.forgon.disinfectsystem.entity.assestmanagement.GoodPurchasePlan; +import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; +import com.forgon.tools.hibernate.ObjectDao; /** * 采购计划的表格处理 @@ -32,6 +35,7 @@ private DiposableGoodsManager diposableGoodsManager; private GoodPurchasePlanManager goodPurchasePlanManager; private WareHouseManager wareHouseManager; + private ObjectDao objectDao; public void setGridManager(GridManager gridManager) { this.gridManager = gridManager; @@ -54,6 +58,10 @@ this.wareHouseManager = wareHouseManager; } + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + public String findGoodPurchaseTableList( Map> parameterMap) { // 申请单查看 发货单 @@ -161,4 +169,69 @@ } return jsonObject.toString(); } + + /** + * 根据材料定义id查询该物品的库存数及最近一次的采购计划明细 + * @param materialDefinitionId + * @return + */ + public String getLastGoodPurchaseItemByMaterialDefinitionId(String materialDefinitionId){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("stockQuantity", ""); + jsonObject.put("specification1", ""); + jsonObject.put("purchase", ""); + jsonObject.put("unit1", ""); + jsonObject.put("supplier1", ""); + jsonObject.put("manufacturer", ""); + MaterialDefinition materialDefinition = + (MaterialDefinition)objectDao.getBySql(MaterialDefinition.class.getSimpleName(), "where id=" + materialDefinitionId); + + if(materialDefinition != null && StringUtils.isNotBlank(materialDefinition.getName())){ + //材料库存 + List materialGoodsStockList = null; + List warehouseList = + wareHouseManager.getWareHouseListByCurrentOrgUnit(); + if(CollectionUtils.isNotEmpty(warehouseList)){ + int stockQuantity = 0; + for(WareHouse wareHouse : warehouseList){ + materialGoodsStockList = + objectDao.findBySql(GoodsStock.class.getSimpleName(), "where wareHouseId=" + + wareHouse.getId() + " and materialDefinitionId=" + materialDefinitionId); + if(CollectionUtils.isNotEmpty(materialGoodsStockList)){ + for(GoodsStock gs : materialGoodsStockList){ + stockQuantity += gs.getAmount(); + } + } + } + //库存数 + jsonObject.put("stockQuantity", stockQuantity); + } + + GoodPurchaseItem goodPurchaseItem = + goodPurchasePlanManager.getLastGoodPurchaseItemByNameAndSpecification(materialDefinition.getName(), materialDefinition.getSpecification()); + if(goodPurchaseItem != null){ + //规格 + if(StringUtils.isNotBlank(materialDefinition.getSpecification())){ + jsonObject.put("specification1", materialDefinition.getSpecification()); + } + //进价 + if(goodPurchaseItem.getPurchase() != null){ + jsonObject.put("purchase", goodPurchaseItem.getPurchase()); + } + //单位 + if(StringUtils.isNotBlank(goodPurchaseItem.getUnit())){ + jsonObject.put("unit1", goodPurchaseItem.getUnit()); + } + //供应商 + if(StringUtils.isNotBlank(goodPurchaseItem.getSupplierName())){ + jsonObject.put("supplier1", goodPurchaseItem.getSupplierName()); + } + //生产厂家 + if(StringUtils.isNotBlank(goodPurchaseItem.getManufacturer())){ + jsonObject.put("manufacturer", goodPurchaseItem.getManufacturer()); + } + } + } + return jsonObject.toString(); + } } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js =================================================================== diff -u -r13129 -r13490 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js (.../goodPurchasePlanView.js) (revision 13129) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/godownEntry/goodPurchasePlanView.js (.../goodPurchasePlanView.js) (revision 13490) @@ -1,39 +1,29 @@ var entityName = "采购计划管理"; var grid; var g_localID = 1;// 为了区分每一个item,增加的ID。 -// 全部一次性物品 -var allDiposableGoodsStore = new Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!getDiposableGoodsData.do?allItems=yes', - method : 'POST' - }), - reader : new Ext.data.JsonReader({ - totalProperty : 'totalCount', - root : 'data' - }, [ - {name : 'id',mapping : 'id'}, - {name : 'spelling',mapping : 'spelling'}, - {name : 'name',mapping : 'name'}, - {name : 'displayName',mapping : 'displayName'}, - {name : 'referencePrice',mapping : 'referencePrice'} - ]) -}); -// 科室能申请的一次性物品 -var diposableGoodsStore = new Ext.data.Store({ +var disposableGoodsAndMaterialUrl = WWWROOT + '/disinfectSystem/goodPurchaseAction!getDiposableGoodsAndMaterialData.do'; +if(sstsConfig.restrictGodownEntryDiposableGoods != true){ + disposableGoodsAndMaterialUrl += '?allItems=yes'; +} +//一次性物品及材料 +var disposableGoodsAndMaterialStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!getDiposableGoodsData.do', + url : disposableGoodsAndMaterialUrl, method : 'POST' }), reader : new Ext.data.JsonReader({ totalProperty : 'totalCount', root : 'data' }, [ {name : 'id',mapping : 'id'}, - {name : 'spelling',mapping : 'spelling'}, + {name : 'disposableGoodsId',mapping : 'disposableGoodsId'}, + {name : 'materialDefinitionId',mapping : 'materialDefinitionId'}, {name : 'name',mapping : 'name'}, {name : 'displayName',mapping : 'displayName'}, - {name : 'referencePrice',mapping : 'referencePrice'} + {name : 'spelling',mapping : 'spelling'}, + {name : 'cost',mapping : 'cost'}, + {name : 'storage',mapping : 'storage'} ]) }); @@ -93,7 +83,9 @@ {name : 'totalPrice'}, {name : 'supplierName'}, {name : 'identification'}, - {name : 'manufacture'} + {name : 'manufacture'}, + {name : 'disposableGoodsId'}, + {name : 'materialDefinitionId'} ]); //打印,目前只支持单个打印 @@ -207,7 +199,8 @@ top.Ext.getCmp('name1').setValue(''); top.Ext.getCmp('amount1').setValue(''); top.Ext.getCmp('unit1').setValue(''); - top.Ext.getCmp('diposableGoodsID').setValue(''); + top.Ext.getCmp('disposableGoodsId').setValue(''); + top.Ext.getCmp('materialDefinitionId').setValue(''); top.Ext.getCmp('specification1').setValue(''); top.Ext.getCmp('purchase').setValue(''); top.Ext.getCmp('supplier1').setValue(''); @@ -217,7 +210,7 @@ top.Ext.getCmp('name1').focus(); } function addItems(departName,departCoding,name,unit,specification,lastConsuption, - stockQuantity,scheduleAmount,purchase,manufacturer,supplierName){ + stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId){ for(var i = 0;i < top.Ext.getCmp('goodPurchaseItemGrid').getStore().getCount();i++){ if(top.Ext.getCmp('goodPurchaseItemGrid').getStore().getAt(i).data.name == name){ showResult("该物品已经存在,不能重复添加!"); @@ -249,7 +242,7 @@ totalPriceNum = ''; } //添加操作 - var godownEntryItem = new GoodPurchasePlanItemRecord({ + var goodPurchasePlanItem = new GoodPurchasePlanItemRecord({ localID:g_localID++, id : "", departName : departName, @@ -263,13 +256,15 @@ purchase : purchaseNum, totalPrice:totalPriceNum, manufacturer:manufacturer, - supplierName : supplierName + supplierName : supplierName, + disposableGoodsId : disposableGoodsId, + materialDefinitionId : materialDefinitionId }); //alert(purchase + " " + scheduleAmount + " " ); //alert("lastConsuption:" + lastConsuption); //alert("tatalPrice:" + Ext.num(parseFloat(scheduleAmount) * parseFloat(purchase),0)); - //top.Ext.getCmp('goodPurchaseItemGrid').getStore().add(godownEntryItem); - top.Ext.getCmp('goodPurchaseItemGrid').getStore().insert(0 , godownEntryItem); + //top.Ext.getCmp('goodPurchaseItemGrid').getStore().add(goodPurchasePlanItem); + top.Ext.getCmp('goodPurchaseItemGrid').getStore().insert(0 , goodPurchasePlanItem); setTotalMoney(top.Ext.getCmp('goodPurchaseItemGrid')); clearForm(); return true; @@ -491,7 +486,9 @@ {name : 'totalPrice'}, {name : 'manufacturer'}, {name : 'supplierName'}, - {name : 'deleteButton'} + {name : 'deleteButton'}, + {name : 'disposableGoodsId'}, + {name : 'materialDefinitionId'} ] }) }), @@ -587,10 +584,14 @@ }), tbar : [{ xtype : 'hidden', - name : 'diposableGoodsID', - id : 'diposableGoodsID' + name : 'disposableGoodsId', + id : 'disposableGoodsId' },{ xtype : 'hidden', + name : 'materialDefinitionId', + id : 'materialDefinitionId' + },{ + xtype : 'hidden', name : 'barcode', id : 'barcode' },{ @@ -601,9 +602,9 @@ name : 'name1', queryParam : 'spell', minChars : 0, - valueField : 'id', + valueField : 'name', displayField : 'name', - store : sstsConfig.restrictGodownEntryDiposableGoods == true ? diposableGoodsStore:allDiposableGoodsStore, + store : disposableGoodsAndMaterialStore, forceSelection : true, lazyInit : false, triggerAction : 'all', @@ -617,8 +618,9 @@ select : function(combo, record, index) { top.Ext.getCmp('name1').setValue(record.data.name); top.Ext.getCmp('name1').selectText(); - top.Ext.getCmp('diposableGoodsID').setValue(record.data.id); - top.Ext.getCmp('purchase').setValue(record.data.referencePrice); + var disposableGoodsId = record.data.disposableGoodsId; + var materialDefinitionId = record.data.materialDefinitionId; + //加载相关的信息 /*DiposableGoodsTableManager.getDiposableGoodsInfoForGoodPurchase(record.data.id,function(result){ if(result != ""){ @@ -631,18 +633,38 @@ } });*/ - //选择物品后自动带出上一次录入的数据,增加进价 - GoodPurchaseTableManager.getLastGoodPurchaseItemByDisposableGoodsId(record.data.id,function(result){ - if(result && result != ""){ - var lastGoodPurchaseItem = Ext.decode(result); - top.Ext.getCmp('stockQuantity').setValue(lastGoodPurchaseItem.stockQuantity); - top.Ext.getCmp('specification1').setValue(lastGoodPurchaseItem.specification1); - top.Ext.getCmp('purchase').setValue(lastGoodPurchaseItem.purchase); - top.Ext.getCmp('unit1').setValue(lastGoodPurchaseItem.unit1); - top.Ext.getCmp('supplier1').setValue(lastGoodPurchaseItem.supplier1); - top.Ext.getCmp('manufacturer').setValue(lastGoodPurchaseItem.manufacturer); - } - }); + if(disposableGoodsId){ + top.Ext.getCmp('materialDefinitionId').setValue(""); + top.Ext.getCmp('disposableGoodsId').setValue(disposableGoodsId); + top.Ext.getCmp('purchase').setValue(record.data.referencePrice); + //选择物品后自动带出上一次录入的数据,增加进价 + GoodPurchaseTableManager.getLastGoodPurchaseItemByDisposableGoodsId(disposableGoodsId,function(result){ + if(result && result != ""){ + var lastGoodPurchaseItem = Ext.decode(result); + top.Ext.getCmp('stockQuantity').setValue(lastGoodPurchaseItem.stockQuantity); + top.Ext.getCmp('specification1').setValue(lastGoodPurchaseItem.specification1); + top.Ext.getCmp('purchase').setValue(lastGoodPurchaseItem.purchase); + top.Ext.getCmp('unit1').setValue(lastGoodPurchaseItem.unit1); + top.Ext.getCmp('supplier1').setValue(lastGoodPurchaseItem.supplier1); + top.Ext.getCmp('manufacturer').setValue(lastGoodPurchaseItem.manufacturer); + } + }); + }else if(materialDefinitionId){ + top.Ext.getCmp('disposableGoodsId').setValue(""); + top.Ext.getCmp('materialDefinitionId').setValue(materialDefinitionId); + //选择物品后自动带出上一次录入的数据,增加进价 + GoodPurchaseTableManager.getLastGoodPurchaseItemByMaterialDefinitionId(materialDefinitionId,function(result){ + if(result && result != ""){ + var lastGoodPurchaseItem = Ext.decode(result); + top.Ext.getCmp('stockQuantity').setValue(lastGoodPurchaseItem.stockQuantity); + top.Ext.getCmp('specification1').setValue(lastGoodPurchaseItem.specification1); + top.Ext.getCmp('purchase').setValue(lastGoodPurchaseItem.purchase); + top.Ext.getCmp('unit1').setValue(lastGoodPurchaseItem.unit1); + top.Ext.getCmp('supplier1').setValue(lastGoodPurchaseItem.supplier1); + top.Ext.getCmp('manufacturer').setValue(lastGoodPurchaseItem.manufacturer); + } + }); + } top.Ext.getCmp('amount1').focus(); top.Ext.getCmp('amount1').selectText(); }, @@ -929,7 +951,8 @@ showResult('请正确填写表单各值'); return false; }*/ - var diposableGoodsID = top.Ext.getCmp('diposableGoodsID').getValue(); + var disposableGoodsId = top.Ext.getCmp('disposableGoodsId').getValue(); + var materialDefinitionId = top.Ext.getCmp('materialDefinitionId').getValue(); var name = top.Ext.getCmp('name1').getValue(); /*if(name.length==0){ showResult('请填写物品名称!'); @@ -966,10 +989,10 @@ var stockQuantity = top.Ext.getCmp('stockQuantity').getRawValue(); var departName = $Id('departName').value; var departCoding = $Id('departCoding').value; - var lastConsuption = top.Ext.getCmp('lastConsumption1').getValue() + var lastConsuption = top.Ext.getCmp('lastConsumption1').getValue(); //alert(departName + " " + departCoding); return addItems(departName,departCoding,name,unit,specification,lastConsuption, - stockQuantity,scheduleAmount,purchase,manufacturer,supplierName); + stockQuantity,scheduleAmount,purchase,manufacturer,supplierName,disposableGoodsId,materialDefinitionId); } // 删除 @@ -1059,7 +1082,10 @@ // var aaa = Ext.util.Format.usMoney(action.result.data.itemsList[i].cost); var purchase = parseFloat(data.itemsList[i].purchase); - var godownEntryItem = new GoodPurchasePlanItemRecord({ + var disposableGoodsId = data.itemsList[i].disposableGoodsId; + var materialDefinitionId = data.itemsList[i].materialDefinitionId; + + var goodPurchasePlanItem = new GoodPurchasePlanItemRecord({ localID:g_localID++, id : data.itemsList[i].id, departName:data.itemsList[i].departName, @@ -1075,10 +1101,12 @@ totalPrice : data.itemsList[i].totalPrice, manufacturer : data.itemsList[i].manufacturer, supplierName : data.itemsList[i].supplierName, - totalPrice:parseFloat(Ext.util.Format.usMoney(scheduleAmount*purchase)) + totalPrice:parseFloat(Ext.util.Format.usMoney(scheduleAmount*purchase)), + disposableGoodsId : disposableGoodsId, + materialDefinitionId : materialDefinitionId }); - top.Ext.getCmp('goodPurchaseItemGrid').getStore().add(godownEntryItem); + top.Ext.getCmp('goodPurchaseItemGrid').getStore().add(goodPurchasePlanItem); } setTotalMoney(top.Ext.getCmp('goodPurchaseItemGrid')); // 保存原始数据,只需要保存需要修改的属性 @@ -1271,7 +1299,7 @@ valueField : 'id', displayField : 'displayName', width : 600, - store : allDiposableGoodsStore, + store : disposableGoodsAndMaterialStore, forceSelection : false, lazyInit : true, triggerAction : 'all',