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;
     }
 }
Ejemplo n.º 3
0
        //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
            }
        }