Ejemplo n.º 1
0
        /// <summary>
        ///     Удаление подпись документа
        /// </summary>
        /// <param name="signId">Идентификатор подписи</param>
        /// <returns>Результат операции</returns>
        public bool RemoveSign(int signId)
        {
            var sign = _docPage.Doc.DocSigns.First(i => i.Id == signId.ToString());

            if (sign == null || sign.Unavailable)
            {
                // Подпись недоступна, возможно она уже удалена.
                _docPage.ShowMessage(_docPage.Resx.GetString("msgDelSignUnavaible"));
                return(false);
            }

            try
            {
                if (sign.SignType == 1)
                {
                    var docTrans = Transaction.GetTransactionsByDocId(_docPage.Doc.DocId);

                    if (docTrans.Count > 0)
                    {
                        Transaction.RemoveTrans(_docPage.Doc.Id);
                    }
                }

                DocSign.RemoveSign(sign.Id);
                _docPage.Doc.GetSignsFromDb();
            }
            catch (Exception e)
            {
                Logger.WriteEx(e);
                _docPage.ShowMessage(e.Message);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     Формирование разметки клиентского скрипта для кнопки удаления подписи
 /// </summary>
 /// <param name="w">Поток вывода</param>
 /// <param name="sign">Объект подпись</param>
 private void RenderDeleteSignEventOnClick(TextWriter w, DocSign sign)
 {
     if (sign.EmployeeId == _docPage.CurrentUser.EmployeeId ||
         sign.EmployeeInsteadOfId == _docPage.CurrentUser.EmployeeId)
     {
         w.Write($"cmdasync('cmd', 'RemoveSign','IdSign', '{sign.SignId}');");
     }
     else
     {
         w.Write("v4_showConfirm('{0}','{1}','{2}','{3}',{4},{5},'{6}','{7}','{8}',{9},{10});",
                 HttpUtility.JavaScriptStringEncode(string.Format(
                                                        _docPage.Resx.GetString("msgDelSign").Replace(Environment.NewLine, "<br>"),
                                                        sign.EmployeeInsteadOfFio)),
                 HttpUtility.JavaScriptStringEncode(_docPage.Resx.GetString("alertWarning")),
                 HttpUtility.JavaScriptStringEncode(_docPage.Resx.GetString("CONFIRM_StdCaptionYes")),
                 HttpUtility.JavaScriptStringEncode(_docPage.Resx.GetString("CONFIRM_StdCaptionNo")),
                 100,
                 100,
                 HttpUtility.JavaScriptStringEncode($"cmdasync('cmd', 'RemoveSign','IdSign', '{sign.SignId}');"),
                 "",
                 HttpUtility.JavaScriptStringEncode("sign-common"),
                 500,
                 150);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        ///     Подлучение текста сообщения для отправки после подписания завершающей подписью
        /// </summary>
        /// <returns>Текст сообщения</returns>
        public string GetFinalSignMessage()
        {
            var signText = "";

            if (!_docPage.Doc.Unavailable && _docPage.Doc.TypeId > 0)
            {
                signText = DocSign.GetSignText(_docPage.Doc.TypeId, 1);
            }

            if (signText.Length == 0)
            {
                signText = _docPage.Resx.GetString("ntf_DocIsCompleted");
            }

            return(signText);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Добавление подписи под документом
        /// </summary>
        /// <param name="employeeInsteadOfId">Идентификатор сотрудника ЗА</param>
        /// <param name="signType">Тип подписи(1-завершающая; 0-обычная)</param>
        /// <param name="isFirstSign">Признак первой подписи под документом</param>
        public void AddSign(int employeeInsteadOfId, int signType, out bool isFirstSign)
        {
            isFirstSign = !_docPage.Doc.Signed;

            var sign = new DocSign
            {
                DocId               = _docPage.Doc.DocId,
                EmployeeId          = _docPage.CurrentUser.EmployeeId,
                EmployeeInsteadOfId = employeeInsteadOfId,
                SignType            = Convert.ToByte(signType),
                Date = DateTime.Now
            };

            sign.Create();
            _docPage.Doc.GetSignsFromDb();
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Удалить все подписи документа
        /// </summary>
        /// <returns></returns>
        public bool RemoveSignsAll()
        {
            _docPage.Doc.GetSignsFromDb(); // кешируются в свойствах объекта
            var singsSorted = _docPage.Doc.DocSigns.AsEnumerable().OrderByDescending(o => o.Date).ToList();

            foreach (var s in singsSorted)
            {
                DocSign.RemoveSign(s.Id);
            }
            _docPage.Doc.GetSignsFromDb();
            if (!_docPage.Doc.Signed)
            {
                return(true);
            }

            _docPage.ShowMessage(_docPage.Resx.GetString("msgDelSignAll"), _docPage.Resx.GetString("CONFIRM_StdTitle"));

            return(false);
        }