Beispiel #1
0
 /// <summary>
 ///     Testdata
 /// </summary>
 /// <returns>TestValues</returns>
 public static List <TestValue> TestValuesOkRewetStandardDeviation(IncontinencePadTestValue expected)
 => new List <TestValue>
 {
     new TestValue
     {
         TestValueType            = TestValueType.StandardDeviation,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = new IncontinencePadTestValue {
             TestType = TestTypeIncontinencePad.AcquisitionTimeAndRewet
         }
     },
     new TestValue
     {
         TestValueType            = TestValueType.StandardDeviation,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = expected
     },
     new TestValue
     {
         TestValueType            = TestValueType.StandardDeviation,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = new IncontinencePadTestValue {
             TestType = TestTypeIncontinencePad.Retention
         }
     }
 };
        private static void UpdateInkoRewetStDev(TestSheet testSheet, TestValue rewetTestAvg, TestValue rewetTestStDev)
        {
            var tempInko = new IncontinencePadTestValue();
            var counter  = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.RewetFree))
                )
            {
                tempInko.RewetFreeDryValue   += Math.Pow(testValue.IncontinencePadTestValue.RewetFreeDryValue - rewetTestAvg.IncontinencePadTestValue.RewetFreeDryValue, 2);
                tempInko.RewetFreeWetValue   += Math.Pow(testValue.IncontinencePadTestValue.RewetFreeWetValue - rewetTestAvg.IncontinencePadTestValue.RewetFreeWetValue, 2);
                tempInko.RewetFreeDifference += Math.Pow(testValue.IncontinencePadTestValue.RewetFreeDifference - rewetTestAvg.IncontinencePadTestValue.RewetFreeDifference, 2);
                counter++;
            }
            if (counter < 2)
            {
                rewetTestStDev.IncontinencePadTestValue.RewetFreeDryValue   = 0;
                rewetTestStDev.IncontinencePadTestValue.RewetFreeWetValue   = 0;
                rewetTestStDev.IncontinencePadTestValue.RewetFreeDifference = 0;
            }
            else
            {
                counter--;
                rewetTestStDev.IncontinencePadTestValue.RewetFreeDryValue   = Math.Sqrt(tempInko.RewetFreeDryValue / counter);
                rewetTestStDev.IncontinencePadTestValue.RewetFreeWetValue   = Math.Sqrt(tempInko.RewetFreeWetValue / counter);
                rewetTestStDev.IncontinencePadTestValue.RewetFreeDifference = Math.Sqrt(tempInko.RewetFreeDifference / counter);
            }
        }
