فهرست منبع

采购订单获取数据方法更新

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10141 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 سال پیش
والد
کامیت
f20948d33b

+ 1 - 0
src/main/java/com/uas/platform/b2b/controller/SaleInquiryController.java

@@ -49,6 +49,7 @@ import com.uas.search.b2b.util.SearchConstants;
  * @author yingp
  * 
  */
+@SuppressWarnings("deprecation")
 @Controller
 @RequestMapping("/sale/inquiry")
 public class SaleInquiryController {

+ 291 - 0
src/main/java/com/uas/platform/b2b/controller/SaleOrderController.java

@@ -51,6 +51,7 @@ import com.uas.search.b2b.util.SearchConstants;
  * @author yingp
  * 
  */
+@SuppressWarnings("deprecation")
 @Controller
 @RequestMapping("/sale/orders")
 public class SaleOrderController {
@@ -331,6 +332,152 @@ public class SaleOrderController {
 		return searchService.searchPurchaseOrderIds(keyword, pageParams);
 	}
 
+	/**
+	 * 作为卖家,收到的采购订单(含明细)
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/info", method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getSaleOrders(PageParams params, String searchFilter) {
+		logger.log("客户采购单", "查看收到的客户采购单列表(全部)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为卖家,收到的采购订单(含明细)(待回复)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/info", params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getTodoSaleOrders(PageParams params, String searchFilter) {
+		logger.log("客户采购单", "查看收到的客户采购单列表(待回复)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("status", Status.NOT_REPLY.value());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为卖家,收到的采购订单(含明细)(已回复)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/info", params = RequestState.DONE, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getDoneSaleOrders(PageParams params, String searchFilter) {
+		logger.log("客户采购单", "查看收到的客户采购单列表(已回复)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("status", Status.REPLIED.value());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为卖家,收到的采购订单(含明细)(已结案)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/info", params = RequestState.END, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getEndSaleOrders(PageParams params, String searchFilter) {
+		logger.log("客户采购单", "查看收到的客户采购单列表(已结案)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("vendUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("end", Constant.YES);
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * @param params
+	 * @param searchFilter
+	 * @author yujia 获取待发货的订单
+	 */
+	@RequestMapping(value = "/items/info", params = RequestState.WAITING, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getWaitingOrders(PageParams params, String searchFilter) {
+		logger.log("客户采购单", "查看收到的客户采购订单列表(包括采购明细)(待交货)");
+		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
+		String keyword = jsonObject.getString("keyword");
+		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
+		SearchFilter filter = userService.distribute();
+		if (filter != null && filter.getDistribute() == null) {
+			return null;
+		}
+		if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filter.getDistribute()) {
+				list.add(object);
+			}
+			pageParams.getFilters().put("pu_enuu", new MultiValue(list, true));
+		}
+		// 当前登录企业作为供应商
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("pu_id", false, Type.LONG, new Long(1)));
+		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+		pageParams.getFilters().put("pu_venduu", SystemSession.getUser().getEnterprise().getUu());
+		ModelMap map = new ModelMap();
+		map.put("pu_end", Constant.YES);
+		map.put("pu_end", 2); // 建索引时,将不处于已结案状态,但是货物全部交接完毕的单,end值设为了2
+		pageParams.setNotEqualFilters(map);
+		return searchService.searchPurchaseOrderIds(keyword, pageParams);
+	}
+
 	/**
 	 * 作为卖家,回复收到的采购订单
 	 *
@@ -554,6 +701,150 @@ public class SaleOrderController {
 		return modelAndView;
 	}
 
+	/**
+	 * 作为买家,收到的采购订单(含明细)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/purc/info", method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getAllPurcOrders(PageParams params, String searchFilter) {
+		logger.log("平台采购单", "查看采购订单列表(包括采购明细)(全部)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为买家(常见是有UAS系统的,万利达这种),发出的采购订单(含明细)(待回复)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/purc/info", params = RequestState.TODO, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getTodoPurcOrders(PageParams params, String searchFilter) {
+		logger.log("平台采购单", "查看采购订单列表(包括采购明细)(待回复)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("status", Status.NOT_REPLY.value());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为买家(常见是有UAS系统的,万利达这种),发出的采购订单(含明细)(已回复)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/purc/info", params = RequestState.DONE, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getDonePurcOrders(PageParams params, String searchFilter) {
+		logger.log("平台采购单", "查看采购订单列表(包括采购明细)(已回复)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("status", Status.REPLIED.value());
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * 作为买家,查看发出的采购单(已结案)
+	 *
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/items/purc/info", params = RequestState.END, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getEndPurcOrders(PageParams params, String searchFilter) {
+		logger.log("平台采购单", "查看采购订单列表(包括采购明细)(已结案)");
+		PageInfo pageInfo = new PageInfo(params);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		pageInfo.filter("end", Constant.YES);
+		SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+		SearchFilter filters = userService.distribute();
+		if (filters != null && filters.getDistribute() == null) {
+			return null;
+		}
+		if (filters != null && !CollectionUtils.isEmpty(filters.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filters.getDistribute()) {
+				list.add(object);
+			}
+			filter.setDistribute(list);
+		}
+		return purchaseOrderService.findOrdersByPageInfo(pageInfo, filter);
+	}
+
+	/**
+	 * @param params
+	 * @param searchFilter
+	 *            获取待发货的订单
+	 */
+	@RequestMapping(value = "/items/purc/info", params = RequestState.WAITING, method = RequestMethod.GET)
+	@ResponseBody
+	public SPage<PurchaseOrderAll> getWaitingPurcOrders(PageParams params, String searchFilter) {
+		logger.log("平台采购单", "查看采购订单列表(包括采购明细)(待交货)");
+		JSONObject jsonObject = JSONObject.parseObject(searchFilter);
+		String keyword = jsonObject.getString("keyword");
+		com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, searchFilter);
+		// 当前登录企业作为供应商
+
+		List<Sort> sortList = new ArrayList<>();
+		sortList.add(new Sort("pu_id", false, Type.LONG, new Long(1)));
+		pageParams.getFilters().put(SearchConstants.SORT_KEY, sortList);
+		pageParams.getFilters().put("pu_enuu", SystemSession.getUser().getEnterprise().getUu());
+		SearchFilter filter = userService.distribute();
+		if (filter != null && filter.getDistribute() == null) {
+			return null;
+		}
+		if (filter != null && !CollectionUtils.isEmpty(filter.getDistribute())) {
+			List<Object> list = new ArrayList<>();
+			for (Object object : filter.getDistribute()) {
+				list.add(object);
+			}
+			pageParams.getFilters().put("pu_venduu", new MultiValue(list, true));
+		}
+		pageParams.getFilters().put("pu_end", Constant.NO);
+		return searchService.searchPurchaseOrderIds(keyword, pageParams);
+	}
+
 	/**
 	 * 作为买家,收到的采购订单(含明细)
 	 *

+ 15 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -222,12 +222,19 @@ public class PurchaseOrderAll {
 	/**
 	 * 打印日志
 	 */
