public override void Run()
        {
            ReportTitle = "Количество лицензий по ПО";
            var departments   = DepartmentsDataModel.GetInstance().SelectVisibleDepartments();
            var departmentIds = "";

            foreach (DataRow department in departments.Rows)
            {
                if (department.Field <bool>("AllowSelect"))
                {
                    departmentIds += department.Field <int>("ID Department") + ",";
                }
            }
            departmentIds = departmentIds.TrimEnd(',');
            var arguments = new Dictionary <string, string>
            {
                {
                    "config",
                    Path.Combine(LicenseSoftwareSettings.ActivityManagerConfigsPath, "licenses_by_soft_count.xml")
                },
                { "connectionString", LicenseSoftwareSettings.ConnectionString },
                { "departmentIds", departmentIds }
            };

            base.Run(arguments);
        }
Пример #2
0
        public static IEnumerable <int> GetDepartmentSubunits(int department)
        {
            var departments   = DepartmentsDataModel.GetInstance();
            var departmentIDs = new List <int>();

            foreach (DataRow row in departments.Select().Rows)
            {
                if (row.RowState != DataRowState.Deleted &&
                    row.RowState != DataRowState.Detached &&
                    row["ID Parent Department"] != DBNull.Value && (int)row["ID Parent Department"] == department)
                {
                    departmentIDs.Add((int)row["ID Department"]);
                }
            }
            var subUnits = new List <IEnumerable <int> >();

            foreach (var departmentId in departmentIDs)
            {
                subUnits.Add(GetDepartmentSubunits(departmentId));
            }
            foreach (var subUnit in subUnits)
            {
                departmentIDs = departmentIDs.Union(subUnit).ToList();
            }
            return(departmentIDs);
        }
Пример #3
0
        public static IEnumerable <int> GetComputerIDsByDepartment(int idDepartment)
        {
            var childDepartments = from department in FilterRows(DepartmentsDataModel.GetInstance().Select())
                                   where department.Field <int?>("ID Parent Department") == idDepartment
                                   select department.Field <int>("ID Department");

            var computers = childDepartments.SelectMany(GetComputerIDsByDepartment);

            return(computers.Concat(from computerRow in FilterRows(DevicesDataModel.GetInstance().Select())
                                    where computerRow.Field <int>("ID Department") == idDepartment
                                    select computerRow.Field <int>("ID Device")));
        }
Пример #4
0
 public override void Run(List<string> args)
 {
     ReportTitle = "Отчет для каждого ПК";
     var departments = DepartmentsDataModel.GetInstance().SelectVisibleDepartments();
     var installationIds = "";
     foreach (var str in args)
         installationIds += str + ",";
     installationIds = installationIds.TrimEnd(',');
     var arguments = new Dictionary<string, string>();
     arguments.Add("config", Path.Combine(LicenseSoftwareSettings.ActivityManagerConfigsPath, "pc_report.xml"));
     arguments.Add("connectionString", LicenseSoftwareSettings.ConnectionString);
     //arguments.Add("departmentIds", departmentIds);
     arguments.Add("installationIds", installationIds);
     base.Run(arguments);
 }
Пример #5
0
 private void PreLoadData()
 {
     toolStripProgressBar.Maximum = 13;
     DepartmentsDataModel.GetInstance(toolStripProgressBar, 1);
     DevicesDataModel.GetInstance(toolStripProgressBar, 1);
     SoftwareDataModel.GetInstance(toolStripProgressBar, 1);
     SoftVersionsDataModel.GetInstance(toolStripProgressBar, 1);
     SoftInstallationsDataModel.GetInstance(toolStripProgressBar, 1);
     SoftInstallatorsDataModel.GetInstance(toolStripProgressBar, 1);
     SoftLicDocTypesDataModel.GetInstance(toolStripProgressBar, 1);
     SoftLicensesDataModel.GetInstance(toolStripProgressBar, 1);
     SoftLicKeysDataModel.GetInstance(toolStripProgressBar, 1);
     SoftLicTypesDataModel.GetInstance(toolStripProgressBar, 1);
     SoftMakersDataModel.GetInstance(toolStripProgressBar, 1);
     SoftSuppliersDataModel.GetInstance(toolStripProgressBar, 1);
     SoftTypesDataModel.GetInstance(toolStripProgressBar, 1);
 }