Beispiel #3
0
 /// <summary>
 ///     Testdata
 /// </summary>
 /// <returns>TestValues</returns>
 public static List <TestValue> TestValuesOkRetentionTimeSingle(IncontinencePadTestValue expected)
 => new List <TestValue>
 {
     new TestValue
     {
         TestValueType            = TestValueType.Single,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = new IncontinencePadTestValue {
             TestType = TestTypeIncontinencePad.AcquisitionTimeAndRewet
         }
     },
     new TestValue
     {
         TestValueType            = TestValueType.Single,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = expected
     },
     new TestValue
     {
         TestValueType            = TestValueType.Single,
         ArticleTestType          = ArticleType.IncontinencePad,
         IncontinencePadTestValue = new IncontinencePadTestValue {
             TestType = TestTypeIncontinencePad.RewetFree
         }
     }
 };
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewAquisitionTest(InkoAquisitionEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime   = viewModel.ProductionCodeTime,
                ExpireMonth           = viewModel.ExpireMonth,
                ExpireYear            = viewModel.ExpireYear,
                AcquisitionTimeFirst  = viewModel.AquisitionAddition1,
                AcquisitionTimeSecond = viewModel.AquisitionAddition2,
                AcquisitionTimeThird  = viewModel.AquisitionAddition3,
                AcquisitionWeight     = viewModel.InkoWeight,
                RewetAfterAcquisitionTimeDryWeight = viewModel.FPDry,
                RewetAfterAcquisitionTimeWetWeight = viewModel.FPWet,
                TestType = TestTypeIncontinencePad.AcquisitionTimeAndRewet
            };

            incontinencePadTestValue           = CalculateInkoAquisitionValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        private static void UpdateInkoAquisitionStDev(TestSheet testSheet, TestValue aquisitionTestAvg, TestValue aquisitionTestStDev)
        {
            var tempInko = new IncontinencePadTestValue();
            var counter  = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.AcquisitionTimeAndRewet))
                )
            {
                tempInko.AcquisitionTimeFirst += Math.Pow(
                    testValue.IncontinencePadTestValue.AcquisitionTimeFirst - aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirst,
                    2);
                tempInko.AcquisitionTimeSecond +=
                    Math.Pow(testValue.IncontinencePadTestValue.AcquisitionTimeSecond - aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecond, 2);
                tempInko.AcquisitionTimeThird += Math.Pow(
                    testValue.IncontinencePadTestValue.AcquisitionTimeThird - aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThird,
                    2);
                tempInko.AcquisitionWeight += Math.Pow(testValue.IncontinencePadTestValue.AcquisitionWeight - aquisitionTestAvg.IncontinencePadTestValue.AcquisitionWeight, 2);
                tempInko.RewetAfterAcquisitionTimeDryWeight +=
                    Math.Pow(
                        testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight - aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight,
                        2);
                tempInko.RewetAfterAcquisitionTimeWetWeight +=
                    Math.Pow(
                        testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight - aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight,
                        2);
                tempInko.RewetAfterAcquisitionTimeWeightDifference +=
                    Math.Pow(
                        testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference
                        - aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference,
                        2);
                counter++;
            }
            if (counter < 2)
            {
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeFirst  = 0;
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeSecond = 0;
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeThird  = 0;
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionWeight     = 0;
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight        = 0;
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight        = 0;
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = 0;
            }
            else
            {
                counter--;
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeFirst  = Math.Sqrt(tempInko.AcquisitionTimeFirst / counter);
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeSecond = Math.Sqrt(tempInko.AcquisitionTimeSecond / counter);
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionTimeThird  = Math.Sqrt(tempInko.AcquisitionTimeThird / counter);
                aquisitionTestStDev.IncontinencePadTestValue.AcquisitionWeight     = Math.Sqrt(tempInko.AcquisitionWeight / counter);
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight        = Math.Sqrt(tempInko.RewetAfterAcquisitionTimeDryWeight / counter);
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight        = Math.Sqrt(tempInko.RewetAfterAcquisitionTimeWetWeight / counter);
                aquisitionTestStDev.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = Math.Sqrt(tempInko.RewetAfterAcquisitionTimeWeightDifference / counter);
            }
        }
        /// <summary>
        ///     Calculates all values for the incontinence rewet test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoRewetValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                  Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.RewetFreeDifference = incontinencePadTestValue.RewetFreeWetValue - incontinencePadTestValue.RewetFreeDryValue;
            incontinencePadTestValue.RewetFreeRw         = GetRewetFreeRwType(incontinencePadTestValue.RewetFreeDifference, productionOrder);
            return(incontinencePadTestValue);
        }
        /// <summary>
        ///     Creates the rewet TestValue from diffrent input data
        /// </summary>
        /// <param name="rewet">the incontinence pad  test value containing the rewet data</param>
        /// <param name="testPerson">the person who did the test</param>
        /// <param name="prodCode">the diaper production code</param>
        /// <param name="testValueId">the id of the testvalue</param>
        /// <returns></returns>
        public IncontinencePadRewetTestValue ToRewetTestValue(IncontinencePadTestValue rewet, String testPerson, String prodCode, Int32 testValueId)
        {
            var vm = new IncontinencePadRewetTestValue
            {
                IncontinencePadTestInfo = ToTestInfo(testPerson, prodCode, testValueId),
                IncontinencePadRewet    = ToRewet(rewet)
            };

            return(vm);
        }
 /// <summary>
 ///     Sets the values for the Acquisition Time View Model out of the IncontinencePadTestValue Model
 /// </summary>
 /// <param name="acquisitionTime">the Incontinence Pad Test value with the acquisition time data</param>
 /// <returns>The acquisition time View Model with the data collected from the model</returns>
 public IncontinencePadAcquisitionTime ToAcquisitionTime(IncontinencePadTestValue acquisitionTime)
 => new IncontinencePadAcquisitionTime
 {
     AcquisitionTimeAdditionFirst  = Round(acquisitionTime.AcquisitionTimeFirst),
     AcquisitionTimeAdditionSecond = Round(acquisitionTime.AcquisitionTimeSecond),
     AcquisitionTimeAdditionThird  = Round(acquisitionTime.AcquisitionTimeThird),
     Weight = Round(acquisitionTime.AcquisitionWeight),
     AcquisitionTimeAdditionFirstRW  = acquisitionTime.AcquisitionTimeFirstRw,
     AcquisitionTimeAdditionSecondRW = acquisitionTime.AcquisitionTimeSecondRw,
     AcquisitionTimeAdditionThirdRW  = acquisitionTime.AcquisitionTimeThirdRw
 };
        /// <summary>
        ///     Creates the Acquisition TestValue from diffrent input data
        /// </summary>
        /// <param name="acquisitionTime">the incontinence pad test value containing the acquisition time data</param>
        /// <param name="testPerson">the person who did the test</param>
        /// <param name="prodCode">the diaper production code</param>
        /// <param name="testValueId">the id of the test value</param>
        /// <returns></returns>
        public IncontinencePadAcquisitionTimeTestValue ToAcquisitionTimeTestValue(IncontinencePadTestValue acquisitionTime, String testPerson, String prodCode, Int32 testValueId)
        {
            var vm = new IncontinencePadAcquisitionTimeTestValue
            {
                IncontinencePadTestInfo   = ToTestInfo(testPerson, prodCode, testValueId),
                AcquisitionTime           = ToAcquisitionTime(acquisitionTime),
                RewetAfterAcquisitionTime = ToRewetAfterAcquisitionTime(acquisitionTime)
            };

            return(vm);
        }
