public ActionResult CreateWithID([Bind("ixInventoryLocation,sInventoryLocation,ixLocationFunction,ixFacility,ixCompany,ixFacilityFloor,ixFacilityZone,ixFacilityWorkArea,ixFacilityAisleFace,sLevel,sBay,sSlot,ixInventoryLocationSize,nSequence,nXOffset,ixXOffsetUnit,nYOffset,ixYOffsetUnit,nZOffset,ixZOffsetUnit,sLatitude,sLongitude,bTrackUtilisation,nUtilisationPercent,nQueuedUtilisationPercent")] InventoryLocationsPost inventorylocations)
        {
            if (ModelState.IsValid)
            {
                inventorylocations.UserName = User.Identity.Name;
                //Custom Code Start | Replaced Code Block
                //Replaced Code Block Start
                //_inventorylocationsService.Create(inventorylocations);
                //return RedirectToAction("Index");
                //Replaced Code Block End
                var ixInventoryLocation = _inventorylocationsService.Create(inventorylocations).Result;
                return(RedirectToAction("Edit", "FacilityAisleFaces", new { id = inventorylocations.ixFacilityAisleFace }));
                //Custom Code End
            }
            ViewBag.ixCompany               = new SelectList(_inventorylocationsService.selectCompanies().Select(x => new { x.ixCompany, x.sCompany }), "ixCompany", "sCompany");
            ViewBag.ixFacility              = new SelectList(_inventorylocationsService.selectFacilities().Select(x => new { x.ixFacility, x.sFacility }), "ixFacility", "sFacility");
            ViewBag.ixFacilityAisleFace     = new SelectList(_inventorylocationsService.selectFacilityAisleFaces().Where(x => x.ixFacilityAisleFace == inventorylocations.ixFacilityAisleFace).Select(x => new { x.ixFacilityAisleFace, x.sFacilityAisleFace }), "ixFacilityAisleFace", "sFacilityAisleFace");
            ViewBag.ixFacilityFloor         = new SelectList(_inventorylocationsService.selectFacilityFloors().Select(x => new { x.ixFacilityFloor, x.sFacilityFloor }), "ixFacilityFloor", "sFacilityFloor");
            ViewBag.ixFacilityWorkArea      = new SelectList(_inventorylocationsService.selectFacilityWorkAreas().Select(x => new { x.ixFacilityWorkArea, x.sFacilityWorkArea }), "ixFacilityWorkArea", "sFacilityWorkArea");
            ViewBag.ixFacilityZone          = new SelectList(_inventorylocationsService.selectFacilityZones().Select(x => new { x.ixFacilityZone, x.sFacilityZone }), "ixFacilityZone", "sFacilityZone");
            ViewBag.ixInventoryLocationSize = new SelectList(_inventorylocationsService.selectInventoryLocationSizes().Select(x => new { x.ixInventoryLocationSize, x.sInventoryLocationSize }), "ixInventoryLocationSize", "sInventoryLocationSize");
            ViewBag.ixLocationFunction      = new SelectList(_inventorylocationsService.selectLocationFunctions().Select(x => new { x.ixLocationFunction, x.sLocationFunction }), "ixLocationFunction", "sLocationFunction");
            ViewBag.ixXOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurement().Select(x => new { x.ixUnitOfMeasurement, x.sUnitOfMeasurement }), "ixUnitOfMeasurement", "sUnitOfMeasurement");
            ViewBag.ixYOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurement().Select(x => new { x.ixUnitOfMeasurement, x.sUnitOfMeasurement }), "ixUnitOfMeasurement", "sUnitOfMeasurement");
            ViewBag.ixZOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurement().Select(x => new { x.ixUnitOfMeasurement, x.sUnitOfMeasurement }), "ixUnitOfMeasurement", "sUnitOfMeasurement");

            return(View(inventorylocations));
        }
        public ActionResult DeleteConfirmed(long id)
        {
            InventoryLocationsPost inventorylocations = _inventorylocationsService.GetPost(id);

            inventorylocations.UserName = User.Identity.Name;
            _inventorylocationsService.Delete(inventorylocations);
            return(RedirectToAction("Index"));
        }
Esempio n. 3
0
        //Custom Code Start | Replaced Code Block
        //Replaced Code Block Start
        //public Task<Int64> Create(InventoryUnitsPost inventoryunitsPost)
        //Replaced Code Block End
        public Task <Int64> Create(InventoryUnitsPost inventoryunitsPost, Int64 ixInventoryUnitTransactionContext)
        {
            //Custom Code End

            // Additional validations

            // Pre-process
            //Custom Code Start | Added Code Block
            _inventorylocations = _inventorylocationsService.GetPost(inventoryunitsPost.ixInventoryLocation);
            var newUtilizationPercent = _volumeAndWeight.getNewLocationUtilisationPercent(inventoryunitsPost, _inventorylocations);

            _inventorylocations.nUtilisationPercent = newUtilizationPercent;
            _inventorylocations.UserName            = inventoryunitsPost.UserName;
            _inventorylocationsService.Edit(_inventorylocations);
            //Custom Code End

            // Process
            this._inventoryunitsRepository.RegisterCreate(inventoryunitsPost);
            try
            {
                this._inventoryunitsRepository.Commit();
            }
            catch (Exception ex)
            {
                this._inventoryunitsRepository.Rollback();
                // Log exception
                throw;
            }

            // Post-process
            //Custom Code Start | Added Code Block

            //If bTrackUtilisation is true we update the location utilisation
            //Check if orders need to be batched (which means allocated)

            _inventoryunittransactions.ixInventoryUnit = inventoryunitsPost.ixInventoryUnit;
            _inventoryunittransactions.ixInventoryUnitTransactionContext = ixInventoryUnitTransactionContext;
            _inventoryunittransactions.ixFacilityAfter          = inventoryunitsPost.ixFacility;
            _inventoryunittransactions.ixCompanyAfter           = inventoryunitsPost.ixCompany;
            _inventoryunittransactions.ixMaterialAfter          = inventoryunitsPost.ixMaterial;
            _inventoryunittransactions.ixInventoryStateAfter    = inventoryunitsPost.ixInventoryState;
            _inventoryunittransactions.ixHandlingUnitAfter      = inventoryunitsPost.ixHandlingUnit;
            _inventoryunittransactions.ixInventoryLocationAfter = inventoryunitsPost.ixInventoryLocation;
            _inventoryunittransactions.nBaseUnitQuantityAfter   = inventoryunitsPost.nBaseUnitQuantity;
            _inventoryunittransactions.sSerialNumberAfter       = inventoryunitsPost.sSerialNumber;
            _inventoryunittransactions.sBatchNumberAfter        = inventoryunitsPost.sBatchNumber;
            _inventoryunittransactions.dtExpireAtAfter          = inventoryunitsPost.dtExpireAt;
            _inventoryunittransactions.ixStatusAfter            = inventoryunitsPost.ixStatus;
            _inventoryunittransactions.UserName = inventoryunitsPost.UserName;
            this._inventoryunittransactionsService.Create(_inventoryunittransactions);

            //Custom Code End

            return(Task.FromResult(inventoryunitsPost.ixInventoryUnit));
        }
