public MonsterSetting RetrieveSettings() { lock (SettingsLock) { if (!Entities.MonsterSettings.Any()) { var settings = new MonsterSetting(); settings.PullFromShopifyEnabled = false; settings.PullFromAcumaticaEnabled = false; settings.SyncOrdersEnabled = false; settings.SyncAllCustomersEnabled = false; settings.SyncInventoryEnabled = false; settings.SyncRefundsEnabled = false; settings.SyncFulfillmentsEnabled = false; settings.MaxParallelAcumaticaSyncs = 1; settings.MaxNumberOfOrders = 5000; settings.ReleasePaymentsOnSync = false; settings.ShopifyDelayMs = ShopifyDelay.Default; settings.InventorySyncWeight = true; settings.InventorySyncPrice = true; settings.InventorySyncAvailableQty = true; settings.LastRecurringSchedule = RecurringSchedule.Default.Id; Entities.MonsterSettings.Add(settings); Entities.SaveChanges(); return(settings); } } return(Entities.MonsterSettings.First()); }
private void BuildLineItemValidations(CreateOrderValidation validation, MonsterSetting settings) { foreach (var lineItem in validation.ShopifyOrder.line_items) { if (lineItem.sku == null) { validation.LineItemIdsWithUnrecognizedSku.Add(lineItem.id); } var variant = _syncInventoryRepository.RetrieveLiveVariant(lineItem.sku.StandardizedSku()); if (variant == null) { validation.SkusMissingFromShopify.Add(lineItem.sku); continue; } if (!variant.IsSynced()) { validation.SkusNotSyncedInAcumatica.Add(lineItem.sku); continue; } if (variant.AreSkuAndItemIdMismatched()) { validation.SkusWithMismatchedStockItemId.Add(lineItem.sku); } if (variant.AreTaxesMismatched(settings)) { validation.SkusWithMismatchedTaxes.Add(lineItem.sku); } } }
public static bool?IsTaxable(this AcumaticaStockItem input, MonsterSetting settings) { if (input.AcumaticaTaxCategory == settings.AcumaticaTaxableCategory) { return(true); } if (input.AcumaticaTaxCategory == settings.AcumaticaTaxExemptCategory) { return(false); } return(null); }
public void Awake() { Monster = GetComponent <MonsterSetting>(); AI = BT.Root(); AI.OpenBranch( BT.Selector().OpenBranch( BT.Sequence().OpenBranch(BT.Condition(Monster.CanAttack), BT.Call(Monster.Attack)), BT.Call(Monster.Idle)) ); }
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); }
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); }
public static bool IsValidTaxCategory(this AcumaticaStockItem input, MonsterSetting settings) { return(input.IsTaxable(settings).HasValue); }
public static string TaxCategory(this bool isTaxable, MonsterSetting settings) { return(isTaxable ? settings.AcumaticaTaxableCategory : settings.AcumaticaTaxExemptCategory); }