public PartialViewResult SerializeAdd(string prevVm) { //create view model from the vm passed from the view AddViewModel addVM = JsonConvert.DeserializeObject <AddViewModel>(prevVm); //Create a transaction overview to summerise the transaction been added TransactionOverview to = new TransactionOverview(); to.CustomerId = addVM.transactionOverview.CustomerId; to.Date = addVM.transactionOverview.Date; to.TransactionNumber = addVM.transactionOverview.TransactionNumber; to.TotalValue = addVM.transactionOverview.TotalValue; //Add the transaction overview m_Context.TransactionOverviews.Add(to); //for every item added create a transaction and update the stock and sold foreach (Item i in addVM.items) { Transaction t = new Transaction(); t.ItemId = i.ItemId; t.TransactionNumber = addVM.transactionOverview.TransactionNumber; t.Date = addVM.transactionOverview.Date; t.CustomerId = addVM.transactionOverview.CustomerId; m_Context.Transactions.Add(t); var item = m_Context.Items.Where(it => it.ItemId == t.ItemId).First(); item.Stock--; item.Sold++; } //Save the changes to the database m_Context.SaveChanges(); //log that a transaction has been added Logger.LogAction("Transaction Added", "Added transaction number " + to.TransactionNumber); //create a new vm and return the view HistoricViewModel vm = new HistoricViewModel(); return(PartialView("Partials/HistoricView", vm)); }
/// <summary> /// This is the basic constructor that creates the view from scratch /// </summary> public AddViewModel() { transactionOverview = new TransactionOverview(); items = new List <Item>(); transactionOverview.Date = DateTime.Now; int iHighestTransactionNumber = 0; try { iHighestTransactionNumber = m_Context.TransactionOverviews.Max(t => t.TransactionNumber); } catch (System.InvalidOperationException e) { iHighestTransactionNumber = 0; } transactionOverview.TransactionNumber = iHighestTransactionNumber + 1; return; }
public PartialViewResult SerializeEdit(string prevVM) { //create the view model and pass in the previous view model EditViewModel editVM = JsonConvert.DeserializeObject <EditViewModel>(prevVM); //create a new transaction over view and populate the variables to store in the data base TransactionOverview to = new TransactionOverview(); to.CustomerId = editVM._transactionOverview.CustomerId; to.Date = m_Context.TransactionOverviews.Where(i => i.TransactionNumber == editVM._transactionOverview.TransactionNumber).First().Date; to.TransactionNumber = editVM._transactionOverview.TransactionNumber; to.TotalValue = editVM._transactionOverview.TotalValue; //retrive the current entry for that transaction id from the database //then update the entry with the values populated from the the view model var entry = m_Context.TransactionOverviews.Where(t => t.TransactionNumber == editVM._transactionOverview.TransactionNumber).First(); entry.TransactionNumber = to.TransactionNumber; entry.TotalValue = to.TotalValue; entry.CustomerId = to.CustomerId; entry.Date = to.Date; //if there are removed items then remove them from the transactions in the database and update the stock and sold variables if (editVM._remItemsIndex.Count > 0) { List <Transaction> remList = new List <Transaction>(); var ts = m_Context.Transactions.Where(t => t.TransactionNumber == to.TransactionNumber).ToList(); foreach (int index in editVM._remItemsIndex) { if (index < ts.Count) { remList.Add(ts[index]); } } foreach (Transaction rem in remList) { m_Context.Transactions.Remove(rem); var item = m_Context.Items.Where(i => i.ItemId == rem.ItemId).First(); item.Stock++; item.Sold--; } } //for every new item in the updated transaction the data base with the item foreach (Item i in editVM._newItems) { Transaction t = new Transaction(); t.ItemId = i.ItemId; t.TransactionNumber = editVM._transactionOverview.TransactionNumber; t.Date = editVM._transactionOverview.Date; t.CustomerId = editVM._transactionOverview.CustomerId; m_Context.Transactions.Add(t); var item = m_Context.Items.Where(it => it.ItemId == t.ItemId).First(); item.Stock--; item.Sold++; } //save the changes m_Context.SaveChanges(); //Log that a transaction has been edited Logger.LogAction("Transaction Edited", "Edited transaction number " + to.TransactionNumber); //Create the historical view model and return a view. HistoricViewModel vm = new HistoricViewModel(); return(PartialView("Partials/HistoricView", vm)); }