private dynamic HandleSaleorderDetailPage(dynamic arg) { if (!this.CurrentUser.HasClaim("admin")) { return(403); } var id = (int)arg.id; var so = this.SiteDatabase.GetById <SaleOrder>(id); if (so == null) { return(404); } var dummyPage = new Page(); List <AffiliateRewardsClaim> rewardList = null; List <AffiliateRewardsClaim> discountCodes = null; if (so.Customer != null && so.Customer.User != null) { int userId = so.Customer.User.Id; rewardList = AffiliateRewardsClaim.GetRewards(this.SiteDatabase, userId); discountCodes = AffiliateRewardsClaim.GetDiscountCodes(this.SiteDatabase, userId); } var data = new { SaleOrder = so, PaymentLogs = so.GetPaymentLogs(this.SiteDatabase), RowVerions = so.GetRowVersions(this.SiteDatabase), PaymentMethods = AccountingSystem.AccountingSystemModule.GetCashAccounts(this.SiteDatabase), InventoryRequests = this.SiteDatabase.Query <InventoryItem>().Where(i => i.SaleOrderId == so.Id).ToList(), LogisticsCompanies = this.SiteDatabase.Query <LogisticsCompany>().ToList(), AffiliateRewardsClaims = rewardList, AffiliateDiscountCodes = discountCodes }; return(View["/Admin/saleorderdetailmanager", new StandardModel(this, dummyPage, data)]); }
private dynamic HandleMemberDetailPage(dynamic arg) { if (!this.CurrentUser.HasClaim("admin")) { return(403); } var member = this.SiteDatabase.GetById <NcbUser>((int)arg.id); var dummyPage = new Page(); var data = new { Member = member, LogisticsCompanies = this.SiteDatabase.Query <LogisticsCompany>().ToList(), AffiliateRewardsClaims = AffiliateRewardsClaim.GetRewards(this.SiteDatabase, member.Id), AffiliateDiscountCodes = AffiliateRewardsClaim.GetDiscountCodes(this.SiteDatabase, member.Id), PurchaseHistory = SaleOrder.GetFromNcbUserId(member.Id, this.SiteDatabase) }; return(View["Admin/memberprofile-admin", new StandardModel(this, dummyPage, data)]); }
private dynamic HandleSaleorderDetailPage(dynamic arg) { if (!this.CurrentUser.HasClaim("admin")) { return(403); } var id = (int)arg.id; var so = this.SiteDatabase.GetById <SaleOrder>(id); if (so == null) { return(404); } var dummyPage = new Page(); List <AffiliateRewardsClaim> rewardList = null; List <AffiliateRewardsClaim> discountCodes = null; if (so.Customer != null && so.Customer.User != null) { int userId = so.Customer.User.Id; rewardList = AffiliateRewardsClaim.GetRewards(this.SiteDatabase, userId); discountCodes = AffiliateRewardsClaim.GetDiscountCodes(this.SiteDatabase, userId); } if (so.InboundDate == null) { try { // walk back the version and see which one got set to inbound var lastInboundStatus = so.GetRowVersions(this.SiteDatabase) .Select(o => ((JObject)o).ToObject <SaleOrder>()) .Where(s => s.Status == "Inbound") .OrderBy(s => s.__updatedAt) .Select(s => (DateTime?)s.__updatedAt) .LastOrDefault(); so.InboundDate = lastInboundStatus; this.SiteDatabase.UpsertRecord(so); } catch (Exception) { } } // process the inventory InventoryItemModule.ProcessSaleOrderUpdate(this.SiteDatabase, so, false, DateTime.Now); var inventoryItems = this.SiteDatabase.Query <InventoryItem>().Where(i => i.SaleOrderId == so.Id).ToList(); var inventoryToTitleDict = new JObject(); foreach (var item in inventoryItems) { var product = this.SiteDatabase.GetById <Product>(item.ProductId); string productSku = null; if (product.Url.StartsWith("/products/laptop-sku/")) { productSku = product.Title; // before year 2021 sku system } else if (product.Url.Contains("/laptop/")) { productSku = product.GetSKUNumber(so); // since year 2021 sku system } else { productSku = product.Title; } inventoryToTitleDict.Add($"inv-{item.Id}", productSku); } var data = new { SaleOrder = so, PaymentLogs = so.GetPaymentLogs(this.SiteDatabase), RowVerions = so.GetRowVersions(this.SiteDatabase), PaymentMethods = AccountingSystem.AccountingSystemModule.GetCashAccounts(this.SiteDatabase), InventoryRequests = inventoryItems, InventoryToTitleDict = inventoryToTitleDict, LogisticsCompanies = this.SiteDatabase.Query <LogisticsCompany>().ToList(), AffiliateRewardsClaims = rewardList, AffiliateDiscountCodes = discountCodes }; return(View["/Admin/saleorderdetailmanager", new StandardModel(this, dummyPage, data)]); }