public void BackDatePO(Model.PurchaseOrder po) { using (var context = new SCMSEntities()) { using (TransactionScope scope = new TransactionScope()) { try { //Get Current OR from DB var currentPO = context.PurchaseOrders.FirstOrDefault(o => o.Id == po.Id); //Initialize BackDate object var backDate = new DocumentBackDating(); backDate.Id = Guid.NewGuid(); backDate.BackDatedBy = po.BackDatedBy; backDate.BackDatedOn = DateTime.Now; backDate.NewDate = po.PODate; backDate.PurchaseOrderId = po.Id; backDate.PreviousDate = currentPO.PODate; backDate.Reason = po.BackDatingReason; //Insert BackDate details into db context.DocumentBackDatings.Add(backDate); //Update date on OR in db currentPO.PODate = po.PODate; context.SaveChanges(); scope.Complete(); } catch (Exception ex) { scope.Dispose(); throw ex; } } } }
public void BackDateOR(Model.OrderRequest or) { using (var context = new SCMSEntities()) { using (TransactionScope scope = new TransactionScope()) { try { //Get Current OR from DB var currentOR = context.OrderRequests.FirstOrDefault(o => o.Id == or.Id); //Initialize BackDate object var backDate = new DocumentBackDating(); backDate.Id = Guid.NewGuid(); backDate.BackDatedBy = or.BackDatedBy; backDate.BackDatedOn = DateTime.Now; backDate.NewDate = or.OrderDate.Value; backDate.OrderRequestId = or.Id; backDate.PreviousDate = currentOR.OrderDate.Value; backDate.Reason = or.BackDatingReason; //Insert BackDate details into db context.DocumentBackDatings.Add(backDate); //Update date on OR in db currentOR.OrderDate = or.OrderDate; context.SaveChanges(); scope.Complete(); ClearORSessionData(); } catch (Exception ex) { scope.Dispose(); throw ex; } } } }