Пример #1
0
        public GoodsSpec BuildGoodsSpec()
        {
            GoodsSpec.CreateTime = CreateTime;
            GoodsSpec.UpdateTime = UpdateTime;
            GoodsSpec.WxappId    = WxappId;

            GoodsSpec.GoodsId   = GoodsId;
            GoodsSpec.SpecSkuId = null;
            return(GoodsSpec.Mapper <GoodsSpec>());
        }
Пример #2
0
 public void Insert(GoodsSpec rec)
 {
     Exec(GetProcedureString(), rec);
 }
Пример #3
0
Файл: Goods.cs Проект: qdjx/C5
        //更新信息
        public static GoodsInfo GoodsInfoUpload(GoodsInfo goodsInfo, GoodsBrand goodsBrand, List <GoodsKind> goodsKinds, List <GoodsTag> goodsTags
                                                , GoodsPhoto goodsPhoto, GoodsDesc goodsDesc, List <GoodsSpecFull> goodsSpecsFull, GoodsCounter goodsCounter, out AlertMessage alertMessage)
        {
            //权限检查
            if (!AUTH.PermissionCheck(ModuleInfo, ActionInfos.Where(i => i.Name == (goodsInfo.ID == 0 ? "Create" : "Modify")).FirstOrDefault(), out string Message))
            {
                alertMessage = new AlertMessage {
                    Message = Message, Type = AlertType.warning
                };
                return(null);
            }

            //表单检查
            if (string.IsNullOrWhiteSpace(goodsInfo.Name))
            {
                alertMessage = new AlertMessage {
                    Message = "商品代码不能为空。", Type = AlertType.warning
                };
                return(null);
            }
            if (string.IsNullOrWhiteSpace(goodsInfo.Title))
            {
                alertMessage = new AlertMessage {
                    Message = "商品名称不能为空。", Type = AlertType.warning
                };
                return(null);
            }

            using (var EF = new EF())
            {
                //修改是否存在?商品代码唯一?
                GoodsInfo goods_exist      = null;
                GoodsInfo goods_name_exist = null;
                if (goodsInfo.ID == 0)
                {
                    goods_name_exist = EF.GoodsInfos.Where(i => i.Name == goodsInfo.Name).FirstOrDefault();
                }
                else
                {
                    goods_exist = EF.GoodsInfos.Where(i => i.ID == goodsInfo.ID).FirstOrDefault();
                    if (goods_exist == null)
                    {
                        alertMessage = new AlertMessage {
                            Message = string.Format("商品编号[{0}]不存在。", goodsInfo.ID), Type = AlertType.warning
                        };
                        return(null);
                    }
                    goods_name_exist = EF.GoodsInfos.Where(i => i.ID != goodsInfo.ID && i.Name == goodsInfo.Name).FirstOrDefault();
                }
                if (goods_name_exist != null && goods_name_exist.ID > 0)
                {
                    alertMessage = new AlertMessage {
                        Message = string.Format("商品代码[{0}]已被ID[{1}]使用。", goodsInfo.Name, goods_name_exist.ID), Type = AlertType.warning
                    };
                    return(null);
                }

                //数据保存
                using (TransactionScope TS = new TransactionScope())
                {
                    if (goodsInfo.ID == 0)
                    {
                        goods_exist = EF.GoodsInfos.Add(new GoodsInfo {
                            Enabled = true, StateID = (int)GoodsState.架,
                        });
                    }
                    goods_exist.Name  = goodsInfo.Name;
                    goods_exist.Title = goodsInfo.Title;
                    EF.SaveChanges();

                    //品牌
                    var brand_exist = EF.GoodsBrands.Where(i => i.GoodsID == goods_exist.ID).FirstOrDefault();
                    if (brand_exist == null)
                    {
                        if (goodsBrand != null)
                        {
                            EF.GoodsBrands.Add(brand_exist = new GoodsBrand
                            {
                                GoodsID = goods_exist.ID,
                                BrandID = goodsBrand.BrandID,
                            });
                        }
                    }
                    else
                    {
                        if (goodsBrand == null)
                        {
                            EF.GoodsBrands.Remove(brand_exist);
                        }
                        else
                        {
                            brand_exist.BrandID = goodsBrand.BrandID;
                        }
                    }
                    //品类
                    var kinds_exist = EF.GoodsKinds.Where(i => i.GoodsID == goods_exist.ID);
                    foreach (var kind_exist in kinds_exist)
                    {
                        var exist_find = false;
                        foreach (var goodsKind in goodsKinds)
                        {
                            if (goodsKind.KindLevel == kind_exist.KindLevel && goodsKind.KindID == kind_exist.KindID)
                            {
                                exist_find = true;
                                goodsKinds.Remove(goodsKind);
                                break;
                            }
                        }
                        if (!exist_find)
                        {
                            EF.GoodsKinds.Remove(kind_exist);
                        }
                    }
                    foreach (var goodsKind in goodsKinds)
                    {
                        goodsKinds.ForEach(i => i.GoodsID = goods_exist.ID);
                        EF.GoodsKinds.Add(new GoodsKind
                        {
                            GoodsID   = goods_exist.ID,
                            KindLevel = goodsKind.KindLevel,
                            KindID    = goodsKind.KindID,
                        });
                    }
                    //标签
                    var tags_exist = EF.GoodsTags.Where(i => i.GoodsID == goods_exist.ID).ToList();
                    if (tags_exist != null)
                    {
                        EF.GoodsTags.RemoveRange(tags_exist);
                    }
                    if (goodsTags != null)
                    {
                        goodsTags.ForEach(i => i.GoodsID = goods_exist.ID);
                        EF.GoodsTags.AddRange(goodsTags);
                    }
                    //图文
                    var photo_exist = EF.GoodsPhotos.Where(i => i.GoodsID == goods_exist.ID).FirstOrDefault();
                    if (photo_exist == null)
                    {
                        EF.GoodsPhotos.Add(photo_exist = new GoodsPhoto {
                            GoodsID = goods_exist.ID,
                        });
                    }
                    photo_exist.FileIDs = goodsPhoto.FileIDs;
                    var desc_exist = EF.GoodsDescs.Where(i => i.GoodsID == goods_exist.ID).FirstOrDefault();
                    if (desc_exist == null)
                    {
                        EF.GoodsDescs.Add(desc_exist = new GoodsDesc {
                            GoodsID = goods_exist.ID,
                        });
                    }
                    desc_exist.Description = goodsDesc.Description;
                    //规格
                    var specs_exist = EF.GoodsSpecs.Where(i => i.GoodsID == goods_exist.ID).ToList();
                    if (specs_exist != null)
                    {
                        specs_exist.ForEach(i => i.Enabled = false);
                        EF.SaveChanges();
                    }
                    foreach (var goodsSpecFill in goodsSpecsFull)
                    {
                        var spec_exist = EF.GoodsSpecs.Where(i => i.GoodsID == goods_exist.ID && i.SpecValueIDs == goodsSpecFill.SpecValueIDs).FirstOrDefault();
                        if (spec_exist == null)
                        {
                            EF.GoodsSpecs.Add(spec_exist = new GoodsSpec
                            {
                                GoodsID      = goods_exist.ID,
                                SpecValueIDs = goodsSpecFill.SpecValueIDs,
                            });
                        }
                        spec_exist.SpecValues = goodsSpecFill.SpecValues;
                        spec_exist.Enabled    = goodsSpecFill.Enabled;
                        EF.SaveChanges();
                        var specCounter = EF.GoodsCounter.Where(i => i.GoodsID == goods_exist.ID && i.GoodsSpecID == spec_exist.ID).FirstOrDefault();
                        if (specCounter == null)
                        {
                            EF.GoodsCounter.Add(specCounter = new GoodsCounter
                            {
                                GoodsID     = goods_exist.ID,
                                GoodsSpecID = spec_exist.ID,
                            });
                        }
                        specCounter.SKU      = goodsSpecFill.SKU;
                        specCounter.UPC      = goodsSpecFill.UPC;
                        specCounter.EAN      = goodsSpecFill.EAN;
                        specCounter.JAN      = goodsSpecFill.JAN;
                        specCounter.ISBN     = goodsSpecFill.ISBN;
                        specCounter.Price    = goodsSpecFill.Price ?? 0;
                        specCounter.Quantity = goodsSpecFill.Quantity ?? 0;
                    }
                    //柜台
                    var counter_exist = EF.GoodsCounter.Where(i => i.GoodsSpecID == 0 && i.GoodsID == goods_exist.ID).FirstOrDefault();
                    if (counter_exist == null)
                    {
                        EF.GoodsCounter.Add(counter_exist = new GoodsCounter {
                            GoodsSpecID = 0,
                        });
                    }
                    counter_exist.GoodsID  = goods_exist.ID;
                    counter_exist.SKU      = goodsCounter.SKU;
                    counter_exist.UPC      = goodsCounter.UPC;
                    counter_exist.EAN      = goodsCounter.EAN;
                    counter_exist.JAN      = goodsCounter.JAN;
                    counter_exist.ISBN     = goodsCounter.ISBN;
                    counter_exist.Price    = goodsCounter.Price;
                    counter_exist.Quantity = goodsCounter.Quantity;
                    //保存
                    EF.SaveChanges();
                    TS.Complete();
                }

                //更新完成
                alertMessage = null;
                return(goods_exist);
            }
        }
Пример #4
0
 public void Delete(GoodsSpec rec)
 {
     Exec(GetProcedureString(), rec);
 }