Esempio n. 4
0
        //Custom Code End

        //Custom Code Start | Replaced Code Block
        //Replaced Code Block Start
        //public InventoryUnitsService(IInventoryUnitsRepository inventoryunitsRepository, IInventoryUnitTransactionsService inventoryunittransactionsService)
        //Replaced Code Block End
        public InventoryUnitsService(IInventoryUnitsRepository inventoryunitsRepository, IInventoryUnitTransactionsService inventoryunittransactionsService, InventoryUnitTransactionsPost inventoryunittransactions, IInventoryLocationsService inventorylocationsService, InventoryLocationsPost inventorylocations, VolumeAndWeight volumeAndWeight)
        {
            //Custom Code End
            _inventoryunitsRepository = inventoryunitsRepository;
            //Custom Code Start | Added Code Block
            _inventoryunittransactionsService = inventoryunittransactionsService;
            _inventoryunittransactions        = inventoryunittransactions;
            _inventorylocationsService        = inventorylocationsService;
            _inventorylocations = inventorylocations;
            _volumeAndWeight    = volumeAndWeight;
            //Custom Code End
        }
        public ActionResult Edit([Bind("ixInventoryLocation,sInventoryLocation,ixLocationFunction,ixFacility,ixCompany,ixFacilityFloor,ixFacilityZone,ixFacilityWorkArea,ixFacilityAisleFace,sLevel,sBay,sSlot,ixInventoryLocationSize,nSequence,nXOffset,ixXOffsetUnit,nYOffset,ixYOffsetUnit,nZOffset,ixZOffsetUnit,sLatitude,sLongitude,bTrackUtilisation,nUtilisationPercent,nQueuedUtilisationPercent")] InventoryLocationsPost inventorylocations)
        {
            if (ModelState.IsValid)
            {
                inventorylocations.UserName = User.Identity.Name;
                _inventorylocationsService.Edit(inventorylocations);
                return(RedirectToAction("Index"));
            }
            ViewBag.ixCompany               = new SelectList(_inventorylocationsService.selectCompaniesNullable().Select(x => new { ixCompany = x.Key, sCompany = x.Value }), "ixCompany", "sCompany", inventorylocations.ixCompany);
            ViewBag.ixFacility              = new SelectList(_inventorylocationsService.selectFacilities().Select(x => new { x.ixFacility, x.sFacility }), "ixFacility", "sFacility", inventorylocations.ixFacility);
            ViewBag.ixFacilityAisleFace     = new SelectList(_inventorylocationsService.selectFacilityAisleFaces().Select(x => new { x.ixFacilityAisleFace, x.sFacilityAisleFace }), "ixFacilityAisleFace", "sFacilityAisleFace", inventorylocations.ixFacilityAisleFace);
            ViewBag.ixFacilityFloor         = new SelectList(_inventorylocationsService.selectFacilityFloors().Select(x => new { x.ixFacilityFloor, x.sFacilityFloor }), "ixFacilityFloor", "sFacilityFloor", inventorylocations.ixFacilityFloor);
            ViewBag.ixFacilityWorkArea      = new SelectList(_inventorylocationsService.selectFacilityWorkAreas().Select(x => new { x.ixFacilityWorkArea, x.sFacilityWorkArea }), "ixFacilityWorkArea", "sFacilityWorkArea", inventorylocations.ixFacilityWorkArea);
            ViewBag.ixFacilityZone          = new SelectList(_inventorylocationsService.selectFacilityZones().Select(x => new { x.ixFacilityZone, x.sFacilityZone }), "ixFacilityZone", "sFacilityZone", inventorylocations.ixFacilityZone);
            ViewBag.ixInventoryLocationSize = new SelectList(_inventorylocationsService.selectInventoryLocationSizesNullable().Select(x => new { ixInventoryLocationSize = x.Key, sInventoryLocationSize = x.Value }), "ixInventoryLocationSize", "sInventoryLocationSize", inventorylocations.ixInventoryLocationSize);
            ViewBag.ixLocationFunction      = new SelectList(_inventorylocationsService.selectLocationFunctions().Select(x => new { x.ixLocationFunction, x.sLocationFunction }), "ixLocationFunction", "sLocationFunction", inventorylocations.ixLocationFunction);
            ViewBag.ixXOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixXOffsetUnit);
            ViewBag.ixYOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixYOffsetUnit);
            ViewBag.ixZOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixZOffsetUnit);

            return(View(inventorylocations));
        }
        public ActionResult Edit(long id)
        {
            InventoryLocationsPost inventorylocations = _inventorylocationsService.GetPost(id);

            if (inventorylocations == null)
            {
                return(NotFound());
            }
            ViewBag.ixCompany               = new SelectList(_inventorylocationsService.selectCompaniesNullable().Select(x => new { ixCompany = x.Key, sCompany = x.Value }), "ixCompany", "sCompany", inventorylocations.ixCompany);
            ViewBag.ixFacility              = new SelectList(_inventorylocationsService.selectFacilities().Select(x => new { x.ixFacility, x.sFacility }), "ixFacility", "sFacility", inventorylocations.ixFacility);
            ViewBag.ixFacilityAisleFace     = new SelectList(_inventorylocationsService.selectFacilityAisleFaces().Select(x => new { x.ixFacilityAisleFace, x.sFacilityAisleFace }), "ixFacilityAisleFace", "sFacilityAisleFace", inventorylocations.ixFacilityAisleFace);
            ViewBag.ixFacilityFloor         = new SelectList(_inventorylocationsService.selectFacilityFloors().Select(x => new { x.ixFacilityFloor, x.sFacilityFloor }), "ixFacilityFloor", "sFacilityFloor", inventorylocations.ixFacilityFloor);
            ViewBag.ixFacilityWorkArea      = new SelectList(_inventorylocationsService.selectFacilityWorkAreas().Select(x => new { x.ixFacilityWorkArea, x.sFacilityWorkArea }), "ixFacilityWorkArea", "sFacilityWorkArea", inventorylocations.ixFacilityWorkArea);
            ViewBag.ixFacilityZone          = new SelectList(_inventorylocationsService.selectFacilityZones().Select(x => new { x.ixFacilityZone, x.sFacilityZone }), "ixFacilityZone", "sFacilityZone", inventorylocations.ixFacilityZone);
            ViewBag.ixInventoryLocationSize = new SelectList(_inventorylocationsService.selectInventoryLocationSizesNullable().Select(x => new { ixInventoryLocationSize = x.Key, sInventoryLocationSize = x.Value }), "ixInventoryLocationSize", "sInventoryLocationSize", inventorylocations.ixInventoryLocationSize);
            ViewBag.ixLocationFunction      = new SelectList(_inventorylocationsService.selectLocationFunctions().Select(x => new { x.ixLocationFunction, x.sLocationFunction }), "ixLocationFunction", "sLocationFunction", inventorylocations.ixLocationFunction);
            ViewBag.ixXOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixXOffsetUnit);
            ViewBag.ixYOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixYOffsetUnit);
            ViewBag.ixZOffsetUnit           = new SelectList(_inventorylocationsService.selectUnitsOfMeasurementNullable().Select(x => new { ixUnitOfMeasurement = x.Key, sUnitOfMeasurement = x.Value }), "ixUnitOfMeasurement", "sUnitOfMeasurement", inventorylocations.ixZOffsetUnit);

            return(View(inventorylocations));
        }
        public Task Edit(InventoryLocationsPost inventorylocationsPost)
        {
            // Additional validations

            // Pre-process

            // Process
            this._inventorylocationsRepository.RegisterEdit(inventorylocationsPost);
            try
            {
                this._inventorylocationsRepository.Commit();
            }
            catch (Exception ex)
            {
                this._inventorylocationsRepository.Rollback();
                // Log exception
                throw;
            }

            // Post-process

            return(Task.CompletedTask);
        }
        public Task <Int64> Create(InventoryLocationsPost inventorylocationsPost)
        {
            // Additional validations

            // Pre-process

            // Process
            this._inventorylocationsRepository.RegisterCreate(inventorylocationsPost);
            try
            {
                this._inventorylocationsRepository.Commit();
            }
            catch (Exception ex)
            {
                this._inventorylocationsRepository.Rollback();
                // Log exception
                throw;
            }

            // Post-process

            return(Task.FromResult(inventorylocationsPost.ixInventoryLocation));
        }
