Exemplo n.º 1
0
        private static ReceptionAction GetReceptionAction(ProductivityImportModel productivityImportModel)
        {
            var reception = new ReceptionAction {
                Id           = productivityImportModel.DocumentNumber.Trim(),
                DocumentName = productivityImportModel.DocumentName,

                StartTime = productivityImportModel.StartTime,
                Duration  = TimeSpan.FromSeconds(productivityImportModel.OperationDuration),
                Operation = new Operation {
                    Name = productivityImportModel.Operation.Trim()
                },
                Employee = GetEmployee(productivityImportModel),

                ReceptionActionDetails = new List <ReceptionActionDetail> {
                    new ReceptionActionDetail {
                        ProductId        = productivityImportModel.ProductId ?? 0,
                        Product          = GetProduct(productivityImportModel),
                        Address          = GetAddress(productivityImportModel.ReceiverAddress),
                        ScanQuantity     = (short)(productivityImportModel.ScanQuantity ?? 0),
                        ProductQuantity  = productivityImportModel.ProductQuantity ?? 0,
                        IsClientScanning = productivityImportModel.IsClientScanning ?? false
                    }
                }
            };

            return(reception);
        }
Exemplo n.º 2
0
        public void CheckPause__BothNotPacking_PauseGreaterThresholdOr20__AddsPause()
        {
            // Arrange:
            var builder   = GetBuilder();
            var momento   = builder.BuildNew();
            var operation = new Operation {
                Name = "Test Operation", Group = OperationGroups.Gathering
            };

            var currentAction = new ReceptionAction()
            {
                StartTime = DateTime.Parse("22.02.2019 8:00:00"),
                Duration  = TimeSpan.FromSeconds(30),
                Operation = operation,
            };

            var nextAction = new ReceptionAction()
            {
                StartTime = DateTime.Parse("22.02.2019 8:10:45"),
                Duration  = TimeSpan.FromSeconds(15),
                Operation = operation,
            };

            var next    = builder.CheckDuration(nextAction, momento);
            var current = builder.CheckDuration(currentAction, momento);

            // Action:
            builder.CheckPause(current, next, momento);

            // Assert:
            var res = momento.DowntimePeriods.FirstOrDefault();

            Assert.That(res, Is.Not.EqualTo(Period.Zero));
        }
Exemplo n.º 3
0
        public void CheckPause__BothNotPacking_CurrentEndGreaterNextStart__ReduseCurrentDuration()
        {
            // Arrange:
            var builder   = GetBuilder();
            var momento   = builder.BuildNew();
            var operation = new Operation {
                Name = "Test Operation", Group = OperationGroups.Gathering
            };
            var originalCurrentDuration = 1000; // ~16 min.

            var currentAction = new ReceptionAction()
            {
                StartTime = DateTime.Parse("22.02.2019 8:00:00"),
                Duration  = TimeSpan.FromSeconds(originalCurrentDuration),
                Operation = operation,
            };

            var nextAction = new ReceptionAction()
            {
                StartTime = DateTime.Parse("22.02.2019 8:10:45"),
                Duration  = TimeSpan.FromSeconds(15),
                Operation = operation,
            };

            var next    = builder.CheckDuration(nextAction, momento);
            var current = builder.CheckDuration(currentAction, momento);

            // Action:
            builder.CheckPause(current, next, momento);

            // Assert:
            var res = momento.ProductivityMap[operation][currentAction];

            Assert.That(res.Duration.TotalSeconds, Is.LessThan(originalCurrentDuration));
        }
Exemplo n.º 4
0
        public void CheckDuration__DoubleAddressAction_ReseptionGroup__AddsPeriodGreaterBy10Sec()
        {
            // Arrange:
            var builder   = GetBuilder();
            var momento   = builder.BuildNew();
            var operation = new Operation {
                Name = "Test Operation", Group = OperationGroups.Reception
            };
            var duration = 1;

            var action = new ReceptionAction()
            {
                StartTime = DateTime.Parse("22.02.2019 8:00:45"),
                Duration  = TimeSpan.FromSeconds(duration),
                Operation = operation,
                ReceptionActionDetails = new List <ReceptionActionDetail>(new [] {
                    new ReceptionActionDetail {
                        ProductQuantity = 1, Product = new Product {
                            ItemVolume = 11
                        }
                    },
                    new ReceptionActionDetail {
                        ProductQuantity = 1, Product = new Product {
                            ItemVolume = 3
                        }
                    },
                })
            };

            // Action:
            builder.CheckDuration(action, momento);

            // Assert:
            var res = momento.ProductivityMap[operation].GetTime().TotalSeconds;

            Assert.That(res, Is.EqualTo(duration + 10));
        }