public Transaction AddTransaction(CMSDataContext db, string reason, decimal payment, string description, decimal? amount = null, bool? adjustFee = false, string pmtDescription = null)
{
var ts = TransactionSummary(db);
var ti = db.Transactions.SingleOrDefault(tt => tt.Id == TranId);
if (ti == null)
{
ti = (from t in db.Transactions
where t.OriginalTransaction.TransactionPeople.Any(pp => pp.PeopleId == PeopleId)
where t.OriginalTransaction.OrgId == OrganizationId
orderby t.Id descending
select t).FirstOrDefault();
if (ti != null)
TranId = ti.Id;
}
var ti2 = new Transaction
{
TransactionId = $"{reason} ({Util.UserPeopleId ?? Util.UserId1})",
Description = Util.PickFirst(pmtDescription, Organization.OrganizationName),
TransactionDate = DateTime.Now,
OrgId = OrganizationId,
Name = Person.Name,
First = Person.PreferredName,
Last = Person.LastName,
MiddleInitial = Person.MiddleName.Truncate(1),
Suffix = Person.SuffixCode,
Address = Person.PrimaryAddress,
City = Person.PrimaryCity,
Emails = Person.EmailAddress,
State = Person.PrimaryState,
Zip = Person.PrimaryZip,
LoginPeopleId = Util.UserPeopleId,
Approved = true,
Amt = payment,
//Amtdue = (amount ?? payment) - payment,
Amtdue = (amount ?? 0) - payment,
AdjustFee = adjustFee,
Message = description,
};
db.Transactions.InsertOnSubmit(ti2);
db.SubmitChanges();
if (ts == null)
{
TranId = ti2.Id;
ti2.TransactionPeople.Add(new TransactionPerson { PeopleId = PeopleId, OrgId = OrganizationId, Amt = amount ?? payment });
if (ti != null)
ti.OriginalId = ti.Id;
}
ti2.OriginalId = TranId;
db.SubmitChanges();
// if (Organization.IsMissionTrip == true)
// {
// var settings = Settings.CreateSettings(Organization.RegSetting, db, OrganizationId);
// }
return ti2;
}