Пример #1
0
        /// <summary>执行结算价与商品库存存档任务
        /// </summary>
        public static void RunGoodsStockRecordTask()
        {
            string title = "";

            try
            {
                var date            = DateTime.Now;
                var createStockHour = Configuration.AppSettings["CreateStockHour"];
                var hours           = createStockHour.Split(',');
                if (!hours.Contains(string.Format("{0}", date.Hour)))
                {
                    return;
                }
                var preDate = date.AddMonths(-1);
                //10月份算9月份存档
                var recordDate = new DateTime(preDate.Year, preDate.Month, 1);

                if (_day == DateTime.Now.Day)
                {
                    return;
                }

                if (date.Day == 1)
                {
                    title = "每月月末库存存档";
                    //备份月末库存
                    if (!_goodsStockSettleRecordBll.CopyMonthGoodsStockInfos(recordDate))
                    {
                        ERP.SAL.LogCenter.LogService.LogError("每月月末库存备份失败", "结算价报表存档", null);
                        return;
                    }


                    title = "商品结算价存档";
                    var result = _goodsStockSettleRecordBll.AddSettlePriceAndStockRecord(date.Year, date.Month);
                    if (!result)
                    {
                        ERP.SAL.LogCenter.LogService.LogError(string.Format("{0}年{1}月份商品结算价报表存档失败", preDate.Year, preDate.Month), "商品库存、结算价报表存档", null);
                        return;
                    }

                    //记录销售额存档
                    if (_goodsStockRecord.IsExistsSettlePriceRecord(recordDate))
                    {
                        title = "供应商月销售额存档";
                        if (!_supplierSaleRecordBll.InsertSaleRecord(recordDate))
                        {
                            ERP.SAL.LogCenter.LogService.LogError(string.Format("{0}年{1}月份供应商销售额报表存档失败", preDate.Year, preDate.Month), "供应商月销售额报表存档", null);
                            return;
                        }
                    }
                }
                else
                {
                    //如果是非每月1号先删除所有数据   当月数据的存储
                    var resultData = _supplierSaleRecordBll.SelectSupplierSaleRecordInfos(date);
                    if (!resultData)
                    {
                        ERP.SAL.LogCenter.LogService.LogError(string.Format("{0}年{1}月{2}日供应商每日销售额存档失败", date.Year, date.Month, date.Day), "供应商每日销售额", null);
                        return;
                    }
                }
                _day = DateTime.Now.Day;
            }
            catch (Exception exp)
            {
                ERP.SAL.LogCenter.LogService.LogError("执行结算价与商品库存存档任务", title, exp);
            }
        }
        public void TestSelectSupplierSaleRecordInfosByDateTime()
        {
            //获取临时出入库数据

            _stuIStorageRecordDao.GeTempStorageRecordDetailInfosDateTimeDateTime = (time, dateTime) => new List <TempStorageRecordDetailInfo>();
            var result1 = _supplierSaleRecordBll.SelectSupplierSaleRecordInfos(DateTime.Now);

            Assert.IsTrue(result1);
            _stuIStorageRecordDao.GeTempStorageRecordDetailInfosDateTimeDateTime = (time, dateTime) => new List <TempStorageRecordDetailInfo>
            {
                new TempStorageRecordDetailInfo
                {
                    GoodsId     = new Guid("F1203667-B1B8-4F48-956F-17E524B97B0C"),
                    ID          = Guid.NewGuid(),
                    Quantity    = 10,
                    RealGoodsId = new Guid("B72D12A7-86A6-403A-AE25-0BDFBA092D8F"),
                    StockType   = 4,
                    UnitPrice   = 15,
                    WarehouseId = new Guid("B5BCDF6E-95D5-4AEE-9B19-6EE218255C05")
                }
            };
            //获取采购设置
            _stubIPurchaseSet.GetPurchaseSetList = () => new List <PurchaseSetInfo>();
            var result2 = _supplierSaleRecordBll.SelectSupplierSaleRecordInfos(DateTime.Now);

            Assert.IsTrue(result2);
            _stuIStorageRecordDao.GeTempStorageRecordDetailInfosDateTimeDateTime = (time, dateTime) => new List <TempStorageRecordDetailInfo>
            {
                new TempStorageRecordDetailInfo
                {
                    GoodsId     = new Guid("F1203667-B1B8-4F48-956F-17E524B97B0C"),
                    ID          = Guid.NewGuid(),
                    Quantity    = 10,
                    RealGoodsId = new Guid("B72D12A7-86A6-403A-AE25-0BDFBA092D8F"),
                    StockType   = 12,
                    UnitPrice   = 25,
                    WarehouseId = new Guid("B5BCDF6E-95D5-4AEE-9B19-6EE218255C05")
                },
                new TempStorageRecordDetailInfo
                {
                    GoodsId     = new Guid("F1203667-B1B8-4F48-956F-17E524B97B0C"),
                    ID          = Guid.NewGuid(),
                    Quantity    = 8,
                    RealGoodsId = new Guid("DD587104-1E37-4A11-8A27-077B4262859A"),
                    StockType   = 12,
                    UnitPrice   = 25,
                    WarehouseId = new Guid("B5BCDF6E-95D5-4AEE-9B19-6EE218255C05")
                },
                new TempStorageRecordDetailInfo
                {
                    GoodsId     = new Guid("F1203667-B1B8-4F48-956F-17E524B97B0C"),
                    ID          = Guid.NewGuid(),
                    Quantity    = 8,
                    RealGoodsId = new Guid("DD587104-1E37-4A11-8A27-077B4262859A"),
                    StockType   = 12,
                    UnitPrice   = 25,
                    WarehouseId = new Guid("C9752B7B-D2FB-466E-BA73-53F3C36C864A")
                }
            };

            _stubIGoodsStockRecord.GetGoodsSettlePriceDictsDateTime = (time) => new Dictionary <Guid, decimal>
            {
                { new Guid("E838D1AC-A972-413C-87A6-697861A6D69F"), Convert.ToDecimal("14.8") }
            };

            _stubIPurchaseSet.GetPurchaseSetList = () => new List <PurchaseSetInfo>
            {
                new PurchaseSetInfo
                {
                    GoodsId     = new Guid("A1203667-B1B8-4F48-956F-17E524B97B0C"),
                    WarehouseId = new Guid("C9752B7B-D2FB-466E-BA73-53F3C36C864A"),
                    CompanyId   = new Guid("32CB5565-6EED-4F78-BC82-0571738FD771")
                }
            };

            var result6 = _supplierSaleRecordBll.SelectSupplierSaleRecordInfos(DateTime.Now);

            Assert.IsTrue(result6);
        }