public async Task <ActionResult> FindPallets(RetrieveOfMaterialViewModel parameters, GridSettings gridSettings)
        {
            try
            {
                // Parameters haven't been initialized.
                if (parameters == null)
                {
                    parameters = new RetrieveOfMaterialViewModel();
                    TryValidateModel(parameters);
                }

                // Request parameters are invalid.
                if (!ModelState.IsValid)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                // Find current terminal number of pallet.
                var terminalNo = _identityService.FindTerminalNo(HttpContext.User.Identity);

                // Find list of pallets by using specific conditions.
                var result =
                    await
                    _retrieveOfMaterialDomain.FindPalletsList(parameters.MaterialCode.Trim(),
                                                              parameters.RequestedRetrievalQuantity, terminalNo, gridSettings);

                return(Json(result.Data));
            }
            catch (Exception exception)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
        public async Task <ActionResult> RetrieveOrAssignPallet(RetrieveOfMaterialViewModel item)
        {
            // Request parameters haven't been initialized.
            if (item == null)
            {
                item = new RetrieveOfMaterialViewModel();
                TryValidateModel(item);
            }


            // Request parameters are invalid.
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // Find current terminal number of request.
            var terminalNo = _identityService.FindTerminalNo(HttpContext.User.Identity);

            var result =
                await
                _retrieveOfMaterialDomain.RetrieveOrAssignPallet(item.MaterialCode.Trim(),
                                                                 item.RequestedRetrievalQuantity,
                                                                 terminalNo);

            return(Json(new
            {
                result
            }));
        }
        /// <summary>
        /// After a specific pallet has been unassigned, tally value should be re-calculated.
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public async Task <ActionResult> CalculateTally(RetrieveOfMaterialViewModel parameters)
        {
            try
            {
                // Parameters haven't been initialized.
                if (parameters == null)
                {
                    parameters = new RetrieveOfMaterialViewModel();
                    TryValidateModel(parameters);
                }

                // Request parameters are invalid.
                if (!ModelState.IsValid)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                // Find list of pallets by using specific conditions.
                var result =
                    await
                    _retrieveOfMaterialDomain.ReCalculateTally(parameters.MaterialCode.Trim());

                return(Json(new
                {
                    tally = result
                }));
            }
            catch (Exception exception)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
        public async Task <ActionResult> UnassignPallets(RetrieveOfMaterialViewModel item)
        {
            try
            {
                // Request parameters haven't been initialized.
                if (item == null)
                {
                    item = new RetrieveOfMaterialViewModel();
                    TryValidateModel(item);
                }

                // Request parameters are invalid.
                if (!ModelState.IsValid)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                // Find terminal number of current request.
                var terminalNo = _identityService.FindTerminalNo(HttpContext.User.Identity);

                await _retrieveOfMaterialDomain.UnassignPalletsList(item.MaterialCode.Trim(), terminalNo);

                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            catch (Exception exception)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
        /// <summary>
        /// Render index page.
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            var retrievalOfMaterialViewModel = new RetrieveOfMaterialViewModel()
            {
                PalletsGrid = InitiateGrid()
            };

            return(View(retrievalOfMaterialViewModel));
        }
        public async Task <ActionResult> RetrievePallets(RetrieveOfMaterialViewModel parameters)
        {
            try
            {
                if (parameters == null)
                {
                    parameters = new RetrieveOfMaterialViewModel();
                    TryValidateModel(parameters);
                }

                if (!ModelState.IsValid)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }



                // Initiate message response.
                var messageResponse = new MessageResponseViewModel();

                // Find current terminal no.
                var terminalNo = _identityService.FindTerminalNo(HttpContext.User.Identity);

                // Check the conveyor code.
                if (!_storageOfWarehousePalletDomain.CheckedRecordInTM05(terminalNo))
                {
                    messageResponse.HttpStatusCode = HttpStatusCode.NotFound;
                    messageResponse.Message        = HttpMessages.InvalidConveyorStatus;
                    return(Json(messageResponse));
                }

                // Find device.
                if (!_restorageOfMaterialDomain.IsValidDevice())
                {
                    messageResponse.HttpStatusCode = HttpStatusCode.NotFound;
                    messageResponse.Message        = HttpMessages.InvalidDeviceAvailability;
                    return(Json(messageResponse));
                }

                // Retrieve pallets.
                await
                _retrieveOfMaterialDomain.RetrieveMaterial(parameters.MaterialCode.Trim(),
                                                           parameters.RequestedRetrievalQuantity, terminalNo);

                messageResponse.HttpStatusCode = HttpStatusCode.OK;
                return(Json(messageResponse));
            }
            catch (Exception exception)
            {
                _log.Error(exception.Message, exception);
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
 public ActionResult ReStorage(RetrieveOfMaterialViewModel model)
 {
     return(RedirectToAction("Index", "RestorageOfMaterial", new { showInRetrivel = true }));
 }