示例#1
0
        public ActionResult Adjust(int id, decimal amt, string desc, TransactionsModel m)
        {
            var qq = from tt in DbUtil.Db.Transactions
                     where tt.OriginalId == id || tt.Id == id
                     orderby tt.Id descending
                     select tt;
            var t = qq.FirstOrDefault();

            if (t == null)
                return Content("notran");

            var t2 = new Transaction
                {
                    TransactionId = "Adjustment",
                    First = t.First,
                    MiddleInitial = t.MiddleInitial,
                    Last = t.Last,
                    Suffix = t.Suffix,
                    Amt = amt,
                    Emails = t.Emails,
                    Amtdue = t.Amtdue - amt,
                    Approved = true,
                    AuthCode = "",
                    Message = desc,
                    Donate = -t.Donate,
                    Regfees = -t.Regfees,
                    TransactionDate = DateTime.Now,
                    TransactionGateway = t.TransactionGateway,
                    Testing = t.Testing,
                    Description = t.Description,
                    OrgId = t.OrgId,
                    OriginalId = t.OriginalId,
                    Participants = t.Participants,
                    Financeonly = t.Financeonly,
                };
                DbUtil.Db.Transactions.InsertOnSubmit(t2);
                DbUtil.Db.SubmitChanges();
                Util.SendMsg(Util.SysFromEmail, Util.Host,
                    Util.TryGetMailAddress(DbUtil.Db.StaffEmailForOrg(t2.OrgId ?? 0)),
                    "Adjustment Transaction",
            @"<table>
            <tr><td>Name</td><td>{0}</td></tr>
            <tr><td>Email</td><td>{1}</td></tr>
            <tr><td>Address</td><td>{2}</td></tr>
            <tr><td>Phone</td><td>{3}</td></tr>
            <tr><th colspan=""2"">Transaction Info</th></tr>
            <tr><td>Description</td><td>{4}</td></tr>
            <tr><td>Amount</td><td>{5:N2}</td></tr>
            <tr><td>Date</td><td>{6}</td></tr>
            <tr><td>TranIds</td><td>Org: {7} {8}, Curr: {9} {10}</td></tr>
            </table>".Fmt(Transaction.FullName(t), t.Emails, t.Address, t.Phone,
             t.Description,
             t.Amt,
             t.TransactionDate.Value.FormatDateTm(),
             t.Id, t.TransactionId, t2.Id, t2.TransactionId
             ), Util.EmailAddressListFromString(DbUtil.Db.StaffEmailForOrg(t2.OrgId ?? 0)),
                    0, 0);
            DbUtil.LogActivity("Adjust for " + t.TransactionId);
            return View("List", m);
        }
 public ActionResult AssignGoer(int id, int? gid, TransactionsModel m)
 {
     if (gid == 0)
         gid = null;
     var gsa = DbUtil.Db.GoerSenderAmounts.Single(tt => tt.Id == id);
     gsa.GoerId = gid;
     DbUtil.Db.SubmitChanges();
     return View("GoerSupporters", m);
 }
 public ActionResult SetParent(int id, int parid, TransactionsModel m)
 {
     var t = DbUtil.Db.Transactions.SingleOrDefault(tt => tt.Id == id);
     if (t == null)
         return Content("notran");
     t.OriginalId = parid;
     DbUtil.Db.SubmitChanges();
     return View("List", m);
 }
 public ActionResult ReportByBatchDescription(DateTime? sdt, DateTime? edt)
 {
     var m = new TransactionsModel
     {
         startdt = sdt,
         enddt = edt,
         usebatchdates = true,
     };
     return View(m);
 }