Esempio n. 9
0
        public Double getNewLocationUtilisationPercent(InventoryUnitsPost inventoryUnitsPost, InventoryLocationsPost inventoryLocationsPost)
        {
            if (inventoryLocationsPost.bTrackUtilisation && inventoryLocationsPost.ixInventoryLocationSize > 0)
            {
                bool  bInventoryUnitsExists   = false;
                var   inventoryUnitDimensions = getInventoryUnitDimensions(inventoryUnitsPost);
                var   inventoryLocations      = _inventorylocationsRepository.Get(inventoryLocationsPost.ixInventoryLocation);
                Space spaceToFit     = new Space(inventoryUnitDimensions.nLength, inventoryUnitDimensions.nWidth, inventoryUnitDimensions.nHeight, 0, inventoryUnitDimensions.ixLengthUnit, inventoryUnitDimensions.ixWidthUnit, inventoryUnitDimensions.ixHeightUnit, 0, _unitofmeasurementconversionsRepository, inventoryUnitsPost.nBaseUnitQuantity);
                Space spaceToFitInto = new Space(inventoryLocations.InventoryLocationSizes.nLength, inventoryLocations.InventoryLocationSizes.nWidth, inventoryLocations.InventoryLocationSizes.nHeight, inventoryLocations.InventoryLocationSizes.nUsableVolume - inventoryLocations.InventoryLocationSizes.nUsableVolume * ((inventoryLocations.nUtilisationPercent ?? 0) + (inventoryLocations.nQueuedUtilisationPercent ?? 0)) / 100.0, inventoryLocations.InventoryLocationSizes.ixLengthUnit, inventoryLocations.InventoryLocationSizes.ixWidthUnit, inventoryLocations.InventoryLocationSizes.ixHeightUnit, inventoryLocations.InventoryLocationSizes.ixUsableVolumeUnit, _unitofmeasurementconversionsRepository, 1);
                //Space spaceToFitInto = new Space(inventoryLocations.InventoryLocationSizes.nLength, inventoryLocations.InventoryLocationSizes.nWidth, inventoryLocations.InventoryLocationSizes.nHeight, inventoryLocations.InventoryLocationSizes.nUsableVolume, inventoryLocations.InventoryLocationSizes.ixLengthUnit, inventoryLocations.InventoryLocationSizes.ixWidthUnit, inventoryLocations.InventoryLocationSizes.ixHeightUnit, inventoryLocations.InventoryLocationSizes.ixUsableVolumeUnit, _unitofmeasurementconversionsRepository, 1);


                if (_inventoryunitsRepository.IndexDb().Where(x => x.ixInventoryUnit == inventoryUnitsPost.ixInventoryUnit && x.ixInventoryLocation == inventoryLocationsPost.ixInventoryLocation).Any()) //The existing inventory unit is being adjusted
                {
                    var   inventoryUnitsPostCurrent      = _inventoryunitsRepository.GetPost(inventoryUnitsPost.ixInventoryUnit);
                    var   inventoryUnitDimensionsCurrent = getInventoryUnitDimensions(inventoryUnitsPostCurrent);
                    Space spaceToFitCurrent = new Space(inventoryUnitDimensionsCurrent.nLength, inventoryUnitDimensionsCurrent.nWidth, inventoryUnitDimensionsCurrent.nHeight, 0, inventoryUnitDimensionsCurrent.ixLengthUnit, inventoryUnitDimensionsCurrent.ixWidthUnit, inventoryUnitDimensionsCurrent.ixHeightUnit, 0, _unitofmeasurementconversionsRepository, inventoryUnitsPostCurrent.nBaseUnitQuantity);
                    bInventoryUnitsExists = true;

                    if ((spaceToFitInto._nUsableVolume > 0) && (bInventoryUnitsExists))
                    {
                        Double nNewUtilisationPercent = (inventoryLocationsPost.nUtilisationPercent ?? 0) + (((spaceToFit._nUsableVolume / spaceToFitInto._nUsableVolume) * 100.0) - ((spaceToFitCurrent._nUsableVolume / spaceToFitInto._nUsableVolume) * 100.0));
                        return(nNewUtilisationPercent);
                    }
                    else
                    {
                        return(inventoryLocationsPost.nUtilisationPercent ?? 0);
                    }
                }


                if ((spaceToFitInto._nUsableVolume > 0) && (!bInventoryUnitsExists))
                {
                    return((inventoryLocationsPost.nUtilisationPercent ?? 0) + ((spaceToFit._nUsableVolume / spaceToFitInto._nUsableVolume) * 100.0));
                }
                else
                {
                    return(inventoryLocationsPost.nUtilisationPercent ?? 0);
                }
            }
            else
            {
                return(inventoryLocationsPost.nUtilisationPercent ?? 0);
            }
        }
