private static void AddMandatory_Validator(PfeColumnAttribute col, string fld, object val, string fld2 = "", object val2 = null)
 {
     if (col != null)
     {
         col.Validator ??= new PfeValidator {
             Rules = new List <PfeRule>()
         };
         var c = new List <PfeFilterAttribute>();
         c.Add(new PfeFilterAttribute
         {
             Field = fld,
             ComparisonOperator = "eq",
             Value = val
         });
         if (fld2 != "")
         {
             c.Add(new PfeFilterAttribute
             {
                 Field = fld2,
                 ComparisonOperator = "eq",
                 Value         = val2,
                 LogicOperator = "AND"
             });
         }
         var r = new PfeRule
         {
             ValidatorType = PfeValidatorType.SetMandatory,
             Condition     = c
         };
         col.Validator.Rules.Add(r);
     }
 }
        public static void SetVSSearchDefinition(PfeColumnAttribute vs, PfeColumnAttribute predpisId, IWebEasRepositoryBase repository, HierarchyNode masterNode)
        {
            string pppFAPlus  = "";
            string pppFAMinus = "";
            string pppDPMinus = "";

            if (masterNode.Kod == "ppp")
            {
                pppFAPlus  = " & Neuhradené* > 0";
                pppFAMinus = " & Neuhradené* < 0";
                pppDPMinus = " & Neuhradené < 0";
            }

            string fltPopisIn;
            string fltPopisInD;
            string fltPopisOut  = $"(Spracované{pppFAMinus})";
            string fltPopisOutD = $"(Dobropisy - spracované{pppFAMinus})";

            if ((int)repository.GetNastavenieI("crm", "KontrolaNaRozpocet") == 0)
            {
                fltPopisIn  = $"(Spracované{pppFAPlus})";
                fltPopisInD = $"(Dobropisy - spracované{pppFAPlus})";
            }
            else
            {
                fltPopisIn  = $"(Potvrdené rozpočtom{pppFAPlus})";
                fltPopisInD = $"(Dobropisy - potvrdené rozpočtom{pppFAPlus})";
            }

            if (vs != null)
            {
                vs.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                {
                    // Úhrady
                    UhrSearchFieldDefinition(TypEnum.UhradaDFA, "crm-dod-dfa", "D_BiznisEntita_Id", fltPopisIn),
                    UhrSearchFieldDefinition(TypEnum.UhradaOFA, "crm-odb-ofa", "D_BiznisEntita_Id", fltPopisOut),
                    UhrSearchFieldDefinition(TypEnum.UhradaDZF, "crm-dod-dzf", "D_BiznisEntita_Id", fltPopisIn),
                    UhrSearchFieldDefinition(TypEnum.UhradaOZF, "crm-odb-ozf", "D_BiznisEntita_Id", fltPopisOut),

                    //POS
                    UhrSearchFieldDefinition(TypEnum.POSPlatba, "fin-pok-pdk", "D_BiznisEntita_Id", $"(Spracované a nevysporiadané PDK-T)", "CisloInterne", "CisloInterne"),

                    //Mzdy
                    UhrSearchFieldDefinition(TypEnum.MzdaPlatba, "uct-evi-exe-mzd-pol", "D_MzdaPol_Id", "Úhrady k dátumu pohybu", "VS", "MzdPol_Popis"),

                    // Dobropisy
                    UhrSearchFieldDefinition(TypEnum.DobropisDFA, "crm-dod-dfa", "D_BiznisEntita_Id", fltPopisInD),
                    //UhrSearchFieldDefinition(TypEnum.DobropisDZF, "crm-dod-dzf", "D_BiznisEntita_Id", fltPopisInD),
                    UhrSearchFieldDefinition(TypEnum.DobropisOFA, "crm-odb-ofa", "D_BiznisEntita_Id", fltPopisOutD),
                    //UhrSearchFieldDefinition(TypEnum.DobropisOZF, "crm-odb-ozf", "D_BiznisEntita_Id", fltPopisOutD),

                    UhrSearchFieldDefinition(TypEnum.DaPUhradaDane, "dap-evi-roz", "D_Vymer_Id", $"(Dane, poplatky{pppDPMinus})"),
                    UhrSearchFieldDefinition(TypEnum.DaPUhradaPokutyZaOneskorenie, "dap-evi-roz", "D_Vymer_Id", $"(Pokuty za oneskorenie{pppDPMinus})"),
                    UhrSearchFieldDefinition(TypEnum.DaPUhradaUrokuZOmeskania, "dap-evi-roz", "D_Vymer_Id", $"(Úroky z omeškania{pppDPMinus})"),
                    UhrSearchFieldDefinition(TypEnum.DaPUhradaPokuty, "dap-evi-roz", "D_Vymer_Id", $"(Pokuty{pppDPMinus})"),
                    UhrSearchFieldDefinition(TypEnum.DaPUhradaPokutyZaDodatocnePodanie, "dap-evi-roz", "D_Vymer_Id", $"(Pokuty za dodatočné priznanie{pppDPMinus})"),
                    UhrSearchFieldDefinition(TypEnum.DaPUhradaUrokuZOdlozeniaSplatok, "dap-evi-roz", "D_Vymer_Id", $"(Úroky z odloženia splátok{pppDPMinus})")
                };

                var uhradoveTypy = GetUhradoveTypy();

                vs.Mandatory        = false; //(masterNode.Kod != "pdk" && masterNode.Kod != "ppp"); //BAN a IND - povinne - ZRUŠENÉ 27.9.2021 - DTLNESAMINT-921
                predpisId.Mandatory = vs.Mandatory;

                vs.Validator ??= new PfeValidator {
                    Rules = new List <PfeRule>()
                };
                var r = new PfeRule
                {
                    ValidatorType = PfeValidatorType.SetMandatory,
                    Condition     = new List <PfeFilterAttribute>()
                };

                r.Condition.Add(new PfeFilterAttribute
                {
                    Field = "C_Typ_Id",
                    ComparisonOperator = "in",
                    Value         = string.Join("|", uhradoveTypy.Select(x => (int)x)),
                    LeftBrace     = 0,
                    RightBrace    = 0,
                    LogicOperator = "OR"
                });
                vs.Validator.Rules.Add(r);
            }
        }