public PaymentEditPopup(Payment payment)
 {
     InitializeComponent();
     paymentEdit.CurrentPayment = this.payment = payment;
     Program.Table<Payment>().RowRemoved += Paymens_RowRemoved;
     ClientSize = paymentEdit.Size;
 }
        DepositAdder(Payment[] payments)
        {
            InitializeComponent();

            this.payments = payments;
            account = (string)payments[0]["Account"];

            selectedPayments = new bool[payments.Length];
            for (int i = 0; i < Math.Min(16, payments.Length); i++)
                selectedPayments[i] = true;

            Text = "Add " + account + " Deposit";
            grid.DataSource = new RowListBinder(Program.Table<Payment>(), payments);
            gridView.BestFitColumns();

            depositNumber.EditValue = null;

            totalSummary = String.Format(CultureInfo.CurrentCulture, "Total: {0:#,0} undeposited payment{1}, {2:c}\r\n",
                                         payments.Length, payments.Length == 1 ? "" : "s", payments.Sum(p => p.Amount));

            UpdateSummary();
            CheckableGridController.Handle(colCheck);
        }
            public void DoImport()
            {
                var pledge = new Pledge {
                    Person = Person,
                    Date = Date,
                    Type = Type,
                    SubType = SubType,
                    Note = Note,
                    Account = Account,
                    Amount = Amount,
                    Comments = Comments
                };
                Program.Table<Pledge>().Rows.Add(pledge);
                pledge.Modifier = Modifier;

                if (AmountPaid != 0) {
                    var payment = new Payment {
                        Person = Person,
                        Date = Date,
                        Method = PaymentMethod,
                        CheckNumber = CheckNumber,
                        Account = Account,
                        Amount = AmountPaid,
                        Comments = Comments
                    };
                    Program.Table<Payment>().Rows.Add(payment);
                    payment.Modifier = Modifier;

                    Program.Table<PledgeLink>().Rows.Add(new PledgeLink {
                        Amount = AmountPaid,
                        Payment = payment,
                        Pledge = pledge
                    });
                }
            }