Beispiel #10
0
        /// <summary>
        ///     Calculates all values for the incontinence rewet test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoRetentionValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                      Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.RetentionAbsorbtion = incontinencePadTestValue.RetentionWetValue - incontinencePadTestValue.RetentionWeight;
            incontinencePadTestValue.RetentionEndValue   = incontinencePadTestValue.RetentionAfterZentrifuge - incontinencePadTestValue.RetentionWeight;
            incontinencePadTestValue.RetentionRw         = GetRetentionRwType(incontinencePadTestValue.RetentionEndValue, productionOrder);
            return(incontinencePadTestValue);
        }
        /// <summary>
        ///     Sets the values for the rewet View Model out of the incontinence pad TestValue Model
        /// </summary>
        /// <param name="rewet">the incontinence pad Test value with the rewet data</param>
        /// <returns>The rewet View Model with the data collected from the model</returns>
        public IncontinencePadRewet ToRewet(IncontinencePadTestValue rewet)
        {
            ValidateRequiredItem(rewet.RewetFreeRw, "rewet free rw");

            return
                (new IncontinencePadRewet
            {
                WeightDry = Round(rewet.RewetFreeDryValue),
                WeightWet = Round(rewet.RewetFreeWetValue),
                WeightDiff = Round(rewet.RewetFreeDifference),
                RewetRW = rewet.RewetFreeRw
            });
        }
        /// <summary>
        ///     Sets the values for the rewet View Model out of the incontinence pad TestValue Model
        /// </summary>
        /// <param name="rewet">the incontinence pad Test value with the rewet after acquisition data</param>
        /// <returns>The rewet after acquisition View Model with the data collected from the model</returns>
        public IncontinencePadRewet ToRewetAfterAcquisitionTime(IncontinencePadTestValue rewet)
        {
            ValidateRequiredItem(rewet.RewetAfterAcquisitionTimeRw, "rewet after acquisition rw");

            return
                (new IncontinencePadRewet
            {
                WeightDry = Round(rewet.RewetAfterAcquisitionTimeDryWeight),
                WeightWet = Round(rewet.RewetAfterAcquisitionTimeWetWeight),
                WeightDiff = Round(rewet.RewetAfterAcquisitionTimeWeightDifference),
                RewetRW = rewet.RewetAfterAcquisitionTimeRw
            });
        }
 /// <summary>
 ///     Sets the values for the Retention View Model out of the incontinence pad TestValue Model
 /// </summary>
 /// <param name="retention">the Incontinence Pad Test value with the retention data</param>
 /// <returns>The Retention View Model with the data collected from the model</returns>
 public IncontinencePadRetention ToRetention(IncontinencePadTestValue retention)
 {
     ValidateRequiredItem(retention.RetentionRw, "retention rw");
     return(new IncontinencePadRetention
     {
         RetentionAfterZentrifugeValue = Round(retention.RetentionAfterZentrifuge),
         RetentionRw = retention.RetentionRw,
         RetentionWetWeight = Round(retention.RetentionWetValue),
         RetentionDryWeight = Round(retention.RetentionWeight),
         AbsorptionDiff = Round(retention.RetentionAbsorbtion),
         RetentionDiff = Round(retention.RetentionEndValue)
     });
 }
        /// <summary>
        ///     Calculates all values for the incontinence acquisition test
        /// </summary>
        /// <param name="incontinencePadTestValue">the test value</param>
        /// <param name="testSheetId">the test sheet id</param>
        /// <returns></returns>
        private IncontinencePadTestValue CalculateInkoAquisitionValues(IncontinencePadTestValue incontinencePadTestValue,
                                                                       Int32 testSheetId)
        {
            var testSheet       = TestBll.GetTestSheetInfo(testSheetId);
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);

            incontinencePadTestValue.AcquisitionTimeFirstRw  = GetMaxRw(incontinencePadTestValue.AcquisitionTimeFirst, productionOrder.Article.MaxHyTec1);
            incontinencePadTestValue.AcquisitionTimeSecondRw = GetMaxRw(incontinencePadTestValue.AcquisitionTimeSecond, productionOrder.Article.MaxHyTec2);
            incontinencePadTestValue.AcquisitionTimeThirdRw  = GetMaxRw(incontinencePadTestValue.AcquisitionTimeThird, productionOrder.Article.MaxHyTec3);

            incontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = incontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight
                                                                                 - incontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight;
            incontinencePadTestValue.RewetAfterAcquisitionTimeRw = GetMaxRw(incontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference,
                                                                            productionOrder.Article.MaxInkoRewetAfterAquisition);
            return(incontinencePadTestValue);
        }