示例#5
0
 public ActionResult CreditVoid(int id, string type, decimal? amt, TransactionsModel m)
 {
     var t = DbUtil.Db.Transactions.SingleOrDefault(tt => tt.Id == id);
     if (t == null)
         return Content("notran");
     var qq = from tt in DbUtil.Db.Transactions
              where tt.OriginalId == id || tt.Id == id
              orderby tt.Id descending
              select tt;
     var t0 = qq.First();
     var sage = new SagePayments(DbUtil.Db, t.Testing ?? false);
     TransactionResponse resp = null;
     var re = t.TransactionId;
     if (re.Contains("(testing"))
         re = re.Substring(0, re.IndexOf("(testing)"));
     if (type == "Void")
     {
         resp = sage.voidTransactionRequest(re);
         if (!resp.Approved)
             resp = sage.voidCheckRequest(re);
         if (resp.Approved)
             t.Voided = true;
         amt = t.Amt;
     }
     else
     {
         if (t.Batchtyp == "eft")
             resp = sage.creditCheckTransactionRequest(re, amt ?? 0);
         else if (t.Batchtyp == "bankcard")
             resp = sage.creditTransactionRequest(re, amt ?? 0);
         if (resp.Approved)
             t.Credited = true;
     }
     if(!resp.Approved)
     {
         return Content("error: " + resp.Message);
     }
     else // approved
     {
         var tt = new Transaction
         {
             TransactionId = resp.TransactionId + (t.Testing == true ? "(testing)" : ""),
             First = t.First,
             MiddleInitial = t.MiddleInitial,
             Last = t.Last,
             Suffix = t.Suffix,
             Amt = -amt,
             Amtdue = t0.Amtdue + amt,
             Approved = true,
             AuthCode = t.AuthCode,
             Message = t.Message,
             Donate = -t.Donate,
             Regfees = -t.Regfees,
             TransactionDate = DateTime.Now,
             TransactionGateway = t.TransactionGateway,
             Testing = t.Testing,
             Description = t.Description,
             OrgId = t.OrgId,
             OriginalId = t.OriginalId,
             Participants = t.Participants,
             Financeonly = t.Financeonly,
         };
         DbUtil.Db.Transactions.InsertOnSubmit(tt);
         DbUtil.Db.SubmitChanges();
         Util.SendMsg(Util.SysFromEmail, Util.Host,
             Util.TryGetMailAddress(DbUtil.Db.StaffEmailForOrg(tt.OrgId ?? 0)),
             "Void/Credit Transaction Type: " + type,
     @"<table>
     <tr><td>Name</td><td>{0}</td></tr>
     <tr><td>Email</td><td>{1}</td></tr>
     <tr><td>Address</td><td>{2}</td></tr>
     <tr><td>Phone</td><td>{3}</td></tr>
     <tr><th colspan=""2"">Transaction Info</th></tr>
     <tr><td>Description</td><td>{4}</td></tr>
     <tr><td>Amount</td><td>{5:N2}</td></tr>
     <tr><td>Date</td><td>{6}</td></tr>
     <tr><td>TranIds</td><td>Org: {7} {8}, Curr: {9} {10}</td></tr>
     <tr><td>User</td><td>{11}</td></tr>
     </table>".Fmt(Transaction.FullName(t), t.Emails, t.Address, t.Phone,
      t.Description,
      -amt,
      t.TransactionDate.Value.FormatDateTm(),
      t.Id, t.TransactionId, tt.Id, tt.TransactionId, Util.UserFullName
      ), Util.EmailAddressListFromString(DbUtil.Db.StaffEmailForOrg(tt.OrgId ?? 0)),
             0, 0);
     }
     DbUtil.LogActivity("CreditVoid for " + t.TransactionId);
     return View("List", m);
 }
示例#6
0
 public ActionResult List(TransactionsModel m)
 {
     UpdateModel(m.Pager);
     return View(m);
 }
示例#7
0
 public ActionResult Index(int? id)
 {
     var m = new TransactionsModel(id);
     return View(m);
 }
示例#8
0
 public ActionResult Export(TransactionsModel m)
 {
     return new TransactionsExcelResult(m);
 }
 public TransactionsExcelResult(TransactionsModel m)
 {
     this.m = m;
 }
