public CashRegisterWindow(Model.User userLoggedIn, Model.Statement statement, Model.Patient patient) { this.InitializeComponent(); FillPatients(); _userLoggedIn = userLoggedIn; _statement = statement; _selectedPatient = patient; _isStatement = _statement != null; if (_statement != null) { this.Title = "Abonar/Liquidar estado de cuenta"; lblAccountStatusNumber.ToolTip = lblAccountStatusNumber.Content = _statement.StatementId.ToString(); gbAccountStatusNumber.Visibility = System.Windows.Visibility.Visible; btnClearForm.Visibility = System.Windows.Visibility.Hidden; cbPatients.IsEnabled = false; FillTreatments(); FillPayments(); SelectPatient(); } else { gbAccountStatusNumber.Header = "Estado de cuenta activo"; } UpdateTotals(); }
public StatementExpirationDateModal(Model.Statement statement, Model.Patient patient, Model.User user) { this.InitializeComponent(); _statement = statement; _patient = patient; _user = user; }
public ChangeStatementExpirationDateModal(Model.Statement statement) { this.InitializeComponent(); _statement = statement; dtpCreationDate.SelectedDate = _statement.CreationDate; dtpExpirationDate.SelectedDate = _statement.ExpirationDate; }
public ViewStatementWindow(Model.Statement statement, Model.User userLoggedIn) { this.InitializeComponent(); _statement = statement; _userLoggedIn = userLoggedIn; lblPatientName.ToolTip = lblPatientName.Content = string.Format("(Exp. No. {0}) {1} {2}", _statement.Patient.AssignedId, _statement.Patient.FirstName, _statement.Patient.LastName); lblAccountStatusNumber.ToolTip = lblAccountStatusNumber.Content = _statement.StatementId.ToString(); UpdateStatementInfo(); LoadPatientPicture(); }
/// <summary> /// Handles verbs with special requirements /// </summary> public void HandleSpecialVerbs() { if (this.Verb.Equals("passed")) { result = (result == null) ? new Result() : result; VerifySuccessAndCompletionValues(result, "passed", true, true); result.Success = true; result.Completion = true; } else if (this.Verb.Equals("failed")) { result = (result == null) ? new Result() : result; VerifySuccessAndCompletionValues(result, "failed", false, true); result.Success = false; result.Completion = true; } else if (this.Verb.Equals("completed")) { result = (result == null) ? new Result() : result; VerifyCompletionValue(result, "completed", true); result.Completion = true; } }
private void FinishTransaction() { try { if (_selectedPatient == null) { MessageBox.Show("Seleccione un paciente para poder guardar", "Información", MessageBoxButton.OK, MessageBoxImage.Information); return; } List<PaymentControl> paymentsToSave = GetPaymentsToSave(); List<TreatmentPriceControl> treatmentsToSave = GetTreatmentsToSave(); if (_statement == null) { if (treatmentsToSave.Count == 0) { MessageBox.Show("Agregue al menos un tratamiento para poder guardar", "Información", MessageBoxButton.OK, MessageBoxImage.Information); } else if (_grandTotal == 0m) { if (_positiveBalance > 0m && MessageBox.Show("Existe un saldo a favor\n¿Desea que se guarde para el paciente seleccionado?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Warning ) == MessageBoxResult.No) { return; } CreatePaymentFolio(); SavePayments(paymentsToSave); SaveTreatments(treatmentsToSave); SavePositiveBalance(); PrepareWindowToPrintFolio(); MessageBox.Show("Datos guardados\n\nNúmero de folio generado: " + _paymentFolioGenerated.FolioNumber, "Información", MessageBoxButton.OK, MessageBoxImage.Information); SendMail(); } else { Model.Statement currentStatement = _selectedPatient.Statements .Where(s => s.IsPaid == false) .FirstOrDefault(); if (currentStatement == null) { currentStatement = new Model.Statement(); if (MessageBox.Show("No se ha saldado por completo el monto de los tratamientos\n¿Desea abrir un estado de cuenta para este paciente?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Warning ) == MessageBoxResult.Yes) { new StatementExpirationDateModal(currentStatement, _selectedPatient, _userLoggedIn).ShowDialog(); if (currentStatement.PatientId != 0) { CreatePaymentFolio(); CreateStatement(currentStatement); _statement = currentStatement; SavePayments(paymentsToSave); SaveTreatments(treatmentsToSave); PrepareWindowToPrintFolio(); ShowStatementNumberGenerated(); MessageBox.Show("Datos guardados\n\nNúmero de folio generado: " + _paymentFolioGenerated.FolioNumber + "\nNúmero del estado de cuenta generado: " + _statement.StatementId , "Información", MessageBoxButton.OK, MessageBoxImage.Information); SendMail(); } } } else if (currentStatement.ExpirationDate < DateTime.Now.Date) { MessageBox.Show("Este paciente posee un estado de cuenta que ha expirado (Estado de cuenta número: " + currentStatement.StatementId + ")" + "\nEl monto faltante no puede ser agregado al estado de cuenta, por tal motivo tiene que liquidar los tratamientos seleccionados en este momento.", "Información", MessageBoxButton.OK, MessageBoxImage.Information); } else { if (MessageBox.Show("Este paciente posee un estado de cuenta con número: " + currentStatement.StatementId + "\n¿Desea guardar el monto faltante en el estado de cuenta del paciente?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Warning ) == MessageBoxResult.Yes) { CreatePaymentFolio(); _statement = currentStatement; SavePayments(paymentsToSave); SaveTreatments(treatmentsToSave); PrepareWindowToPrintFolio(); ShowStatementNumberGenerated(); MessageBox.Show("Datos guardados\n\nNúmero de folio generado: " + _paymentFolioGenerated.FolioNumber + "\nNúmero del estado de cuenta modificado: " + _statement.StatementId , "Información", MessageBoxButton.OK, MessageBoxImage.Information); SendMail(); } } } } else { if (paymentsToSave.Count == 0 && treatmentsToSave.Count == 0) { MessageBox.Show("Agregue al menos un pago o un tratamiento para poder guardar", "Información", MessageBoxButton.OK, MessageBoxImage.Information); } else if (_grandTotal == 0m) { if (_positiveBalance > 0m && MessageBox.Show("Existe un saldo a favor\n¿Desea que se guarde para el paciente seleccionado?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Warning ) == MessageBoxResult.No) { return; } CreatePaymentFolio(); _statement.IsPaid = true; UpdateStatement(_statement); SavePayments(paymentsToSave); SaveTreatments(treatmentsToSave); SavePositiveBalance(); PrepareWindowToPrintFolio(); MessageBox.Show("Datos guardados\n\nEl estado de cuenta fue marcado como liquidado.\nNúmero de folio generado: " + _paymentFolioGenerated.FolioNumber, "Información", MessageBoxButton.OK, MessageBoxImage.Information); SendMail(); } else { if (MessageBox.Show("¿Está seguro(a) que desea guardar los cambios realizados en el estado de cuenta del paciente?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Warning ) == MessageBoxResult.Yes) { CreatePaymentFolio(); SavePayments(paymentsToSave); SaveTreatments(treatmentsToSave); PrepareWindowToPrintFolio(); MessageBox.Show("Datos guardados\n\nNúmero de folio generado: " + _paymentFolioGenerated.FolioNumber, "Información", MessageBoxButton.OK, MessageBoxImage.Information); SendMail(); } } } } catch (Exception ex) { MessageBox.Show("Error al tratar de guardar la información de la caja.\nDetalle del error:\n" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void ClearForm() { _statement = null; _paymentFolioGenerated = null; btnSave.IsEnabled = true; cbPatients.IsEnabled = true; btnAddTreatment.IsEnabled = true; btnAddCashPayment.IsEnabled = true; btnAddCreditCardPayment.IsEnabled = true; btnAddCheckPayment.IsEnabled = true; btnPrintMail.IsEnabled = false; lblPaymentFolioNumber.ToolTip = lblPaymentFolioNumber.Text = string.Empty; spTreatments.Children.Clear(); spPayments.Children.Clear(); lblGeneratedStatementNumberCaption.Visibility = System.Windows.Visibility.Hidden; lblGeneratedStatementNumber.ToolTip = lblGeneratedStatementNumber.Text = string.Empty; cbPatients.SelectedIndex = -1; UpdateTotals(); }