/// <summary> /// Getses the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>InventoryItemResponse.</returns> public InventoryItemResponse GetInventoryItems(InventoryItemRequest request) { var response = new InventoryItemResponse(); if (request.LoadOptions.Contains("InventoryItems")) { response.InventoryItems = InventoryItemDao.GetInventoryItemList(); } if (request.LoadOptions.Contains("InventoryItem")) { response.InventoryItem = InventoryItemDao.GetInventoryItem(request.InventoryItemId); } //dành cho phần vật tư if (request.LoadOptions.Contains("ItemStock")) { response.InventoryItems = InventoryItemDao.GetInventoryItemListByStock(request.ItemStockId, request.RefId, request.PostDate, request.CurrencyCode); } if (request.LoadOptions.Contains("ItemStockInput")) { response.InventoryItems = InventoryItemDao.GetInventoryItemListByStock(request.ItemStockId); } return(response); }
public async Task <ActionResult <InventoryItemDTO> > CreateInventoryItem([FromBody] InventoryItemRequest InventoryItemRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(await _inventoryService.CreateInventoryItem(InventoryItemRequest)); }
public async Task <IActionResult> UpdateInventoryItem([FromRoute] Guid id, [FromBody] InventoryItemRequest InventoryItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(await _inventoryService.UpdateInventoryItem(id, InventoryItem)); }
public static bool PushProduct(InventoryItemRequest prod) { var requestUrl = $"/SupplierInventoryService/rest/AddItem/{Key}"; var request = new RestRequest(requestUrl, Method.POST); request.AddJsonBody(prod); var response = Client.Execute(request); return(response.StatusCode == HttpStatusCode.OK); }
public static bool PushInventoryItem(InventoryItemRequest item) { var requestUrl = $"/SupplierInventoryService/rest/{(item.Id > 0 ? "Update" : "Add")}Item/{Key}"; var request = new RestRequest(requestUrl, Method.POST); request.AddJsonBody(item); var response = Client.Execute(request); return(response.StatusCode == HttpStatusCode.OK); }
public async Task <IActionResult> UpdateInventoryItem(Guid id, InventoryItemRequest InventoryItemRequest) { if (id == Guid.Empty || id == null) { _logger.LogError("InventoryService::UpdateInventoryItem. Error: id must be a valid Guid."); return(new BadRequestObjectResult(new { statuscode = 400, message = "id must be a valid Guid." })); } if (InventoryItemRequest == null) { _logger.LogError("InventoryService::UpdateInventoryItem. Error: Unable to update Inventory item. Inventory item must be provided.."); return(new BadRequestObjectResult(new { statuscode = 400, message = "Inventory item must be provided." })); } var InventoryItem = await _context.InventoryItem.FindAsync(id); if (InventoryItem == null) { _logger.LogError($"InventoryService::UpdateInventoryItem. Error. Unable to find Inventory item with id {id}."); return(new NotFoundObjectResult($"InventoryService::UpdateInventoryItem. Error. Unable to find Inventory item with id {id}.")); } InventoryItem.Name = InventoryItemRequest.Name; InventoryItem.Description = InventoryItemRequest.Description; InventoryItem.Price = InventoryItemRequest.Price; InventoryItem.DeliveryPrice = InventoryItemRequest.DeliveryPrice; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException ex) when(!InventoryItemExists(id)) { _logger.LogError($"InventoryService::UpdateInventoryItem. Error. Unable to find Inventory item with id {id}. Exception: {ex.Message}", ex); } catch (Exception ex) { _logger.LogError($"InventoryService::UpdateInventoryItem. Exception: {ex.Message}", ex); } return(new NoContentResult()); }
public async Task <ActionResult <InventoryItemDTO> > CreateInventoryItem(InventoryItemRequest InventoryItemRequest) { if (InventoryItemRequest == null) { _logger.LogError("InventoryService::CreateInventoryItem. Error: Unable to create Inventory item. A new Inventory item must be provided."); return(new BadRequestObjectResult(new { statuscode = 400, message = "A new Inventory item must be provided." })); } var InventoryItem = new InventoryItem() { Id = new Guid(), Name = InventoryItemRequest.Name, Description = InventoryItemRequest.Description, Price = InventoryItemRequest.Price, DeliveryPrice = InventoryItemRequest.DeliveryPrice }; try { _context.InventoryItem.Add(InventoryItem); await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError($"InventoryService::CreateInventoryItem. Exception: {ex.Message}", ex); } InventoryItem = await _context.InventoryItem.FindAsync(InventoryItem.Id); if (InventoryItem == null) { _logger.LogError("InventoryService::CreateInventoryItem. Error creating a new Inventory item."); return(new NotFoundResult()); } return(new OkObjectResult(InventoryItemToDTO(InventoryItem))); }
private static InventoryItemRequest AddOrUpdateSupplierItem(ProductInventory product, List <InventoryItemResponse> existingInventory, ref List <PrivateCategory> existingCategories) { Trace.TraceInformation(product.Description); var request = new InventoryItemRequest { Description = product.Description ?? "", PrivateSKU = product.Id, Inactive = product.Inactive, QuantityAvailable = product.QuantityAvailable >= 0 ? product.QuantityAvailable : 0, RetailSell = product.RetailSell }; bool updateCategories = Settings.GetUpdateCategories(); //lets check if this item already exists, if so just update qty, else var existing = existingInventory.FirstOrDefault(s => s.PrivateSKU == product.Id); var existingCategory = existingCategories.FirstOrDefault(s => s?.Name == product.Category); var updateExistingProducts = Settings.GetUpdateExistingProducts(); if (existing != null && !updateExistingProducts) { return(null); } // Add if (existing == null) { if (existingCategory == null) { try { existingCategory = WebServiceHelper.PushCategory(new PrivateCategory { Name = product.Category }); existingCategories.Add(existingCategory); } catch (Exception ex) { Logger.Instance.Error("Product push - adding category" + Environment.NewLine + JsonConvert.SerializeObject(product.Category) + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace); throw; } } } // Update else { if (existingCategory == null && updateCategories) { try { existingCategory = WebServiceHelper.PushCategory(new PrivateCategory { Name = product.Category }); existingCategories.Add(existingCategory); } catch (Exception ex) { Logger.Instance.Error("Product push - updating category" + Environment.NewLine + JsonConvert.SerializeObject(product.Category) + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace); throw; } } } if (existingCategory != null && (updateCategories || existing == null)) { request.CategoryId = existingCategory.Id; } else if (existing != null) { request.CategoryId = existing.CategoryId; } request.NetPrice = product.NetPrice; request.OpenSizeDescription = product.OpenSizeDescription ?? ""; request.MasterQuantityDescription = product.MasterQuantityDescription ?? ""; request.Comments = product.Comments ?? ""; request.DirectDeliveryCode = product.DirectDeliveryCode ?? ""; request.DirectDeliveryMinQuantity = product.DirectDeliveryMinQuantity; request.FreightFactor = product.FreightFactor; request.IsDirectDelivery = product.IsDirectDelivery; request.MasterQuantityDescription = product.MasterQuantityDescription ?? ""; request.MinOrderSpring = product.MinOrderSpring; request.MinOrderSummer = product.MinOrderSummer; request.SlaveQuantityDescription = product.SlaveQuantityDescription ?? ""; request.SlaveQuantityPerMaster = product.SlaveQuantityPerMaster; request.SuggestedRetailPrice = product.SuggestedRetailPrice; request.UPC = product.UPC; if (existing != null) { request.Id = existing.Id; } if (product.ProductFeatures != null && product.ProductFeatures.Any()) { request.ProductFeatures = product.ProductFeatures .Where(p => p.Key != null && p.Value != null) .Select(p => new ProductFeatureRequest { FeatureGroupName = p.Key, Value = p.Value == null ? "" : p.Value.ToString(), FeatureId = p.Key + "_" + product.Id }).ToList(); } return(request); }
/// <summary> /// Setses the specified request. /// </summary> /// <param name="request">The request.</param> /// <returns>InventoryItemResponse.</returns> public InventoryItemResponse SetInventoryItems(InventoryItemRequest request) { var response = new InventoryItemResponse(); var mapper = request.InventoryItem; if (request.Action != PersistType.Delete) { if (!mapper.Validate()) { foreach (string error in mapper.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } } try { if (request.Action == PersistType.Insert) { var lstInventoryItem = InventoryItemDao.GetInventoryItemByCode(mapper.InventoryItemCode); if (lstInventoryItem.Count > 0) { response.Message = "Bạn nhập mã đã tồn tại " + mapper.InventoryItemCode + "!"; } else { AutoNumberListDao.UpdateIncreateAutoNumberListByValue("InventoryItem"); mapper.InventoryItemId = InventoryItemDao.InsertInventoryItem(mapper); response.Message = null; } } else if (request.Action == PersistType.Update) { var objInventoryItem = InventoryItemDao.GetInventoryItemByCode(mapper.InventoryItemCode).FirstOrDefault(); if (objInventoryItem == null) { response.Message = InventoryItemDao.UpdateInventoryItem(mapper); } else { if (objInventoryItem.InventoryItemId == mapper.InventoryItemId) { response.Message = InventoryItemDao.UpdateInventoryItem(mapper); } else { response.Message = "Bạn nhập mã đã tồn tại " + mapper.InventoryItemCode + "!"; } } } else { response.Message = InventoryItemDao.DeleteInventoryItem(request.InventoryItemId); } } catch (Exception ex) { response.Acknowledge = AcknowledgeType.Failure; response.Message = ex.Message; return(response); } response.InventoryItemId = mapper != null ? mapper.InventoryItemId : 0; response.Acknowledge = response.Message != null ? AcknowledgeType.Failure : AcknowledgeType.Success; return(response); }
private static InventoryItemRequest AddOrUpdateSupplierItem(ProductInventory product, List <InventoryItemResponse> existingInventory, ref List <PrivateCategory> existingCategories) { Trace.TraceInformation(product.Description); var request = new InventoryItemRequest { Description = product.Description ?? "", PrivateSKU = product.Id, Inactive = product.Inactive, QuantityAvailable = product.QuantityAvailable >= 1 ? product.QuantityAvailable : 1 }; bool updateCategories = Settings.GetUpdateCategories(); //lets check if this item already exists, if so just update qty, else var existing = existingInventory.FirstOrDefault(s => s.PrivateSKU == product.Id); var existingCategory = existingCategories.FirstOrDefault(s => s?.Name == product.Category); var updateExistingProducts = Settings.GetUpdateExistingProducts(); if (existing != null && !updateExistingProducts) { return(null); } // Add if (existing == null) { if (existingCategory == null) { existingCategory = WebServiceHelper.PushCategory(new PrivateCategory { Name = product.Category }); existingCategories.Add(existingCategory); } } // Update else { if (existingCategory == null && updateCategories) { existingCategory = WebServiceHelper.PushCategory(new PrivateCategory { Name = product.Category }); existingCategories.Add(existingCategory); } } if (existingCategory != null && (updateCategories || existing == null)) { request.CategoryId = existingCategory.Id; } else if (existing != null) { request.CategoryId = existing.CategoryId; } request.NetPrice = product.NetPrice; request.OpenSizeDescription = product.OpenSizeDescription ?? ""; request.MasterQuantityDescription = product.MasterQuantityDescription ?? ""; request.Comments = product.Comments ?? ""; request.DirectDeliveryCode = product.DirectDeliveryCode ?? ""; request.DirectDeliveryMinQuantity = product.DirectDeliveryMinQuantity; request.FreightFactor = product.FreightFactor; request.IsDirectDelivery = product.IsDirectDelivery; request.MasterQuantityDescription = product.MasterQuantityDescription ?? ""; request.MinOrderSpring = product.MinOrderSpring; request.MinOrderSummer = product.MinOrderSummer; request.SlaveQuantityDescription = product.SlaveQuantityDescription ?? ""; request.SlaveQuantityPerMaster = product.SlaveQuantityPerMaster; request.SuggestedRetailPrice = product.SuggestedRetailPrice; request.UPC = product.UPC; if (existing != null) { request.Id = existing.Id; } return(request); }