/// <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); }