public RequisitionOrder[] getRequisitionOrder(GetRequisitionOrderRequest request) { DetachedCriteria criteria = DetachedCriteria.For<OrderHead>(); if (request.orderby != null) { RequestOrderByHelper.ConverToCriteria(request.orderby, orderbyFiledsMapping, criteria); } if (request.requisitionOrderNo != null && request.requisitionOrderNo != string.Empty) { criteria.Add(Expression.Eq("OrderNo", request.requisitionOrderNo)); request.rowSize = 1; } else { if (request.requisitionOrderStatus != null && request.requisitionOrderStatus.Length > 0) { for (int i = 0; i < request.requisitionOrderStatus.Count(); i++) { if (request.requisitionOrderStatus[i] == "In_Process") { request.requisitionOrderStatus[i] = BusinessConstants.CODE_MASTER_STATUS_VALUE_INPROCESS; } } criteria.Add(Expression.In("Status", request.requisitionOrderStatus)); } else { criteria.Add(Expression.Not(Expression.Eq("Status", BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE))); } } if (request.supplier != null && request.supplier != string.Empty) { criteria.Add(Expression.Like("PartyFrom.Name", request.supplier)); } if (request.supplierPartyCode != null && request.supplierPartyCode != string.Empty) { criteria.Add(Expression.Eq("PartyFrom.Code", request.supplierPartyCode)); } if (request.customer != null && request.customer != string.Empty) { criteria.Add(Expression.Like("PartyTo.Name", request.supplierPartyCode)); } if (request.customerPartyCode != null && request.customerPartyCode != string.Empty) { criteria.Add(Expression.Eq("PartyTo.Code", request.customerPartyCode)); } if (request.effectiveDateFromSpecified) { criteria.Add(Expression.Ge("ReleaseDate", request.effectiveDateFrom)); } if (request.effectiveDateToSpecified) { criteria.Add(Expression.Le("ReleaseDate", request.effectiveDateTo)); } IList<OrderHead> orderHeadList = TheCriteriaMgr.FindAll<OrderHead>(criteria, request.beginRowIndex, request.beginRowIndex + request.rowSize); List<RequisitionOrder> orderList = new List<RequisitionOrder>(); foreach (OrderHead orderHead in orderHeadList) { RequisitionOrder requisitionOrder = fillOrderHead(orderHead); foreach(OrderDetail orderDetail in orderHead.OrderDetails) { RequisitionOrderItem requisitionOrderItem = fillOrderDetail(orderDetail); requisitionOrder.addRequisitionOrderItem(requisitionOrderItem); } orderList.Add(requisitionOrder); } return orderList.ToArray(); }
public int getRequisitionOrderCount(GetRequisitionOrderRequest request) { DetachedCriteria criteria = DetachedCriteria.For<OrderHead>().SetProjection(Projections.ProjectionList() .Add(Projections.Count("OrderNo"))); if (request.requisitionOrderNo != null && request.requisitionOrderNo != string.Empty) { criteria.Add(Expression.Eq("OrderNo", request.requisitionOrderNo)); } if (request.supplier != null && request.supplier != string.Empty) { criteria.Add(Expression.Like("PartyFrom.Name", request.supplier)); } if (request.supplierPartyCode != null && request.supplierPartyCode != string.Empty) { criteria.Add(Expression.Eq("PartyFrom.Code", request.supplierPartyCode)); } if (request.customer != null && request.customer != string.Empty) { criteria.Add(Expression.Like("PartyTo.Name", request.supplierPartyCode)); } if (request.customerPartyCode != null && request.customerPartyCode != string.Empty) { criteria.Add(Expression.Eq("PartyTo.Code", request.customerPartyCode)); } if (request.effectiveDateFromSpecified) { criteria.Add(Expression.Ge("StartTime", request.effectiveDateFrom)); } if (request.effectiveDateToSpecified) { criteria.Add(Expression.Le("StartTime", request.effectiveDateTo)); } if (request.requisitionOrderStatus != null && request.requisitionOrderStatus.Length > 0) { criteria.Add(Expression.In("Status", request.requisitionOrderStatus)); } else { criteria.Add(Expression.Not(Expression.Eq("Status", BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE))); } IList list = TheCriteriaMgr.FindAll(criteria); int count = 0; if (list != null && list.Count > 0) { if (list[0] is int) { count = int.Parse(list[0].ToString()); } } return count; }