public static bool AreSkuAndItemIdMismatched(this ShopifyVariant input) { if (!input.IsSynced()) { return(false); } else { return(input.ShopifySku.StandardizedSku() != input.MatchedStockItem().ItemId.StandardizedSku()); } }
public static bool AreTaxesMismatched(this ShopifyVariant input, MonsterSetting settings) { if (!input.IsSynced()) { return(false); } if (input.ShopifyIsTaxable && input.MatchedStockItem().AcumaticaTaxCategory == settings.AcumaticaTaxableCategory) { return(false); } if (!input.ShopifyIsTaxable && input.MatchedStockItem().AcumaticaTaxCategory == settings.AcumaticaTaxExemptCategory) { return(false); } return(true); }
MakeProductStockItemResults(ShopifyVariant variant, MonsterSetting settings) { var output = new ProductStockItemResultsRow(); output.ShopifyProductId = variant.ShopifyProduct.ShopifyProductId; output.ShopifyProductTitle = variant.ShopifyProduct.ShopifyTitle; output.ShopifyProductUrl = _shopifyUrlService.ShopifyProductUrl(variant.ShopifyProduct.ShopifyProductId); output.ShopifyVariantId = variant.ShopifyVariantId; output.ShopifyVariantTitle = variant.ShopifyTitle; output.ShopifyVariantSku = variant.ShopifySku; output.ShopifyVariantUrl = _shopifyUrlService.ShopifyVariantUrl( variant.ShopifyProduct.ShopifyProductId, variant.ShopifyVariantId); output.ShopifyVariantTax = variant.ShopifyIsTaxable ? "YES" : "NO"; output.ShopifyVariantPrice = variant.ShopifyPrice; output.ShopifyVariantAvailQty = variant.ShopifyInventoryLevels.Sum(x => x.ShopifyAvailableQuantity); output.IsShopifyProductDeleted = variant.ShopifyProduct.IsDeleted; output.IsShopifyVariantMissing = variant.IsMissing; output.HasDuplicateSkus = HasDuplicateSkus(variant.ShopifySku); if (variant.IsMatched()) { var stockItemRecord = variant.MatchedStockItem(); var stockItem = _acumaticaJsonService.RetrieveStockItem(stockItemRecord.ItemId); output.AcumaticaItemId = stockItemRecord.ItemId; output.AcumaticaItemDesc = stockItemRecord.AcumaticaDescription; output.AcumaticaItemUrl = _acumaticaUrlService.AcumaticaStockItemUrl(stockItemRecord.ItemId); output.AcumaticaItemTax = stockItemRecord.IsTaxable(settings).YesNoNaPlainEnglish(); output.AcumaticaItemPrice = (decimal)stockItem.DefaultPrice.value; output.AcumaticaItemAvailQty = stockItemRecord.AcumaticaInventories.Sum(x => (int)x.AcumaticaAvailQty); output.HasMismatchedSku = variant.AreSkuAndItemIdMismatched(); output.HasMismatchedTaxes = variant.AreTaxesMismatched(settings); } return(output); }