示例#1
0
        public new void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            base.CustomizeModel(model, repository, node, filter, masterNode, kodPolozkyModulu);
            var eSAMRezim     = repository.GetNastavenieI("cfe", "eSAMRezim");
            var isoZdroj      = repository.GetNastavenieI("cfe", "ISOZdroj");
            var isoZdrojNazov = repository.GetNastavenieS("cfe", "ISOZdrojNazov");

            if (model.Fields != null)
            {
                if (eSAMRezim != 1 && repository.Session.AdminLevel != AdminLevel.SysAdmin)
                {
                    model.Fields.FirstOrDefault(p => p.Name == nameof(DCOM)).Text = "_DCOM";
                }
            }

            if (eSAMRezim == 1)
            {
                var na = new NodeAction(NodeActionType.MenuButtonsAll)
                {
                    ActionIcon  = NodeActionIcons.Refresh,
                    Caption     = "DCOM",
                    MenuButtons = new List <NodeAction>()
                    {
                        new NodeAction(NodeActionType.DoposlanieUhradDoDcomu)
                        {
                            SelectionMode = PfeSelection.Multi,
                            IdField       = "D_BiznisEntita_Id",
                            Url           = "/office/reg/long/DoposlanieUhradDoDcomu"
                        }
                    }
                };
                node.Actions.Add(na);
            }

            if (isoZdroj > 0 && repository.Session.Roles.Where(w => w.Contains("REG_MIGRATOR")).Any() && model.Type != PfeModelType.Form)
            {
                if (node.Actions.Any(x => x.ActionType == NodeActionType.MenuButtonsAll))
                {
                    var polozkaMenuAll = node.Actions.Where(x => x.ActionType == NodeActionType.MenuButtonsAll && x.Caption == "ISO").FirstOrDefault();
                    if (polozkaMenuAll != null)
                    {
                        polozkaMenuAll.Caption = isoZdrojNazov;
                    }
                }
            }
            else
            {
                node.Actions.RemoveAll(x => x.ActionType == NodeActionType.MenuButtonsAll && x.Caption == "ISO");
            }
        }
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            if (model?.Fields == null || node == null)
            {
                return;
            }

            Helpers.AddMzdyCaptions(model, repository, masterNode.Kod == "pol" && (repository.Session.AdminLevel == AdminLevel.SysAdmin) && kodPolozkyModulu == null, false);

            if (masterNode.Kod == "pol")
            {
                node.Actions.RemoveAll(x => x.ActionType == NodeActionType.MenuButtonsAll);
            }
        }
示例#3
0
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            if (model.Fields != null)
            {
                var kodField = model.Fields.FirstOrDefault(p => p.Name == nameof(KOD));
                if (kodField != null)
                {
                    kodField.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                    {
                        new PfeSearchFieldDefinition
                        {
                            Code         = "bds-kat-mat",
                            NameField    = nameof(V_MAT_0View.KOD),
                            DisplayField = nameof(V_MAT_0View.KOD),

                            /*
                             * Condition = new List<PfeFilterAttribute>
                             * {
                             *  new PfeFilterAttribute
                             *  {
                             *      Field = nameof(ExpenseBy),
                             *      ComparisonOperator = "eq",
                             *      Value = 2,             //3D - to znamená, že vyberám z katalógu
                             *  }
                             * },
                             */
                        },

                        /*
                         * new PfeSearchFieldDefinition
                         * {
                         *  Code = "bds-skl-sts",
                         *  NameField = nameof(V_MAT_0View.KOD),
                         *  DisplayField = nameof(V_MAT_0View.KOD),
                         *  Condition = new List<PfeFilterAttribute>
                         *  {
                         *      new PfeFilterAttribute
                         *      {
                         *          Field = nameof(ExpenseBy),
                         *          ComparisonOperator = "eq",
                         *          Value = 1,             //Stock - to znamená, že vyberám zo stavu skladu
                         *      }
                         *  },
                         * }
                         */
                    };
                }
            }
        }
示例#4
0
 public void BeforeGetList(IWebEasRepositoryBase repository, HierarchyNode node, ref string sql, ref Filter filter, ref string sqlFromAlias, string sqlOrderPart)
 {
     if (!repository.GetNastavenieB("cfe", "PohladavkyDAP"))
     {
         filter.And(new FilterElement()
         {
             Key = nameof(Tree.C_Modul_Id), Operator = FilterOperator.Ne.Value, Value = (int)ModulEnum.DAP
         });
         filter.And(new FilterElement()
         {
             Key = nameof(Tree.Kod), Operator = FilterOperator.NotLike.Value, Value = "%dap%"
         });
     }
     ;
 }
 public static void AddGuidRecordsToCache <T>(IWebEasRepositoryBase repository, IEnumerable <KeyValuePair <string, string> > recordsToCache, string hashId = null)
 {
     if (recordsToCache.Any())
     {
         hashId ??= UrnId.Create <T>(repository.Session.Id);
         repository.Redis.Remove(hashId);
         repository.Redis.SetRangeInHash(hashId, recordsToCache);
         var sessionKey = SessionFeature.GetSessionKey(repository.Session.Id);
         var ttl        = repository.Redis.GetTimeToLive(sessionKey);
         if (ttl.HasValue)
         {
             repository.Redis.ExpireEntryIn(hashId, ttl.Value);
         }
     }
 }
        public static void AddFilterForUcetByStringOrId(IWebEasRepositoryBase repository, Filter filter, Dictionary <string, object> parameters)
        {
            string ucetIdsOd = parameters.ContainsKey("C_UCTROZVRH_ID_OD") ? parameters["C_UCTROZVRH_ID_OD"].ToString() : string.Empty;
            string ucetIdsDo = parameters.ContainsKey("C_UCTROZVRH_ID_DO") ? parameters["C_UCTROZVRH_ID_DO"].ToString() : string.Empty;
            string ucetOd    = parameters.ContainsKey("ROZVRHUCET_OD") ? parameters["ROZVRHUCET_OD"].ToString() : string.Empty;
            string ucetDo    = parameters.ContainsKey("ROZVRHUCET_DO") ? parameters["ROZVRHUCET_DO"].ToString() : string.Empty;

            if (ucetIdsOd.Contains(",") && (!ucetIdsDo.IsEmpty() || !ucetDo.IsEmpty())) //Nedovolím pri multiselecte druhú stranu
            {
                throw new WebEasValidationException(null, "Pri výbere viacerých účtov je možné použiť iba parameter 'Účet od'!");
            }
            else if (ucetIdsOd.Contains(","))
            {
                //Multiselect ID hodnôt, zmením na stringy
                var uct = repository.Db.Select <(int C_UctRozvrh_Id, string Ucet)>("SELECT C_UctRozvrh_Id, Ucet FROM uct.V_UctRozvrh WHERE C_UctRozvrh_Id IN (@ucetIdsOd)", new { ucetIdsOd = ucetIdsOd.FromJson <List <int> >() });

                List <FilterElement> rue = new List <FilterElement>();

                foreach (var u in uct)
                {
                    rue.Add(FilterElement.Like("RozvrhUcet", string.Concat(u.Ucet, "%")));
                }
                filter.And(Filter.OrElements(rue.ToArray()));
            }
            else
            {
                if (!ucetIdsOd.IsEmpty())
                {
                    //Zistim si ID-čko
                    ucetOd = repository.Db.Scalar <string>("SELECT Ucet FROM uct.V_UctRozvrh WHERE C_UctRozvrh_Id = @Id", new { Id = ucetIdsOd });
                }
                if (!ucetIdsDo.IsEmpty())
                {
                    //Zistim si ID-čko
                    ucetDo = repository.Db.Scalar <string>("SELECT Ucet FROM uct.V_UctRozvrh WHERE C_UctRozvrh_Id = @Id", new { Id = ucetIdsDo });
                }

                //Z FE chodia do filtra aj tieto dopĺňané znaky, ktoré v DB  nie sú
                //Nepoužívam:   RepositoryBase.OdstranitFormatovanieUctuFiltra("ROZVRHUCET_DO", ref filter);
                ucetOd = ucetOd.Replace(" ", "").Replace(".", "").Replace("-", "").Replace("/", "");
                ucetDo = ucetDo.Replace(" ", "").Replace(".", "").Replace("-", "").Replace("/", "");

                AddStringFilterOdDo(filter, ucetOd, ucetDo, "RozvrhUcet"); //Nemáme tento field zatiaľ oficiálne
            }
        }