Esempio n. 10
0
        public bool handlingUnitWillFitLocation(Int64 ixHandlingUnit, List <InventoryUnits> inventoryUnitsOnHandlingUnit, InventoryLocationsPost inventoryLocationsPost)
        {
            if (inventoryLocationsPost.bTrackUtilisation && inventoryLocationsPost.ixInventoryLocationSize > 0)
            {
                Double nVolumeToFit = 0;
                inventoryUnitsOnHandlingUnit.ForEach(x =>
                {
                    nVolumeToFit += convertToCommonUnitValue(x.Materials.nLength ?? 0, x.Materials.ixLengthUnit ?? 0) *
                                    convertToCommonUnitValue(x.Materials.nWidth ?? 0, x.Materials.ixWidthUnit ?? 0) *
                                    convertToCommonUnitValue(x.Materials.nHeight ?? 0, x.Materials.ixHeightUnit ?? 0) * x.nBaseUnitQuantity;
                }
                                                     );

                var   inventoryUnitDimensions = getHandlingUnitDimensions(ixHandlingUnit, inventoryUnitsOnHandlingUnit);
                var   inventoryLocations      = _inventorylocationsRepository.Get(inventoryLocationsPost.ixInventoryLocation);
                Space spaceToFit     = new Space(inventoryUnitDimensions.nLength, inventoryUnitDimensions.nWidth, inventoryUnitDimensions.nHeight, nVolumeToFit, inventoryUnitDimensions.ixLengthUnit, inventoryUnitDimensions.ixWidthUnit, inventoryUnitDimensions.ixHeightUnit, _unitofmeasurementconversionsRepository.UnitsOfMeasurementDb().Where(x => x.sUnitOfMeasurement == "Cubic meter").Select(x => x.ixUnitOfMeasurement).FirstOrDefault(), _unitofmeasurementconversionsRepository, 1);
                Space spaceToFitInto = new Space(inventoryLocations.InventoryLocationSizes.nLength, inventoryLocations.InventoryLocationSizes.nWidth, inventoryLocations.InventoryLocationSizes.nHeight, inventoryLocations.InventoryLocationSizes.nUsableVolume - inventoryLocations.InventoryLocationSizes.nUsableVolume * ((inventoryLocations.nUtilisationPercent ?? 0) + (inventoryLocations.nQueuedUtilisationPercent ?? 0)) / 100.0, inventoryLocations.InventoryLocationSizes.ixLengthUnit, inventoryLocations.InventoryLocationSizes.ixWidthUnit, inventoryLocations.InventoryLocationSizes.ixHeightUnit, inventoryLocations.InventoryLocationSizes.ixUsableVolumeUnit, _unitofmeasurementconversionsRepository, 1);
                if (spaceToFitInto.CompareTo(spaceToFit) == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
Esempio n. 11
0
 public bool inventoryUnitWillFitLocation(InventoryUnitsPost inventoryUnitsPost, InventoryLocationsPost inventoryLocationsPost)
 {
     if (inventoryLocationsPost.bTrackUtilisation && inventoryLocationsPost.ixInventoryLocationSize > 0)
     {
         var   inventoryUnitDimensions = getInventoryUnitDimensions(inventoryUnitsPost);
         var   inventoryLocations      = _inventorylocationsRepository.Get(inventoryLocationsPost.ixInventoryLocation);
         Space spaceToFit     = new Space(inventoryUnitDimensions.nLength, inventoryUnitDimensions.nWidth, inventoryUnitDimensions.nHeight, 0, inventoryUnitDimensions.ixLengthUnit, inventoryUnitDimensions.ixWidthUnit, inventoryUnitDimensions.ixHeightUnit, 0, _unitofmeasurementconversionsRepository, inventoryUnitsPost.nBaseUnitQuantity);
         Space spaceToFitInto = new Space(inventoryLocations.InventoryLocationSizes.nLength, inventoryLocations.InventoryLocationSizes.nWidth, inventoryLocations.InventoryLocationSizes.nHeight, inventoryLocations.InventoryLocationSizes.nUsableVolume - inventoryLocations.InventoryLocationSizes.nUsableVolume * ((inventoryLocations.nUtilisationPercent ?? 0) + (inventoryLocations.nQueuedUtilisationPercent ?? 0)) / 100.0, inventoryLocations.InventoryLocationSizes.ixLengthUnit, inventoryLocations.InventoryLocationSizes.ixWidthUnit, inventoryLocations.InventoryLocationSizes.ixHeightUnit, inventoryLocations.InventoryLocationSizes.ixUsableVolumeUnit, _unitofmeasurementconversionsRepository, 1);
         if (spaceToFitInto.CompareTo(spaceToFit) == 1)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
Esempio n. 12
0
 public void RegisterDelete(InventoryLocationsPost inventorylocationsPost)
 {
     _context.InventoryLocationsPost.Remove(inventorylocationsPost);
 }
Esempio n. 13
0
 public void RegisterEdit(InventoryLocationsPost inventorylocationsPost)
 {
     _context.Entry(inventorylocationsPost).State = EntityState.Modified;
 }
Esempio n. 14
0
 public void RegisterCreate(InventoryLocationsPost inventorylocationsPost)
 {
     _context.InventoryLocationsPost.Add(inventorylocationsPost);
 }
Esempio n. 15
0
        public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
        {
            // use state accessor to extract the didBotWelcomeUser flag
            var didBotWelcomeUser = await _botSpielUserStateAccessors.DidBotWelcomeUser.GetAsync(turnContext, () => false);

            var currentBotUserData = await _botSpielUserStateAccessors.BotUserDataAccessor.GetAsync(turnContext, () => _botUserData);

            string        conCat          = "";
            List <string> existInEntities = new List <string>();
            bool          DeleteOK        = true;

            if (turnContext.Activity.Type == ActivityTypes.Message)
            {
                // Establish dialog state from the conversation state.
                DialogContext dc = await _dialogs.CreateContextAsync(turnContext, cancellationToken);

                //Custom Code Start | Added Code Block
                if (turnContext.Activity.Text.ToLowerInvariant() == "cancel")
                {
                    await dc.CancelAllDialogsAsync(cancellationToken);
                }
                //Custom Code End

                // Continue any current dialog.
                DialogTurnResult dialogTurnResult = await dc.ContinueDialogAsync();

                // Process the result of any complete dialog.
                if (dialogTurnResult.Status is DialogTurnStatus.Complete)
                {
                    switch (dialogTurnResult.Result)
                    {
                    case BotUserEntityContext botUserEntityContext:
                        if (botUserEntityContext.module != "Choose an area")
                        {
                            // Store the results of the root dialog.
                            currentBotUserData.botUserEntityContext = botUserEntityContext;
                            await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                            await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                            await dc.PromptAsync(ConfirmPromptId, new PromptOptions { Prompt = MessageFactory.Text($"Please confirm that you want to {botUserEntityContext.entityIntent} {botUserEntityContext.entity}. Is that correct?") }, cancellationToken);
                        }
                        else
                        {
                            await turnContext.SendActivityAsync("OK, Let's choose a different area.", cancellationToken : cancellationToken);

                            await dc.BeginDialogAsync(RootDialogId, null, cancellationToken);
                        }
                        break;

                    case bool botYesNo:
                        if (botYesNo)
                        {
                            switch (currentBotUserData.botUserEntityContext.entity)
                            {
                            case "PickBatchPicking":
                                if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                                {
                                    //Custom Code Start | Replaced Code Block
                                    //Replaced Code Block Start
                                    //await dc.BeginDialogAsync(CreatePickBatchPickingDialogId, null, cancellationToken);
                                    //Replaced Code Block End
                                    await dc.BeginDialogAsync(CreatePickBatchPickingDialogId, new PickBatchPickingPost(), cancellationToken);

                                    //Custom Code End
                                }
                                break;

                            case "PutAwayHandlingUnits":
                                if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                                {
                                    await dc.BeginDialogAsync(CreatePutAwayHandlingUnitsDialogId, null, cancellationToken);
                                }
                                break;

                            case "SetUpExecutionParameters":
                                if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                                {
                                    await dc.BeginDialogAsync(CreateSetUpExecutionParametersDialogId, null, cancellationToken);
                                }
                                break;

                            case "DropInventoryUnits":
                                if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                                {
                                    await dc.BeginDialogAsync(CreateDropInventoryUnitsDialogId, null, cancellationToken);
                                }
                                break;

                            default:
                                // We shouldn't get here.
                                break;
                            }
                        }
                        else
                        {
                            await turnContext.SendActivityAsync(MessageFactory.Text("OK, let's try again."), cancellationToken);

                            await dc.BeginDialogAsync(RootDialogId, null, cancellationToken);
                        }
                        break;

                    case GetPickBatchesPost getpickbatchesPost:
                        if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                        {
                            //Custom Code Start | Removed Block
                            //ixGetPickBatch = await _getpickbatchesService.Create(getpickbatchesPost);
                            //await turnContext.SendActivityAsync(MessageFactory.Text($"The GetPickBatch {ixGetPickBatch} was created"), cancellationToken);
                            //currentBotUserData.ixGetPickBatch = ixGetPickBatch;
                            //Custom Code End

                            await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                            await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                            //await dc.BeginDialogAsync(RootDialogId, currentBotUserData.botUserEntityContext, cancellationToken);

                            //Custom Code Start | Added Code Block
                            //We can now set the pick batch status to started
                            var pickbatch = _pickbatchesService.GetPost(_pickbatchesService.IndexDb().Where(x => x.sPickBatch == getpickbatchesPost.sGetPickBatch).Select(x => x.ixPickBatch).FirstOrDefault());
                            pickbatch.ixStatus = _commonLookUps.getStatuses().Where(x => x.sStatus == "Started").Select(x => x.ixStatus).FirstOrDefault();
                            pickbatch.UserName = dc.Context.Activity.Conversation.Id;
                            await _pickbatchesService.Edit(pickbatch);

                            _pickbatchpickingPost.sPickBatchPick = getpickbatchesPost.sGetPickBatch;
                            await dc.BeginDialogAsync(CreatePickBatchPickingDialogId, _pickbatchpickingPost, cancellationToken);

                            //Custom Code End
                        }
                        break;

                    case PickBatchPickingPost pickbatchpickingPost:
                        if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                        {
                            ixPickBatchPick = await _pickbatchpickingService.Create(pickbatchpickingPost);

                            //Custom Code Start | Removed Block
                            //await turnContext.SendActivityAsync(MessageFactory.Text($"The PickBatchPick {ixPickBatchPick} was created"), cancellationToken);
                            //Custom Code End
                            //Custom Code Start | Added Code Block
                            //We check if the batch is complete
                            if (!_picking.isPickBatchComplete(pickbatchpickingPost.ixPickBatch))
                            {
                                currentBotUserData.ixPickBatchPick = ixPickBatchPick;
                                await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                                await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                                await dc.BeginDialogAsync(CreatePickBatchPickingDialogId, pickbatchpickingPost, cancellationToken);
                            }
                            else
                            {
                                currentBotUserData.ixPickBatchPick = 0;
                                await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                                await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                                //await dc.BeginDialogAsync(RootDialogId, currentBotUserData.botUserEntityContext, cancellationToken);
                                //We can now set the pick batch status to complete
                                var pickbatch = _pickbatchesService.GetPost(pickbatchpickingPost.ixPickBatch);
                                pickbatch.ixStatus = _commonLookUps.getStatuses().Where(x => x.sStatus == "Complete").Select(x => x.ixStatus).FirstOrDefault();
                                pickbatch.UserName = dc.Context.Activity.Conversation.Id;
                                await _pickbatchesService.Edit(pickbatch);

                                //We begin the drop cycle
                                await dc.BeginDialogAsync(CreateDropInventoryUnitsDialogId, pickbatchpickingPost, cancellationToken);
                            }
                            //Custom Code End
                        }
                        break;

                    case PutAwayHandlingUnitsPost putawayhandlingunitsPost:
                        if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                        {
                            ixPutAwayHandlingUnit = await _putawayhandlingunitsService.Create(putawayhandlingunitsPost);

                            //Custom Code Start | Removed Block
                            //await turnContext.SendActivityAsync(MessageFactory.Text($"The PutAwayHandlingUnit {ixPutAwayHandlingUnit} was created"), cancellationToken);
                            //Custom Code End
                            currentBotUserData.ixPutAwayHandlingUnit = ixPutAwayHandlingUnit;
                            await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                            await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                            //Custom Code Start | Replaced Code Block
                            //Replaced Code Block Start
                            //await dc.BeginDialogAsync(RootDialogId, currentBotUserData.botUserEntityContext, cancellationToken);
                            //Replaced Code Block End
                            await dc.BeginDialogAsync(CreatePutAwayHandlingUnitsDialogId, null, cancellationToken);

                            //Custom Code End
                        }
                        break;

                    case SetUpExecutionParametersPost setupexecutionparametersPost:
                        if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                        {
                            //Custom Code Start | Removed Block
                            //ixSetUpExecutionParameter = await _setupexecutionparametersService.Create(setupexecutionparametersPost);
                            //await turnContext.SendActivityAsync(MessageFactory.Text($"The SetUpExecutionParameter {ixSetUpExecutionParameter} was created"), cancellationToken);
                            //currentBotUserData.ixSetUpExecutionParameter = ixSetUpExecutionParameter;
                            //Custom Code End
                            //Custom Code Start | Added Code Block
                            currentBotUserData.ixFacility         = setupexecutionparametersPost.ixFacility;
                            currentBotUserData.ixCompany          = setupexecutionparametersPost.ixCompany;
                            currentBotUserData.ixFacilityWorkArea = setupexecutionparametersPost.ixFacilityWorkArea;
                            //We check if the user location exists - if not we create it
                            if (_userManager.Users.Where(x => x.UserName == dc.Context.Activity.Conversation.Id).Any())
                            {
                                if (!_inventorylocationsService.IndexDb().Where(x => x.sInventoryLocation.ToLower().Trim() == dc.Context.Activity.Conversation.Id.ToLower().Trim()).Any())
                                {
                                    InventoryLocationsPost inventoryLocationsPost = new InventoryLocationsPost();
                                    inventoryLocationsPost.sInventoryLocation  = dc.Context.Activity.Conversation.Id.ToLower().Trim();
                                    inventoryLocationsPost.ixLocationFunction  = _locationfunctionsService.IndexDb().Where(x => x.sLocationFunctionCode == "PE").Select(x => x.ixLocationFunction).FirstOrDefault();
                                    inventoryLocationsPost.ixFacility          = currentBotUserData.ixFacility;
                                    inventoryLocationsPost.ixFacilityFloor     = _inventorylocationsService.FacilityFloorsDb().Select(x => x.ixFacilityFloor).FirstOrDefault();
                                    inventoryLocationsPost.ixFacilityZone      = _inventorylocationsService.FacilityZonesDb().Select(x => x.ixFacilityZone).FirstOrDefault();
                                    inventoryLocationsPost.ixFacilityWorkArea  = _inventorylocationsService.FacilityWorkAreasDb().Select(x => x.ixFacilityWorkArea).FirstOrDefault();
                                    inventoryLocationsPost.ixFacilityAisleFace = _inventorylocationsService.FacilityAisleFacesDb().Select(x => x.ixFacilityAisleFace).FirstOrDefault();
                                    inventoryLocationsPost.nSequence           = 0;
                                    inventoryLocationsPost.bTrackUtilisation   = false;
                                    currentBotUserData.ixInventoryLocation     = await _inventorylocationsService.Create(inventoryLocationsPost);
                                }
                                else
                                {
                                    currentBotUserData.ixInventoryLocation = _inventorylocationsService.IndexDb().Where(x => x.sInventoryLocation.ToLower().Trim() == dc.Context.Activity.Conversation.Id.ToLower().Trim()).Select(x => x.ixInventoryLocation).FirstOrDefault();
                                    var inventoryLocationsPost = _inventorylocationsService.GetPost(currentBotUserData.ixInventoryLocation);
                                    inventoryLocationsPost.ixFacility = currentBotUserData.ixFacility;
                                    await _inventorylocationsService.Edit(inventoryLocationsPost);
                                }
                            }
                            //Custom Code End
                            await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                            await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                            //Custom Code Start | Removed Block
                            //await dc.BeginDialogAsync(RootDialogId, currentBotUserData.botUserEntityContext, cancellationToken);
                            //Custom Code End
                            //Custom Code Start | Added Code Block
                            await turnContext.SendActivityAsync(MessageFactory.Text($"The setup parameters have been updated. Say/type putaway, pick or cancel."), cancellationToken);

                            //Custom Code End
                        }
                        break;

                    case DropInventoryUnitsPost dropinventoryunitsPost:
                        if (currentBotUserData.botUserEntityContext.entityIntent == "Create")
                        {
                            //Custom Code Start | Removed Block
                            //ixDropInventoryUnit = await _dropinventoryunitsService.Create(dropinventoryunitsPost);
                            //await turnContext.SendActivityAsync(MessageFactory.Text($"The DropInventoryUnit {ixDropInventoryUnit} was created"), cancellationToken);
                            //currentBotUserData.ixDropInventoryUnit = ixDropInventoryUnit;
                            //await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);
                            //await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);
                            //await dc.BeginDialogAsync(RootDialogId, currentBotUserData.botUserEntityContext, cancellationToken);
                            //Custom Code End
                            await dc.BeginDialogAsync(CreateGetPickBatchesDialogId, null, cancellationToken);
                        }
                        break;

                    default:
                        // We shouldn't get here.
                        break;
                    }
                }

                // Proactively send a welcome message to a personal chat the first time
                // (and only the first time) a user initiates a personal chat.
                //Custom Code Start | Replaced Code Block
                //Replaced Code Block Start
                //if (didBotWelcomeUser == false)
                //Replaced Code Block End
                if (true == false)
                //Custom Code End
                {
                    // Update user state flag to reflect bot handled first user interaction.
                    await _botSpielUserStateAccessors.DidBotWelcomeUser.SetAsync(turnContext, true);

                    await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                    // the channel should sends the user name in the 'From' object
                    var userName = turnContext.Activity.From.Name;

                    // We give the user the opportunity to say or request something using natural language and funnel through recognizer
                    await turnContext.SendActivityAsync($"What would like to do? You can say things like ... or help me.", cancellationToken : cancellationToken);
                }
                //Custom Code Start | Added Code Block
                else if (!currentBotUserData.bIsInitialSetUpParametersSet)
                {
                    currentBotUserData.bIsInitialSetUpParametersSet      = true;
                    currentBotUserData.botUserEntityContext.module       = "Execution";
                    currentBotUserData.botUserEntityContext.entity       = "SetUpExecutionParameters";
                    currentBotUserData.botUserEntityContext.entityIntent = "Create";
                    await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                    await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                    await dc.BeginDialogAsync(CreateSetUpExecutionParametersDialogId, null, cancellationToken);
                }
                //Custom Code End
                else if ((dialogTurnResult.Status is DialogTurnStatus.Empty) || turnContext.Activity.Text.ToLowerInvariant() == "putaway" || turnContext.Activity.Text.ToLowerInvariant() == "cancel")
                {
                    var text = turnContext.Activity.Text.ToLowerInvariant();

                    // Now attempt to infer the context (NLP)
                    // Placeholder for code to added

                    switch (text)
                    {
                    //Custom Code Start | Removed Block
                    //case "help me":
                    //    await turnContext.SendActivityAsync($"You said: {text}.", cancellationToken: cancellationToken);
                    //    break;
                    //Custom Code End
                    //Custom Code Start | Added Code Block
                    case "putaway":
                        currentBotUserData.botUserEntityContext.module       = "Execution";
                        currentBotUserData.botUserEntityContext.entity       = "PutAwayHandlingUnits";
                        currentBotUserData.botUserEntityContext.entityIntent = "Create";
                        await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                        await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                        await dc.BeginDialogAsync(CreatePutAwayHandlingUnitsDialogId, null, cancellationToken);

                        break;

                    case "pick":
                        currentBotUserData.botUserEntityContext.module       = "Execution";
                        currentBotUserData.botUserEntityContext.entity       = "PickBatchPicking";
                        currentBotUserData.botUserEntityContext.entityIntent = "Create";
                        await _botSpielUserStateAccessors.BotUserDataAccessor.SetAsync(turnContext, currentBotUserData, cancellationToken);

                        await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

                        //await dc.BeginDialogAsync(CreatePickBatchPickingDialogId, new PickBatchPickingPost(), cancellationToken);
                        await dc.BeginDialogAsync(CreateGetPickBatchesDialogId, null, cancellationToken);

                        break;

                    case "cancel":
                        await dc.CancelAllDialogsAsync(cancellationToken);

                        break;

                    //Custom Code End
                    default:
                        if (dc.ActiveDialog == null && (dialogTurnResult.Status is DialogTurnStatus.Complete || dialogTurnResult.Status is DialogTurnStatus.Empty || dialogTurnResult.Status is DialogTurnStatus.Cancelled))
                        {
                            await turnContext.SendActivityAsync("I do not understand, let's try something different.", cancellationToken : cancellationToken);

                            await dc.BeginDialogAsync(RootDialogId, null, cancellationToken);
                        }
                        break;
                    }
                }
            }
            else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
            {
                if (turnContext.Activity.MembersAdded.Any())
                {
                    // Iterate over all new members added to the conversation
                    foreach (var member in turnContext.Activity.MembersAdded)
                    {
                        if (member.Id != turnContext.Activity.Recipient.Id)
                        {
                            await turnContext.SendActivityAsync($"Hi there - {member.Name}. {WelcomeMessage}", cancellationToken : cancellationToken);
                        }
                    }
                }
            }
            else
            {
                // Default behaviour for all other type of activities.
                await turnContext.SendActivityAsync($"{turnContext.Activity.Type} activity detected");
            }

            // save any state changes made to your state objects.
            await _botSpielUserStateAccessors.UserState.SaveChangesAsync(turnContext);

            await _botSpielUserStateAccessors.ConversationState.SaveChangesAsync(turnContext);
        }
Esempio n. 16
0
        //Custom Code Start | Replaced Code Block
        //Replaced Code Block Start
        //public Task Edit(InventoryUnitsPost inventoryunitsPost)
        //Replaced Code Block End
        public Task Edit(InventoryUnitsPost inventoryunitsPost, Int64 ixInventoryUnitTransactionContext)
        {
            //Custom Code End
            // Additional validations

            // Pre-process

            //Custom Code Start | Added Code Block
            _inventorylocations = _inventorylocationsService.GetPost(inventoryunitsPost.ixInventoryLocation);
            var newUtilizationPercent = _volumeAndWeight.getNewLocationUtilisationPercent(inventoryunitsPost, _inventorylocations);

            _inventorylocations.nUtilisationPercent = newUtilizationPercent;
            _inventorylocations.UserName            = inventoryunitsPost.UserName;
            _inventorylocationsService.Edit(_inventorylocations);

            InventoryUnitsPost inventoryunitsPre = _inventoryunitsRepository.GetPost(inventoryunitsPost.ixInventoryUnit);

            _inventoryunittransactions.ixFacilityBefore          = inventoryunitsPre.ixFacility;
            _inventoryunittransactions.ixCompanyBefore           = inventoryunitsPre.ixCompany;
            _inventoryunittransactions.ixMaterialBefore          = inventoryunitsPre.ixMaterial;
            _inventoryunittransactions.ixInventoryStateBefore    = inventoryunitsPre.ixInventoryState;
            _inventoryunittransactions.ixHandlingUnitBefore      = inventoryunitsPre.ixHandlingUnit;
            _inventoryunittransactions.ixInventoryLocationBefore = inventoryunitsPre.ixInventoryLocation;
            _inventoryunittransactions.nBaseUnitQuantityBefore   = inventoryunitsPre.nBaseUnitQuantity;
            _inventoryunittransactions.sSerialNumberBefore       = inventoryunitsPre.sSerialNumber;
            _inventoryunittransactions.sBatchNumberBefore        = inventoryunitsPre.sBatchNumber;
            _inventoryunittransactions.dtExpireAtBefore          = inventoryunitsPre.dtExpireAt;
            _inventoryunittransactions.ixStatusBefore            = inventoryunitsPre.ixStatus;

            if (inventoryunitsPost.ixInventoryLocation != inventoryunitsPre.ixInventoryLocation)
            {
                InventoryUnitsPost inventoryunitsPreLocChange = _inventoryunitsRepository.GetPost(inventoryunitsPost.ixInventoryUnit);
                _inventorylocations = _inventorylocationsService.GetPost(inventoryunitsPre.ixInventoryLocation);
                inventoryunitsPreLocChange.nBaseUnitQuantity = inventoryunitsPreLocChange.nBaseUnitQuantity - inventoryunitsPost.nBaseUnitQuantity;
                var newUtilizationPercentPre = _volumeAndWeight.getNewLocationUtilisationPercent(inventoryunitsPreLocChange, _inventorylocations);
                _inventorylocations.nUtilisationPercent = newUtilizationPercentPre;
                _inventorylocations.UserName            = inventoryunitsPost.UserName;
                _inventorylocationsService.Edit(_inventorylocations);
            }

            //Custom Code End
            // Process
            this._inventoryunitsRepository.RegisterEdit(inventoryunitsPost);
            try
            {
                this._inventoryunitsRepository.Commit();
            }
            catch (Exception ex)
            {
                this._inventoryunitsRepository.Rollback();
                // Log exception
                throw;
            }

            // Post-process
            //Custom Code Start | Added Code Block
            _inventoryunittransactions.ixInventoryUnit = inventoryunitsPost.ixInventoryUnit;
            _inventoryunittransactions.ixInventoryUnitTransactionContext = ixInventoryUnitTransactionContext;
            _inventoryunittransactions.ixFacilityAfter          = inventoryunitsPost.ixFacility;
            _inventoryunittransactions.ixCompanyAfter           = inventoryunitsPost.ixCompany;
            _inventoryunittransactions.ixMaterialAfter          = inventoryunitsPost.ixMaterial;
            _inventoryunittransactions.ixInventoryStateAfter    = inventoryunitsPost.ixInventoryState;
            _inventoryunittransactions.ixHandlingUnitAfter      = inventoryunitsPost.ixHandlingUnit;
            _inventoryunittransactions.ixInventoryLocationAfter = inventoryunitsPost.ixInventoryLocation;
            _inventoryunittransactions.nBaseUnitQuantityAfter   = inventoryunitsPost.nBaseUnitQuantity;
            _inventoryunittransactions.sSerialNumberAfter       = inventoryunitsPost.sSerialNumber;
            _inventoryunittransactions.sBatchNumberAfter        = inventoryunitsPost.sBatchNumber;
            _inventoryunittransactions.dtExpireAtAfter          = inventoryunitsPost.dtExpireAt;
            _inventoryunittransactions.ixStatusAfter            = inventoryunitsPost.ixStatus;
            _inventoryunittransactions.UserName = inventoryunitsPost.UserName;
            this._inventoryunittransactionsService.Create(_inventoryunittransactions);
            //Custom Code End

            return(Task.CompletedTask);
        }