public void CanDetermineSellByDate() { var currentDate = DateTime.Now.Date; var produceItem = new ProduceItem(0, 150, "", DateTime.Now.Date, 100, 1); Assert.That(_products.SellByDateOf(produceItem), Is.EqualTo(currentDate.AddDays(14))); }
public void CanAdjustSellByForProblemSuppliers() { var item = new ProduceItem(2, 150, "", DateTime.Now.Date, 100, 1); var currentDate = DateTime.Now.Date; Assert.That(_products.SellByDateOf(item), Is.EqualTo(currentDate.AddDays(14 - 3))); }
public ActionResult Actions() { var msg = new JsonMessage { Erros = false }; var model = new ProduceItem(); switch (DoAction) { case ActionType.Delete: var id = GuiId.FirstOrDefault(); var obj = _da.GetDetailById(id); obj.IsDeleted = true; _da.Save(); return(Json(new JsonMessage(false, ""))); break; } return(Json(1)); }
public void CanParseProduceFile() { var parser = new ProduceFileParser(); ProduceItem firstItem = null; var totalItems = 0; foreach (var item in parser.Parse(@".\Data\produce.csv")) { if (firstItem == null) { firstItem = item; } totalItems++; } Assert.That(totalItems, Is.EqualTo(12)); Assert.That(firstItem.SupplierId, Is.EqualTo(15)); Assert.That(firstItem.ProductCode, Is.EqualTo(1101)); Assert.That(firstItem.ProductDescription, Is.EqualTo("Apples 1kg Golden Delicious. The sweetest Apples! Always a favourite. Love, Mrs. Hollingberry")); Assert.That(firstItem.DeliveryDate, Is.EqualTo(new DateTime(2012, 02, 15))); Assert.That(firstItem.UnitPrice, Is.EqualTo(15.05)); Assert.That(firstItem.NumberOfUnits, Is.EqualTo(5)); }
public void CanRoundPriceUpForPremiumSuppliers() { var item = new ProduceItem(1, 150, "", new DateTime(), 5.3, 1); Assert.That(_products.SellingPriceOf(item), Is.EqualTo(7.0)); }
public void CanCalculatePriceFromCostAndProductCode() { var produceItem = new ProduceItem(0, 150, "", DateTime.Now.Date, 100, 1); Assert.That(_products.SellingPriceOf(produceItem), Is.EqualTo(110)); }
public void CanCalculateMarkupFromProductCode() { var produceItem = new ProduceItem(0, 150, "", DateTime.Now.Date, 100, 1); Assert.That(_products.MarkupOf(produceItem), Is.EqualTo(1.1)); }
protected virtual void CreateComponent() { GameObject progressBarBehaviorGo = Resources.Load(PROGRESS_PREFAB_NAME, typeof(GameObject)) as GameObject; m_ProgressBarBehaviorDictionary.Add(4, (Instantiate(progressBarBehaviorGo) as GameObject).GetComponent <ProgressBarBehavior>()); #region Store if (this.BuildingConfigData.CanStoreGold) { StoreGold storeGold = this.gameObject.AddComponent <StoreGold>(); storeGold.BuildingLogicData = this.BuildingLogicData; storeGold.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanStoreOil) { StoreOil storeOil = this.gameObject.AddComponent <StoreOil>(); storeOil.BuildingLogicData = this.BuildingLogicData; storeOil.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanStoreFood) { StoreFood storeFood = this.gameObject.AddComponent <StoreFood>(); storeFood.BuildingLogicData = this.BuildingLogicData; storeFood.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanStoreItem) { StoreItem storeItem = this.gameObject.AddComponent <StoreItem>(); storeItem.BuildingLogicData = this.BuildingLogicData; storeItem.BuildingBehavior = this.BuildingBehavior; } #endregion #region Collection if (this.BuildingConfigData.CanProduceFood) { CollectFood collectFood = this.gameObject.AddComponent <CollectFood>(); collectFood.BuildingLogicData = this.BuildingLogicData; collectFood.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanProduceGold) { CollectGold collectGold = this.gameObject.AddComponent <CollectGold>(); collectGold.BuildingLogicData = this.BuildingLogicData; collectGold.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanProduceOil) { CollectOil collectOil = this.gameObject.AddComponent <CollectOil>(); collectOil.BuildingLogicData = this.BuildingLogicData; collectOil.BuildingBehavior = this.BuildingBehavior; } #endregion #region Produce if (this.BuildingConfigData.CanProduceArmy) { ProduceArmy produceArmy = this.gameObject.AddComponent <ProduceArmy>(); produceArmy.BuildingLogicData = this.BuildingLogicData; m_ProgressBarBehaviorDictionary.Add(3, (Instantiate(progressBarBehaviorGo) as GameObject).GetComponent <ProgressBarBehavior>()); produceArmy.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanProduceItem) { ProduceItem produceItem = this.gameObject.AddComponent <ProduceItem>(); produceItem.BuildingLogicData = this.BuildingLogicData; m_ProgressBarBehaviorDictionary.Add(1, (Instantiate(progressBarBehaviorGo) as GameObject).GetComponent <ProgressBarBehavior>()); produceItem.BuildingBehavior = this.BuildingBehavior; } #endregion #region Upgrade if (this.BuildingConfigData.CanUpgradeArmy) { UpgradeArmy upgradeArmy = this.gameObject.AddComponent <UpgradeArmy>(); upgradeArmy.BuildingLogicObject = this.BuildingLogicData; m_ProgressBarBehaviorDictionary.Add(2, (Instantiate(progressBarBehaviorGo) as GameObject).GetComponent <ProgressBarBehavior>()); upgradeArmy.BuildingBehavior = this.BuildingBehavior; } if (this.BuildingConfigData.CanUpgradeItem) { UpgradeItem upgradeItem = this.gameObject.AddComponent <UpgradeItem>(); upgradeItem.BuildingLogicObject = this.BuildingLogicData; m_ProgressBarBehaviorDictionary.Add(0, (Instantiate(progressBarBehaviorGo) as GameObject).GetComponent <ProgressBarBehavior>()); upgradeItem.BuildingBehavior = this.BuildingBehavior; } #endregion }
public void CanAdjustPriceForPremiumSuppliers() { var item = new ProduceItem(1, 150, "", new DateTime(), 10.00, 1); Assert.That(_products.SellingPriceOf(item), Is.EqualTo(12.0)); }
public ActionResult Actions() { var msg = new JsonMessage { Erros = false }; var model = new ProduceItem(); switch (DoAction) { case ActionType.Add: UpdateModel(model); var produce = new Produce() { Quantity = model.Quantity, ProductId = model.ProductId, ProduceProductDetails = new List <ProduceProductDetail>(), UserId = UserItem.UserId, DateCreate = DateTime.Now.TotalSeconds(), Isdelete = false, Status = (int)ProduceStatus.New, DateProduce = model.DateProduce, MapProduceRequestWares = new List <MapProduceRequestWare>() }; var lst = GetProducts(model.ToDayCode, model.ProductId); foreach (var produceProductDetailItem in lst) { produce.ProduceProductDetails.Add(new ProduceProductDetail() { ProductId = produceProductDetailItem.ProductId, Quantity = produceProductDetailItem.Quantity, Weight = produceProductDetailItem.Weight, SizeId = produceProductDetailItem.SizeId, ProductParentId = produceProductDetailItem.ProductParentId }); } _produceDa.Add(produce); var dnRequests = _requestWareDa.GetWaittingProduceByTodayCode(model.ToDayCode, model.ProductId); foreach (var dnRequestWare in dnRequests) { dnRequestWare.Status = (int)CORE.DNRequestStatus.Processing; produce.MapProduceRequestWares.Add(new MapProduceRequestWare() { ID = Guid.NewGuid(), RequestWareID = dnRequestWare.GID }); } _produceDa.Save(); // update status order detail is produce _requestWareDa.Save(); break; default: msg.Message = "Bạn chưa được phân quyền cho chức năng này."; msg.Erros = true; break; } return(Json(msg, JsonRequestBehavior.AllowGet)); }
public void CanAdjustPriceForProblemSuppliers() { var item = new ProduceItem(2, 150, "", new DateTime(), 10.00, 1); Assert.That(_products.SellingPriceOf(item), Is.EqualTo(11.0 - 2)); }
public void CreateItemsPolyMorphism() { try { IRecipeItem item = new PantryItem(); // pantry items Assert.IsTrue(item.IngredientType == enumIngredientType.Pantry); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.UnitCost == 0); item = new PantryItem("name1", "unitname", true, 5, 100); Assert.IsTrue(item.Units == 100); Assert.IsTrue(item.UnitCost == 5); Assert.IsTrue(item.IsOrganic); item = new PantryItem("name", "unitname2", false, 2, 10); Assert.IsTrue(item.Units == 10); Assert.IsTrue(item.UnitCost == 2); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.Name == "name"); Assert.IsTrue(item.UnitName == "unitname2"); item = new PantryItem("name1", "unitname", true, 0); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); item = new PantryItem("name1", "unitname3", false, 0); Assert.IsTrue(item.Units == 0); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); Assert.IsTrue(item.UnitName == "unitname3"); Assert.IsTrue(item.IngredientType == enumIngredientType.Pantry); // produce items item = new ProduceItem(); Assert.IsTrue(item.IngredientType == enumIngredientType.Produce); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.UnitCost == 0); item = new ProduceItem("name1", "unitname", true, 5, 100); Assert.IsTrue(item.Units == 100); Assert.IsTrue(item.UnitCost == 5); Assert.IsTrue(item.IsOrganic); item = new ProduceItem("name", "unitname2", false, 2, 10); Assert.IsTrue(item.Units == 10); Assert.IsTrue(item.UnitCost == 2); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.Name == "name"); Assert.IsTrue(item.UnitName == "unitname2"); item = new ProduceItem("name1", "unitname", true, 0); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); item = new ProduceItem("name1", "unitname3", false, 0); Assert.IsTrue(item.Units == 0); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); Assert.IsTrue(item.UnitName == "unitname3"); // meat poultry items item = new MeatPoultryItem(); Assert.IsTrue(item.IngredientType == enumIngredientType.MeatPoultry); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.UnitCost == 0); item = new MeatPoultryItem("name1", "unitname", true, 5, 100); Assert.IsTrue(item.Units == 100); Assert.IsTrue(item.UnitCost == 5); Assert.IsTrue(item.IsOrganic); item = new MeatPoultryItem("name", "unitname2", false, 2, 10); Assert.IsTrue(item.Units == 10); Assert.IsTrue(item.UnitCost == 2); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.Name == "name"); Assert.IsTrue(item.UnitName == "unitname2"); item = new MeatPoultryItem("name1", "unitname", true, 0); Assert.IsTrue(item.Units == 0); Assert.IsTrue(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); item = new MeatPoultryItem("name1", "unitname3", false, 0); Assert.IsTrue(item.Units == 0); Assert.IsFalse(item.IsOrganic); Assert.IsTrue(item.UnitCost == 0); Assert.IsTrue(item.UnitName == "unitname3"); Assert.IsTrue(item.IngredientType == enumIngredientType.MeatPoultry); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); Assert.IsTrue(false); } }
/// <summary> /// Convert DataTable to daily report list /// </summary> /// <param name="tb"></param> /// <param name="tbName"></param> /// <param name="processedLines"></param> /// <returns></returns> public static List <DailyReport> DataTable2DailyReport(DataTable tb, string tbName, out int processedLines) { /*var rows = tb.AsEnumerable(); * * var query = from q in rows * group q by q.Field<DateTime>("BEGIN_TIME").ToString("yyyy/MM/dd") into r * select new DailyReport{ * ProgramCount = r.Count() , * AverageProgramTimeLength = r.Average( e => e.Field<object>(2).TryToDecimal() ) , * }; * * return query.ToList();*/ /*DataView dv = tbSrc.DefaultView; * dv.Sort = "BEGIN_TIME Asc"; * DataTable tb = dv.ToTable();*/ tb.DefaultView.Sort = "BEGIN_TIME Asc"; tb = tb.DefaultView.ToTable(); processedLines = 0; var rptList = new List <DailyReport>(); var dic = new Dictionary <string, List <ProduceItem> >(); for (int j = 0; j < tb.Rows.Count; j++) { DataRow row = tb.Rows[j]; var beginStr = row[4].TrimToString(); if (!string.IsNullOrEmpty(beginStr)) { processedLines++; var item = new ProduceItem { ProgramLength = row[2].TryToDecimal(), TaskDuration = row[6].TryToDecimal(), Begin = DateTime.Parse(beginStr), }; var endStr = row[5].TrimToString(); if (!string.IsNullOrEmpty(endStr)) { item.End = DateTime.Parse(endStr); } string key = item.Begin.ToString("yyyy-MM-dd"); if (!dic.ContainsKey(key)) { dic.Add(key, new List <ProduceItem>()); } dic[key].Add(item); } } //tb.Dispose(); foreach (string dateKey in dic.Keys) { var list = dic[dateKey]; decimal finished = 0; decimal totalLength = 0; decimal totalTaskDuration = 0; int progCount = list.Count; for (int i = 0; i < progCount; i++) { var item = list[i]; if (item.End != null) { finished++; totalLength += item.ProgramLength; totalTaskDuration += item.TaskDuration; } } var rpt = new DailyReport() { BeginDate = dateKey, ProgramCount = progCount, AccomplishedProgramCount = (int)finished, TotalProgramTimeLength = totalLength, TotalTaskDuration = totalTaskDuration, }; if (finished > 0) { //平均时长(分) //rpt.AverageProgramTimeLength = Math.Round(totalLength / finished, 1); //平均耗时(分) //rpt.AverageTaskDuration = Math.Round(totalTaskDuration / finished, 1); //完成率(百分数) rpt.AccomplishmentRatio = Math.Round(finished / progCount * 100, 2); //效率 //excel原始表格中,会将几秒钟的任务认为是0分钟,所以会出现执行时长为0的情况 if (totalLength > 0 && totalTaskDuration > 0) { rpt.Efficiency = Math.Round(totalLength / totalTaskDuration, 5); } } rptList.Add(rpt); } return(rptList); }