示例#7
0
 public void ComboCustomize(IWebEasRepositoryBase repository, string column, string kodPolozky, Dictionary <string, string> requiredFields, ref PfeComboAttribute comboAttribute, HierarchyNode node)
 {
     if (column.ToLower() == "StavNazov".ToLower() && (kodPolozky.StartsWith("crm-dod-")) || kodPolozky.StartsWith("crm-odb-"))
     {
         comboAttribute.AdditionalWhereSql = "C_StavEntity_Id IN (-2, -1, 1, 7, 8, 10, 14, 15)";
     }
     else if (column.ToLower() == "StavNazov".ToLower() && (kodPolozky.StartsWith("fin-pok-") ||
                                                            kodPolozky.StartsWith("fin-bnk-") ||
                                                            kodPolozky.StartsWith("all-evi-intd") ||
                                                            kodPolozky.StartsWith("uct-evi-exd-")))
     {
         comboAttribute.AdditionalWhereSql = "C_StavEntity_Id IN (1, 7, 10, 14, 15)";
     }
     else if (column.ToLower() == "StavNazov".ToLower() && (kodPolozky.StartsWith("maj-")))
     {
         comboAttribute.AdditionalWhereSql = "C_StavEntity_Id IN (1,22,23,24,25,26)";
     }
 }
        public void BeforeGetList(IWebEasRepositoryBase repository, HierarchyNode node, ref string sql, ref Filter filter, ref string sqlFromAlias, string sqlOrderPart)
        {
            if (filter != null)
            {
                //Špeciálny filter na dap.V_Vymer - treba z filtra odstrániť polia z daní
                filter.ChangeFilterCondition("C_VymerTyp_Id =", "99 =");

                //Špeciálny filter na doklady crm.V_DokladDFA/OFA/DZF/OZF - treba z filtra odstrániť filtrovanie polí, ktoré je platné pre faktúry
                filter.ChangeFilterCondition("R = 1", "1 = 2");
                filter.ChangeFilterCondition("S = 1", "1 = 2");
                filter.ChangeFilterCondition("DM_Suma < 0", "1 = 2");
                filter.ChangeFilterCondition("D_Osoba_Id = null", "3 = 4");

                //Špeciálny filter na fin.V_DokladPDK - treba z filtra odstrániť filtrovanie polí, ktoré je platné pre mzdy
                filter.ChangeFilterCondition("ISNULL(POS_V, 0) = 0", "4 = 5");
                filter.ChangeFilterCondition("C_TypBiznisEntity_Kniha_Id = 53", "4 = 5");
            }
        }
示例#9
0
        public static void RemoveActionsOnSync(this List <NodeAction> actions,
                                               IWebEasRepositoryBase repository,
                                               HierarchyNode node)
        {
            var dapRoz    = node.KodPolozky == "dap-evi-roz";
            var dapRozPol = node.KodPolozky == "dap-evi-roz-pol";
            var dapCis    = node.KodPolozky == "dap-cis-druh";
            var dapCisPri = node.KodPolozky == "dap-cis-pri";
            var dapCisKat = node.KodPolozky == "dap-cis-kat";

            var eSAMRezim = repository.GetNastavenieI("cfe", "eSAMRezim");
            var isoZdroj  = repository.GetNastavenieI("cfe", "ISOZdroj");

            if ((dapRoz || dapRozPol || dapCis || dapCisPri || dapCisKat) && (eSAMRezim > 0 || isoZdroj > 0))
            {
                actions.RemoveAll(x => x.ActionType == NodeActionType.MenuButtonsAll || x.ActionType == NodeActionType.Delete);
            }
        }
        public static void AddCMSumaDoklad_Validator(IWebEasRepositoryBase repository, PfeColumnAttribute cmSumaDoklad, bool pdk = false)
        {
            if (cmSumaDoklad != null)
            {
                bool crmSupervisor = repository.Session.HasRole(pdk ? "FIN_SUPERVISOR" : "CRM_SUPERVISOR");

                cmSumaDoklad.Validator ??= new PfeValidator {
                    Rules = new List <PfeRule>()
                };

                if (crmSupervisor)
                {
                    cmSumaDoklad.Validator.Rules.Add(new PfeRule
                    {
                        ValidatorType = PfeValidatorType.Disable,
                        Condition     = new List <PfeFilterAttribute>
                        {
                            new PfeFilterAttribute
                            {
                                Field = "C_StavEntity_Id",
                                ComparisonOperator = "ne",
                                Value = (int)StavEntityEnum.NOVY
                            }
                        }
                    });
                }
                //else
                //{
                //    cmSumaDoklad.Validator.Rules.Add(new PfeRule
                //    {
                //        ValidatorType = PfeValidatorType.Disable,
                //        Condition = new List<PfeFilterAttribute>
                //            {
                //                new PfeFilterAttribute
                //                {
                //                    Field = "DatumVytvorenia",
                //                    ComparisonOperator = "ne",
                //                    Value = null
                //                }
                //            }
                //    });
                //}
            }
        }
 public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
 {
     if (model.Fields != null)
     {
         var typFld = model.Fields.FirstOrDefault(p => p.Name == nameof(TypNazov));
         if (typFld != null)
         {
             typFld.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
             {
                 new PfeSearchFieldDefinition
                 {
                     Code         = "reg-cis-typ",
                     NameField    = nameof(TypView.C_Typ_Id),
                     DisplayField = nameof(TypView.Nazov)
                 }
             };
         }
     }
 }
