Ejemplo n.º 1
0
        /// <summary>
        /// Сотрудники, которых необходимо уведомить о сроке договора.
        /// </summary>
        /// <param name="contract">Договор.</param>
        /// <returns>Список сотрудников.</returns>
        public virtual List <IUser> GetNotificationPerformers(IContractBase contract)
        {
            var performer  = contract.ResponsibleEmployee ?? Employees.As(contract.Author);
            var performers = new List <IUser>()
            {
            };

            if (performer == null)
            {
                return(performers);
            }

            var manager = Docflow.PublicFunctions.Module.Remote.GetManager(performer);

            var performerPersonalSetting = Docflow.PublicFunctions.PersonalSetting.GetPersonalSettings(performer).MyContractsNotification;

            if (performerPersonalSetting == true)
            {
                performers.Add(performer);
            }
            if (manager != null)
            {
                var managerPersonalSetting = Docflow.PublicFunctions.PersonalSetting.GetPersonalSettings(manager).MySubordinatesContractsNotification;
                if (managerPersonalSetting == true)
                {
                    performers.Add(manager);
                }
            }

            return(performers);
        }
Ejemplo n.º 2
0
        public static string GetContractNamePart(IContractBase contract)
        {
            if (contract == null)
            {
                return(string.Empty);
            }

            return(contract.AccessRights.CanRead() ?
                   GetNamePartByContract(contract) :
                   Functions.ContractBase.Remote.GetNamePartByContractIgnoreAccessRights(contract.Id));
        }
 public static IQueryable <IContractBase> GetDuplicates(IContractBase contract,
                                                        Sungero.Company.IBusinessUnit businessUnit,
                                                        string registrationNumber,
                                                        DateTime?registrationDate,
                                                        Sungero.Parties.ICounterparty counterparty)
 {
     return(ContractBases.GetAll()
            .Where(l => Equals(contract.DocumentKind, l.DocumentKind))
            .Where(l => Equals(businessUnit, l.BusinessUnit))
            .Where(l => registrationDate == l.RegistrationDate)
            .Where(l => registrationNumber == l.RegistrationNumber)
            .Where(l => Equals(counterparty, l.Counterparty))
            .Where(l => !Equals(contract, l)));
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Проверить договор на дубли.
        /// </summary>
        /// <param name="contract">Договор.</param>
        /// <param name="businessUnit">Наша организация.</param>
        /// <param name="registrationNumber">Номер договора.</param>
        /// <param name="registrationDate">Дата договора.</param>
        /// <param name="counterparty">Контрагент.</param>
        /// <returns>Признак наличия дублей.</returns>
        public static bool HaveDuplicates(IContractBase contract,
                                          Sungero.Company.IBusinessUnit businessUnit,
                                          string registrationNumber,
                                          DateTime?registrationDate,
                                          Sungero.Parties.ICounterparty counterparty)
        {
            if (contract == null ||
                businessUnit == null ||
                string.IsNullOrWhiteSpace(registrationNumber) ||
                registrationDate == null ||
                counterparty == null)
            {
                return(false);
            }

            return(Functions.ContractBase.Remote.GetDuplicates(contract,
                                                               businessUnit,
                                                               registrationNumber,
                                                               registrationDate,
                                                               counterparty)
                   .Any());
        }