Beispiel #15
0
        private void UpdateInkoRetentionAvg(TestSheet testSheet, TestValue retentionTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RetentionRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.Retention))
                )
            {
                tempInko.RetentionWeight          += testValue.IncontinencePadTestValue.RetentionWeight;
                tempInko.RetentionWetValue        += testValue.IncontinencePadTestValue.RetentionWetValue;
                tempInko.RetentionAfterZentrifuge += testValue.IncontinencePadTestValue.RetentionAfterZentrifuge;
                tempInko.RetentionAbsorbtion      += testValue.IncontinencePadTestValue.RetentionAbsorbtion;
                tempInko.RetentionEndValue        += testValue.IncontinencePadTestValue.RetentionEndValue;
                if (testValue.IncontinencePadTestValue.RetentionRw == RwType.Worse)
                {
                    tempInko.RetentionRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            retentionTestAvg.IncontinencePadTestValue.RetentionWeight          = tempInko.RetentionWeight / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionWetValue        = tempInko.RetentionWetValue / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionAfterZentrifuge = tempInko.RetentionAfterZentrifuge / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionAbsorbtion      = tempInko.RetentionAbsorbtion / counter;
            retentionTestAvg.IncontinencePadTestValue.RetentionEndValue        = tempInko.RetentionEndValue / counter;
            if ((GetRetentionRwType(retentionTestAvg.IncontinencePadTestValue.RetentionEndValue, productionOrder) == RwType.Worse) && (tempInko.RetentionRw != RwType.Ok))
            {
                tempInko.RetentionRw = RwType.Worse;
            }
            retentionTestAvg.IncontinencePadTestValue.RetentionRw = tempInko.RetentionRw;
        }
Beispiel #16
0
        private static void UpdateInkoRetentionStDev(TestSheet testSheet, TestValue retentionTestAvg, TestValue retentionTestStDev)
        {
            var tempInko = new IncontinencePadTestValue();
            var counter  = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.Retention))
                )
            {
                tempInko.RetentionWeight          += Math.Pow(testValue.IncontinencePadTestValue.RetentionWeight - retentionTestAvg.IncontinencePadTestValue.RetentionWeight, 2);
                tempInko.RetentionWetValue        += Math.Pow(testValue.IncontinencePadTestValue.RetentionWetValue - retentionTestAvg.IncontinencePadTestValue.RetentionWetValue, 2);
                tempInko.RetentionAfterZentrifuge +=
                    Math.Pow(testValue.IncontinencePadTestValue.RetentionAfterZentrifuge - retentionTestAvg.IncontinencePadTestValue.RetentionAfterZentrifuge, 2);
                tempInko.RetentionAbsorbtion += Math.Pow(testValue.IncontinencePadTestValue.RetentionAbsorbtion - retentionTestAvg.IncontinencePadTestValue.RetentionAbsorbtion, 2);
                tempInko.RetentionEndValue   += Math.Pow(testValue.IncontinencePadTestValue.RetentionEndValue - retentionTestAvg.IncontinencePadTestValue.RetentionEndValue, 2);
                counter++;
            }
            if (counter < 2)
            {
                retentionTestStDev.IncontinencePadTestValue.RetentionWeight          = 0;
                retentionTestStDev.IncontinencePadTestValue.RetentionWetValue        = 0;
                retentionTestStDev.IncontinencePadTestValue.RetentionAfterZentrifuge = 0;
                retentionTestStDev.IncontinencePadTestValue.RetentionAbsorbtion      = 0;
                retentionTestStDev.IncontinencePadTestValue.RetentionEndValue        = 0;
            }
            else
            {
                counter--;
                retentionTestStDev.IncontinencePadTestValue.RetentionWeight          = Math.Sqrt(tempInko.RetentionWeight / counter);
                retentionTestStDev.IncontinencePadTestValue.RetentionWetValue        = Math.Sqrt(tempInko.RetentionWetValue / counter);
                retentionTestStDev.IncontinencePadTestValue.RetentionAfterZentrifuge = Math.Sqrt(tempInko.RetentionAfterZentrifuge / counter);
                retentionTestStDev.IncontinencePadTestValue.RetentionAbsorbtion      = Math.Sqrt(tempInko.RetentionAbsorbtion / counter);
                retentionTestStDev.IncontinencePadTestValue.RetentionEndValue        = Math.Sqrt(tempInko.RetentionEndValue / counter);
            }

            #endregion
        }
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRewetTest(InkoRewetEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime = viewModel.ProductionCodeTime,
                ExpireMonth         = viewModel.ExpireMonth,
                ExpireYear          = viewModel.ExpireYear,
                RewetFreeDryValue   = viewModel.FPDry,
                RewetFreeWetValue   = viewModel.FPWet,
                TestType            = TestTypeIncontinencePad.RewetFree
            };

            incontinencePadTestValue           = CalculateInkoRewetValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        private void UpdateInkoRewetAvg(TestSheet testSheet, TestValue rewetTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RewetFreeRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.RewetFree))
                )
            {
                tempInko.RewetFreeDryValue   += testValue.IncontinencePadTestValue.RewetFreeDryValue;
                tempInko.RewetFreeWetValue   += testValue.IncontinencePadTestValue.RewetFreeWetValue;
                tempInko.RewetFreeDifference += testValue.IncontinencePadTestValue.RewetFreeDifference;
                if (testValue.IncontinencePadTestValue.RewetFreeRw == RwType.Worse)
                {
                    tempInko.RewetFreeRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            rewetTestAvg.IncontinencePadTestValue.RewetFreeDryValue   = tempInko.RewetFreeDryValue / counter;
            rewetTestAvg.IncontinencePadTestValue.RewetFreeWetValue   = tempInko.RewetFreeWetValue / counter;
            rewetTestAvg.IncontinencePadTestValue.RewetFreeDifference = tempInko.RewetFreeDifference / counter;
            if (GetRewetFreeRwType(rewetTestAvg.IncontinencePadTestValue.RewetFreeDifference, productionOrder) == RwType.Worse)
            {
                tempInko.RewetFreeRw = RwType.Worse;
            }
            rewetTestAvg.IncontinencePadTestValue.RewetFreeRw = tempInko.RewetFreeRw;
        }
Beispiel #19
0
        /// <summary>
        ///     Creates an new TestValue from the view model
        /// </summary>
        /// <param name="viewModel">the data from the view</param>
        /// <returns>The created test value</returns>
        public TestValue SaveNewRetentionTest(InkoRetentionEditViewModel viewModel)
        {
            var testValue = TestServiceHelper.CreateNewTestValue(viewModel.TestSheetId, viewModel.TestPerson, viewModel.ProductionCodeDay, viewModel.Notes);

            testValue.ArticleTestType = ArticleType.IncontinencePad;

            var incontinencePadTestValue = new IncontinencePadTestValue
            {
                IncontinencePadTime      = viewModel.ProductionCodeTime,
                ExpireMonth              = viewModel.ExpireMonth,
                ExpireYear               = viewModel.ExpireYear,
                RetentionWeight          = viewModel.InkoWeight,
                RetentionWetValue        = viewModel.InkoWeightWet,
                RetentionAfterZentrifuge = viewModel.InkoWeightAfterZentrifuge,
                TestType = TestTypeIncontinencePad.Retention
            };

            incontinencePadTestValue           = CalculateInkoRetentionValues(incontinencePadTestValue, viewModel.TestSheetId);
            testValue.IncontinencePadTestValue = incontinencePadTestValue;

            TestBll.SaveNewTestValue(testValue);
            return(testValue);
        }
        private void UpdateInkoAquisitionAvg(TestSheet testSheet, TestValue aquisitionTestAvg)
        {
            var productionOrder = TestBll.GetProductionOrder(testSheet.FaNr);
            var tempInko        = new IncontinencePadTestValue {
                RewetFreeRw = RwType.Ok
            };
            var counter = 0;

            foreach (
                var testValue in
                testSheet.TestValues.Where(
                    testValue =>
                    (testValue.TestValueType == TestValueType.Single) &&
                    (testValue.IncontinencePadTestValue.TestType == TestTypeIncontinencePad.AcquisitionTimeAndRewet))
                )
            {
                tempInko.AcquisitionTimeFirst  += testValue.IncontinencePadTestValue.AcquisitionTimeFirst;
                tempInko.AcquisitionTimeSecond += testValue.IncontinencePadTestValue.AcquisitionTimeSecond;
                tempInko.AcquisitionTimeThird  += testValue.IncontinencePadTestValue.AcquisitionTimeThird;
                tempInko.AcquisitionWeight     += testValue.IncontinencePadTestValue.AcquisitionWeight;

                tempInko.RewetAfterAcquisitionTimeDryWeight        += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight;
                tempInko.RewetAfterAcquisitionTimeWetWeight        += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight;
                tempInko.RewetAfterAcquisitionTimeWeightDifference += testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference;
                if (testValue.IncontinencePadTestValue.AcquisitionTimeFirstRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeFirstRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.AcquisitionTimeSecondRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeSecondRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.AcquisitionTimeThirdRw == RwType.Worse)
                {
                    tempInko.AcquisitionTimeThirdRw = RwType.SomethingWorse;
                }
                if (testValue.IncontinencePadTestValue.RewetAfterAcquisitionTimeRw == RwType.Worse)
                {
                    tempInko.RewetAfterAcquisitionTimeRw = RwType.SomethingWorse;
                }
                counter++;
            }
            if (counter == 0)
            {
                counter = 1;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirst  = tempInko.AcquisitionTimeFirst / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecond = tempInko.AcquisitionTimeSecond / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThird  = tempInko.AcquisitionTimeThird / counter;
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionWeight     = tempInko.AcquisitionWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeDryWeight        = tempInko.RewetAfterAcquisitionTimeDryWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWetWeight        = tempInko.RewetAfterAcquisitionTimeWetWeight / counter;
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference = tempInko.RewetAfterAcquisitionTimeWeightDifference / counter;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirst, productionOrder.Article.MaxHyTec1) == RwType.Worse)
            {
                tempInko.AcquisitionTimeFirstRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeFirstRw = tempInko.AcquisitionTimeFirstRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecond, productionOrder.Article.MaxHyTec2) == RwType.Worse)
            {
                tempInko.AcquisitionTimeSecondRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeSecondRw = tempInko.AcquisitionTimeSecondRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThird, productionOrder.Article.MaxHyTec3) == RwType.Worse)
            {
                tempInko.AcquisitionTimeThirdRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.AcquisitionTimeThirdRw = tempInko.AcquisitionTimeThirdRw;

            if (GetMaxRw(aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeWeightDifference, productionOrder.Article.MaxInkoRewetAfterAquisition)
                == RwType.Worse)
            {
                tempInko.RewetAfterAcquisitionTimeRw = RwType.Worse;
            }
            aquisitionTestAvg.IncontinencePadTestValue.RewetAfterAcquisitionTimeRw = tempInko.RewetAfterAcquisitionTimeRw;
        }