示例#12
0
 public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
 {
     if (model.Fields != null)
     {
         var kodField = model.Fields.FirstOrDefault(p => p.Name == nameof(KOD));
         if (kodField != null)
         {
             kodField.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
             {
                 new PfeSearchFieldDefinition
                 {
                     Code         = "bds-kat-mat",
                     NameField    = nameof(V_MAT_0View.KOD),
                     DisplayField = nameof(V_MAT_0View.KOD),
                     //AdditionalFilterDesc = "(Platné zdroje)"
                 }
             };
         }
     }
 }
        public void BeforeGetList(IWebEasRepositoryBase repository, HierarchyNode node, ref string sql, ref Filter filter, ref string sqlFromAlias, string sqlOrderPart)
        {
            if (filter?.Parameters != null)
            {
                var parameters = filter.Parameters;

                var newFilter = new Filter(nameof(D_Tenant_Id), repository.Session.TenantIdGuid);

                if (sqlFromAlias.Contains("@Rok"))
                {
                    string sRok = (parameters.ContainsKey(nameof(Rok).ToUpper())) ? parameters[nameof(Rok).ToUpper()].ToString() : DateTime.Now.Year.ToString();
                    sqlFromAlias = sqlFromAlias.Replace("@Rok", sRok);
                }

                //ObdobieOd sa pri FIN 1-12 do funkcie nevyžíva - od je iba na ilustraciu pre usera na FE
                if (sqlFromAlias.Contains("@Obdobie"))
                {
                    string sObdobie = parameters.ContainsKey("OBDOBIEDO") ? parameters["OBDOBIEDO"].ToString() : DateTime.Now.Month.ToString();
                    sqlFromAlias = sqlFromAlias.Replace("@Obdobie", sObdobie);
                }

                bool showP = parameters.ContainsKey("SHOWP");
                bool showV = parameters.ContainsKey("SHOWV");

                if ((showP || showV) && !(showP && showV))
                {
                    newFilter.AndEq(nameof(PrijemVydaj), showP ? 1 : 2);
                }

                bool ShowB = parameters.ContainsKey("SHOWB");
                bool ShowK = parameters.ContainsKey("SHOWK");
                bool ShowF = parameters.ContainsKey("SHOWF");

                if ((ShowB || ShowK || ShowF) && !(ShowB && ShowK & ShowF))
                {
                    //1 - 'Bežný'; 2 - 'Kapitálový', 3 - 'Finančné operácie'
                    newFilter.And(FilterElement.Custom($"{nameof(C_RzpTyp_Id)} IN ({(ShowB ? 1 : -1)}, {(ShowK ? 2 : -1)}, {(ShowF ? 3 : -1)})"));
                }
                filter = BookFilterGenerator.AddNoDialogFilters(filter, newFilter);
            }
        }
        public static List <T> GetGuidRecordsFromCache <T>(IWebEasRepositoryBase repository, Guid id, string hashId = null) where T : class
        {
            hashId ??= UrnId.Create <T>(repository.Session.Id);
            var redisData = repository.Redis.GetValueFromHash(hashId, id.ToString());
            var data      = new List <T>();

            if (!redisData.IsNullOrEmpty())
            {
                //je to pole stringov
                if (redisData.StartsWith("[\""))
                {
                    var dataForGuid = repository.Redis.GetValuesFromHash(hashId, redisData.FromJson <List <string> >().ToArray());
                    dataForGuid.ForEach(x => data.AddRange(x.FromJson <List <T> >()));
                }
                else
                {
                    data = redisData.FromJson <List <T> >();
                }
            }
            return(data);
        }
 public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
 {
     /*
      * if (model.Fields != null)
      * {
      *  var icoField = model.Fields.FirstOrDefault(p => p.Name == nameof(ICO));
      *  if (icoField != null)
      *  {
      *      icoField.SearchFieldDefinition = new List<PfeSearchFieldDefinition>
      *      {
      *          new PfeSearchFieldDefinition
      *          {
      *              Code = "osa-oso-po",
      *              NameField = nameof(PO_OsobaView.D_PO_Osoba_Id),
      *              DisplayField = nameof(PO_OsobaView.ICO),
      *              InputSearchField = nameof(PO_OsobaView.InputSearchField)
      *          }
      *      };
      *  }
      * }
      */
 }
        public void ComboCustomize(IWebEasRepositoryBase repository, string column, string kodPolozky, Dictionary <string, string> requiredFields, ref PfeComboAttribute comboAttribute, HierarchyNode node)
        {
            if (column.ToLower() == "idformatmeno" || column.ToLower() == "adresatpsidlo")
            {
                if (kodPolozky.StartsWith("crm-dod-")) // Dodávatelia
                {
                    comboAttribute.AdditionalWhereSql = $"C_FakturaciaVztah_Id IN ({(int)FakturaciaVztahEnum.DOD}, {(int)FakturaciaVztahEnum.DOD_ODB})";
                }
                else if (kodPolozky.StartsWith("crm-odb-")) // Odberatelia
                {
                    comboAttribute.AdditionalWhereSql = $"C_FakturaciaVztah_Id IN ({(int)FakturaciaVztahEnum.ODB}, {(int)FakturaciaVztahEnum.DOD_ODB})";
                }
                else if (kodPolozky.StartsWith("fin-pok-pdk") && column.ToLower() == "idformatmeno") // Pokladničné doklady
                {
                    comboAttribute.Tpl = "{value};{AdresaTPSidlo};daň: {Danovnik};dod: {Dodavatel};odb: {Odberatel}";
                    var additionalFields = new[] { nameof(AdresaTPSidlo), nameof(Danovnik), nameof(Dodavatel), nameof(Odberatel) };
                    comboAttribute.AdditionalFields = comboAttribute.AdditionalFields != null?comboAttribute.AdditionalFields.Union(additionalFields).Distinct().ToArray() : additionalFields;
                }
                else if (kodPolozky.StartsWith("fin-pok-pdk") && column.ToLower() == "adresatpsidlo") // Pokladničné doklady
                {
                    comboAttribute.Tpl = "{value};{IdFormatMeno};daň: {Danovnik};dod: {Dodavatel};odb: {Odberatel}";
                    var additionalFields = new[] { nameof(IdFormatMeno), nameof(Danovnik), nameof(Dodavatel), nameof(Odberatel) };
                    comboAttribute.AdditionalFields = comboAttribute.AdditionalFields != null?comboAttribute.AdditionalFields.Union(additionalFields).Distinct().ToArray() : additionalFields;
                }

                //Combo služba sa volá aj v špeciálnom prípade z dialógu P/Z.
                //Vtedy sa volá bez "!" a natvrdo sa má pridať filter na "Zákazník = 1"
                if (kodPolozky.Contains("fin-pok-pdk") && !kodPolozky.Contains("!"))
                {
                    comboAttribute.AdditionalWhereSql += (!string.IsNullOrEmpty(comboAttribute.AdditionalWhereSql) ? " AND " : string.Empty) + nameof(Zakaznik) + " = 1";
                }

                if (kodPolozky.StartsWith("all-prh-fa"))
                {
                    byte typFakturacieId = requiredFields != null && requiredFields.ContainsKey("E_TypFakturacie_Id") ? byte.Parse(requiredFields["E_TypFakturacie_Id"]) : (byte)3;
                    comboAttribute.AdditionalWhereSql += Helpers.GetTypFakturacieFilterSql(typFakturacieId);
                }
            }
        }
        public static byte GetHighDph(DateTime datum, out int dphRezim, IWebEasRepositoryBase repository)
        {
            byte dphHigh = 0;

            dphRezim = (int)repository.GetNastavenieI("reg", "RezimDph");
            if (dphRezim > 0) // 0 = neplatca; 1 = neplatca s evidenciou DPH na došlých dokladoch; 2 = mesačný platca; 4 = štvrťročný platca
            {
                // Nefungujuce riesenia: 1) nevedel vyskladat WHERE 2) Selectoval vsetky polia a filtroval az na BE
                // 1) repository.GetList<DphSadzbaView>(x => x.PlatnostOd <= DateTime.Today && x.PlatnostDo == null || x.PlatnostOd <= DateTime.Today && DateTime.Today <= x.PlatnostDo);
                // 2) repository.GetList<DphSadzbaView>().Where(x => x.PlatnostOd <= DateTime.Today && (x.PlatnostDo == null || DateTime.Today <= x.PlatnostDo));

                // az toto vytvorilo korektny SELECT
                var flt = new Filter();
                flt.And(FilterElement.LessThanOrEq("PlatnostOd", datum));
                flt.And(new Filter(FilterElement.Eq("PlatnostDo", null)).Or(FilterElement.GreaterThanOrEq("PlatnostDo", datum)));
                var selectedFields = new List <string>
                {
                    nameof(DphSadzbaView.DPH)
                };
                dphHigh = repository.GetList <DphSadzbaView>(flt, null, selectedFields: selectedFields).OrderByDescending(x => x.DPH).Take(1).FirstOrDefault().DPH;
            }
            return(dphHigh);
        }
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            if (model.Fields != null)
            {
                var zdrojField = model.Fields.FirstOrDefault(p => p.Name == nameof(ZdrojFull));
                if (zdrojField != null)
                {
                    zdrojField.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                    {
                        new PfeSearchFieldDefinition
                        {
                            Code                 = "rzp-cis-zdr",
                            NameField            = nameof(FRZdrojView.C_FRZdroj_Id),
                            DisplayField         = nameof(FRZdrojView.ZdrojFull),
                            AdditionalFilterDesc = "(Platné zdroje)"
                        }
                    };
                }
            }

            int isoZdroj      = (int)repository.GetNastavenieI("cfe", "ISOZdroj");
            var isoZdrojNazov = repository.GetNastavenieS("cfe", "ISOZdrojNazov");

            if (isoZdroj == 1 && repository.Session.Roles.Where(w => w.Contains("REG_MIGRATOR")).Any() && model.Type != PfeModelType.Form)
            {
                var polozkaMenuAll = node.Actions.Where(x => x.ActionType == NodeActionType.MenuButtonsAll && x.Caption == "ISO").FirstOrDefault();
                if (polozkaMenuAll != null)
                {
                    polozkaMenuAll.Caption = isoZdrojNazov;
                }
            }
            else
            {
                node.Actions.RemoveAll(x => x.ActionType == NodeActionType.MenuButtonsAll && x.Caption == "ISO");
            }
        }
