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)));
        }
Пример #3
0
        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 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 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));
        }
        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)));
        }
Пример #10
0
    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 CanRoundPriceUpForPremiumSuppliers()
        {
            var item = new ProduceItem(1, 150, "", new DateTime(), 5.3, 1);

            Assert.That(_products.SellingPriceOf(item), Is.EqualTo(7.0));
        }
        public void CanAdjustPriceForPremiumSuppliers()
        {
            var item = new ProduceItem(1, 150, "", new DateTime(), 10.00, 1);

            Assert.That(_products.SellingPriceOf(item), Is.EqualTo(12.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));
        }
Пример #15
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));
        }
Пример #17
0
        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);
            }
        }
Пример #18
0
        /// <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);
        }