Example #1
0
 public override bool Equivilant(IBusinessUnit comparing)
 {
     MockDataUnit holder;
     if ((holder = comparing as MockDataUnit) != null){
         return holder.key == key
             && base.Equivilant(comparing);
     }
     return false;
 }
Example #2
0
        public static IRegistrationSetting GetSettingByParams(Enumeration?settingType,
                                                              IBusinessUnit businessUnit,
                                                              IDocumentKind documentKind,
                                                              IDepartment department)
        {
            var settings = GetAvailableSettingsByParams(settingType, businessUnit, documentKind, department);

            return(settings.OrderByDescending(r => r.Priority).FirstOrDefault());
        }
 /*-- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
  |  Subroutine: Equivilant
  +-- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
  */
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     MockBusinessUnit boxed;
     if ((boxed = (comparing as MockBusinessUnit)) != null){
         return (
                 boxed.attrTwo == null
                 && boxed.attrTwo == null
             )
             || (
                 boxed.attrTwo != null
                 && attrTwo != null
                 && boxed.attrTwo.Equals(attrTwo)
             );
     }
     return false;
 }
        private List <IDepartment> GetFilteredDepartments(IBusinessUnit businessUnit, bool?filterDepartmentsForBusinessUnits)
        {
            var departments = Sungero.Company.PublicFunctions.Department.Remote.GetDepartments()
                              .Where(d => d.Status == Sungero.CoreEntities.DatabookEntry.Status.Active);

            // Подразделения фильтруются по НОР.
            if (filterDepartmentsForBusinessUnits == true && businessUnit != null)
            {
                return(departments
                       .Where(d => Equals(d.BusinessUnit, businessUnit))
                       .ToList());
            }

            // Подразделения не фильтруются по НОР.
            return(departments.ToList());
        }
Example #5
0
        public static IQueryable <IRegistrationSetting> GetAvailableSettingsByParams(Enumeration?settingType,
                                                                                     IBusinessUnit businessUnit,
                                                                                     IDocumentKind documentKind,
                                                                                     IDepartment department)
        {
            var activeStatus = CoreEntities.DatabookEntry.Status.Active;
            var settings     = RegistrationSettings.GetAllCached(r => r.Status == activeStatus &&
                                                                 r.SettingType == settingType &&
                                                                 r.DocumentRegister.Status == activeStatus);

            settings = businessUnit != null?
                       settings.Where(r => r.BusinessUnits.Any(o => o.BusinessUnit.Equals(businessUnit)) || !r.BusinessUnits.Any()) :
                           settings.Where(r => !r.BusinessUnits.Any());

            settings = documentKind != null?
                       settings.Where(r => r.DocumentKinds.Any(o => o.DocumentKind.Equals(documentKind)) || !r.DocumentKinds.Any()) :
                           settings.Where(r => !r.DocumentKinds.Any());

            settings = department != null?
                       settings.Where(r => r.Departments.Any(o => o.Department.Equals(department)) || !r.Departments.Any()) :
                           settings.Where(r => !r.Departments.Any());

            return(settings);
        }
Example #6
0
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     return false;                   //Will never be business equivilant.
 }
Example #7
0
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     return false;
 }
Example #8
0
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     return false;                   //Never equivilant (no unique attributes)
 }
Example #9
0
 public override bool Equivilant(IBusinessUnit comparing)
 {
     return this.MatchingKeyAndType<DAddress>(comparing);
 }
Example #10
0
        public static List <IDocumentRegister> GetDocumentRegistersByParams(IDocumentKind kind, IBusinessUnit unit, IDepartment department,
                                                                            Enumeration?settingType, bool forCurrentUser)
        {
            // Результат сразу замыкается в ToList, так как иначе не транслируется в SQL, если вызывать на сервере.
            // Все журналы, указанные в настройках регистрации.
            var documentRegistersWithRegistrationSettings = RegistrationSettings
                                                            .GetAllCached(s => s.Status == CoreEntities.DatabookEntry.Status.Active &&
                                                                          s.SettingType == Docflow.RegistrationSetting.SettingType.Registration)
                                                            .Select(s => s.DocumentRegister)
                                                            .ToList();

            // Все журналы, кроме указанных в настройках регистрации.
            var documentRegistersWithoutRegistrationSettings = DocumentRegisters.GetAll()
                                                               .Where(l => !documentRegistersWithRegistrationSettings.Contains(l));

            // Журналы, подходящие по непротиворечивым настройкам.
            var documentRegistersBySettings = Functions.RegistrationSetting
                                              .GetAvailableSettingsByParams(settingType, unit, kind, department)
                                              .Select(s => s.DocumentRegister)
                                              .ToList();

            // Журналы настроек регистрации, подходящих для текущего документа.
            var documentRegistersByRegistrationSettings = Functions.RegistrationSetting
                                                          .GetAvailableSettingsByParams(Docflow.RegistrationSetting.SettingType.Registration, unit, kind, department)
                                                          .Select(s => s.DocumentRegister)
                                                          .ToList();

            // Получить все журналы по настройкам.
            documentRegistersByRegistrationSettings.AddRange(documentRegistersBySettings);

            // Фильтруем журналы по документопотоку. Только журналы регистрации.
            var result = Functions.DocumentRegister.GetFilteredDocumentRegisters(kind.DocumentFlow.Value, true, forCurrentUser)
                         .Where(a => documentRegistersByRegistrationSettings.Contains(a) || documentRegistersWithoutRegistrationSettings.Contains(a)).ToList();

            // Для резервирования добавить настройки резервирования в обход проверки доступности журнала группе регистрации.
            // Делопроизводитель должен иметь возможность резервировать номер в документе, который не сможет зарегистрировать.
            if (settingType == Docflow.RegistrationSetting.SettingType.Reservation)
            {
                result.AddRange(documentRegistersBySettings);
            }

            return(result.Distinct().ToList());
        }
Example #11
0
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     //Will never be equivilant to other business units (No unique attributes)
     return false;
 }
Example #12
0
 public virtual bool Equivilant(IBusinessUnit comparing)
 {
     return false;                   //Never equivilant at this layer.
 }
Example #13
0
 public override IQueryable <ISignatureSetting> GetSignatureSetting(IBusinessUnit businessUnit, IDocumentKind kind,
                                                                    double?minAmount, List <Company.IDepartment> departments)
 {
     return(this.GetSignatureSettingWithoutDocumentFlowFilter(businessUnit, kind, minAmount, departments)
            .Where(s => s.DocumentFlow == Docflow.SignatureSetting.DocumentFlow.Contracts || s.DocumentFlow == Docflow.SignatureSetting.DocumentFlow.All));
 }