+	@SuppressWarnings("deprecation")
 	@OneToMany(fetch = FetchType.EAGER)
 	@JoinColumn(name = "pl_foreign", insertable = false, updatable = false)
 	@org.hibernate.annotations.ForeignKey(name = "none")
 	@Where(clause = "pl_table = 'purc$orders'")
 	private Set<PrintLog> printLogs;
 
+	/**
+	 * 1表示该采购单的明细至少有一条结案的情况
+	 */
+	@Column(name = "pu_end")
+	private Short end;
+
 	@Column(name = "pu_purpose")
 	private String purpose; // 用途,
 
@@ -544,4 +551,12 @@ public class PurchaseOrderAll {
 		this.vendusertel = vendusertel;
 	}
 
+	public Short getEnd() {
+		return end;
+	}
+
+	public void setEnd(Short end) {
+		this.end = end;
+	}
+
 }

+ 22 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java

@@ -2,10 +2,21 @@ package com.uas.platform.b2b.service;
 
 import java.util.List;
 
-import com.uas.platform.b2b.model.*;
 import org.springframework.data.domain.Page;
 
+import com.uas.platform.b2b.model.PrintLog;
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
+import com.uas.platform.b2b.model.PurchaseOrderDone;
+import com.uas.platform.b2b.model.PurchaseOrderEnd;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
+import com.uas.platform.b2b.model.PurchaseOrderReply;
+import com.uas.platform.b2b.model.PurchaseOrderTodo;
+import com.uas.platform.b2b.model.PurchaseOrderWaiting;
+import com.uas.platform.b2b.model.SearchFilter;
 import com.uas.platform.core.model.PageInfo;
