public int getNotificationCount() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(NotificationManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria mainCriteria = DetachedCriteria.For <Entity_Notification>("notification"); mainCriteria.Add(Restrictions.Eq("notification.myConfigObj.currentBatch", Common.loggedUser.myConfigObj.currentBatch)); mainCriteria.Add(Restrictions.Eq("notification.myConfigObj.currentDegree", Common.loggedUser.myConfigObj.currentDegree)); mainCriteria.SetProjection(Projections.Count("notification.notificationId")); DetachedCriteria subCriteria = DetachedCriteria.For <Entity_UserNotification>("userNotification"); subCriteria.Add(Restrictions.EqProperty("userNotification.notificationId", "notification.notificationId")); subCriteria.Add(Restrictions.Eq("userNotification.staffId", Common.loggedUser.staffId)); subCriteria.SetProjection(Projections.Distinct(Projections.Property("userNotification.notificationId"))); mainCriteria.Add(Subqueries.NotExists(subCriteria)); IList list = persistence.findByCriteria(mainCriteria); if (list != null && list.Count > 0) { return(Convert.ToInt32(list[0])); } else { return(0); } }
private void SetCriteria() { DetachedCriteria criteria = DetachedCriteria.For(typeof(InProcessLocationDetail)); criteria.CreateAlias("OrderLocationTransaction", "olt"); criteria.CreateAlias("InProcessLocation", "ip"); criteria.Add(Expression.Eq("ip.Status", BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)); criteria.Add(Expression.Eq("ip.Type", BusinessConstants.CODE_MASTER_INPROCESS_LOCATION_TYPE_VALUE_NORMAL)); if (this.IOType == BusinessConstants.IO_TYPE_IN) { DetachedCriteria subCriteria = DetachedCriteria.For(typeof(OrderLocationTransaction)); subCriteria.CreateAlias("OrderDetail", "od"); subCriteria.CreateAlias("od.OrderHead", "oh"); OrderHelper.SetOpenOrderStatusCriteria(subCriteria, "oh.Status"); subCriteria.Add(Expression.Eq("IOType", BusinessConstants.IO_TYPE_IN)); subCriteria.Add(Expression.Eq("Item.Code", this.Item)); subCriteria.Add(Expression.Eq("Location.Code", this.Location)); subCriteria.SetProjection(Projections.ProjectionList().Add(Projections.GroupProperty("OrderDetail.Id"))); criteria.Add(Subqueries.PropertyIn("olt.OrderDetail.Id", subCriteria)); } else { criteria.Add(Expression.Eq("olt.Item.Code", this.Item)); criteria.Add(Expression.Eq("olt.Location.Code", this.Location)); } DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(criteria); selectCountCriteria.SetProjection(Projections.Count("Id")); this.SetSearchCriteria(criteria, selectCountCriteria); }
/// <summary> /// Versuch über ein Detached Criteria die Where-Klauseln zu verarbeiten, damit es mit dem Order nicht zu /// komplikationen kommt. /// </summary> protected virtual IPage <T> Find(IPageable pageable, Action <DetachedCriteria> criteriaBuilder, Action <ICriteria> ordersBuilder = null) { Require.NotNull(pageable, "pageable"); Require.NotNull(criteriaBuilder, "criteriaBuilder"); HibernateDelegate <IPage <T> > finder = delegate(ISession session) { DetachedCriteria whereCriteria = DetachedCriteria.For(typeof(T)); criteriaBuilder(whereCriteria); whereCriteria.SetProjection(Projections.Property("Id")); ICriteria elementsCriteria = session.CreateCriteria(typeof(T)); elementsCriteria.Add(Subqueries.PropertyIn("Id", whereCriteria)); if (ordersBuilder != null) { ordersBuilder(elementsCriteria); } ApplyPaging(pageable, elementsCriteria); ICriteria countCriteria = session.CreateCriteria(typeof(T)); countCriteria.Add(Subqueries.PropertyIn("Id", whereCriteria)); countCriteria.SetProjection(Projections.RowCountInt64()); IFutureValue <long> futureTotalCount = countCriteria.FutureValue <long>(); IEnumerable <T> futureElements = elementsCriteria.Future <T>(); Page <T> page = new Page <T>(futureElements.ToList(), pageable, futureTotalCount.Value); return(page); }; return(HibernateTemplate.Execute(finder)); }
public static DetachedCriteria[] GetPermissionCriteriaByCategory(User user, string category) { DetachedCriteria[] criteria = new DetachedCriteria[2]; DetachedCriteria upSubCriteria = DetachedCriteria.For <UserPermission>(); upSubCriteria.CreateAlias("User", "u"); upSubCriteria.CreateAlias("Permission", "pm"); upSubCriteria.CreateAlias("pm.Category", "pmc"); upSubCriteria.Add(Expression.Eq("pmc.Type", category)); upSubCriteria.Add(Expression.Eq("u.Code", user.Code)); upSubCriteria.SetProjection(Projections.ProjectionList().Add(Projections.GroupProperty("pm.Code"))); DetachedCriteria rpSubCriteria = DetachedCriteria.For <RolePermission>(); rpSubCriteria.CreateAlias("Role", "r"); rpSubCriteria.CreateAlias("Permission", "pm"); rpSubCriteria.CreateAlias("pm.Category", "pmc"); rpSubCriteria.Add(Expression.Eq("pmc.Type", category)); rpSubCriteria.SetProjection(Projections.ProjectionList().Add(Projections.GroupProperty("pm.Code"))); DetachedCriteria urSubCriteria = DetachedCriteria.For <UserRole>(); urSubCriteria.CreateAlias("User", "u"); urSubCriteria.CreateAlias("Role", "r"); urSubCriteria.Add(Expression.Eq("u.Code", user.Code)); urSubCriteria.SetProjection(Projections.ProjectionList().Add(Projections.GroupProperty("r.Code"))); rpSubCriteria.Add(Subqueries.PropertyIn("r.Code", urSubCriteria)); criteria[0] = upSubCriteria; criteria[1] = rpSubCriteria; return(criteria); }
public IList <InProcessLocationDetail> GetInProcessLocationDetailOut(IList <string> itemList, IList <string> locList) { DetachedCriteria criteria = DetachedCriteria.For(typeof(InProcessLocationDetail)); criteria.CreateAlias("InProcessLocation", "ip"); criteria.Add(Expression.Eq("ip.Status", BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)); criteria.Add(Expression.Eq("ip.Type", BusinessConstants.CODE_MASTER_INPROCESS_LOCATION_TYPE_VALUE_NORMAL)); criteria.CreateAlias("OrderLocationTransaction", "olt"); if (itemList.Count == 1) { criteria.Add(Expression.Eq("olt.Item.Code", itemList[0])); } else { criteria.Add(Expression.InG <string>("olt.Item.Code", itemList)); } if (locList.Count == 1) { criteria.Add(Expression.Eq("olt.Location.Code", locList[0])); } else { criteria.Add(Expression.InG <string>("olt.Location.Code", locList)); } criteria.SetProjection(Projections.ProjectionList() .Add(Projections.GroupProperty("olt.Location.Code").As("LocationCode")) .Add(Projections.GroupProperty("olt.Item.Code").As("ItemCode")) .Add(Projections.Sum("Qty").As("Qty"))); criteria.SetResultTransformer(Transformers.AliasToBean(typeof(InProcessLocationDetail))); return(this.criteriaMgr.FindAll <InProcessLocationDetail>(criteria)); }
public void ProdsWDate() { ISession session = GetConfiguration().BuildSessionFactory().OpenSession(); Category category = new Category() { Id = 1 }; DetachedCriteria criteria = DetachedCriteria.For <Income>(); criteria.CreateAlias("Product", "p"); criteria.CreateAlias("p.Category", "c"); criteria.SetProjection( Projections.ProjectionList() .Add(Projections.GroupProperty("Product")) .Add(Projections.GroupProperty("c.Name")) .Add(Projections.Max("Date"))); //criteria.Add(Restrictions.Eq("p.Category", category)); criteria.AddOrder(NHibernate.Criterion.Order.Asc("c.Name")); var list = criteria.GetExecutableCriteria(session).List(); foreach (var VARIABLE in list) { } }
private decimal GetTotalOutQty(LocationDetail locationDetail) { DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationTransactionView)); //criteria.CreateAlias("Location", "l"); #region Customize //SecurityHelper.SetRegionSearchCriteria(criteria, "l.Region.Code", this.CurrentUser.Code); //区域权限 CriteriaHelper.SetStartDateCriteria(criteria, "EffDate", _criteriaParam); CriteriaHelper.SetEndDateCriteria(criteria, "EffDate", _criteriaParam); #endregion #region Select Parameters string[] regionCode = locationDetail.Region != null ? new string[] { locationDetail.Region.Code } : null; string[] locationCode = locationDetail.Location != null ? new string[] { locationDetail.Location.Code } : null; string itemCode = locationDetail.Item != null ? locationDetail.Item.Code : null; //CriteriaHelper.SetPartyCriteria(criteria, "l.Region.Code", regionCode); CriteriaHelper.SetLocationCriteria(criteria, "Loc", locationCode); CriteriaHelper.SetItemCriteria(criteria, "Item", itemCode, MatchMode.Exact); criteria.Add(Expression.In("TransType", GetTransType())); #endregion criteria.SetProjection(Projections.Sum("Qty")); IList result = CriteriaMgr.FindAll(criteria); if (result[0] != null) { return((decimal)result[0]); } else { return(0); } }
public bool CheckGoodsIssueFIFO(string locationCode, string itemCode, DateTime baseManufatureDate, IList <string> huIdList) { DetachedCriteria criteria = DetachedCriteria.For <LocationLotDetail>(); criteria.SetProjection(Projections.Count("Id")); criteria.CreateAlias("Hu", "hu"); criteria.CreateAlias("Location", "loc"); criteria.CreateAlias("Item", "item"); criteria.Add(Expression.IsNotNull("Hu")); criteria.Add(Expression.Gt("Qty", new Decimal(0))); criteria.Add(Expression.Eq("item.Code", itemCode)); criteria.Add(Expression.Eq("loc.Code", locationCode)); criteria.Add(Expression.Lt("hu.ManufactureDate", baseManufatureDate)); criteria.Add(Expression.Not(Expression.In("hu.HuId", huIdList.ToArray <string>()))); IList <int> list = this.criteriaMgr.FindAll <int>(criteria); if (list[0] > 0) { return(false); } else { return(true); } }
public ActionResult List() { DetachedCriteria criteria = DetachedCriteria.For(typeof(User)); criteria.CreateAlias("Orders", "o"); criteria.SetProjection( Projections.ProjectionList() .Add(Projections.Count("Orders").As("Quantity")) .Add(Projections.GroupProperty("Id").As("UserId"))); criteria.SetResultTransformer(Transformers.AliasToBean(typeof(UserOrdersReportRow))); IList <UserOrdersReportRow> userOrders = daoTemplate.FindByCriteria <UserOrdersReportRow>(criteria); DetachedCriteria usersCriteria = DetachedCriteria.For(typeof(User)).SetFetchMode("Orders", FetchMode.Select); IList <User> users = daoTemplate.FindByCriteria <User>(usersCriteria); IList <UserListItemViewModel> viewModels = new List <UserListItemViewModel>(users.Count); foreach (User user in users) { UserOrdersReportRow row = userOrders.SingleOrDefault(x => x.UserId == user.Id); int quantity = row == null ? 0 : row.Quantity; viewModels.Add(new UserListItemViewModel() { Quantity = quantity, User = user, Profit = user.Profit(), Summ = user.Orders.Sum(x => x.SummWithDiscount) }); } return(View(viewModels)); }
protected override void SetCriteria() { DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationDetail)); criteria.CreateAlias("Location", "l"); #region Customize SecurityHelper.SetRegionSearchCriteria(criteria, "l.Region.Code", this.CurrentUser.Code); //区域权限 #endregion #region Select Parameters CriteriaHelper.SetLocationCriteria(criteria, "l.Code", this._criteriaParam); if (this._criteriaParam.Item != null) { criteria.Add(Expression.Eq("Item.Code", this._criteriaParam.Item)); } #endregion if (this._criteriaParam.LocationType != null) { criteria.Add(Expression.Eq("l.Type", this._criteriaParam.LocationType)); } DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(criteria); selectCountCriteria.SetProjection(Projections.Count("Id")); SetSearchCriteria(criteria, selectCountCriteria); }
protected override void SetCriteria() { DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationLotDetail)); criteria.CreateAlias("Location", "l"); #region Customize SecurityHelper.SetRegionSearchCriteria(criteria, "l.Region.Code", this.CurrentUser.Code); //区域权限 #endregion #region Select Parameters if (this._criteriaParam.Location == null) { criteria.Add(Expression.Eq("l.Type", BusinessConstants.LOCATION_TYPE_WORKSHOP)); } else { CriteriaHelper.SetLocationCriteria(criteria, "Location.Code", this._criteriaParam); } CriteriaHelper.SetItemCriteria(criteria, "Item.Code", this._criteriaParam); criteria.Add(Expression.IsNotNull("Hu.HuId")); criteria.Add(Expression.Not(Expression.Eq("Qty", decimal.Zero))); #endregion DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(criteria); selectCountCriteria.SetProjection(Projections.Count("Id")); SetSearchCriteria(criteria, selectCountCriteria); }
public List <Entity_Staff> getUnusedUsersList() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(StaffManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria mainCriteria = DetachedCriteria.For <Entity_Staff>("staff"); DetachedCriteria subCriteria1 = DetachedCriteria.For <Entity_Notification>("notificationObj"); subCriteria1.Add(Restrictions.EqProperty("notificationObj.staffId", "staff.staffId")); subCriteria1.SetProjection(Projections.Distinct(Projections.Property("notificationObj.staffId"))); DetachedCriteria subCriteria2 = DetachedCriteria.For <Entity_UserNotification>("userNotificationObj"); subCriteria2.Add(Restrictions.EqProperty("userNotificationObj.staffId", "staff.staffId")); subCriteria2.SetProjection(Projections.Distinct(Projections.Property("userNotificationObj.staffId"))); mainCriteria.Add(Subqueries.NotExists(subCriteria1)); mainCriteria.Add(Subqueries.NotExists(subCriteria2)); mainCriteria.Add(Restrictions.Gt("staffId", Convert.ToInt64(Common.adminId))); IList list = persistence.findByCriteria(mainCriteria); if (list != null && list.Count > 0) { return(list.Cast <Entity_Staff>().ToList()); } else { return(null); } }
private void SetCriteria() { DetachedCriteria criteria = DetachedCriteria.For(typeof(OrderLocationTransaction)); criteria.CreateAlias("OrderDetail", "od"); criteria.CreateAlias("od.OrderHead", "oh"); OrderHelper.SetOpenOrderStatusCriteria(criteria, "oh.Status");//订单状态 if (this.EndDate.HasValue) { if (IOType == BusinessConstants.IO_TYPE_IN) { criteria.Add(Expression.Le("oh.WindowTime", this.EndDate.Value)); } else { criteria.Add(Expression.Lt("oh.StartTime", this.EndDate.Value)); } } criteria.Add(Expression.Eq("Item.Code", this.Item)); criteria.Add(Expression.Eq("Location.Code", this.Location)); criteria.Add(Expression.Eq("IOType", this.IOType)); DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(criteria); selectCountCriteria.SetProjection(Projections.Count("Id")); SetSearchCriteria(criteria, selectCountCriteria); }
protected void Page_Load(object sender, EventArgs e) { this.tbFlowOrLoc.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:true,bool:true,bool:true,bool:true,bool:true,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_TO; this.tbFlowOrLoc.DataBind(); this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:true,bool:true,bool:true,bool:true,bool:true,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_TO; this.tbWinTime.Attributes.Add("onclick", "WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',lang:'" + this.CurrentUser.UserLanguage + "'})"); this.tbWinTime.Attributes["onchange"] += "setStartTime();"; this.cbIsUrgent.Attributes["onchange"] += "setStartTime();"; if (!IsPostBack) { this.ucShift.Date = DateTime.Today; DetachedCriteria criteria = DetachedCriteria.For <MrpRunLog>(); criteria.SetProjection(Projections.ProjectionList().Add(Projections.GroupProperty("RunDate"))); criteria.AddOrder(Order.Desc("RunDate")); IList <DateTime> list = TheCriteriaMgr.FindAll <DateTime>(criteria, 0, 30); List <string> effDate = list.Select(l => l.ToString("yyyy-MM-dd")).ToList(); this.ddlDate.DataSource = effDate; this.ddlDate.DataBind(); } }
private List <LeanEngine.Entity.InvBalance> GetInspectInvBalance() { //报验库存 DetachedCriteria criteria = DetachedCriteria.For(typeof(InspectOrderDetail)); criteria.CreateAlias("InspectOrder", "io"); criteria.CreateAlias("LocationLotDetail", "lld"); criteria.Add(Expression.Eq("io.Status", BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE)); criteria.Add(Expression.Eq("io.IsSeperated", false)); criteria.SetProjection(Projections.ProjectionList() .Add(Projections.Sum("InspectQty").As("InspectQty")) .Add(Projections.Sum("QualifiedQty").As("QualifiedQty")) .Add(Projections.Sum("RejectedQty").As("RejectedQty")) .Add(Projections.GroupProperty("LocationFrom.Code").As("LocationFromCode")) .Add(Projections.GroupProperty("lld.Item.Code").As("ItemCode"))); criteria.SetResultTransformer(Transformers.AliasToBean(typeof(InspectOrderDetail))); IList <InspectOrderDetail> inspectOrderDetailList = CriteriaMgr.FindAll <InspectOrderDetail>(criteria); var query = from i in inspectOrderDetailList select new LeanEngine.Entity.InvBalance { Loc = i.LocationFromCode, Item = i.ItemCode, Qty = i.InspectedQty, InvType = Enumerators.InvType.Inspect }; return(query.Where(q => q.Qty != 0).ToList()); }
public IList getCompanyStatCount() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(StatisticsManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria criteria = DetachedCriteria.For <Entity_CompanyDetails>(); criteria.Add(Restrictions.Eq("myConfigObj.currentBatch", Common.loggedUser.myConfigObj.currentBatch)); criteria.Add(Restrictions.Eq("myConfigObj.currentDegree", Common.loggedUser.myConfigObj.currentDegree)); ProjectionList projectionList = Projections.ProjectionList(); projectionList.Add(Projections.Count((Projections.Property("status")))); projectionList.Add(Projections.GroupProperty(Projections.Property("status"))); criteria.SetProjection(projectionList); criteria.AddOrder(Order.Desc(Projections.Property("status"))); IList list = persistence.findByCriteria(criteria); if (list != null && list.Count > 0) { return(list); } else { return(null); } }
public int GetCount <T>() where T : DomainEntity { DetachedCriteria q = DetachedCriteria.For(typeof(T)); q.SetProjection(Projections.Count("Id")); return(q.GetExecutableCriteria(Session).UniqueResult <int>()); }
public IDictionary <string, int> getYearlyStudentMap() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(StatisticsManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria criteria = DetachedCriteria.For <Entity_PlacementDetails>(); criteria.CreateAlias("stuObj", "student"); ProjectionList projectionList = Projections.ProjectionList(); projectionList.Add(Projections.GroupProperty(Projections.Property("student.myConfigObj.currentBatch"))); projectionList.Add(Projections.Count(Projections.Property("detailsId"))); criteria.SetProjection(projectionList); criteria.Add(Restrictions.Eq("student.myConfigObj.currentDegree", Common.loggedUser.myConfigObj.currentDegree)); IList list = persistence.findByCriteria(criteria); if (list != null && list.Count > 0) { IDictionary <string, int> resultMap = new Dictionary <string, int>(); foreach (Object[] item in list) { resultMap.Add(item[0].ToString(), Convert.ToInt32(item[1])); } return(resultMap); } else { return(null); } }
public int getNonPlacedStudentCount() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(StatisticsManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria subCriteria = DetachedCriteria.For <Entity_PlacementDetails>("placedObj"); subCriteria.Add(Restrictions.EqProperty("placedObj.studentId", "student.studentId")); subCriteria.SetProjection(Projections.Distinct(Projections.Property("placedObj.studentId"))); DetachedCriteria mainCriteria = DetachedCriteria.For <Entity_Student>("student"); mainCriteria.SetProjection(Projections.Count(Projections.Distinct(Projections.Property("student.studentId")))); mainCriteria.Add(Subqueries.NotExists(subCriteria)); mainCriteria.Add(Restrictions.Eq("student.myConfigObj.currentBatch", Common.loggedUser.myConfigObj.currentBatch)); mainCriteria.Add(Restrictions.Eq("student.myConfigObj.currentDegree", Common.loggedUser.myConfigObj.currentDegree)); IList list = persistence.findByCriteria(mainCriteria); if (list != null && list.Count > 0) { return(Convert.ToInt32(list[0])); } else { return(0); } }
public decimal GetCurrentInv(string location, string item) { DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationDetail)); if (location != null && location.Trim() != string.Empty) { criteria.Add(Expression.Eq("Location.Code", location)); } if (item != null && item.Trim() != string.Empty) { criteria.Add(Expression.Eq("Item.Code", item)); } criteria.SetProjection(Projections.Sum("Qty")); IList result = CriteriaMgr.FindAll(criteria); if (result[0] != null) { return((decimal)result[0]); } else { return(0); } }
public IDictionary <string, int> getYearlyCompanyMap() { Utility.logFile(Constant.METHOD_ENTER + Utility.getCurrentMethodName(1) + "(StatisticsManagerImpl)", null, Constant.LOGTYPE_INFO); DetachedCriteria criteria = DetachedCriteria.For <Entity_CompanyDetails>(); criteria.Add(Restrictions.Eq("status", Utility.getEnumIndexByValue(Constant.ENUM_COMPANY_STATUS, EnumData.companyStatus.CONFIRMED.ToString()))); criteria.Add(Restrictions.Eq("myConfigObj.currentDegree", Common.loggedUser.myConfigObj.currentDegree)); ProjectionList projectionList = Projections.ProjectionList(); projectionList.Add(Projections.GroupProperty(Projections.Property("myConfigObj.currentBatch"))); projectionList.Add(Projections.Count(Projections.Property("compDetailsId"))); criteria.SetProjection(projectionList); IList list = persistence.findByCriteria(criteria); if (list != null && list.Count > 0) { IDictionary <string, int> resultMap = new Dictionary <string, int>(); foreach (Object[] item in list) { resultMap.Add(item[0].ToString(), Convert.ToInt32(item[1])); } return(resultMap); } else { return(null); } }
public decimal GetDateInventory(string item, string loc, DateTime date) { decimal currentInv = this.GetCurrentInv(loc, item); DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationTransaction)); #region Customize criteria.Add(Expression.Gt("EffectiveDate", date));//选定日期期末库存 #endregion #region Select Parameters if (loc != null && loc.Trim() != string.Empty) { criteria.Add(Expression.Eq("Location", loc)); } if (item != null && item.Trim() != string.Empty) { criteria.Add(Expression.Eq("Item", item)); } #endregion criteria.SetProjection(Projections.Sum("Qty")); IList result = CriteriaMgr.FindAll(criteria); decimal transQty = result[0] != null ? (decimal)result[0] : 0; return(currentInv - transQty); }
public bool CheckGoodsReceiveFIFO(string locationCode, string itemCode, DateTime manufactureDate, string manufactureParty, DateTime?baseManufatureDate) { DetachedCriteria criteria = DetachedCriteria.For <LocationLotDetail>(); criteria.SetProjection(Projections.Count("Id")); criteria.CreateAlias("Hu", "hu"); criteria.CreateAlias("Location", "loc"); criteria.CreateAlias("Item", "item"); criteria.CreateAlias("hu.ManufactureParty", "party"); criteria.Add(Expression.IsNotNull("Hu")); criteria.Add(Expression.Gt("Qty", new Decimal(0))); criteria.Add(Expression.Eq("item.Code", itemCode)); criteria.Add(Expression.Eq("loc.Code", locationCode)); criteria.Add(Expression.Gt("hu.ManufactureDate", manufactureDate)); criteria.Add(Expression.Eq("party.Code", manufactureParty)); if (baseManufatureDate.HasValue) { criteria.Add(Expression.Lt("hu.ManufactureDate", baseManufatureDate.Value)); } IList <int> list = this.criteriaMgr.FindAll <int>(criteria); if (list[0] > 0) { return(false); } else { return(true); } }
private IList <LocationTransaction> GetLocationTransaction(int mark) { DetachedCriteria criteria = DetachedCriteria.For(typeof(LocationTransaction)); criteria.Add(Expression.Eq("IsSubcontract", false)); criteria.Add(Expression.In("TransactionType", new string[] { BusinessConstants.CODE_MASTER_LOCATION_TRANSACTION_TYPE_VALUE_RCT_WO, BusinessConstants.CODE_MASTER_LOCATION_TRANSACTION_TYPE_VALUE_ISS_WO, BusinessConstants.CODE_MASTER_LOCATION_TRANSACTION_TYPE_VALUE_ISS_WO_BF })); criteria.Add(Expression.Gt("Id", mark)); criteria.SetProjection(Projections.ProjectionList() .Add(Projections.Max("Id").As("Id")) .Add(Projections.GroupProperty("OrderNo").As("OrderNo")) .Add(Projections.GroupProperty("OrderDetailId").As("OrderDetailId")) .Add(Projections.GroupProperty("OrderLocationTransactionId").As("OrderLocationTransactionId")) .Add(Projections.GroupProperty("TransactionType").As("TransactionType")) .Add(Projections.GroupProperty("Item").As("Item")) .Add(Projections.GroupProperty("Location").As("Location")) .Add(Projections.Sum("Qty").As("Qty")) .Add(Projections.GroupProperty("EffectiveDate").As("EffectiveDate")) .Add(Projections.GroupProperty("PartyFrom").As("PartyFrom")) .Add(Projections.GroupProperty("PartyTo").As("PartyTo")) .Add(Projections.GroupProperty("RefLocation").As("RefLocation"))); criteria.SetResultTransformer(Transformers.AliasToBean(typeof(LocationTransaction))); return(criteriaMgr.FindAll <LocationTransaction>(criteria)); }
protected override void DoSearch() { if (SearchEvent != null) { DateTime startDate = DateTime.Parse(this.tbStartDate.Text.Trim()); DetachedCriteria selectCriteria = DetachedCriteria.For(typeof(RollingForecast)); SecurityHelper.SetPartySearchCriteria(selectCriteria, "Supplier.Code", this.CurrentUser.Code); if (this.tbSupplier.Text.Trim() != string.Empty) { selectCriteria.Add(Expression.Eq("Supplier.Code", this.tbSupplier.Text.Trim())); } selectCriteria.Add(Expression.Ge("Date", startDate)); selectCriteria.Add(Expression.Lt("Date", startDate.AddDays(140))); selectCriteria.SetProjection(Projections.ProjectionList() .Add(Projections.GroupProperty("Supplier").As("Supplier")) .Add(Projections.GroupProperty("Item").As("Item")) .Add(Projections.Max("Id").As("Id"))); DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(selectCriteria); selectCountCriteria.SetProjection(Projections.Count("Id")); SearchEvent((new object[] { selectCriteria, selectCountCriteria, startDate, this.IsExport }), null); } }
protected override void SetCriteria() { DetachedCriteria criteria = DetachedCriteria.For(typeof(CycleCountResult)); criteria.CreateAlias("CycleCount", "cc"); criteria.CreateAlias("cc.Location", "l"); #region Customize SecurityHelper.SetRegionSearchCriteria(criteria, "l.Region.Code", this.CurrentUser.Code); //区域权限 OrderHelper.SetActiveOrderStatusCriteria(criteria, "cc.Status"); //状态 #endregion #region Select Parameters CriteriaHelper.SetPartyCriteria(criteria, "l.Region.Code", this._criteriaParam); CriteriaHelper.SetLocationCriteria(criteria, "cc.Location.Code", this._criteriaParam); CriteriaHelper.SetStartDateCriteria(criteria, "cc.EffectiveDate", this._criteriaParam); CriteriaHelper.SetEndDateCriteria(criteria, "cc.EffectiveDate", this._criteriaParam); CriteriaHelper.SetStorageBinCriteria(criteria, "StorageBin.Code", this._criteriaParam); CriteriaHelper.SetItemCriteria(criteria, "Item.Code", this._criteriaParam); CriteriaHelper.SetOrderNoCriteria(criteria, "CycleCount.Code", this._criteriaParam, MatchMode.Start); #endregion #region Projections ProjectionList projectionList = Projections.ProjectionList() .Add(Projections.Max("Id").As("Id")) .Add(Projections.Sum("Qty").As("Qty")) .Add(Projections.Sum("InvQty").As("InvQty")) .Add(Projections.Sum("DiffQty").As("DiffQty")) .Add(Projections.Count("HuId").As("Cartons")) .Add(Projections.GroupProperty("Item").As("Item")); if (!this._criteriaParam.ClassifiedOrderNo) { projectionList.Add(Projections.GroupProperty("CycleCount").As("CycleCount")); } if (!this._criteriaParam.ClassifiedLocation) { projectionList.Add(Projections.GroupProperty("cc.Location").As("Location")); } if (!this._criteriaParam.ClassifiedBin) { projectionList.Add(Projections.GroupProperty("StorageBin").As("StorageBin"));//库格 } if (!this._criteriaParam.ClassifiedHuId) { projectionList.Add(Projections.GroupProperty("HuId").As("HuId")); //条码 projectionList.Add(Projections.GroupProperty("LotNo").As("LotNo")); //批号 projectionList.Add(Projections.GroupProperty("ReferenceLocation").As("ReferenceLocation")); //参考库位 projectionList.Add(Projections.GroupProperty("DiffReason").As("DiffReason")); //差异原因 } criteria.SetProjection(projectionList); criteria.SetResultTransformer(Transformers.AliasToBean(typeof(CycleCountResult))); #endregion DetachedCriteria selectCountCriteria = CloneHelper.DeepClone <DetachedCriteria>(criteria); selectCountCriteria.SetProjection(Projections.Count("Id")); SetSearchCriteria(criteria, selectCountCriteria); }
public IPagedList <Album> GetAlbums(ILoadOptions options) { IPagedList <Album> result = new PagedList <Album>(); if (options == null) { return(result); } if (options.MaxResults <= 0) { return(result); } ISession session = SessionFactory.GetSession(); try { DetachedCriteria countCriteria = GetAlbumsImpl(options); DetachedCriteria listCriteria = GetAlbumsImpl(options); countCriteria.SetProjection(Projections.RowCount()); countCriteria.ClearOrders(); listCriteria. SetFirstResult(options.FirstResult). SetMaxResults(options.MaxResults); IMultiCriteria multiCriteria = session.CreateMultiCriteria(); multiCriteria.Add(countCriteria); multiCriteria.Add(listCriteria); IList queryResult = multiCriteria.List(); result.TotalItems = (int)((IList)queryResult[0])[0]; IList recordsList = (IList)queryResult[1]; EntityConverter entityConverter = new EntityConverter(); foreach (var e in recordsList) { AlbumEntity dataEntity = e as AlbumEntity; Album businessEntity = entityConverter.FromDataEntity(dataEntity, AlbumConvertOptions.Small); result.Add(businessEntity); } } catch (Exception ex) { Logger.Write(ex); } finally { session.Close(); } return(result); }
public override void CreateReceiptDetail(ReceiptDetail receiptDetail) { #region 记录发货明细上的收货数量 OrderLocationTransaction inOrderLocationTransaction = receiptDetail.OrderLocationTransaction; OrderDetail orderDetail = inOrderLocationTransaction.OrderDetail; OrderHead orderHead = orderDetail.OrderHead; if (receiptDetail.ReceivedInProcessLocationDetail != null) { //如果已经在收货时做过匹配,直接把收货数记录到匹配的InProcessLocationDetail记录上 InProcessLocationDetail inProcessLocationDetail = this.inProcessLocationDetailMgr.LoadInProcessLocationDetail(receiptDetail.ReceivedInProcessLocationDetail.Id); if (inProcessLocationDetail.ReceivedQty.HasValue) { inProcessLocationDetail.ReceivedQty += receiptDetail.ReceivedQty; } else { inProcessLocationDetail.ReceivedQty = receiptDetail.ReceivedQty; } this.inProcessLocationDetailMgr.UpdateInProcessLocationDetail(inProcessLocationDetail); } else if (orderHead.Type != BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION) //生产不需要记录收货数量 { #region 找到对应的发货单IpNo OrderLocationTransaction outOrderLocationTransaction = this.orderLocationTransactionMgr.GetOrderLocationTransaction(orderDetail.Id, BusinessConstants.IO_TYPE_OUT)[0]; DetachedCriteria criteria = DetachedCriteria.For <ReceiptInProcessLocation>(); criteria.SetProjection(Projections.Property("InProcessLocation.IpNo")); criteria.Add(Expression.Eq("Receipt.ReceiptNo", receiptDetail.Receipt.ReceiptNo)); IList list = this.criteriaMgr.FindAll(criteria); string ipNo = (string)list[0]; #endregion IList <InProcessLocationDetail> inProcessLocationDetailList = this.inProcessLocationDetailMgr.GetInProcessLocationDetail(ipNo, outOrderLocationTransaction.Id); if (inProcessLocationDetailList == null || inProcessLocationDetailList.Count == 0) { throw new TechnicalException("can't find InProcessLocationDetail by ipno and outOrderLocationTransactionId"); } else if (inProcessLocationDetailList.Count == 1) { if (inProcessLocationDetailList[0].ReceivedQty.HasValue) { inProcessLocationDetailList[0].ReceivedQty += receiptDetail.ReceivedQty; } else { inProcessLocationDetailList[0].ReceivedQty = receiptDetail.ReceivedQty; } this.inProcessLocationDetailMgr.UpdateInProcessLocationDetail(inProcessLocationDetailList[0]); } else { throw new NotImplementedException("Find serverl InProcessLocationDetails by ipno and outOrderLocationTransactionId, not impl yet."); } } #endregion this.entityDao.CreateReceiptDetail(receiptDetail); }
public int Count(string name, string excludeId) { if (name == null) { throw new ArgumentNullException("name"); } DetachedCriteria re = CreateDetachedCriteria() .Add(Restrictions.Eq(NameProperty, name)); if (string.IsNullOrEmpty(excludeId)) { return(re.SetProjection(Projections.RowCount()).GetExecutableCriteria(CurrentSession).UniqueResult <int>()); } re = re.Add(Restrictions.Not(Restrictions.Eq(Projections.Id(), excludeId))); return(re.SetProjection(Projections.RowCount()).GetExecutableCriteria(CurrentSession).UniqueResult <int>()); }
/// <summary> /// Gets All Ids of objects that met's the Detached Criteria /// </summary> /// <param name="criteria">Criteia to be Searched</param> /// <returns>Collection of Identifiers of object that met the criteia</returns> public ICollection <int> GetObjectIdArray(DetachedCriteria criteria) { ICriteria executableCriteria = GetExecutableCriteria(criteria, null); criteria.SetProjection(Projections.Id()); IList <int> result = executableCriteria.List <int>(); return(result); }
protected override Expression VisitMethodCall(MethodCallExpression expr) { Type = BinaryCriterionType.Criteria; //TODO: don't hardcode this alias 'sub' Criteria = DetachedCriteria.ForEntityName(rootCriteria.GetEntityOrClassName(), "sub"); EntityExpression rootEntity = EntityExpressionVisitor.RootEntity(expr); if (rootEntity != null) { string identifierName = rootEntity.MetaData.IdentifierPropertyName; Criteria.Add(Restrictions.EqProperty(rootCriteria.Alias + "." + identifierName, "sub." + identifierName)); } if (SelectArgumentsVisitor.SupportsMethod(expr.Method.Name)) { var projectionVisitor = new SelectArgumentsVisitor(Criteria.Adapt(session), session); projectionVisitor.Visit(expr); Criteria.SetProjection(projectionVisitor.Projection); } return expr; }