public System.Data.SqlClient.SqlTransaction GINApproved(Guid truckId) { IGINProcess originalGIN = new GINProcessBLL(currentGINProcess.GINProcessInformation.TransactionId); SqlTransaction transaction = currentGINProcess.GINApproved(truckId); var ginChanges = (from oGIN in originalGIN.GINProcessInformation.Trucks join cGIN in currentGINProcess.GINProcessInformation.Trucks on oGIN.TruckId equals cGIN.TruckId where oGIN.TruckId == truckId select new object[] { oGIN, cGIN, AuditTrailWrapper.ExistingRecord }); try { AuditTrailWrapper atw = new AuditTrailWrapper(AuditTrailWrapper.GINApproval, "GIN Process"); atw.AddChange(ginChanges.ToArray()); if (!atw.Save()) { transaction.Rollback(); throw new Exception("Failed to save audit trail!"); } } catch (Exception ex) { transaction.Rollback(); throw ex; } return(transaction); }
public static void GINApproved(Guid truckId) { IGINProcess ginProcess = GetGINProcess(true); SqlTransaction transaction = null; try { transaction = ginProcess.GINApproved(truckId); NotifyGIN(truckId); CompleteWorkflowTask(ginProcess.GINProcessInformation.Trucks[0].TransactionId); if (ginProcess.GINProcessInformation.RemainingWeight <= 0) { IPickupNotice pun = new PickupNoticeBLL(ginProcess.GINProcessInformation.PickupNoticeId); PickupNoticeInformation puni = new PickupNoticeInformation(); puni.Copy(pun.PickupNoticeInformation); pun.GINIssued(transaction); UpdatePUNStatus( pun.PickupNoticeInformation.PickupNoticeId, pun.LookupSource.GetLookup("Status")[pun.PickupNoticeInformation.Status]); } transaction.Commit(); } catch (Exception ex) { try { if (transaction != null) { transaction.Rollback(); } } catch (Exception ex2) { throw ex2; } throw ex; } }