private void labelLock_Click(object sender, EventArgs e) { try { PalletDTO palletDTO = this.fastBarcodes.SelectedObject as PalletDTO; if (palletDTO != null) { PalletViewModel palletViewModel = CommonNinject.Kernel.Get <PalletViewModel>(); PalletController palletController = new PalletController(CommonNinject.Kernel.Get <IPalletService>(), palletViewModel); palletController.Lock(palletDTO.PalletID); if (CustomMsgBox.Show(this, "Are you sure you want to " + (palletViewModel.Lockable ? "lock" : "un-lock") + " this entry data" + "?", "Warning", MessageBoxButtons.YesNo, (palletViewModel.Lockable ? MessageBoxIcon.Information : MessageBoxIcon.Warning)) == DialogResult.Yes) { if (palletController.LockConfirmed()) { ((PalletDTO)this.fastBarcodes.SelectedObject).Locked = !palletViewModel.Locked; this.fastBarcodes.RefreshObject(this.fastBarcodes.SelectedObject); } else { throw new Exception("Lỗi khóa hay mở khóa pallet: " + palletViewModel.Code + "\r\n\r\nVui lòng đóng phần mềm và thử lại sau."); } } } } catch (Exception exception) { ExceptionHandlers.ShowExceptionMessageBox(this, exception); } }
//Motor de la aplicación Estaciones, Bandejas, Moldes, Operaciones, Ordenes de fabricación y piezas private void TimerComunicationStatus_Tick(object sender, EventArgs e) { TimerS7ComunicationStatus.Stop(); foreach (var station in AppGlobal.Stations) { if (station.Bussy) { continue; } if (!S7.GetBitAt(AppGlobal.Snap7Server.Read(station.StatusChangeS7), 0, 0)) { continue; } var data = AppGlobal.Snap7Server.Read(station.DataAddressS7); station.DataContent = Common.GetDataContent(data); var pallet = PalletController.GetByCode(station.DataContent.PalletCode); var operation = OperationController.GetByCode(station.DataContent.OperationCode); var mold = MoldRepository.GetByCode(station.DataContent.MoldCode); station.ActiveOperation = operation; if (operation.InitPart || operation.EndPart) { station.Bussy = true; Thread AskForReferencePartThread = new Thread(new ThreadStart(() => AskForReferencePart(station, pallet, operation, mold))); AskForReferencePartThread.Start(); } else { OperationRegisterController.Register(station, pallet, operation, mold, "Pieza 1"); AppGlobal.Snap7Server.WriteWord(station.StatusChangeS7Ack, (ushort)operation.Code); } } TimerS7ComunicationStatus.Start(); }