示例#10
0
        public ActionResult CreditVoid(int id, string type, decimal? amt, TransactionsModel m)
        {
            var t = DbUtil.Db.Transactions.SingleOrDefault(tt => tt.Id == id);
            if (t == null)
                return Content("notran");

            var qq = from tt in DbUtil.Db.Transactions
                where tt.OriginalId == id || tt.Id == id
                orderby tt.Id descending
                select tt;
            var t0 = qq.First();
            var gw = DbUtil.Db.Gateway(t.Testing ?? false);
            TransactionResponse resp = null;
            var re = t.TransactionId;
            if (re.Contains("(testing"))
                re = re.Substring(0, re.IndexOf("(testing)"));
            if (type == "Void")
            {
                resp = gw.VoidCreditCardTransaction(re);
                if (!resp.Approved)
                    resp = gw.VoidCheckTransaction(re);

                t.Voided = resp.Approved;
                amt = t.Amt;
            }
            else
            {
                if (t.PaymentType == PaymentType.Ach)
                    resp = gw.RefundCheck(re, amt ?? 0);
                else if (t.PaymentType == PaymentType.CreditCard)
                    resp = gw.RefundCreditCard(re, amt ?? 0);

                t.Credited = resp.Approved;
            }

            if (!resp.Approved)
                return Content("error: " + resp.Message);

            var transaction = new Transaction
            {
                TransactionId = resp.TransactionId + (t.Testing == true ? "(testing)" : ""),
                First = t.First,
                MiddleInitial = t.MiddleInitial,
                Last = t.Last,
                Suffix = t.Suffix,
                Amt = -amt,
                Amtdue = t0.Amtdue + amt,
                Approved = true,
                AuthCode = t.AuthCode,
                Message = t.Message,
                Donate = -t.Donate,
                Regfees = -t.Regfees,
                TransactionDate = DateTime.Now,
                TransactionGateway = t.TransactionGateway,
                Testing = t.Testing,
                Description = t.Description,
                OrgId = t.OrgId,
                OriginalId = t.OriginalId,
                Participants = t.Participants,
                Financeonly = t.Financeonly,
                PaymentType = t.PaymentType,
                LastFourCC = t.LastFourCC,
                LastFourACH = t.LastFourACH
            };

            DbUtil.Db.Transactions.InsertOnSubmit(transaction);
            DbUtil.Db.SubmitChanges();
            Util.SendMsg(Util.SysFromEmail, Util.Host,
                Util.TryGetMailAddress(DbUtil.Db.StaffEmailForOrg(transaction.OrgId ?? 0)),
                "Void/Credit Transaction Type: " + type,
                $@"<table>
<tr><td>Name</td><td>{Transaction.FullName(t)}</td></tr>
<tr><td>Email</td><td>{t.Emails}</td></tr>
<tr><td>Address</td><td>{t.Address}</td></tr>
<tr><td>Phone</td><td>{t.Phone}</td></tr>
<tr><th colspan=""2"">Transaction Info</th></tr>
<tr><td>Description</td><td>{t.Description}</td></tr>
<tr><td>Amount</td><td>{-amt:N2}</td></tr>
<tr><td>Date</td><td>{t.TransactionDate.Value.FormatDateTm()}</td></tr>
<tr><td>TranIds</td><td>Org: {t.Id} {t.TransactionId}, Curr: {transaction.Id} {transaction.TransactionId}</td></tr>
<tr><td>User</td><td>{Util.UserFullName}</td></tr>
</table>", Util.EmailAddressListFromString(DbUtil.Db.StaffEmailForOrg(transaction.OrgId ?? 0)),
                0, 0);
            DbUtil.LogActivity("CreditVoid for " + t.TransactionId);

            return View("List", m);
        }
示例#11
0
 public ActionResult Export(TransactionsModel m)
 {
     return m.ToExcel();
 }
示例#12
0
 public ActionResult DeleteGoerSenderAmount(int id, TransactionsModel m)
 {
     var gsa = DbUtil.Db.GoerSenderAmounts.Single(tt => tt.Id == id);
     DbUtil.Db.GoerSenderAmounts.DeleteOnSubmit(gsa);
     DbUtil.Db.SubmitChanges();
     return View("GoerSupporters", m);
 }
示例#13
0
        public ActionResult DeleteManual(int id, TransactionsModel m)
        {
            DbUtil.Db.ExecuteCommand(@"
UPDATE dbo.OrganizationMembers SET TranId = NULL WHERE TranId = {0}
DELETE dbo.TransactionPeople WHERE Id = {0}
DELETE dbo.[Transaction] WHERE Id = {0}
", id);
            return View("List", m);
        }
示例#14
0
 public ActionResult Index(int? id, int? goerid = null, int? senderid = null, string reference = "", string desc = "")
 {
     var m = new TransactionsModel(id, reference, desc) {GoerId = goerid, SenderId = senderid};
     return View(m);
 }
示例#15
0
 public ActionResult DeleteManual(int id, TransactionsModel m)
 {
     DbUtil.Db.ExecuteCommand("UPDATE dbo.OrganizationMembers SET TranId = NULL WHERE TranId = {0}", id);
     var t = DbUtil.Db.Transactions.Single(tt => tt.Id == id);
     DbUtil.Db.Transactions.DeleteOnSubmit(t);
     DbUtil.Db.SubmitChanges();
     return View("List", m);
 }
示例#16
0
 public TransactionsExcelResult(TransactionsModel m)
 {
     this.m = m;
 }