Пример #6
0
        public static IEnumerable <int> GetLicenseIDsByCondition(Func <DataRow, bool> condition, EntityType entity)
        {
            var software     = FilterRows(SoftwareDataModel.GetInstance().Select());
            var softVersions = FilterRows(SoftVersionsDataModel.GetInstance().Select());
            var departments  = from departmentsRow in FilterRows(DepartmentsDataModel.GetInstance().SelectVisibleDepartments())
                               where departmentsRow.Field <bool>("AllowSelect")
                               select departmentsRow.Field <int>("ID Department");

            var licenses = from licensesRow in FilterRows(SoftLicensesDataModel.GetInstance().Select())
                           where departments.Contains(licensesRow.Field <int>("ID Department"))
                           select licensesRow;
            var result = from softwareRow in software
                         join softVersionRow in softVersions
                         on softwareRow.Field <int>("ID Software") equals softVersionRow.Field <int>("ID Software")
                         join licensesRow in licenses
                         on softVersionRow.Field <int>("ID Version") equals licensesRow.Field <int>("ID Version")
                             where entity == EntityType.Software ? condition(softwareRow) :
                         entity == EntityType.SoftVersion ? condition(softVersionRow) :
                         entity == EntityType.License && condition(licensesRow)
                         select licensesRow.Field <int>("ID License");

            return(result);
        }
Пример #7
0
        internal override string GetFilter()
        {
            var        filter = "";
            List <int> includedSoftwareIds = null;

            if (checkBoxLicTypeEnable.Checked && (comboBoxLicType.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID LicType] = '{0}'", comboBoxLicType.SelectedValue);
            }
            if (checkBoxLicDocTypeEnable.Checked && (comboBoxLicDocType.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID DocType] = '{0}'", comboBoxLicDocType.SelectedValue);
            }
            if (checkBoxSupplierEnable.Checked && (comboBoxSupplierID.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Supplier] = '{0}'", comboBoxSupplierID.SelectedValue);
            }
            if (checkBoxDepartmentEnable.Checked && (comboBoxDepartmentID.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                var selectedDepartments = DataModelHelper.GetDepartmentSubunits((int)comboBoxDepartmentID.SelectedValue).
                                          Union(new List <int> {
                    (int)comboBoxDepartmentID.SelectedValue
                });
                var accessibleDepartments = from departmentsRow in DataModelHelper.
                                            FilterRows(DepartmentsDataModel.GetInstance().SelectVisibleDepartments())
                                            where departmentsRow.Field <bool>("AllowSelect")
                                            select departmentsRow.Field <int>("ID Department");

                var departments = selectedDepartments.Intersect(accessibleDepartments).ToList();
                if (!departments.Any())
                {
                    throw new ViewportException("Вы не состоите ни в одном из департаментов.");
                }
                filter += "[ID Department] IN (";
                foreach (var id in departments)
                {
                    filter += id.ToString(CultureInfo.InvariantCulture) + ",";
                }
                filter = filter.TrimEnd(',') + ")";
            }
            else
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                var accessibleDepartments = (from departmentsRow in DataModelHelper.FilterRows(DepartmentsDataModel.GetInstance().SelectVisibleDepartments())
                                             where departmentsRow.Field <bool>("AllowSelect")
                                             select departmentsRow.Field <int>("ID Department")).ToList();
                if (!accessibleDepartments.Any())
                {
                    throw new ViewportException("Вы не состоите ни в одном из департаментов.");
                }
                filter += "[ID Department] IN (";
                foreach (var id in accessibleDepartments)
                {
                    filter += id.ToString(CultureInfo.InvariantCulture) + ",";
                }
                filter = filter.TrimEnd(',') + ")";
            }
            if (checkBoxDocNumberEnable.Checked)
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "DocNumber LIKE'%{0}%'", textBoxDocNumber.Text.Trim().Replace("'", ""));
            }
            if (checkBoxSoftwareNameEnable.Checked && (comboBoxSoftwareName.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Version] = '{0}'", comboBoxSoftwareName.SelectedValue);
            }
            if (checkBoxBuyLicenseDateEnable.Checked)
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "BuyLicenseDate {0} #{1}#",
                                        ConvertDisplayEqExprToSql(
                                            comboBoxOpBuyLicenseDate.SelectedItem.ToString()),
                                        dateTimePickerBuyLicenseDate.Value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
            }
            if (checkBoxExpireLicenseDateEnable.Checked)
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "ExpireLicenseDate {0} #{1}#",
                                        ConvertDisplayEqExprToSql(
                                            comboBoxOpExpireLicenseDate.SelectedItem.ToString()),
                                        dateTimePickerExpireLicenseDate.Value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
            }
            if (checkBoxSoftwareMakerEnable.Checked && (comboBoxSoftwareMaker.SelectedValue != null))
            {
                var ids = DataModelHelper.GetSoftwareIDsBySoftMaker((int)comboBoxSoftwareMaker.SelectedValue);
                includedSoftwareIds = DataModelHelper.Intersect(null, ids).ToList();
            }
            if (checkBoxSoftwareTypeEnable.Checked && (comboBoxSoftwareType.SelectedValue != null))
            {
                var ids = DataModelHelper.GetSoftwareIDsBySoftType((int)comboBoxSoftwareType.SelectedValue);
                includedSoftwareIds = DataModelHelper.Intersect(includedSoftwareIds, ids).ToList();
            }
            if (checkBoxLicKeyEnable.Checked && (comboBoxLicKey.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID License] = '{0}'", comboBoxLicKey.SelectedValue);
            }
            if (checkBoxOnlyAvailableInstallations.Checked)
            {
                var installationsCount =
                    from installRow in DataModelHelper.FilterRows(SoftInstallationsDataModel.GetInstance().Select())
                    group installRow by installRow.Field <int>("ID License")
                    into gs
                    select new
                {
                    idLicense         = gs.Key,
                    istallationsCount = gs.Count()
                };
                var notAvailableLicenses =
                    (from licensesRow in DataModelHelper.FilterRows(SoftLicensesDataModel.GetInstance().Select())
                     join installRow in installationsCount
                     on licensesRow.Field <int>("ID License") equals installRow.idLicense
                     where licensesRow.Field <int?>("InstallationsCount") != null &&
                     (licensesRow.Field <int>("InstallationsCount") - installRow.istallationsCount <= 0)
                     select licensesRow.Field <int>("ID License")).ToList();
                if (notAvailableLicenses.Any())
                {
                    if (!string.IsNullOrEmpty(filter.Trim()))
                    {
                        filter += " AND ";
                    }
                    filter += "[ID License] NOT IN (0";
                    foreach (var id in notAvailableLicenses)
                    {
                        filter += id.ToString(CultureInfo.InvariantCulture) + ",";
                    }
                    filter = filter.TrimEnd(',') + ")";
                }
            }
            if (includedSoftwareIds == null || !includedSoftwareIds.Any())
            {
                return(filter);
            }
            if (!string.IsNullOrEmpty(filter.Trim()))
            {
                filter += " AND ";
            }
            filter += "[ID Version] IN (0";
            foreach (var id in includedSoftwareIds)
            {
                filter += id.ToString(CultureInfo.InvariantCulture) + ",";
            }
            filter = filter.TrimEnd(',') + ")";
            return(filter);
        }
