public bool IsDocumentLocked(long documentID, long userID, ref string lockByEmployeeName, ref bool IsOwner, ref DateTime lockDate) { bool processFlag = false; try { DocumentViewLock document = DocumentViewLockQuery.GetDocumentViewLockByDocumentID(documentID); if (ParameterServices.EnableDocumentLock) { if (document != null && document.DocumentID > 0) { SuUser userLock = SuUserQuery.FindByIdentity(document.UserID.Userid); if (userID == userLock.Userid) { IsOwner = true; } else { IsOwner = false; } lockByEmployeeName = userLock.EmployeeName; lockDate = document.CreDate; processFlag = true; } } } catch (Exception) { throw; } return(processFlag); }
private void SetLock(long documentID, long userID, bool DocumentExist, bool LockFlag) { try { DateTime date = DateTime.Now; long userid = UserAccount.UserID; if (DocumentExist) { DocumentViewLock document = DocumentViewLockQuery.GetDocumentViewLockByDocumentID(documentID); document.CreBy = userid; document.CreDate = date; document.UpdBy = userid; document.UpdDate = date; document.UpdPgm = UserAccount.CurrentProgramCode; document.UserID = SuUserQuery.FindByIdentity(userID); document.DocumentID = documentID; document.Locked = LockFlag; this.Update(document); } else { DocumentViewLock document = new DocumentViewLock(); document.CreBy = userid; document.CreDate = date; document.UpdBy = userid; document.UpdDate = date; document.UpdPgm = UserAccount.CurrentProgramCode; document.UserID = SuUserQuery.FindByIdentity(userID); document.DocumentID = documentID; document.Locked = true; this.Save(document); } } catch (Exception) { throw; } }
//private void SetReorderListData() //{ //} private void BindReorderList() { DataSet ds = TransactionService.GetDS(this.TransactionId); DataTable initiatorTable = ds.Tables["DocumentInitiator"]; //DataRow[] rows = initiatorTable.Select("", "Seq ASC"); DataRow[] rows = initiatorTable.Select("", "InitiatorType ASC"); List <DocumentInitiatorLang> items = new List <DocumentInitiatorLang>(); foreach (DataRow row in rows) { DocumentInitiatorLang item = new DocumentInitiatorLang(); item.Seq = Utilities.ParseShort(row["Seq"].ToString()); item.UserID = Utilities.ParseLong(row["UserID"].ToString()); item.InitiatorType = row["InitiatorType"].ToString(); SuUser user = SuUserQuery.FindByIdentity(item.UserID); item.EmployeeName = user.EmployeeName; item.Email = user.Email; item.SMS = user.SMSApproveOrReject; items.Add(item); } if (ReorderInitiators(items).Count > 0) { IsEmptyData = false; } else { IsEmptyData = true; } InitiatorReorderList.DataSource = ReorderInitiators(items); InitiatorReorderList.DataBind(); this.InitiatorUpdatePanel.Update(); }
public bool TryLock(long documentID, long userID, bool LockFlag) { bool processFlag = false; try { //Lookup DocumentViewLock by documentID DocumentViewLock document = DocumentViewLockQuery.GetDocumentViewLockByDocumentID(documentID); if (ParameterServices.EnableDocumentLock) { if (document != null && document.Locked) { if (!LockFlag) { SetUnlock(documentID, userID); } else { SuUser userLock = SuUserQuery.FindByIdentity(document.UserID.Userid); throw new Exception(userLock.EmployeeName); } } else { SetLock(documentID, userID, false, LockFlag); } } processFlag = true; } catch (Exception) { throw; } return(processFlag); }
public void UpdateInitiator(long DocumentID, IList <DocumentInitiatorLang> DocumentInitiatorList, IList <DocumentInitiatorLang> DocumentInitiatorDeleteList) { long documentID = DocumentID; IList <DocumentInitiator> Initiator = ScgeAccountingDaoProvider.DocumentInitiatorDao.FindByDocumentID(documentID); DocumentInitiator newInitiator; if (Initiator.Count > 0) { #region Delete if (DocumentInitiatorDeleteList != null) { foreach (DocumentInitiatorLang item in DocumentInitiatorDeleteList) { if (item.InitiatorID > 0) { DocumentInitiator doc = ScgeAccountingDaoProvider.DocumentInitiatorDao.FindProxyByIdentity(item.InitiatorID); if (doc.InitiatorID > 0) { ScgeAccountingDaoProvider.DocumentInitiatorDao.Delete(doc); } } } } #endregion Delete #region Insert & Update foreach (DocumentInitiatorLang item in DocumentInitiatorList) { //select old initiator var oldInitiatorItem = from oldInitiatorObject in Initiator where oldInitiatorObject.UserID.Userid == item.UserID select oldInitiatorObject; if (oldInitiatorItem.Count() > 0) { //new initiator foreach (DocumentInitiator itemDocumentInitiator in oldInitiatorItem) { itemDocumentInitiator.Seq = item.Seq; itemDocumentInitiator.InitiatorType = item.InitiatorType; itemDocumentInitiator.UpdBy = UserAccount.UserID; itemDocumentInitiator.UpdDate = DateTime.Now; itemDocumentInitiator.UpdPgm = UserAccount.CurrentProgramCode; ScgeAccountingDaoProvider.DocumentInitiatorDao.Update(itemDocumentInitiator); } } else { // old initiator newInitiator = new DocumentInitiator(); newInitiator.Seq = item.Seq; newInitiator.Active = true; newInitiator.CreBy = UserAccount.UserID; newInitiator.CreDate = DateTime.Now; newInitiator.DocumentID = SCGDocumentQuery.GetSCGDocumentByDocumentID(documentID); newInitiator.UserID = SuUserQuery.FindByIdentity(item.UserID); newInitiator.UpdDate = DateTime.Now; newInitiator.UpdPgm = UserAccount.CurrentProgramCode; ScgeAccountingDaoProvider.DocumentInitiatorDao.SaveOrUpdate(newInitiator); } } #endregion } else { #region Insert only case dont have Initiator on this DocumentID foreach (DocumentInitiatorLang item in DocumentInitiatorList) { newInitiator = new DocumentInitiator(); newInitiator.Seq = item.Seq; newInitiator.Active = true; newInitiator.CreBy = UserAccount.UserID; newInitiator.CreDate = DateTime.Now; newInitiator.DocumentID = SCGDocumentQuery.GetSCGDocumentByDocumentID(documentID); newInitiator.UserID = SuUserQuery.FindByIdentity(item.UserID); newInitiator.UpdDate = DateTime.Now; newInitiator.UpdPgm = UserAccount.CurrentProgramCode; newInitiator.UpdBy = UserAccount.UserID; ScgeAccountingDaoProvider.DocumentInitiatorDao.SaveOrUpdate(newInitiator); } #endregion } }