public virtual JsonResult Redistribute(long styleId)
        {
            LogI("Redistribute, styleId=" + styleId);
            try
            {
                var quantityManager = new QuantityManager(LogService, Time);
                var service         = new QuantityDistributionService(DbFactory,
                                                                      quantityManager,
                                                                      LogService,
                                                                      Time,
                                                                      QuantityDistributionHelper.GetDistributionMarkets(),
                                                                      DistributeMode.None);
                var listings = service.RedistributeForStyle(Db, styleId);

                return(new JsonResult()
                {
                    Data = ValueResult <IList <ListingQuantityDTO> > .Success("Quantity was redistributed", listings),
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception ex)
            {
                LogE("Redistribute, styleId=" + styleId, ex);
                return(new JsonResult()
                {
                    Data = MessageResult.Error(ex.Message),
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
        }
Exemplo n.º 2
0
        public virtual ActionResult GetBalance()
        {
            LogI("GetBalance");

            var companyId = AccessManager.CompanyId;

            if (!companyId.HasValue)
            {
                throw new ArgumentNullException("CompanyId");
            }

            var shipmentProviders = ServiceFactory.GetShipmentProviders(LogService,
                                                                        Time,
                                                                        DbFactory,
                                                                        WeightService,
                                                                        AccessManager.Company.ShipmentProviderInfoList,
                                                                        null,
                                                                        null,
                                                                        null,
                                                                        null);

            CompanyHelper.UpdateBalance(Db, AccessManager.Company, shipmentProviders, true, Time.GetAppNowTime());

            var model = new AccountStatusViewModel(AccessManager.Company);

            return(new JsonResult
            {
                Data = ValueResult <ShipmentProviderViewModel[]> .Success("", model.ShipmentProviderList.ToArray()),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public virtual ActionResult GetAmazonBarcodeStatus(string barcode)
        {
            LogI("GetAmazonBarcodeStatus, barcode=" + barcode);

            try
            {
                var marketplaceManager = new MarketplaceKeeper(DbFactory, false);
                marketplaceManager.Init();

                IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                 .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

                var callResult = ItemEditViewModel.GetAmazonBarcodeStatus(api, barcode);
                if (callResult.IsSuccess)
                {
                    return(JsonGet(ValueResult <bool?> .Success("", callResult.Data)));
                }
                else
                {
                    return(JsonGet(ValueResult <bool?> .Error("No results")));
                }
            }
            catch (Exception ex)
            {
                return(JsonGet(ValueResult <bool?> .Error(ex.Message)));
            }
        }
        public virtual ActionResult SetArchiveStatus(long id, bool status)
        {
            LogI("SetArchiveStatus begin, fbaShipment=" + id);
            var newStatus = ShipmentPickListViewModel.SetArchiveStatus(Db, id, status);

            return(JsonGet(ValueResult <bool> .Success("", newStatus)));
        }
        public virtual ActionResult GetIdListByFilters(string barcode,
                                                       int?gender,
                                                       [Bind(Prefix = "itemStyles[]")] List <int> itemStyles,
                                                       [Bind(Prefix = "sleeves[]")] List <int> sleeves,
                                                       int?mainLicense,
                                                       int?subLicense,
                                                       int?holiday,
                                                       bool hasInitialQty)
        {
            LogI("GetFilteredIdList, barcode=" + barcode
                 + ", gender=" + gender
                 + ", itemStyles=" + itemStyles
                 + ", sleeves=" + sleeves
                 + ", mainLicense=" + mainLicense
                 + ", subLicense=" + subLicense
                 + ", hasInitialQty=" + hasInitialQty);
            var searchFilter = new StyleSearchFilterViewModel()
            {
                Barcode       = StringHelper.TrimWhitespace(barcode),
                Gender        = gender,
                ItemStyles    = itemStyles,
                Sleeves       = sleeves,
                HolidayId     = holiday,
                MainLicense   = mainLicense,
                SubLicense    = subLicense,
                HasInitialQty = hasInitialQty
            };
            var idList = StyleViewModel.GetIdListByFilters(Db, searchFilter);

            return(Json(ValueResult <IEnumerable <long> > .Success("", idList), JsonRequestBehavior.AllowGet));
        }
        public virtual ActionResult GetSystemMessages()
        {
            var messages = SystemMessageViewModel.GetAll(DbFactory);

            return(Json(ValueResult <IList <SystemMessageViewModel> > .Success("", messages),
                        JsonRequestBehavior.AllowGet));
        }
        public virtual ActionResult GetSystemStatus()
        {
            var model = new SyncStatusViewModel(Settings, DbFactory);

            return(Json(ValueResult <SyncStatusViewModel> .Success("", model),
                        JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 8
0
        public virtual ActionResult GetAll(long styleItemId)
        {
            LogI("GetInventoryHistory, styleItemId=" + styleItemId);

            //request.Sorts = new List<SortDescriptor>()
            //{
            //    new SortDescriptor("UpdateDate", ListSortDirection.Descending)
            //};

            IList <IHistoryRecord> items;

            items = StyleSizeActionHistoryRecordViewModel.GetRecords(Db, styleItemId, new[] {
                "AddPermancentSale",
                "AddSale",
                "RemoveSale"
            }).ToList();

            items.AddRange(ListingPriceHistoryRecordViewModel.GetRecords(Db, styleItemId).ToList());

            items = items.OrderByDescending(i => i.When).ToList();

            foreach (var item in items)
            {
                item.Prepare();
            }

            //var dataSource = items.ToDataSourceResult(request);
            return(JsonGet(ValueResult <IList <IHistoryRecord> > .Success("", items.ToList())));
        }
Exemplo n.º 9
0
        public virtual ActionResult AttachStyleImage(string styleId)
        {
            LogI("AttachStyleImage, styleId=" + styleId);
            var attachment = EmailAttachmentViewModel.GetStyleImageAsAttachment(Db, LogService, Time, styleId);

            return(JsonGet(ValueResult <EmailAttachmentViewModel> .Success("", attachment)));
        }
Exemplo n.º 10
0
        public virtual ActionResult SetCustomShipping(long orderId,
                                                      IList <CustomShippingItemViewModel> items)
        {
            LogI("SetCustomShipping, orderId=" + orderId + ", items=" + String.Join(", ", items.Select(i => i.ToString()).ToList()));

            var rateProviders = ServiceFactory.GetShipmentProviders(LogService,
                                                                    Time,
                                                                    DbFactory,
                                                                    WeightService,
                                                                    AccessManager.Company.ShipmentProviderInfoList,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null);

            var result = CustomShippingItemViewModel.Apply(Db,
                                                           LogService,
                                                           Time,
                                                           WeightService,
                                                           orderId,
                                                           rateProviders,
                                                           CompanyAddress.GetReturnAddress(MarketIdentifier.Empty()),
                                                           CompanyAddress.GetPickupAddress(MarketIdentifier.Empty()),
                                                           items,
                                                           AccessManager.IsFulfilment);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <IList <SelectListShippingOption> > .Success("", result.Data)));
            }
            return(JsonGet(ValueResult <IList <SelectListShippingOption> > .Error(result.Message)));
        }
        public virtual ActionResult DeleteFeed(long id)
        {
            LogI("DeleteFeed, id=" + id);

            CustomIncomingFeedViewModel.Delete(DbFactory, id);

            return(JsonGet(ValueResult <long> .Success("", id)));
        }
        public virtual ActionResult SetFinishStatus(long id, bool isFinished)
        {
            LogI("Finish, id=" + id);

            ShipmentPickListViewModel.SetFinishStatus(DbFactory, ActionService, id, isFinished, Time.GetAmazonNowTime(), AccessManager.UserId);

            return(JsonGet(ValueResult <bool> .Success()));
        }
        public virtual ActionResult GetListingByStyleSize(long styleItemId, long?selectedListingId, ShipmentsTypeEnum shipmenttype)
        {
            LogI("GetListingByStyleSize, styleItemId=" + styleItemId);

            var list = ShipmentPickListViewModel.GetListingByStyleSize(Db, styleItemId, selectedListingId, shipmenttype);

            return(JsonGet(ValueResult <IList <SelectListItemTag> > .Success("", list)));
        }
        public virtual ActionResult GetStylePopoverInfo(string styleId, long?listingId)
        {
            LogI("GetStylePopoverInfo, styleId=" + styleId + ", listingId=" + listingId);

            var model = StylePopoverInfoViewModel.GetForStyle(Db, styleId, listingId);

            return(JsonGet(ValueResult <StylePopoverInfoViewModel> .Success("", model)));
        }
Exemplo n.º 15
0
        public virtual ActionResult GetCustomShipping(long orderId, long?defaultShippingMethodId)
        {
            LogI("GetCustomShipping, orderId=" + orderId + ", defaultShippingMethodId=" + defaultShippingMethodId);

            var model = CustomShippingViewModel.Get(Db, orderId, defaultShippingMethodId);

            return(JsonGet(ValueResult <CustomShippingViewModel> .Success("", model)));
        }
Exemplo n.º 16
0
        public virtual ActionResult PauseUpdate(MarketType?market, string marketplaceId)
        {
            LogI("PauseUpdate, market=" + market + ", marketplaceId=" + marketplaceId);
            var pauseState = Settings.GetListingsSyncPause(market ?? MarketType.Amazon, marketplaceId) ?? false;

            LogI("PauseUpdate, pause=" + pauseState);
            Settings.SetListingsSyncPause(!pauseState, market ?? MarketType.Amazon, marketplaceId);

            return(JsonGet(ValueResult <bool> .Success("", !pauseState)));
        }
Exemplo n.º 17
0
        public virtual ActionResult GetUnusedBarcodeForStyleItem(long styleItemId,
                                                                 int market,
                                                                 string marketplaceId)
        {
            LogI("GetUnusedBarcodeForStyleItemId");

            var barcode = ItemEditViewModel.GetUnusedBarcodeForStyleItem(Db, styleItemId, (MarketType)market, marketplaceId);

            return(JsonGet(ValueResult <string> .Success("", barcode)));
        }
Exemplo n.º 18
0
        public virtual ActionResult GetCloseoutForm()
        {
            LogI("GetCloseoutForm");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi mbgApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);

            //NOTE: Direct from Marketplaces because TMX is hidden (in active marketplace)
            IMarketApi tmxApi = new MarketFactory(Db.Marketplaces.GetAllAsDto(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToTMX);


            var shipmentProvider = ServiceFactory.GetShipmentProviderByType(
                ShipmentProviderType.IBC,
                LogService,
                Time,
                DbFactory,
                WeightService,
                AccessManager.Company.ShipmentProviderInfoList,
                AppSettings.DefaultCustomType,
                AppSettings.LabelDirectory,
                AppSettings.ReserveDirectory,
                AppSettings.TemplateDirectory);

            var model  = new IbcCloseoutFormViewModel(LogService, Time);
            var result = model.Closeout(Db,
                                        shipmentProvider,
                                        new List <DropShipperApi>()
            {
                (DropShipperApi)mbgApi,
                (DropShipperApi)tmxApi
            },
                                        PdfMaker,
                                        AppSettings.LabelDirectory,
                                        AppSettings.IsSampleLabels,
                                        AccessManager.UserId);

            var cacheToRemove = Url.Action("GetInfo", "IbcCloseoutController");

            HttpResponse.RemoveOutputCacheItem(path: cacheToRemove);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <string> .Success("", result.Data)));
            }
            else
            {
                return(JsonGet(ValueResult <string> .Error(result.Message)));
            }
        }
        public virtual ActionResult GetListingErrorsByPeriod(int periodType)
        {
            var model = ListingErrorsByDateGraphViewModel.Build(Db,
                                                                (ListingErrorsByDateGraphViewModel.PeriodType)periodType);

            return(new JsonResult
            {
                Data = ValueResult <ListingErrorsByDateGraphViewModel> .Success("", model),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Exemplo n.º 20
0
        public virtual ActionResult GetAllUnshippedInfo()
        {
            //NOTE: Not USED, for future refactoring!

            LogI("GetAllUnshippedInfo");

            var items = OrderInfoViewModel.GetAll(Db, LogService, WeightService, null);

            return(Json(ValueResult <IList <OrderInfoViewModel> > .Success("", items),
                        JsonRequestBehavior.AllowGet));
        }
        public virtual ActionResult GetCloseoutForm()
        {
            LogI("GetCloseoutForm");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi mbgApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);
            IMarketApi tmxApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToTMX);

            var shipmentProvider = ServiceFactory.GetShipmentProviderByType(
                ShipmentProviderType.IBC,
                LogService,
                Time,
                DbFactory,
                WeightService,
                AccessManager.Company.ShipmentProviderInfoList,
                AppSettings.DefaultCustomType,
                AppSettings.LabelDirectory,
                AppSettings.ReserveDirectory,
                AppSettings.TemplateDirectory);

            var externalApis = new List <DropShipperApi>();

            if (mbgApi != null)
            {
                externalApis.Add((DropShipperApi)mbgApi);
            }
            if (tmxApi != null)
            {
                externalApis.Add((DropShipperApi)tmxApi);
            }

            var model  = new IbcCloseoutFormViewModel(LogService, Time);
            var result = model.Closeout(Db,
                                        shipmentProvider,
                                        externalApis,
                                        PdfMaker,
                                        AppSettings.LabelDirectory,
                                        AppSettings.IsSampleLabels,
                                        AccessManager.UserId);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <string> .Success("", result.Data)));
            }
            else
            {
                return(JsonGet(ValueResult <string> .Error(result.Message)));
            }
        }
        public virtual ActionResult GetShippingByCarrier(int periodType, string selectedCarrier)
        {
            var model = ShippingByCarrierGraphViewModel.Build(Db,
                                                              (ShippingByCarrierGraphViewModel.PeriodType)periodType,
                                                              selectedCarrier);

            return(new JsonResult
            {
                Data = ValueResult <ShippingByCarrierGraphViewModel> .Success("", model),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public virtual ActionResult GetSalesByProductType(int periodType, int valueType)
        {
            var model = SalesByProductTypeGraphViewModel.Build(Db,
                                                               (SalesByProductTypeGraphViewModel.PeriodType)periodType,
                                                               (SalesByProductTypeGraphViewModel.ValueType)valueType);

            return(new JsonResult
            {
                Data = ValueResult <SalesByDateGraphViewModel> .Success("", model),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public virtual ActionResult DeleteStyle(long id)
        {
            LogI("DeleteStyle, Id=" + id);

            var record = Db.Styles.Get(id);

            record.Deleted = true;

            Db.Items.DeleteAnyLinksToStyleId(id);
            Db.Commit();
            return(Json(ValueResult <long> .Success("", id), JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 25
0
        public virtual ActionResult GetOrderById(long orderId)
        {
            var rowOrderDto = Db.ItemOrderMappings.GetOrderWithItems(WeightService, orderId, false, true, unmaskReferenceStyles: true); //NOTE: Unmask for display
            var rowModel    = new OrderViewModel(rowOrderDto, AccessManager.IsFulfilment);

            rowModel.Items = rowOrderDto.Items.Select(i =>
                                                      new OrderItemViewModel(i,
                                                                             rowOrderDto.OnHold,
                                                                             ShippingUtils.IsOrderPartial(rowOrderDto.OrderStatus))).ToList();

            return(JsonGet(ValueResult <OrderViewModel> .Success("", rowModel)));
        }
Exemplo n.º 26
0
        public virtual ActionResult ReplaceStyleImage(long id)
        {
            LogI("ReplaceStyleImage, itemImageId=" + id);

            var result = MarketImageViewModel.ReplaceStyleImage(Db, LogService, id, Time.GetAppNowTime(), AccessManager.UserId);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <string> .Success(result.Data)));
            }
            return(JsonGet(ValueResult <string> .Error(result.Message)));
        }
Exemplo n.º 27
0
        public virtual ActionResult MarkAsReviewed(long emailId, string orderNumber)
        {
            LogI("MarkAsReviewed, emailId=" + emailId + ", orderNumber=" + orderNumber);
            EmailViewModel.SetReviewedStatus(Db,
                                             emailId,
                                             true,
                                             OrderHistoryService,
                                             orderNumber,
                                             Time.GetAppNowTime(),
                                             AccessManager.UserId);

            return(JsonGet(ValueResult <bool> .Success(null, true)));
        }
        public virtual ActionResult GetInventoryByFeature(int featureId, int valueType, int?selectedFeatureId)
        {
            var model = ItemsByFeatureTypeGraphViewModel.Build(Db,
                                                               (ItemsByFeatureTypeGraphViewModel.ValueType)valueType,
                                                               featureId,
                                                               selectedFeatureId);

            return(new JsonResult
            {
                Data = ValueResult <ItemsByFeatureTypeGraphViewModel> .Success("", model),
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public virtual ActionResult GetAll(long styleItemId, bool includeSnapshoot)
        {
            LogI("GetInventoryHistory, styleItemId=" + styleItemId + ", includeSnapshoot=" + includeSnapshoot);

            //request.Sorts = new List<SortDescriptor>()
            //{
            //    new SortDescriptor("UpdateDate", ListSortDirection.Descending)
            //};

            var items = StyleSizeInventoryHistoryRecordViewModel.GetRecords(Db, styleItemId, includeSnapshoot);

            //var dataSource = items.ToDataSourceResult(request);
            return(JsonGet(ValueResult <IList <StyleSizeInventoryHistoryRecordViewModel> > .Success("", items.Take(50).ToList())));
        }
Exemplo n.º 30
0
        public virtual ActionResult SetListingsForStyleSize(long styleItemId,
                                                            IList <MarketPriceEditViewModel> markets)
        {
            LogI("SetListingForStyleSize, styleItemId=" + styleItemId
                 + ", markets=" + (markets != null ? String.Join("\r\n", markets.Select(m => m.ToString())) : "-"));

            var results = MarketPriceEditViewModel.ApplySale(Db,
                                                             LogService,
                                                             styleItemId,
                                                             markets,
                                                             Time.GetAppNowTime(),
                                                             AccessManager.UserId);

            return(JsonGet(ValueResult <IList <MarketPriceViewViewModel> > .Success("", results)));
        }