protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SASQL_1340 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var newQuantityLevel = false; Guid shelfID = Guid.Empty; ORM_LOG_WRH_QuantityLevel quantityLevel = new ORM_LOG_WRH_QuantityLevel(); if (Parameter.QuantityLevelID != Guid.Empty) { var fetched = quantityLevel.Load(Connection, Transaction, Parameter.QuantityLevelID); if (fetched.Status != FR_Status.Success || quantityLevel.LOG_WRH_QuantityLevelID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } } else { // new Quantity Level quantityLevel.LOG_WRH_QuantityLevelID = Guid.NewGuid(); quantityLevel.Tenant_RefID = securityTicket.TenantID; quantityLevel.Creation_Timestamp = DateTime.Now; quantityLevel.Product_RefID = Parameter.ArticleID; newQuantityLevel = true; shelfID = Parameter.ShelfID; } // Delete assignments for Warehouse quantity levels if Quantity Level is deleted if (Parameter.IsDeleted) { #region Delete assignments var query1 = new ORM_LOG_WRH_Warehouse_2_QuantityLevel.Query() { LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }; ORM_LOG_WRH_Warehouse_2_QuantityLevel.Query.SoftDelete(Connection, Transaction, query1); var query2 = new ORM_LOG_WRH_Area_2_QuantityLevel.Query() { LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }; ORM_LOG_WRH_Area_2_QuantityLevel.Query.SoftDelete(Connection, Transaction, query2); var query3 = new ORM_LOG_WRH_Warehouse_Group_2_QuantityLevel.Query() { LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }; ORM_LOG_WRH_Warehouse_Group_2_QuantityLevel.Query.SoftDelete(Connection, Transaction, query3); var query4 = new ORM_LOG_WRH_Rack_2_QuantityLevel.Query() { LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }; ORM_LOG_WRH_Rack_2_QuantityLevel.Query.SoftDelete(Connection, Transaction, query4); var query5 = new ORM_LOG_WRH_Shelf_2_QuantityLevel.Query() { LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }; ORM_LOG_WRH_Shelf_2_QuantityLevel.Query.SoftDelete(Connection, Transaction, query5); if (Parameter.PredefinedLocationID != Guid.Empty) { var query6 = new ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query() { LOG_WRH_Shelf_PredefinedProductLocationID = Parameter.PredefinedLocationID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }; ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query.SoftDelete(Connection, Transaction, query6); var tempShelf = ORM_LOG_WRH_Shelf.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Shelf.Query { LOG_WRH_ShelfID = Parameter.ShelfID }).SingleOrDefault(); var tempArea = ORM_LOG_WRH_Area.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Area.Query { LOG_WRH_AreaID = tempShelf.R_Area_RefID }).SingleOrDefault(); var allArticleStorages = cls_Get_ArticleStorages_for_ArticleID.Invoke(Connection, Transaction, new P_L5AR_GASfA_1520 { ArticleID = Parameter.ArticleID }, securityTicket).Result; List <L5AR_GASfA_1520> articleStoragesByOffice = new List <L5AR_GASfA_1520>(); if (tempArea.IsPointOfSalesArea) { articleStoragesByOffice = allArticleStorages.Where(x => x.IsPointOfSalesArea).OrderBy(x => x.LocationPriority).ToList(); } if (tempArea.IsLongTermStorageArea) { articleStoragesByOffice = allArticleStorages.Where(x => x.IsLongTermStorageArea).OrderBy(x => x.LocationPriority).ToList(); } if (articleStoragesByOffice.Count > 1) { int counter = 1; foreach (var item in articleStoragesByOffice) { if (counter != item.LocationPriority) { var ArticleLocationPosition = ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query { IsDeleted = false, LOG_WRH_Shelf_PredefinedProductLocationID = item.PredefinedProductLocationID, Tenant_RefID = securityTicket.TenantID }).Single(); ArticleLocationPosition.LocationPriority = counter; ArticleLocationPosition.Save(Connection, Transaction); } counter++; } } } #endregion } else { quantityLevel.Quantity_Maximum = Parameter.MaximumQuantity; quantityLevel.Quantity_Minimum = Parameter.MinimumQuantity; quantityLevel.Quantity_RecommendedMinimumCalculation = Parameter.RecommendedMinimumQuantity; quantityLevel.Save(Connection, Transaction); returnValue.Result = quantityLevel.LOG_WRH_QuantityLevelID; #region Write priority to the LOG_WRH_Shelf_PredefinedProductLocations var tempShelf = ORM_LOG_WRH_Shelf.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Shelf.Query { LOG_WRH_ShelfID = Parameter.ShelfID }).SingleOrDefault(); var tempArea = ORM_LOG_WRH_Area.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Area.Query { LOG_WRH_AreaID = tempShelf.R_Area_RefID }).SingleOrDefault(); int priorityNumber = 1; var allArticleStorages = cls_Get_ArticleStorages_for_ArticleID.Invoke(Connection, Transaction, new P_L5AR_GASfA_1520 { ArticleID = Parameter.ArticleID }, securityTicket).Result; List <L5AR_GASfA_1520> articleStoragesByOffice = new List <L5AR_GASfA_1520>(); if (tempArea.IsPointOfSalesArea) { articleStoragesByOffice = allArticleStorages.Where(x => x.IsPointOfSalesArea).ToList(); } if (tempArea.IsLongTermStorageArea) { articleStoragesByOffice = allArticleStorages.Where(x => x.IsLongTermStorageArea).ToList(); } if (articleStoragesByOffice.Any()) { priorityNumber = articleStoragesByOffice.Max(x => x.LocationPriority) + 1; } if (newQuantityLevel && Parameter.ShelfID != Guid.Empty) { var predefinedProductLocation = ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Shelf_PredefinedProductLocation.Query { Tenant_RefID = securityTicket.TenantID, Product_RefID = Parameter.ArticleID, Shelf_RefID = Parameter.ShelfID, IsDeleted = false }).SingleOrDefault(); if (predefinedProductLocation == null) { predefinedProductLocation = new ORM_LOG_WRH_Shelf_PredefinedProductLocation(); predefinedProductLocation.LOG_WRH_Shelf_PredefinedProductLocationID = Guid.NewGuid(); } predefinedProductLocation.LocationPriority = priorityNumber; predefinedProductLocation.Product_RefID = Parameter.ArticleID; predefinedProductLocation.Shelf_RefID = Parameter.ShelfID; predefinedProductLocation.Tenant_RefID = securityTicket.TenantID; predefinedProductLocation.Save(Connection, Transaction); } #endregion bool makeNewAssignment = (newQuantityLevel) || Parameter.WarehouseLevelIsChanged; #region Make assignment if (makeNewAssignment) { if (Parameter.WarehouseID != Guid.Empty) { ORM_LOG_WRH_Warehouse_2_QuantityLevel quantityLevelAssignment = new ORM_LOG_WRH_Warehouse_2_QuantityLevel(); quantityLevelAssignment.AssignmentID = Guid.NewGuid(); quantityLevelAssignment.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; quantityLevelAssignment.LOG_WRH_Warehouse_RefID = Parameter.WarehouseID; quantityLevelAssignment.Tenant_RefID = securityTicket.TenantID; quantityLevelAssignment.Creation_Timestamp = DateTime.Now; quantityLevelAssignment.Save(Connection, Transaction); return(returnValue); } if (Parameter.AreaID != Guid.Empty) { ORM_LOG_WRH_Area_2_QuantityLevel quantityLevelAssignment = new ORM_LOG_WRH_Area_2_QuantityLevel(); quantityLevelAssignment.AssignmentID = Guid.NewGuid(); quantityLevelAssignment.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; quantityLevelAssignment.LOG_WRH_Area_RefID = Parameter.AreaID; quantityLevelAssignment.Tenant_RefID = securityTicket.TenantID; quantityLevelAssignment.Creation_Timestamp = DateTime.Now; quantityLevelAssignment.Save(Connection, Transaction); return(returnValue); } if (Parameter.GroupID != Guid.Empty) { ORM_LOG_WRH_Warehouse_Group_2_QuantityLevel quantityLevelAssignment = new ORM_LOG_WRH_Warehouse_Group_2_QuantityLevel(); quantityLevelAssignment.AssignmentID = Guid.NewGuid(); quantityLevelAssignment.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; quantityLevelAssignment.LOG_WRH_Warehouse_Group_RefID = Parameter.GroupID; quantityLevelAssignment.Tenant_RefID = securityTicket.TenantID; quantityLevelAssignment.Creation_Timestamp = DateTime.Now; quantityLevelAssignment.Save(Connection, Transaction); return(returnValue); } if (Parameter.RackID != Guid.Empty) { ORM_LOG_WRH_Rack_2_QuantityLevel quantityLevelAssignment = new ORM_LOG_WRH_Rack_2_QuantityLevel(); quantityLevelAssignment.AssignmentID = Guid.NewGuid(); quantityLevelAssignment.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; quantityLevelAssignment.LOG_WRH_Rack_RefID = Parameter.RackID; quantityLevelAssignment.Tenant_RefID = securityTicket.TenantID; quantityLevelAssignment.Creation_Timestamp = DateTime.Now; quantityLevelAssignment.Save(Connection, Transaction); return(returnValue); } if (Parameter.ShelfID != Guid.Empty) { ORM_LOG_WRH_Shelf_2_QuantityLevel quantityLevelAssignment = new ORM_LOG_WRH_Shelf_2_QuantityLevel(); quantityLevelAssignment.AssignmentID = Guid.NewGuid(); quantityLevelAssignment.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; quantityLevelAssignment.LOG_WRH_Shelf_RefID = Parameter.ShelfID; quantityLevelAssignment.Tenant_RefID = securityTicket.TenantID; quantityLevelAssignment.Creation_Timestamp = DateTime.Now; quantityLevelAssignment.Save(Connection, Transaction); return(returnValue); } } } #endregion Make assignment return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5WH_SGQL_1335 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); //Put your code here returnValue.Result = false; ORM_LOG_WRH_QuantityLevel quantityLevel = null; if (Parameter.LOG_WRH_QuantityLevelID != Guid.Empty) { quantityLevel = ORM_LOG_WRH_QuantityLevel.Query.Search(Connection, Transaction, new ORM_LOG_WRH_QuantityLevel.Query { IsDeleted = false, LOG_WRH_QuantityLevelID = Parameter.LOG_WRH_QuantityLevelID, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); } if (quantityLevel != null) { quantityLevel.Quantity_Minimum = Parameter.Quantity_Minimum; quantityLevel.Save(Connection, Transaction); } else { quantityLevel = new ORM_LOG_WRH_QuantityLevel(); quantityLevel.LOG_WRH_QuantityLevelID = Guid.NewGuid(); quantityLevel.Tenant_RefID = securityTicket.TenantID; quantityLevel.Quantity_Minimum = Parameter.Quantity_Minimum; quantityLevel.Save(Connection, Transaction); } var currentWareHouse = ORM_LOG_WRH_Warehouse.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Warehouse.Query { IsDeleted = false, LOG_WRH_WarehouseID = Parameter.LOG_WRH_WarehouseID, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); ORM_LOG_WRH_Warehouse_2_QuantityLevel WareHouseToQuantityLevels = null; if (Parameter.AssignmentID != Guid.Empty) { WareHouseToQuantityLevels = ORM_LOG_WRH_Warehouse_2_QuantityLevel.Query.Search(Connection, Transaction, new ORM_LOG_WRH_Warehouse_2_QuantityLevel.Query { AssignmentID = Parameter.AssignmentID }).Single(); } if (WareHouseToQuantityLevels == null || Parameter.AssignmentID == Guid.Empty) { WareHouseToQuantityLevels = new ORM_LOG_WRH_Warehouse_2_QuantityLevel(); WareHouseToQuantityLevels.AssignmentID = Guid.NewGuid(); WareHouseToQuantityLevels.LOG_WRH_QuantityLevel_RefID = quantityLevel.LOG_WRH_QuantityLevelID; WareHouseToQuantityLevels.LOG_WRH_Warehouse_RefID = currentWareHouse.LOG_WRH_WarehouseID; WareHouseToQuantityLevels.Tenant_RefID = securityTicket.TenantID; WareHouseToQuantityLevels.Save(Connection, Transaction); } returnValue.Result = true; return(returnValue); #endregion UserCode }