public ReceiptSetup(PharmaceuticalReceipt r) { receipt = r; InitializeComponent(); SiteName.Text = r.SiteName; SiteAddress.Text = r.SiteAddress; SiteFax.Text = r.Fax; SitePhone.Text = r.Phone; SiteEmail.Text = r.Email; }
private void Window_Loaded(object sender, RoutedEventArgs e) { // set up references to sub-pages (i.e. the tabs) setup = (Setup)SetupFrame.Content; claim = (Claim)ClaimFrame.Content; eftpos = (Eftpos)EftposFrame.Content; quote = (Claim)QuoteFrame.Content; cancel = (Cancel)CancelFrame.Content; Debug.WriteLine("PrintReceiptCancelClaim: " + Settings.Default.PrintReceiptCancelClaim); // put the quote tab into quote mode quote.enterQuoteMode(); // create a cache object cache = new HicapsCacheManager(); claimLog = new ClaimLog(null); // create the HicapsConnectControl. hicaps = new HicapsConnectControl.HicapsConnectControl(); hicaps.DisplayStatusWindow(false); hicaps.TerminalListChanged += new HicapsConnectControl.TerminalListChangedEventHandler(hicaps_termListChanged); // Create a host for the winforms control // var host = new System.Windows.Forms.Integration.WindowsFormsHost {Child = hicaps}; // add HicapsConnectControl to window via host //this.HiddenHicapsControl.Children.Add(host); if (!PharmaceuticalReceipt.siteInfoExists()) { new PharmaceuticalReceipt().receiptSetup(); } // select terminal from dispatcher rather than Window_Loaded // to prevent weird combobox behaviour. Select after 5 seconds // to allow time for terminal auto-selection. var timer = new DispatcherTimer(DispatcherPriority.Normal, Dispatcher) { Interval = new TimeSpan(0, 0, 5) }; timer.Tick += (s, a) => { if (currentTerminal == null) { SelectTerminal(); } var dispatcherTimer = s as DispatcherTimer; if (dispatcherTimer != null) { dispatcherTimer.Stop(); } //NewUpdateItemFields(); //SyncTerminal(true); }; timer.Start(); }
private void SendButton_Click(object sender, RoutedEventArgs e) { SendButton.IsEnabled = false; HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest request; //HicapsConnectControl.HicapsConnectControl.AllItemListRequest itemRequest; main.hicaps.DisplayStatusWindow(true); if (QuoteMode) { // fields of a QuoteRequest are filled identically to those of a ClaimRequest. request = new HicapsConnectControl.HicapsConnectControl.QuotePharmRequest(); } else { request = new HicapsConnectControl.HicapsConnectControl.ClaimPharmRequest(); } // set provider request.ProviderNumberId = Utils.getProviderNumberId(ProviderCombo.Text); if (request.ProviderNumberId == null || request.ProviderNumberId == "00000000") { // inform user that a correct provider is needed MessageBox.Show("The selected provider is not valid. Please select another one."); SendButton.IsEnabled = true; return; } // add item details if (claimItems.Count < 1) { MessageBox.Show("There must be at least one claim item"); SendButton.IsEnabled = true; return; } int i = 0; foreach (ItemRow row in claimItems) { string rowNumber = "Row " + i + 1 + ": "; if (row.Dos == null) { MessageBox.Show(rowNumber + "Please select a date of service"); ClaimDetails.SelectedIndex = i; SendButton.IsEnabled = true; return; } try { if (row.ItemNumber.Length < 3) { MessageBox.Show(rowNumber + "Item Number must be 3 or greater characters"); ClaimDetails.SelectedIndex = i; SendButton.IsEnabled = true; return; } //else if (!row.ItemNumber.OnlyNumbers()) //{ // MessageBox.Show(rowNumber + "Item Number must consist of digits"); // ClaimDetails.SelectedIndex = i; // return; //} //GJ:Commented the old way to add the line as for the compound indicator should use the Compound column of each row instead of the UseAlternateBodyPart checkbox //request.addClaimPharmLine(row.PatientId, row.ItemNumber, row.ScriptNumber, UseAlternateBodyPart.IsChecked != null && UseAlternateBodyPart.IsChecked.Value, // row.Dos ?? DateTime.MinValue, // row.ItemFee.ParseCurrency() ?? 0); request.addClaimPharmLine(row.PatientId, row.ItemNumber, row.ScriptNumber, row.Compound == "Compound", row.Dos ?? DateTime.MinValue, row.ItemFee.ParseCurrency() ?? 0); } catch (Exception ex) { MessageBox.Show(ex.Message); SendButton.IsEnabled = true; return; } i++; } request.ServerUrl = main.currentTerminal; request.PmsKey = Utils.PMSKey; request.SoftwareVendorName = Utils.VendorName; request.PrintReceiptOnTerminal = Properties.Settings.Default.PrintClaimReceipt; // send request HicapsConnectControl.HicapsConnectControl.ClaimPharmResponse response; if (QuoteMode) { // converts the request to a QuoteRequest and the response to a ClaimResponse // while calling sendQuoteRequest main.SyncStatus("Sending Quote Request..."); response = main.hicaps.sendQuotePharmRequest((HicapsConnectControl.HicapsConnectControl.QuotePharmRequest)request); } else { main.SyncStatus("Sending Claim Request..."); response = main.hicaps.sendClaimPharmRequest(request); } main.ResetStatus(); if (response != null) { if (response.GetType() == typeof(HicapsConnectControl.HicapsConnectControl.ClaimPharmResponse)) { main.claimLog.LogClaim(response); } if (response.GetType() == typeof(HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)) { main.claimLog.LogQuote((HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)response); } main.cancel.UpdateTransactions(); _latestResponse = response; } dumpClaimResponseToDebug(response); if (response.ResponseCode != "00") { new ResponseError(response.ResponseCode, response.ResponseText).ShowDialog(); } else { // i.e. successful claim clearEntryFields(true); claimItems.Clear(); ClaimDetails.Items.Refresh(); } ////Display wait window //wait.Visibility = Visibility.Visible; //ForceUIToUpdate(); // print provider receipt if needed if (!QuoteMode && Settings.Default.PrintProviderClaimReceiptLocal) { //Display wait window wait.Visibility = Visibility.Visible; ForceUIToUpdate(); var rec = new PharmaceuticalReceipt(response, ReceiptFor.Provider); //Close wait window wait.Visibility = Visibility.Collapsed; rec.printReport(true); } // print customer receipt if needed bool shouldPrint = false; PharmaceuticalReceipt r; if (QuoteMode) { shouldPrint = Settings.Default.PrintQuoteReceiptLocal; var quoteResponse = (HicapsConnectControl.HicapsConnectControl.QuotePharmResponse)response; r = new PharmaceuticalReceipt(quoteResponse); } else { shouldPrint = Settings.Default.PrintCustomerClaimReceiptLocal; r = new PharmaceuticalReceipt(response, ReceiptFor.Customer); } if (shouldPrint) { r.printReport(false); } if (response.ResponseCode == "00") { // process claim-to-sale // todo: is gap really calculated this way? decimal gap = response.TransactionAmount - response.BenefitAmount; if (gap > 0 && !QuoteMode) { if (main.setup.ClaimToSale && main.setup.ClaimToSalePopup) { ClaimToSalePopup popup = new ClaimToSalePopup(gap); popup.Show(); } else if (main.setup.ClaimToSale && !main.setup.ClaimToSalePopup) { main.eftpos.doClaimToSale(); } else { // ClaimToSale is not checked. Do nothing } } } main.hicaps.DisplayStatusWindow(false); SendButton.IsEnabled = true; }
public ReportPreview(PharmaceuticalReceipt r) { receipt = r; InitializeComponent(); _reportViewer.Load += ReportViewer_Load; }
private bool sendCancel(string RRN, string provider, decimal transAmount) { main.hicaps.DisplayStatusWindow(true); HicapsConnectControl.HicapsConnectControl.ClaimCancelRequest request = new HicapsConnectControl.HicapsConnectControl.ClaimCancelRequest(); // set provider request.ProviderNumberId = Utils.getProviderNumberId(provider); if (request.ProviderNumberId == null) { // inform user that a correct provider is needed MessageBox.Show("The selected provider is not valid. Please select another one."); return(false); } request.PmsKey = Utils.PMSKey; request.SoftwareVendorName = Utils.VendorName; // set RRN request.RrnNumber = RRN; request.TransactionAmount = transAmount; request.PrintReceiptOnTerminal = Properties.Settings.Default.PrintReceiptCancelClaim; request.ServerUrl = main.currentTerminal; // send request main.SyncStatus("Sending Claim Cancel Request"); HicapsConnectControl.HicapsConnectControl.ClaimCancelResponse response = main.hicaps.sendClaimCancelRequest(request); main.ResetStatus(); if (response.ResponseCode != "00") { new ResponseError(response.ResponseCode, response.ResponseText).Show(); } if (Settings.Default.PrintProviderCancelReceiptLocal) { //Display wait window wait.Visibility = Visibility.Visible; ForceUIToUpdate(); var r = new PharmaceuticalReceipt(response, ReceiptFor.Provider, getSelectedResponse()); //Close wait window wait.Visibility = Visibility.Collapsed; r.printReport(true); } // print customer receipt if needed if (Settings.Default.PrintCustomerCancelReceiptLocal) { var r = new PharmaceuticalReceipt(response, ReceiptFor.Customer, getSelectedResponse()); r.printReport(false); } main.hicaps.DisplayStatusWindow(false); if (response.ResponseCode == "00") { var claim = main.claimLog.Log.FirstOrDefault(r => r.RrnNumber == RRN); main.claimLog.LogCancelledClaim(claim); main.claimLog.Log.Remove(claim); main.claimLog.SaveLogFile(); } UpdateTransactions(); return(response.ResponseCode == "00"); }