Пример #8
0
        public SearchLicensesForm()
        {
            InitializeComponent();
            var softMakers      = SoftMakersDataModel.GetInstance();
            var softTypes       = SoftTypesDataModel.GetInstance();
            var softSuppliers   = SoftSuppliersDataModel.GetInstance();
            var softLicTypes    = SoftLicTypesDataModel.GetInstance();
            var softLicDocTypes = SoftLicDocTypesDataModel.GetInstance();
            var departments     = DepartmentsDataModel.GetInstance();

            // Ожидаем дозагрузки, если это необходимо
            softMakers.Select();
            softTypes.Select();
            softSuppliers.Select();
            softLicTypes.Select();
            softLicDocTypes.Select();
            departments.Select();

            var vSoftMakers = new BindingSource
            {
                DataMember = "SoftMakers",
                DataSource = DataSetManager.DataSet
            };

            var vSoftTypes = new BindingSource
            {
                DataMember = "SoftTypes",
                DataSource = DataSetManager.DataSet
            };

            var vSoftSuppliers = new BindingSource
            {
                DataMember = "SoftSuppliers",
                DataSource = DataSetManager.DataSet
            };

            var vSoftLicTypes = new BindingSource
            {
                DataMember = "SoftLicTypes",
                DataSource = DataSetManager.DataSet
            };

            var vSoftLicDocTypes = new BindingSource
            {
                DataMember = "SoftLicDocTypes",
                DataSource = DataSetManager.DataSet
            };

            _vDepartments = new BindingSource {
                DataSource = departments.SelectVisibleDepartments()
            };

            comboBoxDepartmentID.DataSource    = _vDepartments;
            comboBoxDepartmentID.ValueMember   = "ID Department";
            comboBoxDepartmentID.DisplayMember = "Department";

            comboBoxSoftwareMaker.DataSource    = vSoftMakers;
            comboBoxSoftwareMaker.ValueMember   = "ID SoftMaker";
            comboBoxSoftwareMaker.DisplayMember = "SoftMaker";

            comboBoxSupplierID.DataSource    = vSoftSuppliers;
            comboBoxSupplierID.ValueMember   = "ID Supplier";
            comboBoxSupplierID.DisplayMember = "Supplier";

            comboBoxSoftwareType.DataSource    = vSoftTypes;
            comboBoxSoftwareType.ValueMember   = "ID SoftType";
            comboBoxSoftwareType.DisplayMember = "SoftType";

            comboBoxLicType.DataSource    = vSoftLicTypes;
            comboBoxLicType.ValueMember   = "ID LicType";
            comboBoxLicType.DisplayMember = "LicType";

            comboBoxLicDocType.DataSource    = vSoftLicDocTypes;
            comboBoxLicDocType.ValueMember   = "ID DocType";
            comboBoxLicDocType.DisplayMember = "DocType";

            comboBoxOpBuyLicenseDate.SelectedIndex    = 0;
            comboBoxOpExpireLicenseDate.SelectedIndex = 0;

            foreach (Control control in Controls)
            {
                control.KeyDown += (sender, e) =>
                {
                    var comboBox = sender as ComboBox;
                    if (comboBox != null && comboBox.DroppedDown)
                    {
                        return;
                    }
                    if (e.KeyCode == Keys.Enter)
                    {
                        vButtonSearch_Click(sender, e);
                    }
                    else
                    if (e.KeyCode == Keys.Escape)
                    {
                        DialogResult = DialogResult.Cancel;
                    }
                }
            }
            ;
        }
