public IHttpActionResult PostDispatchProgress(PalletDispatchProgress progress) { var terminal = TerminalServices.GetTerminalBySerial(progress.SerialNo); if (terminal == null) { return(Unauthorized()); } var TransactionLog = TerminalServices.CheckTransactionLog(progress.TransactionLogId, terminal.TerminalId); if (TransactionLog == true) { return(Conflict()); } var result = _palletService.UpdateDispatchProgress(progress, progress.CreatedBy); return(Ok(result)); }
public PalletDispatchProgress UpdateDispatchProgress(PalletDispatchProgress currentDispatch, int userId) { int?resourceId = _userService.GetResourceIdByUserId(userId); if (resourceId == 0) { resourceId = null; } var dispatch = _currentDbContext.PalletsDispatches.Find(currentDispatch.DispatchId); dispatch.DispatchStatus = currentDispatch.DispatchStatus; dispatch.DateUpdated = DateTime.UtcNow; dispatch.UpdatedBy = userId; dispatch.ReceiverName = currentDispatch.ReceiverName; if (currentDispatch.ReceiverSign != null && currentDispatch.DispatchStatus == PalletDispatchStatusEnum.Delivered) { var filePath = HttpContext.Current.Server.MapPath("~/UploadedFiles/DispatchSign/"); var filename = Guid.NewGuid().ToString() + ".png"; var bw = new BinaryWriter(File.Open(filePath + filename, FileMode.OpenOrCreate)); bw.Write(currentDispatch.ReceiverSign); bw.Close(); dispatch.ReceiverSign = filename; } _currentDbContext.Entry(dispatch).State = EntityState.Modified; _currentDbContext.SaveChanges(); foreach (var palletId in currentDispatch.ScannedPalletSerials) { var pallet = _currentDbContext.Pallets.Find(palletId); if (pallet != null) { pallet.DateCompleted = DateTime.UtcNow; pallet.DateUpdated = DateTime.UtcNow; pallet.CompletedBy = userId; _currentDbContext.Entry(pallet).State = EntityState.Modified; if (currentDispatch.DispatchStatus == PalletDispatchStatusEnum.Loaded) { pallet.ScannedOnLoading = true; pallet.LoadingScanTime = DateTime.UtcNow; } else if (currentDispatch.DispatchStatus == PalletDispatchStatusEnum.Delivered) { pallet.ScannedOnDelivered = true; pallet.DeliveredScanTime = DateTime.UtcNow; } _currentDbContext.SaveChanges(); } } //update order process status var orderProcess = _currentDbContext.OrderProcess.Find(dispatch.OrderProcessID); if (currentDispatch.DispatchStatus == PalletDispatchStatusEnum.Loaded) { orderProcess.OrderProcessStatusId = 4; orderProcess.DateUpdated = DateTime.UtcNow; } else if (currentDispatch.DispatchStatus == PalletDispatchStatusEnum.Delivered) { orderProcess.OrderProcessStatusId = 5; orderProcess.DateUpdated = DateTime.UtcNow; } _currentDbContext.Entry(orderProcess).State = EntityState.Modified; _currentDbContext.SaveChanges(); return(currentDispatch); }