private void selectTransferMethodFormAction(object sender, object data) { NavBox selectTransferMethodNavBox = (NavBox)sender; NavBox.NavAction action = selectTransferMethodNavBox.Action; if (action == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); action = NavBox.NavAction.SUBMIT; } switch (action) { case NavBox.NavAction.SUBMIT: //Default happy path next state this.nextState = TransferInFlowState.SelectItems; break; case NavBox.NavAction.CANCEL: this.nextState = TransferInFlowState.CancelFlow; break; default: throw new ApplicationException("" + action + " is not a valid state for SelectTransferInMethod"); } this.executeNextState(); }
private void transferRejectCommentFormAction(object sender, object data) { NavBox transferRejectCommentNavBox = (NavBox)sender; NavBox.NavAction action = transferRejectCommentNavBox.Action; if (action == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); action = NavBox.NavAction.SUBMIT; } var dSession = GlobalDataAccessor.Instance.DesktopSession; switch (action) { case NavBox.NavAction.SUBMIT: //Default happy path next state string errorCode, errorText; bool retValue = TransferProcedures.RejectTransfer(dSession, dSession.ActiveTransferIn, out errorCode, out errorText); if (!retValue) { MessageBox.Show("An error occured while rejecting the transfer."); } this.nextState = TransferInFlowState.ManageTransfer; break; case NavBox.NavAction.CANCEL: this.nextState = TransferInFlowState.CancelFlow; break; default: throw new ApplicationException(string.Format("{0} is not a valid state for SelectTransferInItems", action.ToString())); } this.executeNextState(); }
public TransferInFlowExecutor(Form parentForm, FxnBlock eStateNotifier) : base(NAME) { this.parentForm = parentForm; this.endStateNotifier = eStateNotifier; this.nextState = TransferInFlowState.ManageTransfer; this.setExecBlock(this.executorFxn); this.executeNextState(); }
private void manageTransferInFormNavAction(object sender, object data) { NavBox manageTransferInNavBox = (NavBox)sender; NavBox.NavAction action = manageTransferInNavBox.Action; if (action == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); action = NavBox.NavAction.SUBMIT; } switch (action) { case NavBox.NavAction.SUBMIT: //Default happy path next state if (manageTransferInNavBox.IsCustom) { if (manageTransferInNavBox.CustomDetail.Equals("RejectComments")) { this.nextState = TransferInFlowState.RejectComments; } else { throw new ApplicationException("" + action.ToString() + " is not a valid state for ManageTransferIn"); } } else { if (new BusinessRulesProcedures(GlobalDataAccessor.Instance.DesktopSession).IsQuickReceiveTransferInAllowed(GlobalDataAccessor.Instance.CurrentSiteId)) { this.nextState = TransferInFlowState.SelectTransferMethod; } else { GlobalDataAccessor.Instance.DesktopSession.TransferMethod = TransferMethod.Manual; this.nextState = TransferInFlowState.SelectItems; } } break; case NavBox.NavAction.CANCEL: this.nextState = TransferInFlowState.CancelFlow; break; default: throw new ApplicationException("" + action.ToString() + " is not a valid state for ManageTransferIn"); } this.executeNextState(); }
/// <summary> /// Main execution function for ChangeRetailPriceFlowExecutor /// </summary> /// <param name="inputData"></param> /// <returns></returns> private object executorFxn(object inputData) { if (inputData == null) { inputData = suspendedState; } TransferInFlowState inputState = (TransferInFlowState)inputData; var dSession = GlobalDataAccessor.Instance.DesktopSession; switch (inputState) { case TransferInFlowState.ManageTransfer: if (dSession.ActiveTransferIn == null) { dSession.ActiveTransferIn = new TransferVO(); } dSession.TransferMethod = TransferMethod.QuickReceive; var transferIn = new ManageTransferIn(); Form currForm = dSession.HistorySession.Lookup(transferIn); if (currForm.GetType() == typeof(ManageTransferIn)) { currForm.Show(); } else { ShowForm manageTransferInBlk = CommonAppBlocks.Instance.CreateManageTransferInShowBlock(this.parentForm, this.manageTransferInFormNavAction); if (!manageTransferInBlk.execute()) { throw new ApplicationException("Cannot execute Manage Transfer In Show block"); } } break; case TransferInFlowState.SelectTransferMethod: ShowForm selectTransferMethodBlk = CommonAppBlocks.Instance.CreateSelectTransferMethodShowBlock(this.parentForm, this.selectTransferMethodFormAction); if (!selectTransferMethodBlk.execute()) { throw new ApplicationException("Cannot execute Select Transfer Method Block"); } break; case TransferInFlowState.SelectItems: ShowForm selectTransferInItemsBlk = CommonAppBlocks.Instance.CreateSelectTransferInItemsShowBlock(this.parentForm, this.selectTransferInItemsFormAction); if (!selectTransferInItemsBlk.execute()) { throw new ApplicationException("Cannot execute Select Transfer In Items Block"); } break; case TransferInFlowState.RejectComments: ShowForm transferRejectCommentBlk = CommonAppBlocks.Instance.CreateTransferRejectCommentShowBlock(this.parentForm, this.transferRejectCommentFormAction); if (!transferRejectCommentBlk.execute()) { throw new ApplicationException("Cannot execute Transfer Reject Comment Block"); } break; case TransferInFlowState.CancelFlow: dSession.ClearLoggedInUser(); dSession.Transfers = new List <TransferVO>(1) { new TransferVO() }; if (this.endStateNotifier != null) { this.endStateNotifier.execute(); } break; case TransferInFlowState.ExitFlow: break; default: throw new ApplicationException("Invalid change retail price flow state"); } return(true); }
private void selectTransferInItemsFormAction(object sender, object data) { NavBox selectTransferInItemsNavBox = (NavBox)sender; NavBox.NavAction action = selectTransferInItemsNavBox.Action; if (action == NavBox.NavAction.BACKANDSUBMIT) { GlobalDataAccessor.Instance.DesktopSession.HistorySession.Back(); action = NavBox.NavAction.SUBMIT; } var dSession = GlobalDataAccessor.Instance.DesktopSession; switch (action) { case NavBox.NavAction.SUBMIT: //Default happy path next state string errorCode, errorText; int ticketNumber; GlobalDataAccessor.Instance.beginTransactionBlock(); bool retValue = TransferProcedures.ProcessTransferIn( dSession, dSession.ActiveTransferIn, out ticketNumber, out errorCode, out errorText); if (!retValue || ticketNumber == 0) { GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK); MessageBox.Show("An error occured while completing the transfer. Please contact Shop Systems Support."); } else { GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT); //----------- //MessageBox.Show("report"); var transferList = new List <TransferItemVO>(); var reportObj = new ReportObject.TransferINReportStruct(); reportObj.transDate = ShopDateTime.Instance.ShopDate.ToString(); reportObj.userID = dSession.FullUserName; reportObj.ToStoreName = GlobalDataAccessor.Instance.CurrentSiteId.StoreNickName; reportObj.ToStoreNo = string.Empty; reportObj.FromShopName = string.Format("Shop # - {0}", dSession.ActiveTransferIn.StoreInfo.StoreNickName); reportObj.FromShopNo = string.Empty; reportObj.FromStoreAddrLine1 = string.Empty; reportObj.FromStoreAddrLine2 = string.Empty; reportObj.storeMgrPhone = string.Empty; reportObj.storeMgrName = string.Empty; reportObj.transNum = string.Format("{0}", ticketNumber); reportObj.Carrier = dSession.ActiveTransferIn.Carrier; reportObj.DateReceived = dSession.ActiveTransferIn.StatusDate.ToString(); reportObj.TransferReference = dSession.ActiveTransferIn.TransferTicketNumber.ToString(); reportObj.ReceivedBy = string.Empty; reportObj.logPath = SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration.BaseLogPath; var transreport = new Reports.TransferIN.SummaryReport(GlobalDataAccessor.Instance.DesktopSession.ActiveTransferIn.Items, reportObj, PdfLauncher.Instance); transreport.CreateReport(); //TODO: Store report in couch db if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled && dSession.LaserPrinter.IsValid) { string laserPrinterIp = dSession.LaserPrinter.IPAddress; int laserPrinterPort = dSession.LaserPrinter.Port; PrintingUtilities.printDocument(transreport.getReportFileName(), laserPrinterIp, laserPrinterPort, 1); } //end if (PrintEnabled) //------------ } this.nextState = TransferInFlowState.ManageTransfer; break; case NavBox.NavAction.CANCEL: this.nextState = TransferInFlowState.CancelFlow; break; default: throw new ApplicationException("" + action + " is not a valid state for SelectTransferInItems"); } this.executeNextState(); }