partial         void ValidatePayment(Payment newValue, Action<string> error);
partial         void OnPaymentChanged(Payment oldValue, Payment newValue);
Example #6
0
		public void Import() {
			if (!string.IsNullOrWhiteSpace(CurrentPayment.Email) && !AppFramework.Table<EmailAddress>().Rows
					.Any(r => r.Email.Equals(CurrentPayment.Email, StringComparison.OrdinalIgnoreCase))) {
				AppFramework.Table<EmailAddress>().Rows.Add(new EmailAddress {
					Email = CurrentPayment.Email,
					Name = CurrentPayment.FirstName + " " + CurrentPayment.LastName,
					DateAdded = CurrentPayment.Date,
					Person = Person
				});
			}

			var payment = new Payment {
				Account = Names.DefaultAccount,
				CheckNumber = CurrentPayment.FinalFour,
				Amount = CurrentPayment.Amount,
				Company = CurrentPayment.Company,
				Comments = TrimComments(Comments.Trim()),
				Date = CurrentPayment.Date,
				Method = "Credit Card",
				Person = Person,
			};
			AppFramework.Table<Payment>().Rows.Add(payment);
			AppFramework.Table<ImportedPayment>().Rows.Add(new ImportedPayment {
				DateImported = DateTime.Now,
				ExternalId = CurrentPayment.Id,
				ImportingUser = Environment.UserName,
				Payment = payment,
				Source = CurrentPayment.SourceName
			});
			Pledge pledge = null;
			if (CreatePledge) {
				pledge = new Pledge {
					Account = payment.Account,
					Amount = PledgeAmount,
					Comments = TrimComments("Created for credit card payment:\n" + Comments.Trim()),
					Date = payment.Date,
					Person = payment.Person,
					Type = PledgeType,
					SubType = PledgeSubType ?? "",
					Note = PledgeNote
				};

				AppFramework.Table<PledgeLink>().Rows.Add(new PledgeLink {
					Amount = pledge.Amount,
					Pledge = pledge,
					Payment = payment
				});
				AppFramework.Table<Pledge>().Rows.Add(pledge);
			}

			if (CurrentPayment.JournalInfo?.MensSeats != null || CurrentPayment.JournalInfo?.WomensSeats != null) {
				AppFramework.Table<MelaveMalkaSeat>().Rows.Add(new MelaveMalkaSeat {
					MensSeats = CurrentPayment.JournalInfo.MensSeats,
					WomensSeats = CurrentPayment.JournalInfo.WomensSeats,
					Person = payment.Person,
					Year = JournalAd.InferYear(payment.Date),
					DateAdded = DateTime.Now
				});
			}
			ImportCallback?.Invoke(CurrentPayment, payment, pledge);
			RefreshPayments();
		}
        private void add_Click(object sender, EventArgs e)
        {
            #region Validation
            if (amount.Value <= 0) {
                XtraMessageBox.Show("Please select an amount to bill.",
                                    "Shomrei Torah Billing", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (paymentMethod.SelectedIndex < 0) {
                XtraMessageBox.Show("Please select a payment method.",
                                    "Shomrei Torah Billing", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (paymentMethod.Text == "Check") {
                if (!(checkDate.EditValue is DateTime)) {
                    XtraMessageBox.Show("Please enter the date on the check.",
                                        "Shomrei Torah Billing", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (!String.IsNullOrWhiteSpace(checkNumber.Text)) {
                    Payment duplicate = personSelector.SelectedPerson.Payments
                            .FirstOrDefault(p => String.Equals(p.CheckNumber, checkNumber.Text, StringComparison.CurrentCultureIgnoreCase));

                    if (duplicate != null
                     && !Dialog.Warn(String.Format(CultureInfo.CurrentCulture, "{0} #{1} for {2} has already been entered ({3:d}, {4:c}).\r\nIs that correct?",
                                                                               duplicate.Method, duplicate.CheckNumber, duplicate.Person.FullName, duplicate.Date, duplicate.Amount)))
                        return;
                }
            }
            #endregion

            var actualComments = String.IsNullOrWhiteSpace(this.comments.Text) ? null : this.comments.Text;
            Pledge pledge = new Pledge {
                Person = personSelector.SelectedPerson,
                Date = DateTime.Now,
                Type = PledgeType,
                SubType = "",
                Account = Account,
                Amount = amount.Value,
                Comments = actualComments
            };
            Program.Table<Pledge>().Rows.Add(pledge);

            string messagePrefix = personSelector.SelectedPerson.FullName + " have been added to the Shalach Manos list with a " + amount.Value.ToString("c0", CultureInfo.CurrentCulture);

            Payment payment = null;
            switch (paymentMethod.Text) {
                case "Unpaid":
                    InfoMessage.Show(messagePrefix + " unpaid pledge.");
                    break;
                case "Cash":
                    Program.Table<Payment>().Rows.Add(payment = new Payment {
                        Person = personSelector.SelectedPerson,
                        Date = DateTime.Now,
                        Method = paymentMethod.Text,
                        Account = Account,
                        Amount = amount.Value,
                        Comments = actualComments
                    });
                    InfoMessage.Show(messagePrefix + " cash payment.");
                    break;
                case "Check":
                    Program.Table<Payment>().Rows.Add(payment = new Payment {
                        Person = personSelector.SelectedPerson,
                        Date = checkDate.DateTime,
                        Method = paymentMethod.Text,
                        CheckNumber = checkNumber.Text,
                        Account = Account,
                        Amount = amount.Value,
                        Comments = actualComments
                    });
                    InfoMessage.Show(messagePrefix + " check.");
                    break;
            }
            if (payment != null)
                Program.Table<PledgeLink>().Rows.Add(new PledgeLink {
                    Amount = amount.Value,
                    Payment = payment,
                    Pledge = pledge
                });

            personSelector.SelectedPerson = null;
            personSelector.Focus();
        }