Пример #9
0
        internal override string GetFilter()
        {
            var filter = "";
            IEnumerable <int> includedLicensesIds = null;

            if (checkBoxSoftwareNameEnable.Checked && (comboBoxSoftwareName.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID Version") == (int)comboBoxSoftwareName.SelectedValue, Entities.EntityType.SoftVersion);
                includedLicensesIds = DataModelHelper.Intersect(null, ids);
            }
            if (checkBoxSoftwareMakerEnable.Checked && (comboBoxSoftwareMaker.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID SoftMaker") == (int)comboBoxSoftwareMaker.SelectedValue, Entities.EntityType.Software);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxSoftwareTypeEnable.Checked && (comboBoxSoftwareType.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID SoftType") == (int)comboBoxSoftwareType.SelectedValue, Entities.EntityType.Software);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxSupplierEnable.Checked && (comboBoxSupplierID.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID Supplier") == (int)comboBoxSupplierID.SelectedValue, Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxLicTypeEnable.Checked && (comboBoxLicType.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID LicType") == (int)comboBoxLicType.SelectedValue, Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxLicDocTypeEnable.Checked && (comboBoxLicDocType.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <int>("ID DocType") == (int)comboBoxLicDocType.SelectedValue, Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxDepartmentLicEnable.Checked && (comboBoxDepartmentLicID.SelectedValue != null))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => DataModelHelper.GetDepartmentSubunits((int)comboBoxDepartmentLicID.SelectedValue).Union(
                        new List <int> {
                    (int)comboBoxDepartmentLicID.SelectedValue
                }).Contains(
                        row.Field <int>("ID Department")), Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxDocNumberEnable.Checked && !string.IsNullOrEmpty(textBoxDocNumber.Text.Trim()))
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row => row.Field <string>("DocNumber").ToUpper(CultureInfo.InvariantCulture)
                    .Contains(textBoxDocNumber.Text.Trim().ToUpper(CultureInfo.InvariantCulture)), Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxExpireLicenseDateEnable.Checked)
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row =>
                {
                    if (row.Field <DateTime?>("ExpireLicenseDate") == null)
                    {
                        return(false);
                    }
                    switch (comboBoxOpExpireLicenseDate.SelectedItem.ToString())
                    {
                    case "=": return(row.Field <DateTime>("ExpireLicenseDate") == dateTimePickerExpireLicenseDate.Value);

                    case "≥": return(row.Field <DateTime>("ExpireLicenseDate") >= dateTimePickerExpireLicenseDate.Value);

                    case "≤": return(row.Field <DateTime>("ExpireLicenseDate") <= dateTimePickerExpireLicenseDate.Value);
                    }
                    return(false);
                }, Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            if (checkBoxBuyLicenseDateEnable.Checked)
            {
                var ids = DataModelHelper.GetLicenseIDsByCondition(
                    row =>
                {
                    if (row.Field <DateTime?>("BuyLicenseDate") == null)
                    {
                        return(false);
                    }
                    switch (comboBoxOpBuyLicenseDate.SelectedItem.ToString())
                    {
                    case "=": return(row.Field <DateTime>("BuyLicenseDate") == dateTimePickerBuyLicenseDate.Value);

                    case "≥": return(row.Field <DateTime>("BuyLicenseDate") >= dateTimePickerBuyLicenseDate.Value);

                    case "≤": return(row.Field <DateTime>("BuyLicenseDate") <= dateTimePickerBuyLicenseDate.Value);
                    }
                    return(false);
                }, Entities.EntityType.License);
                includedLicensesIds = DataModelHelper.Intersect(includedLicensesIds, ids);
            }
            var allowedDepartments = from departmentsRow in DataModelHelper.FilterRows(DepartmentsDataModel.GetInstance().SelectVisibleDepartments())
                                     where departmentsRow.Field <bool>("AllowSelect")
                                     select departmentsRow.Field <int>("ID Department");

            var allowedComputers =
                from devicesRow in DataModelHelper.FilterRows(DevicesDataModel.GetInstance().Select())
                join depRow in allowedDepartments
                on devicesRow.Field <int>("ID Department") equals depRow
                select devicesRow.Field <int>("ID Device");

            if (!string.IsNullOrEmpty(filter.Trim()))
            {
                filter += " AND ";
            }
            filter += "[ID Computer] IN (0";
            foreach (var id in allowedComputers)
            {
                filter += id.ToString(CultureInfo.InvariantCulture) + ",";
            }
            filter = filter.TrimEnd(',') + ")";
            if (checkBoxInstallDateEnable.Checked)
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "InstallationDate {0} #{1}#",
                                        ConvertDisplayEqExprToSql(
                                            comboBoxOpInstallDate.SelectedItem.ToString()),
                                        dateTimePickerInstallDate.Value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
            }
            if (checkBoxInstallatorEnable.Checked && (comboBoxInstallator.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Installator] = '{0}'", comboBoxInstallator.SelectedValue);
            }
            if (checkBoxLicKeyEnable.Checked && (comboBoxLicKey.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID LicenseKey] = '{0}'", comboBoxLicKey.SelectedValue);
            }
            if (checkBoxComputerEnable.Checked && (comboBoxComputer.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Computer] = '{0}'", comboBoxComputer.SelectedValue);
            }
            if (checkBoxInvNumEnable.Checked && (comboBoxInvNum.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Computer] = '{0}'", comboBoxInvNum.SelectedValue);
            }
            if (checkBoxSerialNumEnable.Checked && (comboBoxSerialNum.SelectedValue != null))
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += string.Format(CultureInfo.InvariantCulture, "[ID Computer] = '{0}'", comboBoxSerialNum.SelectedValue);
            }
            if (checkBoxDepartmentInstallEnable.Checked && (comboBoxDepartmentInstallID.SelectedValue != null))
            {
                var computerIds = DataModelHelper.GetComputerIDsByDepartment((int)comboBoxDepartmentInstallID.SelectedValue);
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += "[ID Computer] IN (0";
                foreach (var id in computerIds)
                {
                    filter += id.ToString(CultureInfo.InvariantCulture) + ",";
                }
                filter = filter.TrimEnd(',') + ")";
            }
            if (includedLicensesIds != null)
            {
                if (!string.IsNullOrEmpty(filter.Trim()))
                {
                    filter += " AND ";
                }
                filter += "[ID License] IN (0";
                foreach (var id in includedLicensesIds)
                {
                    filter += id.ToString(CultureInfo.InvariantCulture) + ",";
                }
                filter = filter.TrimEnd(',') + ")";
            }
            return(filter);
        }