예제 #1
0
 public bool SaveCommodity(CommodityModel model)
 {
     try
     {
         CommodityMaster db = new CommodityMaster()
         {
             IsActive      = true,
             name          = model.name,
             commodityType = model.commodityType,
             IsRestricted  = model.IsRestricted,
             IsPerishable  = model.IsPerishable,
         };
         if (!CheckIfNameExists(model.name))
         {
             tRSEntities4.CommodityMasters.Add(db);
             tRSEntities4.SaveChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
예제 #2
0
        public async Task AddUpdateCommodity(CommodityMaster commodity)
        {
            if (commodity.Id > 0)
            {
                var existing = await _dbContext.CommodityMasters.FirstOrDefaultAsync(_ => _.Id == commodity.Id);

                existing.Name     = commodity.Name;
                existing.EFDate   = commodity.EFDate;
                existing.HSN      = commodity.HSN;
                existing.GST_Rate = commodity.GST_Rate;
            }
            else
            {
                _dbContext.CommodityMasters.Add(new CommodityMaster
                {
                    Name      = commodity.Name,
                    EFDate    = commodity.EFDate,
                    HSN       = commodity.HSN,
                    GST_Rate  = commodity.GST_Rate,
                    CreatedBy = Convert.ToInt32(SessionHelper.UserId),
                    CreatedOn = DateTime.Now
                });
            }
            await _dbContext.SaveChangesAsync();
        }
예제 #3
0
        /// <summary>
        /// 简单创建商品明细
        /// </summary>
        /// <param name="commodityMasterCode"></param>
        /// <param name="batchCode"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public CommonServiceResult CreateCommodityDetail(string commodityMasterCode, string batchCode, int count)
        {
            try
            {
                using (MyBuyingContext context = new MyBuyingContext())
                {
                    // 先查询 商品主表是否存在.
                    CommodityMaster commodityMaster = context.CommodityMasters.Find(commodityMasterCode);
                    if (commodityMaster == null)
                    {
                        // 数据不存在.
                        return(CommonServiceResult.DataNotFoundResult);
                    }

                    // 再查询, 相同的商品主表代码+批次, 是否已存在有数据.
                    int dbDataCount = context.CommodityDetails.Count(p => p.CommodityMasterCode == commodityMasterCode && p.BatchCode == batchCode);
                    if (dbDataCount > 0)
                    {
                        // 数据已存在.
                        return(CommonServiceResult.DataHadExistsResult);
                    }

                    if (count <= 0)
                    {
                        CommonServiceResult errorResult = new CommonServiceResult()
                        {
                            ResultCode    = "COUNT_MUST_MORE_THAN_ZERO",
                            ResultMessage = "数量必须大于零。",
                        };
                        return(errorResult);
                    }


                    HashSet <int> resultCodes = new HashSet <int>();
                    Random        random      = new Random();

                    while (resultCodes.Count < count)
                    {
                        int num = random.Next(1, 99999999);
                        if (!resultCodes.Contains(num))
                        {
                            resultCodes.Add(num);
                        }
                    }

                    foreach (int num in resultCodes)
                    {
                        CommodityDetail commodityDetail = new CommodityDetail()
                        {
                            // 主表代码.
                            CommodityMasterCode = commodityMasterCode,
                            // 批次.
                            BatchCode = batchCode,
                            // 明细代码.
                            CommodityDetailCode = num.ToString("00000000"),

                            // 商品状态 : 可用.
                            CommodityStatus = CommodityDetail.COMMODITY_STATUS_IS_CREATED,
                        };

                        context.CommodityDetails.Add(commodityDetail);
                    }

                    context.SaveChanges();
                }


                return(CommonServiceResult.DefaultSuccessResult);
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
                return(new CommonServiceResult(ex));
            }
        }
예제 #4
0
        /// <summary>
        /// 根据模板创建商品明细
        /// </summary>
        /// <param name="commodityMasterCode"></param>
        /// <param name="batchCode"></param>
        /// <returns></returns>
        public CommonServiceResult CreateCommodityDetailByTemplate(string commodityMasterCode, string batchCode)
        {
            try
            {
                using (MyBuyingContext context = new MyBuyingContext())
                {
                    // 先查询 商品主表是否存在.
                    CommodityMaster commodityMaster = context.CommodityMasters.Find(commodityMasterCode);
                    if (commodityMaster == null)
                    {
                        // 数据不存在.
                        return(CommonServiceResult.DataNotFoundResult);
                    }

                    // 再获取模板数据.
                    List <CommodityDetailTemplate> templateDataList = context.CommodityDetailTemplates.Where(p => p.CommodityMasterCode == commodityMasterCode).ToList();
                    if (templateDataList.Count == 0)
                    {
                        CommonServiceResult errorResult = new CommonServiceResult()
                        {
                            ResultCode    = "WITHOUT_TEMPLATE_DATA",
                            ResultMessage = "未查询到模板数据",
                        };
                        return(errorResult);
                    }

                    // 再查询, 相同的商品主表代码+批次, 是否已存在有数据.
                    int dbDataCount = context.CommodityDetails.Count(p => p.CommodityMasterCode == commodityMasterCode && p.BatchCode == batchCode);
                    if (dbDataCount > 0)
                    {
                        // 数据已存在.
                        return(CommonServiceResult.DataHadExistsResult);
                    }


                    HashSet <int> resultCodes = new HashSet <int>();
                    Random        random      = new Random();

                    while (resultCodes.Count < templateDataList.Count)
                    {
                        int num = random.Next(1, 99999999);
                        if (!resultCodes.Contains(num))
                        {
                            resultCodes.Add(num);
                        }
                    }

                    // 索引.
                    var index = 0;
                    foreach (int num in resultCodes)
                    {
                        CommodityDetail commodityDetail = new CommodityDetail()
                        {
                            // 主表代码.
                            CommodityMasterCode = commodityMasterCode,
                            // 批次.
                            BatchCode = batchCode,
                            // 明细代码.
                            CommodityDetailCode = num.ToString("00000000"),

                            // 商品状态 : 可用.
                            CommodityStatus = CommodityDetail.COMMODITY_STATUS_IS_CREATED,

                            // 附加数据.
                            CommodityDetailExpData = templateDataList[index].CommodityDetailExpData,
                        };

                        context.CommodityDetails.Add(commodityDetail);
                        index++;
                    }

                    context.SaveChanges();
                }


                return(CommonServiceResult.DefaultSuccessResult);
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
                return(new CommonServiceResult(ex));
            }
        }