示例#19
0
 public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
 {
     if (model.Fields != null)
     {
     }
 }
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            if (model.Fields != null)
            {
                #region StavovyPriestor

                var stavovyPriestor = model.Fields.FirstOrDefault(p => p.Name == nameof(StavovyPriestor));
                if (stavovyPriestor != null)
                {
                    stavovyPriestor.Validator = new PfeValidator
                    {
                        Rules = new List <PfeRule>
                        {
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.Disable,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "BAN",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "PDK",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "IND",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "DFA",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "OFA",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "PRI",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "VYD",
                                        LogicOperator = "AND"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "ne",
                                        Value         = "PRE",
                                        LogicOperator = "AND"
                                    }
                                }
                            }
                        }
                    };
                }

                #endregion

                #region strediskoNaHlavicke

                var strediskoNaHlavicke = model.Fields.FirstOrDefault(p => p.Name == nameof(StrediskoNaHlavicke));
                if (strediskoNaHlavicke != null)
                {
                    strediskoNaHlavicke.Validator = new PfeValidator
                    {
                        Rules = new List <PfeRule>
                        {
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.Disable,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "BAN",
                                        LogicOperator = "OR"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "PPP",
                                        LogicOperator = "OR"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DAP",
                                        LogicOperator = "OR"
                                    }
                                }
                            }
                        }
                    };
                }

                #endregion

                #region strediskoNaPolozke

                var strediskoNaPolozke = model.Fields.FirstOrDefault(p => p.Name == nameof(StrediskoNaPolozke));
                if (strediskoNaPolozke != null)
                {
                    strediskoNaPolozke.Validator = new PfeValidator
                    {
                        Rules = new List <PfeRule>
                        {
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.Disable,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "PPP",
                                        LogicOperator = "OR"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "IND",
                                        LogicOperator = "OR"
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DAP",
                                        LogicOperator = "OR"
                                    }
                                }
                            }
                        }
                    };
                }

                #endregion

                #region uctovatPolozkovite

                var uctovatPolozkovite = model.Fields.FirstOrDefault(p => p.Name == nameof(UctovatPolozkovite));
                if (uctovatPolozkovite != null)
                {
                    uctovatPolozkovite.Validator = new PfeValidator
                    {
                        Rules = new List <PfeRule>
                        {
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.Disable,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "ODP",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DDP",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "OCP",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DCP",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "OOB",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DOB",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "OZM",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DZM",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "OZF",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DZF",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "PPP",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    },
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(KodDokladu),
                                        ComparisonOperator = "eq",
                                        Value         = "DOL",
                                        LogicOperator = "OR",
                                        LeftBrace     = 1,
                                        RightBrace    = 1
                                    }
                                }
                            }
                        }
                    };
                }
                #endregion

                #region cislovanieJedno

                var cislovanieJedno = model.Fields.FirstOrDefault(p => p.Name == nameof(CislovanieJedno));
                if (cislovanieJedno != null)
                {
                    cislovanieJedno.Validator = new PfeValidator
                    {
                        Rules = new List <PfeRule>
                        {
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.SetValue,
                                Value         = true,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(StrediskoNaHlavicke),
                                        ComparisonOperator = "eq",
                                        Value = false
                                    }
                                }
                            },
                            new PfeRule
                            {
                                ValidatorType = PfeValidatorType.Disable,
                                Condition     = new List <PfeFilterAttribute>
                                {
                                    new PfeFilterAttribute
                                    {
                                        Field = nameof(StrediskoNaHlavicke),
                                        ComparisonOperator = "eq",
                                        Value = false
                                    }
                                }
                            }
                        }
                    };
                }

                #endregion
            }
        }
        public static void UctDennik_BeforeGetList(IWebEasRepositoryBase repository, HierarchyNode node, ref string sql, ref Filter filter, ref string sqlFromAlias, string sqlOrderPart)
        {
            if (filter?.Parameters != null)
            {
                var  parameters = filter.Parameters;
                bool zau        = parameters.ContainsKey("ZAU");
                bool notZau     = parameters.ContainsKey("NOTZAU");
                bool cinnost    = parameters.ContainsKey("CINNOST");

                var newFilter = new Filter(nameof(UctDennikRptHelper.D_Tenant_Id), repository.Session.TenantIdGuid);

                if (parameters.ContainsKey(nameof(UctDennikRptHelper.Rok).ToUpper()))
                {
                    newFilter.AndEq(nameof(UctDennikRptHelper.Rok), parameters[nameof(UctDennikRptHelper.Rok).ToUpper()]);
                }

                AddIntOrDateFilterOdDo(
                    newFilter,
                    parameters.ContainsKey("OBDOBIEOD") ? parameters["OBDOBIEOD"].ToString() : string.Empty,
                    parameters.ContainsKey("OBDOBIEDO") ? parameters["OBDOBIEDO"].ToString() : string.Empty,
                    nameof(UctDennikRptHelper.UOMesiac));


                AddIntOrDateFilterOdDo(
                    newFilter,
                    parameters.ContainsKey("DATUMOD") ? parameters["DATUMOD"].ToString() : string.Empty,
                    parameters.ContainsKey("DATUMDO") ? parameters["DATUMDO"].ToString() : string.Empty,
                    nameof(UctDennikRptHelper.DatumUctovania));

                #region Hodnota Od - Do

                string valOd = parameters.ContainsKey("HODNOTAOD") ? parameters["HODNOTAOD"].ToString() : string.Empty;
                string valDo = parameters.ContainsKey("HODNOTADO") ? parameters["HODNOTADO"].ToString() : string.Empty;

                if (!string.IsNullOrEmpty(valDo) && (string.IsNullOrEmpty(valOd)))
                {
                    valOd = "0.001"; //Zmena zabezpečí aby sa rátalo od 0 do valDo a nebralo stranu na ktorej je 0.
                }

                if (!string.IsNullOrEmpty(valOd) && (string.IsNullOrEmpty(valDo) || valDo == "0" || valOd == valDo))
                {
                    newFilter.And(Filter.OrElements(FilterElement.Eq(nameof(UctDennikRptHelper.SumaMD), valOd),
                                                    FilterElement.Eq(nameof(UctDennikRptHelper.SumaDal), valOd)));
                }
                else if (!string.IsNullOrEmpty(valOd) && !string.IsNullOrEmpty(valDo))
                {
                    newFilter.And(Filter.OrElements(Filter.AndElements(FilterElement.GreaterThanOrEq(nameof(UctDennikRptHelper.SumaMD), valOd), FilterElement.LessThanOrEq(nameof(UctDennikRptHelper.SumaMD), valDo)),
                                                    Filter.AndElements(FilterElement.GreaterThanOrEq(nameof(UctDennikRptHelper.SumaDal), valOd), FilterElement.LessThanOrEq(nameof(UctDennikRptHelper.SumaDal), valDo))));
                }
                #endregion

                AddFilterForUcetByStringOrId(repository, newFilter, parameters);

                AddStringFilterOdDo(
                    newFilter,
                    parameters.ContainsKey("CISLOINTERNEOD") ? parameters["CISLOINTERNEOD"].ToString() : string.Empty,
                    parameters.ContainsKey("CISLOINTERNEDO") ? parameters["CISLOINTERNEDO"].ToString() : string.Empty,
                    nameof(UctDennikRptHelper.CisloInterne));

                if (!zau && notZau || zau && !notZau)
                {
                    newFilter.AndEq(nameof(UctDennikRptHelper.U), zau ? 1 : 0);
                }

                if (cinnost)
                {
                    newFilter.AndEq(nameof(UctDennikRptHelper.PodnCinn), (parameters["CINNOST"].ToString() == "2") ? 1 : 0);
                }

                AddFilterForIDsDkl(newFilter, parameters);
                AddFilterForIDsUct(newFilter, parameters);

                filter = AddNoDialogFilters(filter, newFilter, true);
            }
        }
        public static void AddFilterForIDsRzp(Filter filter, Dictionary <string, object> parameters, IWebEasRepositoryBase repository)
        {
            #region Rozpočtová položka

            if (parameters.ContainsKey("C_RZPPOL_ID"))
            {
                // JP: spadne ak sa zavola v "Zmeny rozpoctu" akcia na polozke "Zobrazit prehlad rozpoctu" - vieme o tom riesenie in progress (FE)
                filter.And(FilterElement.In("C_RzpPol_Id", parameters["C_RZPPOL_ID"].ToString().FromJson <List <int> >()));
            }

            if (parameters.ContainsKey("RZPUCETNAZOV")) // Zadaná časť textu rozpočtovej položky
            {
                filter.And(FilterElement.Like("RzpUcetNazov", string.Concat(parameters["RZPUCETNAZOV"].ToString(), "%")));
            }

            #endregion

            #region FRZdroj

            string zdIds = parameters.ContainsKey("C_FRZDROJ_ID") ? parameters["C_FRZDROJ_ID"].ToString() : string.Empty;
            if (!zdIds.IsEmpty())
            {
                //Multiselect ID hodnôt, filtrujem cez jednotlivé časti ZD
                var fks = repository.Db.Select(repository.Db.From <FRZdrojView>()
                                               .Select(x => new { x.C_FRZdroj_Id, x.ZD1, x.ZD2, x.ZD3, x.ZD4, x.ZD5, x.ZdrojKod, x.Platny })
                                               .Where(x => Sql.In(x.C_FRZdroj_Id, zdIds.FromJson <List <int> >())));

                List <FilterElement> rue = new List <FilterElement>();

                //Stĺpce "ZD1, ZD2, ZD3, ZD4, ZD5" nie sú v modeli, iba fyzicky v rzp.V_RzpDennik
                foreach (var p in fks)
                {
                    string flt = string.Empty;

                    if (p.Platny || !p.ZdrojKod.IsNullOrEmpty())
                    {
                        flt = $"C_FRZdroj_Id = {p.C_FRZdroj_Id}"; //Môžem ísť cez ID
                    }
                    else
                    {
                        flt = $"ZD1 = '{p.ZD1}'";
                        if (!p.ZD2.IsNullOrEmpty())
                        {
                            flt += $" AND ZD2 = '{p.ZD2}'";
                        }
                        if (!p.ZD3.IsNullOrEmpty())
                        {
                            flt += $" AND ZD3 = '{p.ZD3}'";
                        }
                        if (!p.ZD4.IsNullOrEmpty())
                        {
                            flt += $" AND ZD4 = '{p.ZD4}'";
                        }
                        //p.ZD5 - tieto sú platné vždy
                    }

                    rue.Add(FilterElement.Custom(flt));
                }
                filter.And(Filter.OrElements(rue.ToArray()));
            }

            #endregion

            #region FR Ekonomická klasifikácia

            string ekIds = parameters.ContainsKey("C_FREK_ID") ? parameters["C_FREK_ID"].ToString() : string.Empty;
            if (!ekIds.IsEmpty())
            {
                //Multiselect ID hodnôt, filtrujem cez jednotlivé časti FK
                var eks = repository.Db.Select(repository.Db.From <FREK>()
                                               .Select(x => new { x.C_FREK_Id, x.EKPolozka, x.EKPodpolozka, x.Platny })
                                               .Where(x => Sql.In(x.C_FREK_Id, ekIds.FromJson <List <int> >())));

                List <FilterElement> rue = new List <FilterElement>();

                //Stĺpce "EKPolozka, EKPodpolozka" nie sú v modeli, iba fyzicky v rzp.V_RzpDennik
                foreach (var p in eks)
                {
                    string flt = string.Empty;

                    if (p.Platny || !p.EKPodpolozka.IsNullOrEmpty()) //všetky s podpoložkou
                    {
                        flt = $"C_FREK_ID = {p.C_FREK_Id}";          //Môžem ísť cez ID
                    }
                    else
                    {
                        flt = $"EKPolozka LIKE '{p.EKPolozka.TrimEnd('0')}%'"; //Nuly sprava odstraňujem
                    }

                    rue.Add(FilterElement.Custom(flt));
                }
                filter.And(Filter.OrElements(rue.ToArray()));
            }

            #endregion

            #region FR Funkčná klasifikácia

            string fkIds = parameters.ContainsKey("C_FRFK_ID") ? parameters["C_FRFK_ID"].ToString() : string.Empty;
            if (!fkIds.IsEmpty())
            {
                //Multiselect ID hodnôt, filtrujem cez jednotlivé časti FK
                var fks = repository.Db.Select(repository.Db.From <FRFK>()
                                               .Select(x => new { x.C_FRFK_Id, x.FKOddiel, x.FKSkupina, x.FKTrieda, x.FKPodtrieda, x.Platny })
                                               .Where(x => Sql.In(x.C_FRFK_Id, fkIds.FromJson <List <int> >())));

                List <FilterElement> rue = new List <FilterElement>();

                //Stĺpce "FKOddiel, FKSkupina, FKTrieda, FKPodtrieda" nie sú v modeli, iba fyzicky v rzp.V_RzpDennik
                foreach (var p in fks)
                {
                    string flt = string.Empty;

                    if (p.Platny || !p.FKPodtrieda.IsNullOrEmpty())
                    {
                        flt = $"C_FRFK_Id = {p.C_FRFK_Id}"; //Môžem ísť cez ID
                    }
                    else
                    {
                        flt = $"FKOddiel = '{p.FKOddiel}'";
                        if (!p.FKSkupina.IsNullOrEmpty())
                        {
                            flt += $" AND FKSkupina = '{p.FKSkupina}'";
                        }
                        if (!p.FKTrieda.IsNullOrEmpty())
                        {
                            flt += $" AND FKTrieda = '{p.FKTrieda}'";
                        }
                        //p.FKPodtrieda - tieto sú platné vždy
                    }

                    rue.Add(FilterElement.Custom(flt));
                }
                filter.And(Filter.OrElements(rue.ToArray()));
            }

            #endregion

            #region Programy aj s podúrovňami

            string programIds = parameters.ContainsKey("D_PROGRAM_ID") ? parameters["D_PROGRAM_ID"].ToString() : string.Empty;
            if (!programIds.IsEmpty())
            {
                //Multiselect ID hodnôt, filtrujem cez jednotlivé časti programu
                var prg = repository.Db.Select(repository.Db.From <ProgramCis>()
                                               .Select(x => new { x.D_Program_Id, x.Program, x.Podprogram, x.Prvok })
                                               .Where(x => x.D_Tenant_Id == repository.Session.TenantIdGuid && Sql.In(x.D_Program_Id, programIds.FromJson <List <int> >())));

                List <FilterElement> rue = new List <FilterElement>();

                foreach (var p in prg)
                {
                    //Stĺpce "Program, Podprogram, Prvok" nie sú v modeli, iba fyzicky v rzp.V_RzpDennik
                    string flt = string.Empty;
                    if (p.Prvok != null)
                    {
                        flt = $"D_Program_Id = {p.D_Program_Id}"; //Môžem ísť cez ID
                    }
                    else
                    {
                        flt = $"Program = {p.Program}";
                        if (p.Podprogram != null)
                        {
                            flt += $" AND Podprogram = {p.Podprogram}";
                        }
                    }
                    rue.Add(FilterElement.Custom(flt));
                }
                filter.And(Filter.OrElements(rue.ToArray()));
            }

            #endregion

            #region Analytiky A1, A2, A3

            if (parameters.ContainsKey("A1"))
            {
                filter.AndEq("A1", parameters["A1"].ToString());
            }

            if (parameters.ContainsKey("A2"))
            {
                filter.AndEq("A2", parameters["A2"].ToString());
            }

            if (parameters.ContainsKey("A3"))
            {
                filter.AndEq("A3", parameters["A3"].ToString());
            }

            #endregion
        }
 public void ComboCustomize(IWebEasRepositoryBase repository, string column, string kodPolozky, Dictionary <string, string> requiredFields, ref PfeComboAttribute comboAttribute, HierarchyNode node)
 {
     comboAttribute.CustomSortSqlExp = nameof(Poradie);
 }
        public static void NastavZapnutePoliaPol(PfeDataModel model, IWebEasRepositoryBase repository, string masterCode)
        {
            string sCaption;
            bool   zapnute;

            zapnute = masterCode == "POL" || masterCode == "VYP" || masterCode == "PAR" ||
                      (((IRepositoryBase)repository).GetTypBiznisEntityNastavView().FirstOrDefault(x => x.KodDokladu == masterCode)?.StrediskoNaPolozke ?? false);
            // zapnute "Stredisko na polozke" alebo som na "Polozkach dokladov" (rozne nastavenia pre rozne typy)
            if (zapnute)
            {
                sCaption = repository.GetNastavenieS("reg", "OrjNazovJC");
                model.Fields.First(p => p.Name == "StrediskoNazov").Text = sCaption;
            }
            else
            {
                model.Fields.First(p => p.Name == "StrediskoNazov").Text            = "_StrediskoNazov";
                model.Fields.First(p => p.Name == "StrediskoNazov").LoadWhenVisible = true;
                model.Fields.First(p => p.Name == "StrediskoNazov").Xtype           = PfeXType.Textfield;
            }

            zapnute = masterCode == "POL" || masterCode == "VYP" || masterCode == "PAR" ||
                      (((IRepositoryBase)repository).GetTypBiznisEntityNastavView().FirstOrDefault(x => x.KodDokladu == masterCode)?.ProjektNaPolozke ?? false);
            // zapnute "Projekt na polozke" alebo som na "Polozkach dokladov" (rozne nastavenia pre rozne typy)
            if (zapnute)
            {
                model.Fields.First(p => p.Name == "ProjektNazov").Text = "Projekt";
            }
            else
            {
                model.Fields.First(p => p.Name == "ProjektNazov").Text            = "_ProjektNazov";
                model.Fields.First(p => p.Name == "ProjektNazov").LoadWhenVisible = true;
                model.Fields.First(p => p.Name == "ProjektNazov").Xtype           = PfeXType.Textfield;
            }

            sCaption = repository.GetNastavenieS("uct", "UctKluc1Nazov");
            zapnute  = !string.IsNullOrEmpty(sCaption) &&
                       (masterCode == "POL" || masterCode == "VYP" || masterCode == "PAR" ||
                        (((IRepositoryBase)repository).GetTypBiznisEntityNastavView().FirstOrDefault(x => x.KodDokladu == masterCode)?.UctKluc1NaPolozke ?? false));
            // zapnute "Účt. kľúč 1 na položku" || som na "Polozkach dokladov" (rozne nastavenia pre rozne typy) && mame zadany text
            if (zapnute)
            {
                model.Fields.First(p => p.Name == "KlucNazov1").Text = sCaption;
            }
            else
            {
                model.Fields.First(p => p.Name == "KlucNazov1").Hidden          = true;
                model.Fields.First(p => p.Name == "KlucNazov1").Text            = "_KlucNazov1";
                model.Fields.First(p => p.Name == "KlucNazov1").LoadWhenVisible = true;
                model.Fields.First(p => p.Name == "KlucNazov1").Xtype           = PfeXType.Textfield;
            }

            sCaption = repository.GetNastavenieS("uct", "UctKluc2Nazov");
            zapnute  = !string.IsNullOrEmpty(sCaption) &&
                       (masterCode == "POL" || masterCode == "VYP" || masterCode == "PAR" ||
                        (((IRepositoryBase)repository).GetTypBiznisEntityNastavView().FirstOrDefault(x => x.KodDokladu == masterCode)?.UctKluc2NaPolozke ?? false));
            if (zapnute)
            {
                model.Fields.First(p => p.Name == "KlucNazov2").Text = sCaption;
            }
            else
            {
                model.Fields.First(p => p.Name == "KlucNazov2").Hidden          = true;
                model.Fields.First(p => p.Name == "KlucNazov2").Text            = "_KlucNazov2";
                model.Fields.First(p => p.Name == "KlucNazov2").LoadWhenVisible = true;
                model.Fields.First(p => p.Name == "KlucNazov2").Xtype           = PfeXType.Textfield;
            }

            sCaption = repository.GetNastavenieS("uct", "UctKluc3Nazov");
            zapnute  = !string.IsNullOrEmpty(sCaption) &&
                       (masterCode == "POL" || masterCode == "VYP" || masterCode == "PAR" ||
                        (((IRepositoryBase)repository).GetTypBiznisEntityNastavView().FirstOrDefault(x => x.KodDokladu == masterCode)?.UctKluc3NaPolozke ?? false));
            if (zapnute)
            {
                model.Fields.First(p => p.Name == "KlucNazov3").Text = sCaption;
            }
            else
            {
                model.Fields.First(p => p.Name == "KlucNazov3").Hidden          = true;
                model.Fields.First(p => p.Name == "KlucNazov3").Text            = "_KlucNazov3";
                model.Fields.First(p => p.Name == "KlucNazov3").LoadWhenVisible = true;
                model.Fields.First(p => p.Name == "KlucNazov3").Xtype           = PfeXType.Textfield;
            }
        }
