private void BindFromDB() { try { var rep = new SkuRepository(); var skus = rep.Search(1, ""); var dt = new DataTable(); dt.Columns.Add("Nome"); dt.Columns.Add("Descricao"); dt.Columns.Add("ProductCode"); dt.Columns.Add("IsStockAvailable"); dt.Columns.Add("Comission"); dt.Columns.Add("SellingPrice"); dt.Columns.Add("UnitPrice"); DataRow dr; foreach (var p in skus) { dr = dt.NewRow(); dr[0] = p.Description; dr[1] = p.Description; dr[2] = p.SKU; dr[3] = string.Empty; dr[4] = string.Empty; dr[5] = p.Valor; dr[6] = p.Valor; dt.Rows.Add(dr); } dgProdutos.DataSource = dt; } catch (Exception ex) { MessageBox.Show(ex.Message, "Erro"); } }
/// <summary> /// 添加信息信息 /// </summary> /// <param name="inputDtos">要添加的店铺信息DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> AddCartGoodses(params CartGoodsInputDto[] inputDtos) { CartGoodsRepository.UnitOfWork.TransactionEnabled = true; List <string> names = new List <string>(); foreach (CartGoodsInputDto dto in inputDtos) { CartGoods cartGoods = dto.MapTo <CartGoods>(); if (dto.GoodsId.HasValue && dto.GoodsId.Value > 0) { Goods.Models.Goods goods = GoodsRepository.GetByKey(dto.GoodsId.Value); if (goods == null) { throw new Exception("商品不存在"); } cartGoods.Goods = goods; } if (dto.UserId.HasValue && dto.UserId.Value > 0) { User user = UserRepository.GetByKey(dto.UserId.Value); if (user == null) { throw new Exception("用户不存在"); } cartGoods.User = user; } if (dto.SkuId.HasValue && dto.SkuId.Value > 0) { Goods.Models.Sku sku = SkuRepository.GetByKey(dto.SkuId.Value); if (sku == null) { throw new Exception("Sku不存在"); } cartGoods.Sku = sku; } //判断商品的重复性,如果是相同商品相同规格只改变购物数量 CartGoods repeatCartGoods = CartGoodsRepository.Entities.SingleOrDefault(cg => cg.User.Id == dto.UserId.Value && cg.Goods.Id == dto.GoodsId.Value && cg.Sku.Id == dto.SkuId.Value); if (repeatCartGoods == null) { await CartGoodsRepository.InsertAsync(cartGoods); } else { repeatCartGoods.BuyCount += dto.BuyCount; await CartGoodsRepository.UpdateAsync(repeatCartGoods); } names.Add(cartGoods.Name); } return(await CartGoodsRepository.UnitOfWork.SaveChangesAsync() > 0 ? new OperationResult(OperationResultType.Success, $"“{names.ExpandAndToString()}”创建成功") : OperationResult.NoChanged); }
public ConfigurationViewModel() { _skuRepository = new SkuRepository(); REM1 = new ObservableCollection <REM1>(FetchREM1()); REM2 = new ObservableCollection <REM2>(FetchREM2()); var seasonalData = _skuRepository.RetrieveQuery(SqlQueries.FetchSeasonalData).Tables; EuroPrice = FetcEuroLabel(); _latestSeason = GetSeasonalDataFor(seasonalData, "TOPPAGE"); _bottomSeason = GetSeasonalDataFor(seasonalData, "BOTTOMPAGE"); InitializeCommands(); }
public List <Sales> GetSales(DataSet CordnersStock, List <SpecialPrice> specialPrices) { var sales = new List <Sales>(); var euro = new SkuRepository().RetrieveQuery(SqlQueries.FetchEUROPrice); foreach (var specialPrice in specialPrices) { var stocks = CordnersStock.Tables[0].Select($"NEWSTYLE = {specialPrice.sku}"); foreach (DataRow dr in stocks) { string rrp; if (specialPrice.store_id == 2) { rrp = GenerateEuroPrice(Convert.ToDecimal(dr["SELL"].ToString()), Convert.ToDecimal(euro.Tables[0].Rows[0]["PRICE"])); } else { rrp = dr["SELL"].ToString(); } sales.Add(new Sales() { MasterSupplier = dr["MasterSupplier"].ToString().Trim(), Color = dr["MasterColour"].ToString(), Style = dr["STYPE"].ToString(), StockType = dr["MasterStocktype"].ToString(), Category = dr["MasterSubDept"].ToString(), Season = dr["User1"].ToString(), Name = dr["SHORT"].ToString(), Sales_Price = specialPrice.price, Price_From = specialPrice.price_from.Trim(), Price_To = specialPrice.price_to.Trim(), SKU = specialPrice.sku.Trim(), RRP = rrp, Discount = (int)Math.Floor((Convert.ToDecimal(rrp) - specialPrice.price) / Convert.ToDecimal(rrp) * 100), Store = Convert.ToInt16(specialPrice.store_id) == 1 ? "UK" : "Ireland" }); } } return(sales); }
public SalesService() { _skuRepository = new SkuRepository(); }
/// <summary> /// 取引終了時の在庫更新を行います。 /// </summary> /// <param name="parameters">パラメーター。</param> /// <param name="client">Cosmos DB クライアント。</param> /// <param name="log">ロガー。</param> /// <returns>非同期の操作を表すタスク。TResult パラメーターの値には、処理の結果が含まれます。</returns> /// <remarks>BOX で付与されたタイムスタンプ順に処理されます。</remarks> private static async Task <(BoxResponse, RepositoryResult)> UpdateClosingStocksAsync( IList <UpdateStocksParameter> parameters, DocumentClient client, ILogger log) { var terminalRepo = new TerminalRepository(client); var boxRepo = new BoxRepository(client); var skuRepo = new SkuRepository(client); var stockRepo = new StockRepository(client); var cartRepo = new CartRepository(new CartServiceApi(StaticHttpClient.Instance)); parameters = parameters .OrderBy(arg => arg.Timestamp) .ToArray(); foreach (var parameter in parameters) { // 在庫を設定します。 var setStocksResult = await stockRepo.SetStocksAsync( parameter.BoxId, "1", parameter.Items.Select(arg => (arg.SkuCode, arg.Quantity)).ToArray()); if (!setStocksResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(setStocksResult), setStocksResult); } // ターミナルを取得します。 (var terminalResult, var terminal) = await terminalRepo.FindByBoxIdAsync(parameter.BoxId); if (!terminalResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(terminalResult), terminalResult); } // BOX を取得します。 (var boxResult, var box) = await boxRepo.FindByBoxIdAsync(parameter.BoxId); if (!boxResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(boxResult), boxResult); } // 取引開始時と比較して、在庫数に差異がある BOX 商品を取得します。 (var stockDifferencesResult, var stockReferrences) = await stockRepo.GetStockDifferencesAsync(parameter.BoxId); if (!stockDifferencesResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(stockDifferencesResult), stockDifferencesResult); } // BOX 商品を POS 商品に変換し、 // 取引開始時と比較して、在庫数に差異がある POS 商品を抽出します。 var items = stockReferrences .Select(arg => (arg.SkuCode, arg.Quantity)) .ToArray(); (var posItemsResult, var posItems) = await BoxItemsToPosItemsAsync(terminal.CompanyCode, terminal.StoreCode, items, skuRepo); if (!posItemsResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(posItemsResult), posItemsResult); } var changedPosItems = posItems .Where(arg => arg.Quantity != 0) .Select(arg => (arg.ItemCode, 0 < arg.Quantity ? 1 : 2, Math.Abs(arg.Quantity))) .ToArray(); if (changedPosItems.Any()) { // 取引を確定します。 var subtotalResult = await cartRepo.SubtotalAsync(box.CartId, changedPosItems); if (!subtotalResult.IsSuccess) { return(BoxResponseFactory.CreateError <BoxResponse>(subtotalResult), subtotalResult); } var createPaymentResult = await cartRepo.CreatePaymentsAsync(box.CartId, new[] { ("01", 0M) });
public MagentoSpecialPrice() { skuRepository = new SkuRepository(); }
/// <summary> /// 添加店铺信息信息 /// </summary> /// <param name="inputDtos">要添加的店铺信息DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> AddGoodss(params GoodsInputDto[] inputDtos) { GoodsRepository.UnitOfWork.TransactionEnabled = true; List <string> names = new List <string>(); foreach (GoodsInputDto dto in inputDtos) { Models.Goods goods = new Models.Goods()//商品其他属性的绑定 { Name = dto.Name, GoodsPics = dto.GoodsPics, Description = dto.Description, Detail = dto.Detail, Price = dto.Price, Stock = dto.Stock, GoodsNumber = dto.GoodsNumber, BarCode = dto.BarCode, CreatedTime = DateTime.Now, BeginTime = DateTime.Now, IsGuarantee = dto.IsGuarantee, IsReceipt = dto.IsReceipt, IsSevenDayReplacement = dto.IsSevenDayReplacement, IsReplacement = dto.IsReplacement, IsCommend = dto.IsCommend, IsLocked = false }; //店铺 if (dto.ShopId.HasValue && dto.ShopId.Value > 0) { Shop.Models.Shop shop = await ShopRepository.GetByKeyAsync(dto.ShopId.Value); if (shop == null) { return(new OperationResult(OperationResultType.QueryNull, "店铺不存在")); } goods.Shop = shop; shop.Goodses.Add(goods); } //分类 if (dto.CategoryId.HasValue && dto.CategoryId.Value > 0) { Category category = await CategoryRepository.GetByKeyAsync(dto.CategoryId.Value); if (category == null) { return(new OperationResult(OperationResultType.QueryNull, "发布不存在")); } goods.Category = category; category.Goodses.Add(goods); } //运费模板 if (dto.ExpressTemplateId.HasValue && dto.ExpressTemplateId.Value > 0) { Shop.Models.ExpressTemplate expressTemplate = await ExpressTemplateRepository.GetByKeyAsync(dto.ExpressTemplateId.Value); if (expressTemplate == null) { return(new OperationResult(OperationResultType.QueryNull, "运费模板不存在")); } goods.ExpressTemplate = expressTemplate; } //商品属性 if (dto.GoodsAttrs.Count > 0) { foreach (Dtos.GoodsAttr goodsAttrDto in dto.GoodsAttrs) { //Hmh.Core.Shop.Models.SpecialExpressAddress specialExpressAddress = specialExpressAddressDto.MapTo<Hmh.Core.Shop.Models.SpecialExpressAddress>(); Models.GoodsAttr goodsAttr = new Models.GoodsAttr() { AttrName = goodsAttrDto.AttrName, AttrValue = goodsAttrDto.AttrValue }; await GoodsAttrRepository.InsertAsync(goodsAttr); goodsAttr.Goods = goods; goods.GoodsAttrs.Add(goodsAttr); } } //商品Sku if (dto.Skus.Count > 0) { foreach (Dtos.Sku skuDto in dto.Skus) { if (skuDto.Names.Count != skuDto.Values.Count) { return(new OperationResult(OperationResultType.Error, "规格名称和值不对应")); } Models.Sku sku = new Models.Sku() { Names = skuDto.Names.ExpandAndToString(), Values = skuDto.Values.ExpandAndToString(), Price = skuDto.Price, Stock = skuDto.Stock, GoodsNumber = skuDto.GoodsNumber, BarCode = skuDto.BarCode, SkuPic = skuDto.SkuPic }; await SkuRepository.InsertAsync(sku); sku.Goods = goods; goods.Skus.Add(sku); } } int id = await GoodsRepository.InsertAsync(goods); //if (!(id > 0)) // return new OperationResult(OperationResultType.Error, "添加失败"); names.Add(goods.Name); } return(await GoodsRepository.UnitOfWork.SaveChangesAsync() > 0 ? new OperationResult(OperationResultType.Success, $"商品“{names.ExpandAndToString()}”创建成功") : OperationResult.NoChanged); }