private bool IsPriceChanged(JToken insertedToken, JToken deletedToken)
        {
            if (deletedToken == null)
            {
                return(true);
            }

            bool workflowPresent = new KCNamespaceReview().Test(KCConstants.NamespaceTesterPackage);

            string insertedPrice;
            string deletedPrice;

            if (workflowPresent)
            {
                insertedPrice = insertedToken.SelectToken(SALES_PRICE)?.ToString();
                deletedPrice  = deletedToken.SelectToken(SALES_PRICE)?.ToString();
            }
            else
            {
                insertedPrice = insertedToken.SelectToken(DEFAULT_PRICE)?.ToString();
                deletedPrice  = deletedToken.SelectToken(DEFAULT_PRICE)?.ToString();
            }

            return(insertedPrice != deletedPrice ||
                   insertedToken.SelectToken(RETAIL_PRICE)?.ToString() != deletedToken.SelectToken(RETAIL_PRICE)?.ToString() ||
                   insertedToken.SelectToken(STARTING_PRICE)?.ToString() != deletedToken.SelectToken(STARTING_PRICE)?.ToString() ||
                   insertedToken.SelectToken(RESERVE_PRICE)?.ToString() != deletedToken.SelectToken(RESERVE_PRICE)?.ToString() ||
                   insertedToken.SelectToken(STORE_PRICE)?.ToString() != deletedToken.SelectToken(STORE_PRICE)?.ToString() ||
                   insertedToken.SelectToken(PRODUCT_MARGIN)?.ToString() != deletedToken.SelectToken(PRODUCT_MARGIN)?.ToString() ||
                   insertedToken.SelectToken(SECOND_CHANCE_OFFER_PRICE)?.ToString() != deletedToken.SelectToken(SECOND_CHANCE_OFFER_PRICE)?.ToString() ||
                   insertedToken.SelectToken(MINIMUM_PRICE)?.ToString() != deletedToken.SelectToken(MINIMUM_PRICE)?.ToString() ||
                   insertedToken.SelectToken(MAXIMUM_PRICE)?.ToString() != deletedToken.SelectToken(MAXIMUM_PRICE)?.ToString());
        }
Beispiel #2
0
        public bool CheckBranches(KCSiteMasterMaint sitemaster, List <KCAPIOrderItem> orderItems, KCAPIOrder order)
        {
            BAccount customer = KCGeneralDataHelper.GetCustomerByCAOrder(sitemaster, order);

            if (customer == null)
            {
                logger.SetNonChildEntityId(order.ID.ToString());
                logger.Information(KCMessages.CustomerNotFound(order.ID, order.BuyerEmailAddress));
                return(false);
            }

            bool workflowPublished = new KCNamespaceReview().Test(KCConstants.NamespaceTesterPackage);

            if (workflowPublished)
            {
                bool validItem;
                foreach (KCAPIOrderItem item in orderItems)
                {
                    DAC.KNSIKCInventoryItem stockItem    = sitemaster.ExistingProducts.SelectSingle(item.ProductID);
                    InventoryItem           product      = sitemaster.ProductByInvId.SelectSingle(stockItem.InventoryID);
                    KCInventoryItemExt      productKCExt = product.GetExtension <KCInventoryItemExt>();
                    validItem = false;

                    if (product.GetExtension <InventoryItemPCExt>().UsrKNCompositeType == null)
                    {
                        if (productKCExt.UsrKNCPBranch != null && customer.GetExtension <KCCustomerExt>()?.UsrKNCPBranchID != null)
                        {
                            List <string> productBranches = productKCExt.UsrKNCPBranch.Split(',').ToList();

                            foreach (string branch in productBranches)
                            {
                                if (customer.GetExtension <KCCustomerExt>()?.UsrKNCPBranchID?.Split(',').Select(x => x.Trim()).ToList().Contains(branch) == true)
                                {
                                    validItem = true;
                                }
                            }
                        }
                        else
                        {
                            validItem = true;
                        }
                    }
                    else
                    {
                        validItem = true;
                    }

                    if (!validItem)
                    {
                        logger.SetNonChildEntityId(order.ID.ToString());
                        logger.Information(KCMessages.WebsitesAreNotAssociated(order.ID, product.InventoryCD, customer.AcctName));
                        return(false);
                    }
                }
            }
            return(true);
        }