示例#25
0
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            if (model?.Fields == null || node == null)
            {
                return;
            }

            #region Browser dialog na osobu
            var nazov1Field = model.Fields.FirstOrDefault(p => p.Name == nameof(IdFormatMeno));
            if (nazov1Field != null)
            {
                nazov1Field.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                {
                    new PfeSearchFieldDefinition
                    {
                        Code                 = "bds-kat-obp",
                        NameField            = nameof(V_OBP_0View.K_OBP_0),
                        DisplayField         = nameof(V_OBP_0View.IdFormatMeno),
                        AdditionalFilterSql  = $"K_TOB_0 IN  (1, 2)",
                        AdditionalFilterDesc = "Contractors"
                    }
                };
            }

            var adresaField = model.Fields.FirstOrDefault(p => p.Name == nameof(AdresaTPSidlo));
            if (adresaField != null)
            {
                adresaField.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                {
                    new PfeSearchFieldDefinition
                    {
                        Code                 = "bds-kat-obp",
                        NameField            = nameof(V_OBP_0View.K_OBP_0),
                        DisplayField         = nameof(V_OBP_0View.AdresaTPSidlo),
                        AdditionalFilterSql  = $"K_TOB_0 IN  (1, 2)",
                        AdditionalFilterDesc = "Contractors"
                    }
                };
            }

            #endregion

            #region Disable polí - na základe stavu

            List <string> enblField = new() { "Poznamka", "DL_C" };

            foreach (PfeColumnAttribute col in model.Fields.Where(f => !f.Text.StartsWith("_") && f.Editable && !enblField.Contains(f.Name) &&
                                                                  (!f.ReadOnly || f.Xtype == PfeXType.Combobox || f.Xtype == PfeXType.SearchFieldSS || f.Xtype == PfeXType.SearchFieldMS)))
            {
                col.Validator ??= new PfeValidator {
                    Rules = new List <PfeRule>()
                };

                col.Validator.Rules.Add(new PfeRule
                {
                    ValidatorType = PfeValidatorType.Disable,
                    Condition     = new List <PfeFilterAttribute>
                    {
                        new PfeFilterAttribute
                        {
                            Field = nameof(V),
                            ComparisonOperator = "eq",
                            Value = true
                        }
                    }
                });
            }

            #endregion
        }
    }
        public static void NastavZapnutePoliaPredkont(PfeDataModel model, IWebEasRepositoryBase repository, bool show, bool rzp)
        {
            if (!show)
            {
                model.Fields.First(p => p.Name == "SetStrediskoNazov").Text  = "_SetStrediskoNazov";
                model.Fields.First(p => p.Name == "SetStrediskoNazov").Xtype = PfeXType.Textfield;
                model.Fields.First(p => p.Name == "SetProjektNazov").Text    = "_SetProjektNazov";
                model.Fields.First(p => p.Name == "SetProjektNazov").Xtype   = PfeXType.Textfield;
                if (!rzp)
                {
                    model.Fields.First(p => p.Name == "SetKlucNazov1").Text  = "_SetKlucNazov1";
                    model.Fields.First(p => p.Name == "SetKlucNazov1").Xtype = PfeXType.Textfield;
                    model.Fields.First(p => p.Name == "SetKlucNazov2").Text  = "_SetKlucNazov2";
                    model.Fields.First(p => p.Name == "SetKlucNazov2").Xtype = PfeXType.Textfield;
                    model.Fields.First(p => p.Name == "SetKlucNazov3").Text  = "_SetKlucNazov3";
                    model.Fields.First(p => p.Name == "SetKlucNazov3").Xtype = PfeXType.Textfield;
                }
            }
            else
            {
                model.Fields.First(p => p.Name == "SetStrediskoNazov").Text = "Účtovať na " + repository.GetNastavenieS("reg", "OrjNazovJC");
                model.Fields.First(p => p.Name == "SetProjektNazov").Text   = "Účtovať na Projekt";

                if (!rzp)
                {
                    string sCaption;
                    sCaption = repository.GetNastavenieS("uct", "UctKluc1Nazov");
                    if (!string.IsNullOrEmpty(sCaption))
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov1").Text = "Účtovať na " + sCaption;
                    }
                    else
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov1").Text  = "_KlucNazov1";
                        model.Fields.First(p => p.Name == "SetKlucNazov1").Xtype = PfeXType.Textfield;
                    }

                    sCaption = repository.GetNastavenieS("uct", "UctKluc2Nazov");
                    if (!string.IsNullOrEmpty(sCaption))
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov2").Text = "Účtovať na " + sCaption;
                    }
                    else
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov2").Text  = "_KlucNazov2";
                        model.Fields.First(p => p.Name == "SetKlucNazov2").Xtype = PfeXType.Textfield;
                    }

                    sCaption = repository.GetNastavenieS("uct", "UctKluc3Nazov");
                    if (!string.IsNullOrEmpty(sCaption))
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov3").Text = "Účtovať na " + sCaption;
                    }
                    else
                    {
                        model.Fields.First(p => p.Name == "SetKlucNazov3").Text  = "_KlucNazov3";
                        model.Fields.First(p => p.Name == "SetKlucNazov3").Xtype = PfeXType.Textfield;
                    }
                }
            }
        }
        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);
            }
        }
 public List <NodeAction> CustomizeActions(List <NodeAction> actions, IWebEasRepositoryBase repository, HierarchyNode node)
 {
     return(actions.AddSyncActions(repository, node));
 }
        public static void AddMzdyCaptions(PfeDataModel model, IWebEasRepositoryBase repository, bool showAll, bool addMzdPrefix)
        {
            var ms = repository.GetNastavenieI("uct", "MzdySystem");

            ParseMzdyCaptions(model, repository.GetNastavenieS("uct", "MzdyFormat" + Enum.GetName(typeof(MzdySystemEnum), ms)), showAll, addMzdPrefix);
        }
        public void CustomizeModel(PfeDataModel model, IWebEasRepositoryBase repository, HierarchyNode node, string filter, HierarchyNode masterNode, string kodPolozkyModulu)
        {
            #region TypBeParovanieNazov

            var be = model.Fields.FirstOrDefault(p => p.Name == nameof(TypBeParovanieNazov));
            if (be != null)
            {
                be.Validator = new PfeValidator
                {
                    Rules = new List <PfeRule>
                    {
                        new PfeRule
                        {
                            ValidatorType = PfeValidatorType.Disable,
                            Condition     = new List <PfeFilterAttribute>
                            {
                                new PfeFilterAttribute
                                {
                                    Field = nameof(DatumVytvorenia),
                                    ComparisonOperator = "ne",
                                    Value = null
                                }
                            }
                        }
                    }
                };
            }

            var bep1 = model.Fields.FirstOrDefault(p => p.Name == nameof(BiznisEntitaPopis_1));
            if (bep1 != null)
            {
                bep1.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                {
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DFA, "crm-dod-dfa", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DZF, "crm-dod-dzf", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DOB, "crm-dod-dob", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DZM, "crm-dod-dzm", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DCP, "crm-dod-dcp", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DDP, "crm-dod-ddp", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OFA, "crm-odb-ofa", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OZF, "crm-odb-ozf", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OOB, "crm-odb-oob", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OZM, "crm-odb-ozm", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OCP, "crm-odb-ocp", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.ODP, "crm-odb-odp", nameof(C_TypBiznisEntity_Id_1), nameof(BiznisEntitaPopis_1)),
                };
            }

            var bep2 = model.Fields.FirstOrDefault(p => p.Name == nameof(BiznisEntitaPopis_2));
            if (bep2 != null)
            {
                bep2.SearchFieldDefinition = new List <PfeSearchFieldDefinition>
                {
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DFA, "crm-dod-dfa", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DZF, "crm-dod-dzf", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DOB, "crm-dod-dob", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.DZM, "crm-dod-dzm", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    // ParovanieSearchFieldDef(TypBiznisEntityEnum.DCP, "crm-dod-dcp", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    // ParovanieSearchFieldDef(TypBiznisEntityEnum.DDP, "crm-dod-ddp", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OFA, "crm-odb-ofa", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OZF, "crm-odb-ozf", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OOB, "crm-odb-oob", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    ParovanieSearchFieldDef(TypBiznisEntityEnum.OZM, "crm-odb-ozm", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    // ParovanieSearchFieldDef(TypBiznisEntityEnum.OCP, "crm-odb-ocp", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                    // ParovanieSearchFieldDef(TypBiznisEntityEnum.ODP, "crm-odb-odp", nameof(C_TypBiznisEntity_Id_2), nameof(BiznisEntitaPopis_2)),
                };
            }
            #endregion

            #region Akcie

            if (masterNode.Kod == "par")
            {
                node.Actions.RemoveAll(x => x.ActionType != NodeActionType.ReadList);
            }

            #endregion
        }