/// <summary>
        /// Inits the filter.
        /// </summary>
        private void InitFilter()
        {
            var userSettings = DataManager.UserSettings.SelectByClassName(CurrentUser.Instance.ID, RequirementWidgetFilter);

            if (userSettings != null && !string.IsNullOrEmpty(userSettings.UserSettings))
            {
                var settings = new RequirementFilterSettings();
                settings.Deserialize(userSettings.UserSettings);

                if (settings.ToPay)
                {
                    gridRequirements.Where.Add(new GridWhere {
                        CustomQuery = "(tbl_Requirement.Quantity > 0 AND tbl_Requirement.InvoiceID IS NULL)"
                    });
                }

                if (settings.CurrentRequirements)
                {
                    gridRequirements.Where.Add(new GridWhere {
                        CustomQuery = string.Format("(tbl_RequirementStatus.IsLast = {0})", settings.CurrentRequirements ? 0 : 1)
                    });
                }

                if (settings.ByResponsible && settings.ResponsibleId.HasValue)
                {
                    gridRequirements.Where.Add(new GridWhere
                    {
                        CustomQuery =
                            string.Format("(tbl_Requirement.ResponsibleID = '{0}')",
                                          settings.ResponsibleId.ToString())
                    });
                }

                chxToPay.Checked               = settings.ToPay;
                chxByResponsible.Checked       = settings.ByResponsible;
                chxCurrentRequirements.Checked = settings.CurrentRequirements;
                ucResponsible.SelectedValue    = settings.ResponsibleId;
            }
            else
            {
                ucResponsible.SelectedValue = CurrentUser.Instance.ContactID;
                gridRequirements.Where.Add(new GridWhere {
                    CustomQuery = "tbl_RequirementStatus.IsLast = 0"
                });
            }
        }
        /// <summary>
        /// Applies the filter.
        /// </summary>
        private void ApplyFilter()
        {
            gridRequirements.Where.Clear();

            if (chxToPay.Checked)
            {
                gridRequirements.Where.Add(new GridWhere {
                    CustomQuery = "(tbl_Requirement.Quantity > 0 AND tbl_Requirement.InvoiceID IS NULL)"
                });
            }

            if (chxCurrentRequirements.Checked)
            {
                gridRequirements.Where.Add(new GridWhere {
                    CustomQuery = "(tbl_RequirementStatus.IsLast = 0)"
                });
            }

            if (chxByResponsible.Checked && ucResponsible.SelectedValue.HasValue)
            {
                gridRequirements.Where.Add(new GridWhere
                {
                    CustomQuery =
                        string.Format("(tbl_Requirement.ResponsibleID = '{0}')",
                                      ucResponsible.SelectedValue.ToString())
                });
            }

            var userSettings = DataManager.UserSettings.SelectByClassName(CurrentUser.Instance.ID,
                                                                          RequirementWidgetFilter) ?? new tbl_UserSettings();
            var filter = new RequirementFilterSettings
            {
                CurrentRequirements = chxCurrentRequirements.Checked,
                ResponsibleId       = ucResponsible.SelectedValue,
                ByResponsible       = chxByResponsible.Checked,
                ToPay = chxToPay.Checked
            };

            userSettings.UserID       = CurrentUser.Instance.ID;
            userSettings.ClassName    = RequirementWidgetFilter;
            userSettings.UserSettings = filter.Serialize();
            DataManager.UserSettings.Save(userSettings);

            gridRequirements.Rebind();
        }