+import com.uas.search.b2b.model.SPage;
 
 public interface PurchaseOrderService {
 
@@ -91,6 +102,15 @@ public interface PurchaseOrderService {
 	 */
 	public Page<PurchaseOrderAll> findAllOrdersDetailByPageInfo(PageInfo pageInfo, SearchFilter filter);
 
+	/**
+	 * 分页查找订单,包括明细
+	 * 
+	 * @param pageInfo
+	 * @param keyword
+	 * @return
+	 */
+	public SPage<PurchaseOrderAll> findOrdersByPageInfo(PageInfo pageInfo, SearchFilter filter);
+
 	/**
 	 * 分页查找待回复订单,包括明细
 	 * 
@@ -123,6 +143,7 @@ public interface PurchaseOrderService {
 	 */
 	public Page<PurchaseOrderWaiting> findWaitingOrdersByPageInfo(PageInfo pageInfo, SearchFilter filter);
 
+
 	/**
 	 * 用订单号查找订单
 	 * 

+ 13 - 0
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -72,6 +72,7 @@ import com.uas.platform.core.model.Status;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
 
 @Service
 @javax.transaction.Transactional
@@ -1080,4 +1081,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	public List<Long> getUnreadIds() {
 		return pagingReleaseDetailDao.getUnreadIds(SystemSession.getUser().getUserUU(), SystemSession.getUser().getEnterprise().getUu(), "purc$orders", "sale");
 	}
+
+	@Override
+	public SPage<PurchaseOrderAll> findOrdersByPageInfo(PageInfo pageInfo, SearchFilter filter) {
+		SPage<PurchaseOrderAll> purcorders = new SPage<PurchaseOrderAll>();
+		Page<PurchaseOrderAll> orders = findAllOrdersDetailByPageInfo(pageInfo, filter);
+		purcorders.setContent(orders.getContent());
+		purcorders.setPage(orders.getNumber());
+		purcorders.setSize(orders.getSize());
+		purcorders.setTotalElement(orders.getTotalElements());
+		purcorders.setTotalPage(orders.getTotalPages());
+		return purcorders;
+	}
 }

+ 12 - 5
src/main/webapp/resources/js/index/app.js

@@ -2231,8 +2231,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		}
 	};
 
-    app.controller('PurcOrderCtrl', ['$scope', '$filter', 'PurcOrderItem', 'PurcOrder', 'ngTableParams', 'toaster', 'ReportService', 'BaseService', '$rootScope', 'PurchaseOrder',
-        function($scope, $filter, PurcOrderItem, PurcOrder, ngTableParams, toaster, ReportService, BaseService, $rootScope, PurchaseOrder){
+    app.controller('PurcOrderCtrl', ['$scope', '$filter', 'PurcOrders', 'PurcOrder', 'ngTableParams', 'toaster', 'ReportService', 'BaseService', '$rootScope', 'PurchaseOrder', 'PurcOrdersInfo',
+        function($scope, $filter, PurcOrders, PurcOrder, ngTableParams, toaster, ReportService, BaseService, $rootScope, PurchaseOrder, PurcOrdersInfo){
 		    BaseService.scrollBackToTop();
             if ($rootScope.active) {
                 $scope.active = $rootScope.active;
@@ -2269,6 +2269,10 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 $scope.tableParams.reload();
             };
   		
+            $scope.SearchMethod = false;
+         var getService = function() {
+        	 return $scope.SearchMethod ? PurcOrders : PurcOrdersInfo;
+         };
   		// 切换单据类型
   		$scope.setActive = function(state) {
   			if($scope.active != state) {
@@ -2313,7 +2317,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
   						fromDate: getDateTime($scope.condition.dateFrom),
   						endDate: getDateTime($scope.condition.dateTo)
   				};
-  				PurcOrderItem[getPurcStatus($scope.active)].call(null, BaseService.parseParams(pageParams), function(page){
+  				getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function(page){
   					$scope.loading = false;
   					if(page) {
   						$defer.resolve(page.content);
@@ -2396,6 +2400,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
   		
   		// 搜索框回车
   		$scope.onSearch = function(keyword) {
+  			 $scope.SearchMethod = true;
   			$scope.tableParams.page(1);
   			$scope.tableParams.reload();
   			$scope.tip = keyword;
@@ -2508,7 +2513,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		};
 	}]);
 
-    app.controller('SaleOrderCtrl', ['$scope', '$filter', 'PurcOrderItem', 'PurcOrder', 'ngTableParams', 'toaster', 'ReportService', 'BaseService', 'PurcOrderItemHis', 'PagingRelease', 'SnapshotService', function ($scope, $filter, PurcOrderItem, PurcOrder, ngTableParams, toaster, ReportService, BaseService, PurcOrderItemHis, PagingRelease, SnapshotService) {
+    app.controller('SaleOrderCtrl', ['$scope', '$filter', 'PurcOrderItem', 'PurcOrder', 'ngTableParams', 'toaster', 'ReportService', 'BaseService', 'PurcOrderItemHis', 'PagingRelease', 'SnapshotService', 'PurcOrderItemInfo', function ($scope, $filter, PurcOrderItem, PurcOrder, ngTableParams, toaster, ReportService, BaseService, PurcOrderItemHis, PagingRelease, SnapshotService, PurcOrderItemInfo) {
         BaseService.scrollBackToTop();
 
         var getUnreadCount = function () {
@@ -2560,9 +2565,10 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 			}
 		};
 
+		$scope.SearchMethod = false;
 		// 切换数据来源(正常数据 or 历史数据)
 		var getService = function() {
-			return PurcOrderItem;
+			return $scope.SearchMethod ? PurcOrderItem : PurcOrderItemInfo;
 		};
 		$scope.tableParams = new ngTableParams({ // ng-Table参数
 			page : 1,
@@ -2742,6 +2748,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
 		};
 		// 搜索框回车
 		$scope.onSearch = function() {
+			$scope.SearchMethod = true;
 			$scope.tableParams.page(1);
 			$scope.tableParams.reload();
 		};

+ 87 - 27
src/main/webapp/resources/js/index/services/Purc.js

@@ -34,33 +34,6 @@ define([ 'ngResource'], function() {
 		});
 	}]).factory('PurcOrderItem', ['$resource', function($resource) {
 		return $resource('sale/orders/items', {}, {
-			getPurcAll: {
-				url: 'sale/orders/items/purc',
-			},
-			getPurcTodo: {
-				url: 'sale/orders/items/purc',
-				params: {
-					_state: 'todo'
-				}
-			},
-			getPurcDone: {
-				url: 'sale/orders/items/purc',
-				params: {
-					_state: 'done'
-				}
-			},
-			getPurcEnd: {
-				url: 'sale/orders/items/purc',
-				params: {
-					_state: 'end'
-				}
-			},
-			getPurcWaiting: {
-				url: 'sale/orders/items/purc',
-				params: {
-					_state: 'waiting'
-				}
-			},
 			getTodo: {
 				params: {
 					_state: 'todo'
@@ -117,6 +90,93 @@ define([ 'ngResource'], function() {
 				method: 'POST'
 			}
 		});
+	}]).factory('PurcOrderItemInfo', ['$resource', function($resource) {
+		return $resource('sale/orders/items/info', {}, {
+			getTodo: {
+				params: {
+					_state: 'todo'
+				}
+			},
+			getDone: {
+				params: {
+					_state: 'done'
+				}
+			},
+			getEnd: {
+				params: {
+					_state: 'end'
+				}
+			},
+			getReceived:{
+				params: {
+					_state: 'received'
+				}
+			},
+			getWaiting: {
+				params: {
+					_state: 'waiting'
+				}
+			}
+		});
+	}]).factory('PurcOrdersInfo', ['$resource', function($resource) {
+		return $resource('sale/orders/items/purc/info', {}, {
+			getAll: {
+				
+			},
+			getTodo: {
+				params: {
+					_state: 'todo'
+				}
+			},
+			getDone: {
+				params: {
+					_state: 'done'
+				}
+			},
+			getEnd: {
+				params: {
+					_state: 'end'
+				}
+			},
+			getReceived:{
+				params: {
+					_state: 'received'
+				}
+			},
+			getWaiting: {
+				params: {
+					_state: 'waiting'
+				}
+			}
+		});
+	}]).factory('PurcOrders', ['$resource', function($resource) {
+		return $resource('sale/orders/items/purc', {}, {
+			getTodo: {
+				params: {
+					_state: 'todo'
+				}
+			},
+			getDone: {
+				params: {
+					_state: 'done'
+				}
+			},
+			getEnd: {
+				params: {
+					_state: 'end'
+				}
+			},
+			getReceived:{
+				params: {
+					_state: 'received'
+				}
+			},
+			getWaiting: {
+				params: {
+					_state: 'waiting'
+				}
+			}
+		});
 	}]).factory('PurcChange', ['$resource', function($resource) {
 		return $resource('sale/changes/:id', {}, {
 			getTodo: {