// returnTotal is AFTER val private void CreateReturn(decimal val, decimal returnTotal, decimal runningTotal, int acctId, DateTime date) { Transaction t = new Transaction { AccountId = acctId, Amount = val, Date = date, NewTotal = runningTotal, TransactionTypeId = TransactionType.RETURN_ID }; t = context.Add(t).Entity; context.SaveChanges(); TransactionDistribution td = new TransactionDistribution { AccountId = acctId, Amount = val, NewAccountRevenueTotal = returnTotal, TransactionId = t.Id, RevenueCodeId = RevenueCode.RETURN_ID }; context.Add(td); context.SaveChanges(); }
// resaleTotal/returnTotal are BEFORE val private void CreatePurchase(decimal val, decimal returnTotal, decimal resaleTotal, decimal runningTotal, int acctId, DateTime date) { Transaction t = new Transaction { AccountId = acctId, Amount = val, Date = date, NewTotal = runningTotal, TransactionTypeId = TransactionType.PURCHASE_ID }; t = context.Add(t).Entity; context.SaveChanges(); if (returnTotal + val < 0) { if (returnTotal > 0) { TransactionDistribution td = new TransactionDistribution { AccountId = acctId, Amount = -returnTotal, NewAccountRevenueTotal = 0, TransactionId = t.Id, RevenueCodeId = RevenueCode.RETURN_ID }; context.Add(td); } resaleTotal += returnTotal + val; TransactionDistribution resaleTD = new TransactionDistribution { AccountId = acctId, Amount = returnTotal + val, NewAccountRevenueTotal = resaleTotal, TransactionId = t.Id, RevenueCodeId = RevenueCode.RESALE_ID }; context.Add(resaleTD); } else { TransactionDistribution td = new TransactionDistribution { AccountId = acctId, Amount = val, NewAccountRevenueTotal = returnTotal + val, TransactionId = t.Id, RevenueCodeId = RevenueCode.RETURN_ID }; context.Add(td); } context.SaveChanges(); }
private void CreateCashout(decimal val, decimal runningTotal, int acctId, DateTime date) { decimal baseVal = Math.Round(val * Transaction.CASHOUT_DISCOUNT, 2); decimal discountVal = val - baseVal; Transaction baseT = new Transaction { AccountId = acctId, Amount = baseVal, Date = date, NewTotal = runningTotal - discountVal, TransactionTypeId = TransactionType.CASHOUT_ID }; baseT = context.Add(baseT).Entity; context.SaveChanges(); TransactionDistribution baseTD = new TransactionDistribution { AccountId = acctId, Amount = baseVal, NewAccountRevenueTotal = -discountVal, TransactionId = baseT.Id, RevenueCodeId = RevenueCode.RESALE_ID }; context.Add(baseTD); Transaction discountT = new Transaction { AccountId = acctId, Amount = discountVal, Date = date, NewTotal = runningTotal, TransactionTypeId = TransactionType.CASHOUT_DEDUCTION_ID }; discountT = context.Add(discountT).Entity; context.SaveChanges(); TransactionDistribution discountTD = new TransactionDistribution { AccountId = acctId, Amount = discountVal, NewAccountRevenueTotal = 0M, TransactionId = discountT.Id, RevenueCodeId = RevenueCode.RESALE_ID }; context.Add(discountTD); context.SaveChanges(); }