Пример #1
0
        /// <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);
        }
Пример #2
0
        public Cart AddCartItem(Cart cart, InventoryItemResponse item, UpdateCartRequest request)
        {
            var cartItem  = cart.Items.FirstOrDefault(i => i.ItemId == item.Id);
            var alreadyIn = false;

            if (cartItem != null)
            {
                alreadyIn      = true;
                cartItem.Price = item.Price;
                cartItem.Count = request.Count;
            }
            else
            {
                cartItem = new CartItem(
                    itemId: item.Id,
                    name: item.Name,
                    price: item.Price,
                    count: request.Count
                    );
            }

            if (cartItem.Count > item.Stock)
            {
                throw new StockIsNotEnoughException(item.Id, item.Stock, request.Count);
            }

            if (!alreadyIn)
            {
                cart.Items.Add(cartItem);
            }

            return(cart);
        }
 protected override void ProcessInventoryItem(InventoryItemResponse inventoryItemResponse)
 {
     ProcessInventoryToCsv(inventoryItemResponse);
     ProcessSkuShipping(inventoryItemResponse.Sku);
     ProcessSkuImage(inventoryItemResponse.Sku);
     ProcessSkuAttribute(inventoryItemResponse.Sku);
     System.Threading.Thread.Sleep(500);
 }
        /// <summary>
        /// Deletes the account category.
        /// </summary>
        /// <param name="inventoryItemId">The account category identifier.</param>
        /// <returns>InventoryItemResponse.</returns>
        public InventoryItemResponse DeleteInventoryItem(string inventoryItemId)
        {
            var response = new InventoryItemResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                var inventoryItemEntity = InventoryItemDao.GetInventoryItem(inventoryItemId);
                using (var scope = new TransactionScope())
                {
                    // Xóa trong bảng OpeningSupplyEntry
                    //var openingSupplyEntryEntity = OpeningSupplyEntryDao.GetOpeningSupplyEntrybyRefId(inventoryItemEntity.InventoryItemId);
                    //if (openingSupplyEntryEntity != null)
                    //{
                    //    response.Message = OpeningSupplyEntryDao.DeleteOpeningSupplyEntry(inventoryItemEntity.InventoryItemId);
                    //    if (!string.IsNullOrEmpty(response.Message))
                    //    {
                    //        response.Acknowledge = AcknowledgeType.Failure;
                    //        scope.Dispose();
                    //        return response;
                    //    }
                    //}
                    response.Message = InventoryItemDao.DeleteInventoryItem(inventoryItemEntity);
                    if (!string.IsNullOrEmpty(response.Message))
                    {
                        response.Acknowledge = AcknowledgeType.Failure;
                        if (response.Message.Contains("FK_INInwardOutwardDetail_InventoryItem"))
                        {
                            response.Message = @"Bạn không thể xóa vật tư có mã " +
                                               inventoryItemEntity.InventoryItemCode +
                                               ", vì đã có phát sinh trong nghiệp vụ xuất nhập kho";
                        }
                        else
                        {
                            response.Message = @"Bạn không thể xóa vật tư có mã " + inventoryItemEntity.InventoryItemCode + ", vì đã có phát sinh trong chứng từ hoặc danh mục liên quan";
                        }
                        scope.Dispose();
                        return(response);
                    }

                    response.InventoryItemId = inventoryItemEntity.InventoryItemId;
                    scope.Complete();
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
        }
        /// <summary>
        /// Inserts the account category.
        /// </summary>
        /// <param name="inventoryItemEntity">The account category entity.</param>
        /// <returns>InventoryItemResponse.</returns>
        public InventoryItemResponse InsertInventoryItem(InventoryItemEntity inventoryItemEntity)
        {
            var response = new InventoryItemResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                if (!inventoryItemEntity.Validate())
                {
                    foreach (string error in inventoryItemEntity.ValidationErrors)
                    {
                        response.Message += error + Environment.NewLine;
                    }
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }

                var inventoryItemEntityExited = InventoryItemDao.GetInventoryItemByInventoryItemCode(inventoryItemEntity.InventoryItemCode, inventoryItemEntity.IsTool);
                if (inventoryItemEntityExited != null)
                {
                    response.Acknowledge = AcknowledgeType.Failure;
                    response.Message     = string.Format(inventoryItemEntityExited.IsTool ?
                                                         @"Mã công cụ, dụng cụ {0} đã tồn tại trong hệ thống. Vui lòng nhập mã khác" :
                                                         @"Mã vật tư {0} đã tồn tại trong hệ thống. Vui lòng nhập mã khác", inventoryItemEntityExited.InventoryItemCode);
                    return(response);
                }

                //dm cai thang nao code cu insert 2 bang ma deo lam transaction code nhu cc
                using (var scope = new TransactionScope())
                {
                    inventoryItemEntity.InventoryItemId = Guid.NewGuid().ToString();
                    response.Message = InventoryItemDao.InsertInventoryItem(inventoryItemEntity);
                    if (!string.IsNullOrEmpty(response.Message))
                    {
                        response.Acknowledge = AcknowledgeType.Failure;
                        scope.Dispose();
                        return(response);
                    }

                    scope.Complete();
                    response.InventoryItemId = inventoryItemEntity.InventoryItemId;
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
        }
        public InventoryItemResponse DeleteInventoryItemConvert()
        {
            var response = new InventoryItemResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                using (var scope = new TransactionScope())
                {
                    // Xóa trong bảng OpeningSupplyEntry
                    //var openingSupplyEntryEntity = OpeningSupplyEntryDao.GetOpeningSupplyEntrybyRefId(inventoryItemEntity.InventoryItemId);
                    //if (openingSupplyEntryEntity != null)
                    //{
                    //    response.Message = OpeningSupplyEntryDao.DeleteOpeningSupplyEntry(inventoryItemEntity.InventoryItemId);
                    //    if (!string.IsNullOrEmpty(response.Message))
                    //    {
                    //        response.Acknowledge = AcknowledgeType.Failure;
                    //        scope.Dispose();
                    //        return response;
                    //    }
                    //}
                    response.Message = InventoryItemDao.DeleteInventoryItemConvert();
                    if (!string.IsNullOrEmpty(response.Message))
                    {
                        scope.Dispose();
                        return(response);
                    }


                    scope.Complete();
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
        }
        private void ProcessInventoryToCsv(InventoryItemResponse inventoryItem)
        {
            InventoryCsv.Write("{0}\t", StartRange.ToString("yyyy-MM-dd"));
            InventoryCsv.Write("{0}\t", inventoryItem.Sku);
            InventoryCsv.Write("{0}\t", inventoryItem.Title);
            InventoryCsv.Write("{0}\t", inventoryItem.FlagStyle);
            InventoryCsv.Write("{0}\t", inventoryItem.FlagDescription);
            InventoryCsv.Write("{0}\t", inventoryItem.IsBlocked);
            InventoryCsv.Write("{0}\t", inventoryItem.BlockComment);
            InventoryCsv.Write("{0}\t", inventoryItem.Condition);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.Available);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.Total);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.TotalPooled);

            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.Cost);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.RetailPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.StartingPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.ReservePrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.TakeItPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.SecondChanceOfferPrice);
            InventoryCsv.WriteLine("{0}", inventoryItem.PriceInfo.StorePrice);
        }
        /// <summary>
        /// Updates the account category.
        /// </summary>
        /// <param name="inventoryItemEntity">The account category entity.</param>
        /// <returns>InventoryItemResponse.</returns>
        public InventoryItemResponse UpdateInventoryItem(InventoryItemEntity inventoryItemEntity)
        {
            var response = new InventoryItemResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                if (!inventoryItemEntity.Validate())
                {
                    foreach (string error in inventoryItemEntity.ValidationErrors)
                    {
                        response.Message += error + Environment.NewLine;
                    }
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }

                //check ma trung
                var inventoryItemEntityExited = InventoryItemDao.GetInventoryItemByInventoryItemCode(inventoryItemEntity.InventoryItemCode, inventoryItemEntity.IsTool);
                if (inventoryItemEntityExited != null && inventoryItemEntityExited.InventoryItemId != inventoryItemEntity.InventoryItemId)
                {
                    response.Acknowledge = AcknowledgeType.Failure;
                    response.Message     = string.Format(inventoryItemEntityExited.IsTool ?
                                                         @"Mã công cụ, dụng cụ {0} đã tồn tại trong hệ thống. Vui lòng nhập mã khác" :
                                                         @"Mã vật tư {0} đã tồn tại trong hệ thống. Vui lòng nhập mã khác", inventoryItemEntityExited.InventoryItemCode);
                    return(response);
                }

                //dm cai thang nao code cu insert 2 bang ma deo lam transaction code nhu cc
                using (var scope = new TransactionScope())
                {
                    response.Message = InventoryItemDao.UpdateInventoryItem(inventoryItemEntity);
                    if (!string.IsNullOrEmpty(response.Message))
                    {
                        response.Acknowledge = AcknowledgeType.Failure;
                        return(response);
                    }

                    // Nếu là công cụ dụng cụ thì Insert đồng thời vào bảng OpeningSupplyEntry
                    //if (inventoryItemEntity.IsTool && !inventoryItemEntity.IsStock)
                    //{
                    //    var openingSupplyEntry = new OpeningSupplyEntryEntity
                    //    {
                    //        RefId = inventoryItemEntity.InventoryItemId,
                    //        InventoryItemId = inventoryItemEntity.InventoryItemId,
                    //        InventoryItemCode = inventoryItemEntity.InventoryItemCode,
                    //        InventoryItemName = inventoryItemEntity.InventoryItemName,
                    //        DepartmentId = inventoryItemEntity.DepartmentId,
                    //        PostedDate = DateTime.Now,
                    //        RefType = 602
                    //    };

                    //    //xoa insert lai
                    //    var openingSupplyEntryEntity = OpeningSupplyEntryDao.GetOpeningSupplyEntrybyRefId(inventoryItemEntity.InventoryItemId);
                    //    if (openingSupplyEntryEntity != null)
                    //    {
                    //        response.Message = OpeningSupplyEntryDao.DeleteOpeningSupplyEntry(inventoryItemEntity.InventoryItemId);
                    //        if (!string.IsNullOrEmpty(response.Message))
                    //        {
                    //            response.Acknowledge = AcknowledgeType.Failure;
                    //            scope.Dispose();
                    //            return response;
                    //        }
                    //    }

                    //    response.Message = OpeningSupplyEntryDao.InsertOpeningSupplyEntry(openingSupplyEntry);
                    //    if (!string.IsNullOrEmpty(response.Message))
                    //    {
                    //        response.Acknowledge = AcknowledgeType.Failure;
                    //        scope.Dispose();
                    //        return response;
                    //    }
                    //}

                    response.InventoryItemId = inventoryItemEntity.InventoryItemId;
                    scope.Complete();
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
        }
 protected override void ProcessInventoryItem(InventoryItemResponse inventoryItemResponse)
 {
     ProcessInventoryToCsv(inventoryItemResponse);
 }
Пример #10
0
 public static bool IsParent(this InventoryItemResponse item)
 {
     return(item.Sku.IsParentSku());
 }
Пример #11
0
        /// <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);
        }
 protected abstract void ProcessInventoryItem(InventoryItemResponse inventoryItemResponse);
        private void ProcessInventoryToCsv(InventoryItemResponse inventoryItem)
        {
            APIResultOfVariationInfo variationInfo;
            APIResultOfStoreInfo storeInfo;
            int retries = 0;
            while (true)
            {
                try
                {
                    variationInfo = InventoryService.GetInventoryItemVariationInfo(AccountId, inventoryItem.Sku);
                    storeInfo = InventoryService.GetInventoryItemStoreInfo(AccountId, inventoryItem.Sku);
                    break;
                }
                catch (Exception ex)
                {
                    if (retries > 3) throw;
                    ResetInventoryService(retries, "store and variation " + inventoryItem.Sku, ex.Message);
                    retries++;
                }
            }

            if (variationInfo.ResultData == null) variationInfo.ResultData = new VariationInfo();
            if (storeInfo.ResultData == null) storeInfo.ResultData = new StoreInfo();

            InventoryCsv.Write("{0}\t", StartRange.ToString("yyyy-MM-dd"));
            InventoryCsv.Write("{0}\t", inventoryItem.Sku);
            InventoryCsv.Write("{0}\t", inventoryItem.Title);

            InventoryCsv.Write("{0}\t", inventoryItem.Subtitle);
            InventoryCsv.Write("{0}\t", inventoryItem.ShortDescription);
            InventoryCsv.Write("{0}\t", inventoryItem.Description);
            InventoryCsv.Write("{0}\t", inventoryItem.Weight);
            InventoryCsv.Write("{0}\t", inventoryItem.SupplierCode);
            InventoryCsv.Write("{0}\t", inventoryItem.WarehouseLocation);
            InventoryCsv.Write("{0}\t", inventoryItem.TaxProductCode);

            InventoryCsv.Write("{0}\t", inventoryItem.FlagStyle);
            InventoryCsv.Write("{0}\t", inventoryItem.FlagDescription);
            InventoryCsv.Write("{0}\t", inventoryItem.IsBlocked);
            InventoryCsv.Write("{0}\t", inventoryItem.BlockComment);

            InventoryCsv.Write("{0}\t", inventoryItem.ASIN);
            InventoryCsv.Write("{0}\t", inventoryItem.ISBN);
            InventoryCsv.Write("{0}\t", inventoryItem.UPC);
            InventoryCsv.Write("{0}\t", inventoryItem.EAN);
            InventoryCsv.Write("{0}\t", inventoryItem.MPN);
            InventoryCsv.Write("{0}\t", inventoryItem.Manufacturer);
            InventoryCsv.Write("{0}\t", inventoryItem.Brand);
            InventoryCsv.Write("{0}\t", inventoryItem.Condition);

            InventoryCsv.Write("{0}\t", inventoryItem.Warranty);
            InventoryCsv.Write("{0}\t", inventoryItem.ProductMargin);
            InventoryCsv.Write("{0}\t", inventoryItem.SupplierPO);
            InventoryCsv.Write("{0}\t", inventoryItem.HarmonizedCode);
            InventoryCsv.Write("{0}\t", inventoryItem.Height);
            InventoryCsv.Write("{0}\t", inventoryItem.Length);
            InventoryCsv.Write("{0}\t", inventoryItem.Width);
            InventoryCsv.Write("{0}\t", inventoryItem.Classification);
            InventoryCsv.Write("{0}\t", inventoryItem.MetaDescription);

            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.Available);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.OpenAllocated);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.OpenUnallocated);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingCheckout);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingPayment);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingShipment);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.Total);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.OpenAllocatedPooled);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.OpenUnallocatedPooled);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingCheckoutPooled);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingPaymentPooled);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.PendingShipmentPooled);
            InventoryCsv.Write("{0}\t", inventoryItem.Quantity.TotalPooled);

            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.Cost);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.RetailPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.StartingPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.ReservePrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.TakeItPrice);
            InventoryCsv.Write("{0}\t", inventoryItem.PriceInfo.SecondChanceOfferPrice);
            InventoryCsv.Write("{0}", inventoryItem.PriceInfo.StorePrice);

            InventoryCsv.Write("{0}\t", variationInfo.ResultData.IsInRelationship);
            InventoryCsv.Write("{0}\t", variationInfo.ResultData.RelationshipName);
            InventoryCsv.Write("{0}\t", variationInfo.ResultData.IsParent);
            InventoryCsv.Write("{0}\t", variationInfo.ResultData.ParentSku);

            InventoryCsv.Write("{0}\t", storeInfo.ResultData.DisplayInStore);
            InventoryCsv.Write("{0}\t", storeInfo.ResultData.Title);
            InventoryCsv.Write("{0}\t", storeInfo.ResultData.Description);
            InventoryCsv.Write("{0}", storeInfo.ResultData.CategoryID);

            InventoryCsv.WriteLine();
        }