/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ProcessTender_Load(object sender, EventArgs e) { ProcessTenderController pCntrl = ProcessTenderController.Instance; //Perform the process tender process this.loanTicketGroup.Visible = true; this.success = pCntrl.ExecuteProcessTender(procTendMode); this.Update(); switch (this.procTendMode) { case ProcessTenderProcedures.ProcessTenderMode.NEWLOAN: if (!this.success || CollectionUtilities.isEmpty(pCntrl.TicketFiles)) { MessageBox.Show( "New loan process tender failed. \n" + "Please call Shop System Support. \n" + "The loan number is: " + ProcessTenderController.Instance.TicketNumber, "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { this.okButton.Enabled = true; //Update the labels this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Amount)); //Update the list box for (int cnt = 1; cnt <= ProcessTenderController.Instance.TicketFiles.Count; ++cnt) { string s = ProcessTenderController.Instance.TicketFiles[cnt - 1]; if (string.IsNullOrEmpty(s)) { continue; } string ticketDesc = "Loan #" + ProcessTenderController.Instance.TicketNumber + "[" + cnt + "]"; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); } this.loanDocListView.Update(); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.SERVICELOAN: if (!this.success) { MessageBox.Show( "Servicing loan process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { if (GlobalDataAccessor.Instance.DesktopSession.TotalServiceAmount > 0) { this.initialProcessTenderLabel.Text = "Received From Customer:"; } else { this.initialProcessTenderLabel.Text = "Cash to Customer:"; } this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.TotalServiceAmount)); for (int cnt = 0; cnt < ProcessTenderController.Instance.ProcessedTickets.Count; cnt++) { var ticketData = ProcessTenderController.Instance.ProcessedTickets[cnt]; string s = ticketData.Right.ToString(); if (string.IsNullOrEmpty(s)) { continue; } string ticketDesc = "Loan #" + ticketData.Left.ToString() + "[" + cnt + 1 + "]"; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); } this.loanDocListView.Update(); this.Update(); //this.loanTicketGroup.Visible = false; //this.loanDocListView.Visible = false; //this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.VOIDLOAN: //Shouldn't be here for void loan break; case ProcessTenderProcedures.ProcessTenderMode.PURCHASE: if (!this.success) { MessageBox.Show( "Purchase process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.Amount)); string ticketDesc = "Purchase #" + GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.TicketNumber; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.VENDORPURCHASE: if (!this.success) { MessageBox.Show( "Purchase process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveVendor.Name, "", String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.Amount)); string ticketDesc = "Vendor Purchase #" + GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.TicketNumber; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.RETURNBUY: if (!this.success) { MessageBox.Show( "Purchase process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { initialProcessTenderLabel.Text = "Received From Customer:"; this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", (from item in GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.Items select item.ItemAmount).Sum())); string ticketDesc = "Return #" + GlobalDataAccessor.Instance.DesktopSession.ActivePurchase.TicketNumber; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.RETURNSALE: if (!this.success) { MessageBox.Show( "Refund process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { this.okButton.Enabled = true; this.setProcessTenderDetails( string.IsNullOrEmpty(GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.CustomerNumber) ? GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.EntityName : GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.CustomerNumber == "0" ? GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.CustomerName : GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.EntityName, "", String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.TotalSaleAmount)); string ticketDesc = "Refund Ticket #" + GlobalDataAccessor.Instance.DesktopSession.ActiveRetail.TicketNumber; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.LAYAWAY: if (!this.success) { MessageBox.Show( "Layaway process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { initialProcessTenderLabel.Text = "Received From Customer:"; this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.ActiveLayaway.TotalSaleAmount)); string ticketDesc = "Layaway Ticket #" + GlobalDataAccessor.Instance.DesktopSession.ActiveLayaway.TicketNumber; this.loanDocListView.Items.Add(new ListViewItem(ticketDesc, 0)); this.Update(); } break; case ProcessTenderProcedures.ProcessTenderMode.LAYPAYMENT: if (!this.success) { MessageBox.Show( "Layaway payment process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { initialProcessTenderLabel.Text = "Received From Customer:"; this.okButton.Enabled = true; this.setProcessTenderDetails( GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName, GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName, String.Format("{0:C}", GlobalDataAccessor.Instance.DesktopSession.TotalServiceAmount)); this.loanTicketGroup.Visible = false; this.Update(); ReceiptConfirmation rcptConf = new ReceiptConfirmation(); rcptConf.ShowDialog(); this.Close(); } break; case ProcessTenderProcedures.ProcessTenderMode.LAYPAYMENTREF: if (!this.success) { MessageBox.Show( "Layaway payment refund process failed. \n" + "Please call Shop System Support. \n", "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); GlobalDataAccessor.Instance.DesktopSession.ClearPawnLoan(); NewDesktop nDesk = (NewDesktop)GlobalDataAccessor.Instance.DesktopSession.HistorySession.Desktop(); nDesk.handleEndFlow(null); } else { decimal totalAmt = GlobalDataAccessor.Instance.DesktopSession.TenderAmounts.Sum(s => Utilities.GetDecimalValue(s, 0)); this.okButton.Enabled = true; this.setProcessTenderDetails( CashlinxDesktopSession.Instance.ActiveCustomer.FirstName, CashlinxDesktopSession.Instance.ActiveCustomer.LastName, String.Format("{0:C}", totalAmt)); this.loanTicketGroup.Visible = false; this.Update(); DisbursementConfirmation rcptConf = new DisbursementConfirmation(); rcptConf.ShowDialog(); this.Close(); } break; default: throw new ArgumentOutOfRangeException(this.procTendMode.ToString()); } }