private void Designer_RefreshState(Models.TheGridDesignerViewModel v)
        {
            var mq = new BO.myQuery(v.Rec.j72Entity);
            var ce = BL.TheEntities.ByPrefix(mq.Prefix);

            v.Relations = BL.TheEntities.getApplicableRelations(mq.Prefix); //návazné relace
            v.Relations.Insert(0, new BO.EntityRelation()
            {
                TableName = ce.TableName, AliasSingular = ce.AliasSingular, SqlFrom = ce.SqlFromGrid, RelName = "a"
            });                                                                                                                                                 //primární tabulka a

            v.AllColumns = _colsProvider.AllColumns().ToList();
            v.AllColumns.RemoveAll(p => p.VisibleWithinEntityOnly != null && p.VisibleWithinEntityOnly.Contains(v.Rec.j72Entity.Substring(0, 3)) == false);    //nepatřičné kategorie/štítky

            v.SelectedColumns = _colsProvider.ParseTheGridColumns(mq.Prefix, v.Rec.j72Columns);
            v.lisQueryFields  = new BL.TheQueryFieldProvider(v.Rec.j72Entity.Substring(0, 3)).getPallete();
            v.lisPeriods      = _pp.getPallete();

            if (v.lisJ73 == null)
            {
                v.lisJ73 = new List <BO.j73TheGridQuery>();
            }
            foreach (var c in v.lisJ73.Where(p => p.j73Column != null))
            {
                if (v.lisQueryFields.Where(p => p.Field == c.j73Column).Count() > 0)
                {
                    var cc = v.lisQueryFields.Where(p => p.Field == c.j73Column).First();
                    c.FieldType    = cc.FieldType;
                    c.FieldEntity  = cc.SourceEntity;
                    c.MasterPrefix = cc.MasterPrefix;
                    c.MasterPid    = cc.MasterPid;
                }
            }
        }
Exemple #2
0
        public IActionResult Index(int pid)
        {
            var v = new Models.p28PreviewViewModel();

            v.Rec = Factory.p28CompanyBL.Load(pid);
            if (v.Rec == null)
            {
                return(RecNotFound(v));
            }
            else
            {
                if (Factory.CurrentUser.j03EnvironmentFlag == 1)
                {
                    if (v.Rec.p28CloudID != null)
                    {
                        v.IsPossible2SetupCloudID = Factory.p21LicenseBL.HasClientValidLicense(pid);
                    }
                }
                var tg = Factory.o51TagBL.GetTagging("p28", pid);
                v.Rec.TagHtml = tg.TagHtml;
                var mq = new BO.myQuery("j02Person");
                mq.p28id  = pid;
                v.Persons = Factory.j02PersonBL.GetList(mq);

                return(View(v));
            }
        }
Exemple #3
0
        public TechnologickyRozpis LoadByStatusAndUnit(string b02code, string p27code)
        {
            var recB02 = _f.b02StatusBL.LoadByCode(b02code);

            if (recB02 == null)
            {
                return(new TechnologickyRozpis()
                {
                    ErrorMessage = "Nelze načíst status s tímto kódem."
                });
            }
            var recP27 = _f.p27MszUnitBL.LoadByCode(p27code, 0);

            if (recP27 == null)
            {
                return(new TechnologickyRozpis()
                {
                    ErrorMessage = "Nelze načíst středisko s tímto kódem."
                });
            }
            var mq  = new BO.myQuery("p41Task");
            var lis = _f.p41TaskBL.GetList(mq).Where(p => p.b02ID == recB02.pid && p.p27ID == recP27.pid).OrderBy(p => p.p41PlanStart);

            if (lis.Count() == 0)
            {
                return(new TechnologickyRozpis()
                {
                    ErrorMessage = "0 zakázek s tímto filtrem"
                });
            }


            return(handle_one_rozpis(lis.ToList()[0]));
        }
        public IActionResult Designer(int j72id)
        {
            var v = new Models.TheGridDesignerViewModel();

            v.Rec = Factory.j72TheGridTemplateBL.Load(j72id);
            if (v.Rec == null)
            {
                return(RecNotFound(v));
            }
            else
            {
                if (v.Rec.j72IsSystem == false && v.Rec.j03ID == Factory.CurrentUser.pid)
                {
                    v.HasOwnerPermissions = true;
                    var mq = new BO.myQuery("j04UserRole");
                    mq.j72id = j72id;
                    var lis = Factory.j04UserRoleBL.GetList(mq);
                    v.j04IDs   = string.Join(",", lis.Select(p => p.pid));
                    v.j04Names = string.Join(",", lis.Select(p => p.j04Name));
                }

                v.lisJ73 = Factory.j72TheGridTemplateBL.GetList_j73(v.Rec.pid, v.Rec.j72Entity.Substring(0, 3)).ToList();
                foreach (var c in v.lisJ73)
                {
                    c.TempGuid = BO.BAS.GetGuid();
                }
                Designer_RefreshState(v);

                return(View(v));
            }
        }
        private void InhaleListP27(int p52id, int p27id)
        {
            var mq = new BO.myQuery("p27MszUnit");

            mq.IsRecordValid = true;

            BO.p52OrderItem     cP52 = _f.p52OrderItemBL.Load(p52id);
            BO.p11ClientProduct cP11 = _f.p11ClientProductBL.Load(cP52.p11ID);
            if (cP11.p10ID_Master > 0)
            {
                mq.p25id = _f.p10MasterProductBL.Load(cP11.p10ID_Master).p25ID; //z RecP10 se bere typ zařízení pro combo nabídku zařízení
            }
            else
            {
                if (cP11.p12ID > 0)
                {
                    mq.p25id = _f.p12ClientTpvBL.Load(cP11.p12ID).p25ID;    //vlastní klientská receptura
                }
            }

            _lisP27 = _f.p27MszUnitBL.GetList(mq).ToList();

            if (p27id > 0)
            {
                _lisP27 = _lisP27.Where(p => p.pid == p27id).ToList();
            }
        }
Exemple #6
0
        public IActionResult p41AppendPo(int p41id, int p18flag)
        {
            var v = new Models.p41AppendPoViewModel();

            v.p41ID   = p41id;
            v.p18flag = p18flag;

            RefreshState_p41AppendPo(ref v);

            var mq = new BO.myQuery("p44TaskOperPlan");

            mq.p41id = p41id;
            var lisP44 = Factory.p44TaskOperPlanBL.GetList(mq);

            foreach (var c in lisP44)
            {
                if (v.lisDestOper.Where(p => p.p18ID == c.p18ID).Count() > 0)
                {
                    v.lisDestOper.Where(p => p.p18ID == c.p18ID).First().IsSelected            = true;
                    v.lisDestOper.Where(p => p.p18ID == c.p18ID).First().p44MaterialUnitsCount = c.p44MaterialUnitsCount;
                }
            }

            return(View(v));
        }
Exemple #7
0
        public IActionResult Record(Models.b03RecordViewModel v)
        {
            if (ModelState.IsValid)
            {
                BO.b03StatusGroup c = new BO.b03StatusGroup();
                if (v.Rec.pid > 0)
                {
                    c = Factory.b03StatusGroupBL.Load(v.Rec.pid);
                }


                c.b03Name    = v.Rec.b03Name;
                c.ValidUntil = v.Toolbar.GetValidUntil(c);
                c.ValidFrom  = v.Toolbar.GetValidFrom(c);

                v.Rec.pid = Factory.b03StatusGroupBL.Save(c, v.SelectedB02IDs);
                if (v.Rec.pid > 0)
                {
                    v.SetJavascript_CallOnLoad(v.Rec.pid);
                    return(View(v));
                }
            }

            var mq = new BO.myQuery("b02");

            v.lisB02 = Factory.b02StatusBL.GetList(mq).Where(p => p.b02Entity == "p41" || p.b02Entity == "p51").OrderBy(p => p.b02Entity).ThenBy(p => p.b02Ordinary).ToList();

            v.Toolbar = new MyToolbarViewModel(v.Rec);
            this.Notify_RecNotSaved();
            return(View(v));
        }
        private System.Data.DataTable prepare_datatable(ref BO.myQuery mq, BO.TheGridState gridState)
        {
            mq.explicit_columns = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns);
            if (string.IsNullOrEmpty(gridState.j75SortDataField) == false)
            {
                try
                {
                    mq.explicit_orderby = _colsProvider.ByUniqueName(gridState.j75SortDataField).getFinalSqlSyntax_ORDERBY() + " " + gridState.j75SortOrder;
                }
                catch
                {
                }
            }
            if (String.IsNullOrEmpty(gridState.j75Filter) == false)
            {
                mq.TheGridFilter = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, mq.explicit_columns);
            }
            mq.lisPeriods = _pp.getPallete();

            if (string.IsNullOrEmpty(gridState.j72MasterEntity) && BL.TheEntities.ByTable(gridState.j72Entity).IsGlobalPeriodQuery)
            {
                BO.ThePeriod per = InhaleGridPeriodDates(mq.Prefix);
                mq.global_d1 = per.d1;
                mq.global_d2 = per.d2;
            }
            if (gridState.j72HashJ73Query)
            {
                mq.lisJ73 = Factory.j72TheGridTemplateBL.GetList_j73(gridState.j72ID, gridState.j72Entity.Substring(0, 3));
            }
            mq.InhaleMasterEntityQuery(gridState.j72MasterEntity, gridState.MasterPID);

            return(Factory.gridBL.GetList(mq));
        }
        Invoke(string entity, int j72id, int go2pid, string master_entity, int master_pid, int contextmenuflag, string ondblclick, string master_flag, int masterviewflag)
        {
            var ret = new TheGridViewModel();

            ret.Entity = entity;
            var mq = new BO.myQuery(entity);


            BO.TheGridState gridState = null;
            if (j72id > 0)
            {
                gridState = _f.j72TheGridTemplateBL.LoadState(j72id, _f.CurrentUser.pid);
            }
            if (gridState == null)
            {
                gridState = _f.j72TheGridTemplateBL.LoadState(entity, _f.CurrentUser.pid, master_entity); //výchozí, systémový grid: j72IsSystem=1
            }
            if (gridState == null)                                                                        //pro uživatele zatím nebyl vygenerován záznam v j72 -> vygenerovat
            {
                var cols = _colsProvider.getDefaultPallete(false, mq);                                    //výchozí paleta sloupců

                var recJ72 = new BO.j72TheGridTemplate()
                {
                    j72IsSystem = true, j72Entity = entity, j03ID = _f.CurrentUser.pid, j72Columns = String.Join(",", cols.Select(p => p.UniqueName)), j72MasterEntity = master_entity
                };

                var intJ72ID = _f.j72TheGridTemplateBL.Save(recJ72, null, null, null);
                gridState = _f.j72TheGridTemplateBL.LoadState(intJ72ID, _f.CurrentUser.pid);
            }


            gridState.j75CurrentRecordPid = go2pid;
            gridState.ContextMenuFlag     = contextmenuflag;
            gridState.j72MasterEntity     = master_entity;
            gridState.MasterPID           = master_pid;
            gridState.OnDblClick          = ondblclick;
            gridState.MasterViewFlag      = masterviewflag;
            gridState.MasterFlag          = master_flag;


            var cc = new TheGridController(_colsProvider, _pp);

            cc.Factory = _f;

            ret.firstdata    = cc.render_thegrid_html(gridState);
            ret.ondblclick   = ondblclick;
            ret.GridState    = gridState;
            ret.Columns      = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns);
            ret.AdhocFilter  = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, ret.Columns);
            ret.MasterEntity = master_entity;
            ret.MasterPID    = master_pid;
            return(View("Default", ret));
        }
Exemple #10
0
        private TechnologickyRozpis handle_one_rozpis(BO.p41Task recP41)
        {
            var ret = new TechnologickyRozpis();


            var recP11 = _f.p11ClientProductBL.Load(recP41.p11ID);

            ret.Hlavicka = new HlavickaZakazky {
                VyrobniZakazka = recP41.p41Code, KodPolozky = recP11.p11Code, NazevPolozky = recP11.p11Name, Mnozstvi = recP41.p41PlanUnitsCount, Datum = recP41.DateInsert, Cas = recP41.DateInsert
            };
            ret.Hlavicka.ZPStart  = recP41.PlanStartClear;
            ret.Hlavicka.ZPStop   = recP41.p41PlanEnd;
            ret.PlanovaneMnozstvi = recP41.p41PlanUnitsCount;
            ret.Stav = recP41.b02ID;

            var mq = new BO.myQuery("p44TaskOperPlan");

            mq.p18flags = new List <int>()
            {
                1, 3
            };
            mq.p41id = recP41.pid;
            var lis = _f.p44TaskOperPlanBL.GetList(mq);

            ret.Polozky = new List <PolozkaVyroby>();
            foreach (var c in lis)
            {
                var recP18  = _f.p18OperCodeBL.Load(c.p18ID);
                var polozka = new PolozkaVyroby()
                {
                    KodOperace = BO.BAS.InInt(recP18.p18Code), CisloOperace = c.p44OperNum, Start = c.p44Start, Stop = c.p44End, Popis = recP18.p18Name
                };
                polozka.Parametr = c.p44OperParam;
                if (c.p19ID > 0)
                {
                    var recP19 = _f.p19MaterialBL.Load(c.p19ID);
                    polozka.MaterialKod   = recP19.p19Code;
                    polozka.MaterialNazev = recP19.p19Name;
                }
                polozka.VahaPozadovana = c.p44MaterialUnitsCount;
                polozka.DelkaTrvani    = c.p44TotalDurationOperMin;
                ret.Polozky.Add(polozka);
            }



            return(ret);
        }
Exemple #11
0
        public IActionResult Record(int pid, bool isclone)
        {
            if (!this.TestIfUserEditor(true, true))
            {
                return(this.StopPageCreateEdit(true));
            }
            var v = new Models.p26RecordViewModel();

            if (pid > 0)
            {
                v.Rec = Factory.p26MszBL.Load(pid);
                if (v.Rec == null)
                {
                    return(RecNotFound(v));
                }
                var tg = Factory.o51TagBL.GetTagging("p26", pid);
                v.TagPids  = tg.TagPids;
                v.TagNames = tg.TagNames;
                v.TagHtml  = tg.TagHtml;

                var mq = new BO.myQuery("p27MszUnit");
                mq.p26id = pid;
                var lisP27 = Factory.p27MszUnitBL.GetList(mq);
                v.SelectedP27IDs   = string.Join(",", lisP27.Select(p => p.pid));
                v.SelectedP27Names = string.Join(",", lisP27.Select(p => p.p27Name));
            }
            else
            {
                v.Rec         = new BO.p26Msz();
                v.Rec.entity  = "p26";
                v.Rec.p26Code = Factory.CBL.EstimateRecordCode("p26");
            }

            RefreshState(v);

            v.Toolbar = new MyToolbarViewModel(v.Rec);
            if (isclone)
            {
                v.Toolbar.MakeClone(); v.Rec.p26Code = Factory.CBL.EstimateRecordCode("p26");
            }


            return(View(v));
        }
        public Telerik.Reporting.ReportSource Resolve(string reportId, OperationOrigin operationOrigin, IDictionary <string, object> currentParameterValues)
        {
            //soubor sestavy###login uživatele###j72id
            List <string> lis = BO.BAS.ConvertString2List(reportId, "###");

            reportId = lis[0];
            string strLogin = lis[1];
            int    intJ72ID = 0;

            if (lis.Count > 2)
            {
                intJ72ID = BO.BAS.InInt(lis[2]);
            }


            string reportXml = File.ReadAllText(_app.ReportFolder + "\\" + reportId);

            if (reportXml.Contains("1=1"))
            {
                var cu = new BO.RunningUser()
                {
                    j03Login = strLogin
                };
                BL.Factory f = new BL.Factory(cu, _app);
                if (intJ72ID > 0)
                {
                    var recJ72 = f.j72TheGridTemplateBL.Load(intJ72ID);
                    var mq     = new BO.myQuery(recJ72.j72Entity);
                    mq.lisJ73 = f.j72TheGridTemplateBL.GetList_j73(intJ72ID, recJ72.j72Entity.Substring(0, 3));


                    BL.DL.FinalSqlCommand fq = BL.DL.basQuery.ParseFinalSql("", mq, cu);
                    //File.WriteAllText("c:\\temp\\hovado.txt", fq.SqlWhere);
                    reportXml = reportXml.Replace("1=1", fq.SqlWhere).Replace("#query_alias#", recJ72.j72Name);
                }
            }



            return(new Telerik.Reporting.XmlReportSource {
                Xml = reportXml
            });
        }
Exemple #13
0
        public IActionResult Record(int pid, bool isclone)
        {
            if (!this.TestIfUserEditor(true, false))
            {
                return(this.StopPageCreateEdit(true));
            }
            var v = new Models.p13RecordViewModel();

            if (pid > 0)
            {
                v.Rec = Factory.p13MasterTpvBL.Load(pid);
                if (v.Rec == null)
                {
                    return(RecNotFound(v));
                }
                var mq = new BO.myQuery("p14MasterOper");
                mq.p13id = v.Rec.pid;

                var tg = Factory.o51TagBL.GetTagging("p13", pid);
                v.TagPids  = tg.TagPids;
                v.TagNames = tg.TagNames;
                v.TagHtml  = tg.TagHtml;
            }
            else
            {
                v.Rec        = new BO.p13MasterTpv();
                v.Rec.entity = "p13";
            }


            v.Toolbar = new MyToolbarViewModel(v.Rec);
            if (isclone)
            {
                v.p13ID_CloneSource = v.Rec.pid;
                v.Toolbar.MakeClone();
            }



            return(View(v));
        }
Exemple #14
0
        public IActionResult Record(int pid, bool isclone)
        {
            if (!this.TestIfUserEditor(true, false))
            {
                return(this.StopPageCreateEdit(true));
            }
            var v = new Models.p25RecordViewModel();

            if (pid > 0)
            {
                v.Rec = Factory.p25MszTypeBL.Load(pid);
                if (v.Rec == null)
                {
                    return(RecNotFound(v));
                }
            }
            else
            {
                v.Rec         = new BO.p25MszType();
                v.Rec.p25Code = Factory.CBL.EstimateRecordCode("p25");
                v.Rec.entity  = "p25";
            }

            v.Toolbar = new MyToolbarViewModel(v.Rec);
            if (isclone)
            {
                v.Toolbar.MakeClone();
                v.Rec.p25Code = Factory.CBL.EstimateRecordCode("p25");
            }
            else
            {
                if (v.Rec.pid > 0)
                {
                    var mq = new BO.myQuery("p18OperCode");
                    mq.p25id = v.Rec.pid;
                    v.lisP18 = Factory.p18OperCodeBL.GetList(mq);
                }
            }

            return(View(v));
        }
Exemple #15
0
        public IActionResult Index(int pid)
        {
            var v = new Models.p13PreviewViewModel();


            v.Rec = Factory.p13MasterTpvBL.Load(pid);

            if (v.Rec == null)
            {
                return(RecNotFound(v));
            }
            else
            {
                var mq = new BO.myQuery("p14MasterOper");
                mq.p13id = v.Rec.pid;
                v.lisP14 = Factory.p14MasterOperBL.GetList(mq);
                var tg = Factory.o51TagBL.GetTagging("p13", pid);
                v.Rec.TagHtml = tg.TagHtml;
                return(View(v));
            }
        }
Exemple #16
0
        private void RefreshState_p41CreateChild(ref p41CreateChildViewModel v)
        {
            v.RecMasterP41 = Factory.p41TaskBL.Load(v.MasterID);
            if (v.SelectedP27ID > 0 && (v.lisDestOper == null || v.lisDestOper.Count() == 0))
            {
                var mq = new BO.myQuery("p18OperCode");
                mq.p27id            = v.SelectedP27ID;
                mq.p18flag          = v.p18flag;
                mq.explicit_orderby = "a.p18Code";  //nutno setřídit podle kódu/pořadí operace
                var lisP18 = Factory.p18OperCodeBL.GetList(mq);
                v.lisDestOper = new List <BO.AppendPostPreP44Oper>();
                foreach (var recP18 in lisP18)
                {
                    var c = new BO.AppendPostPreP44Oper()
                    {
                        p18ID = recP18.pid, p18Flag = recP18.p18Flag, p18Code = recP18.p18Code, OperCodePlusName = recP18.CodePlusName, p44MaterialUnitsCount = v.RecMasterP41.p41PlanUnitsCount, p18IsManualAmount = recP18.p18IsManualAmount
                    };
                    v.lisDestOper.Add(c);
                }
            }



            //if (v.RecMasterP41.p52ID > 0)
            //{
            //    var recP52 = Factory.p52OrderItemBL.Load(v.RecMasterP41.p52ID);
            //    BO.p11ClientProduct cP11 = Factory.p11ClientProductBL.Load(recP52.p11ID);
            //    if (cP11.p10ID_Master > 0)
            //    {
            //        v.p25ID = Factory.p10MasterProductBL.Load(cP11.p10ID_Master).p25ID; //z RecP10 se bere typ zařízení pro combo nabídku zařízení
            //    }
            //    else
            //    {
            //        if (cP11.p12ID > 0)
            //        {
            //            v.p25ID = Factory.p12ClientTpvBL.Load(cP11.p12ID).p25ID;    //vlastní klientská receptura
            //        }
            //    }
            //}
        }
Exemple #17
0
        public IActionResult Record(int pid, bool isclone)
        {
            if (!this.TestIfUserEditor(true, false))
            {
                return(this.StopPageCreateEdit(true));
            }
            var v = new Models.b03RecordViewModel();

            if (pid > 0)
            {
                v.Rec = Factory.b03StatusGroupBL.Load(pid);
                if (v.Rec == null)
                {
                    return(RecNotFound(v));
                }
            }
            else
            {
                v.Rec        = new BO.b03StatusGroup();
                v.Rec.entity = "b03";
            }
            var mq = new BO.myQuery("b02");

            if (v.Rec.pid > 0)
            {
                mq.b03id         = v.Rec.pid;
                v.SelectedB02IDs = Factory.b02StatusBL.GetList(mq).Select(p => p.pid).ToList();
            }

            mq       = new BO.myQuery("b02");
            v.lisB02 = Factory.b02StatusBL.GetList(mq).Where(p => p.b02Entity == "p41" || p.b02Entity == "p51").OrderBy(p => p.b02Entity).ThenBy(p => p.b02Ordinary).ToList();

            v.Toolbar = new MyToolbarViewModel(v.Rec);
            if (isclone)
            {
                v.Toolbar.MakeClone();
            }

            return(View(v));
        }
        public FileResult GridExport(string format, int j72id, int master_pid, string master_entity, string pids)
        {
            var gridState = this.Factory.j72TheGridTemplateBL.LoadState(j72id, Factory.CurrentUser.pid);

            gridState.j72MasterEntity = master_entity;
            gridState.MasterPID       = master_pid;
            var mq = new BO.myQuery(gridState.j72Entity);

            if (String.IsNullOrEmpty(pids) == false)
            {
                mq.SetPids(pids);
            }


            System.Data.DataTable dt = prepare_datatable(ref mq, gridState);
            string filepath          = Factory.App.TempFolder + "\\" + BO.BAS.GetGuid() + "." + format;

            var    cExport           = new UI.dataExport();
            string strFileClientName = "gridexport_" + mq.Prefix + "." + format;

            if (format == "csv")
            {
                if (cExport.ToCSV(dt, filepath, mq))
                {
                    return(File(System.IO.File.ReadAllBytes(filepath), "application/CSV", strFileClientName));
                }
            }
            if (format == "xlsx")
            {
                if (cExport.ToXLSX(dt, filepath, mq))
                {
                    return(File(System.IO.File.ReadAllBytes(filepath), "application/vnd.ms-excel", strFileClientName));
                }
            }


            return(null);
        }
Exemple #19
0
        public bool ToXLSX(System.Data.DataTable dt, string strFilePath, BO.myQuery mq)
        {
            using (var workbook = new XLWorkbook())
            {
                var worksheet = workbook.Worksheets.Add("Grid");
                int row       = 1;
                int col       = 1;

                foreach (var c in mq.explicit_columns)
                {
                    worksheet.Cell(row, col).Value           = c.Header;
                    worksheet.Cell(row, col).Style.Font.Bold = true;

                    col += 1;
                }
                row += 1;
                foreach (System.Data.DataRow dr in dt.Rows)
                {
                    col = 1;
                    foreach (var c in mq.explicit_columns)
                    {
                        if (!Convert.IsDBNull(dr[c.UniqueName]))
                        {
                            worksheet.Cell(row, col).Value = dr[c.UniqueName];
                        }
                        col += 1;
                    }

                    row += 1;
                }

                //worksheet.Cell("A1").Value = "Hello World!";
                //worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
                workbook.SaveAs(strFilePath);
            }

            return(true);
        }
Exemple #20
0
        private void RefreshState_p41AppendPo(ref p41AppendPoViewModel v)
        {
            v.RecP41 = Factory.p41TaskBL.Load(v.p41ID);


            if (v.lisDestOper == null || v.lisDestOper.Count() == 0)
            {
                var mq = new BO.myQuery("p18OperCode");
                mq.p41id            = v.p41ID;
                mq.p18flag          = v.p18flag;
                mq.explicit_orderby = "a.p18Code";  //nutno setřídit podle kódu/pořadí operace
                var lisP18 = Factory.p18OperCodeBL.GetList(mq);
                v.lisDestOper = new List <BO.AppendPostPreP44Oper>();
                foreach (var recP18 in lisP18)
                {
                    var c = new BO.AppendPostPreP44Oper()
                    {
                        p18ID = recP18.pid, p18Flag = recP18.p18Flag, p18Code = recP18.p18Code, OperCodePlusName = recP18.CodePlusName, p44MaterialUnitsCount = v.RecP41.p41PlanUnitsCount, p18IsManualAmount = recP18.p18IsManualAmount
                    };
                    v.lisDestOper.Add(c);
                }
            }
        }
Exemple #21
0
        public bool ToCSV(System.Data.DataTable dt, string strFilePath, BO.myQuery mq)
        {
            System.IO.StreamWriter sw = new System.IO.StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);
            //headers
            foreach (var col in mq.explicit_columns)
            {
                sw.Write("\"" + col.Header + "\"");
                sw.Write(";");
            }

            sw.Write(sw.NewLine);
            foreach (System.Data.DataRow dr in dt.Rows)
            {
                foreach (var col in mq.explicit_columns)
                {
                    string value = "";

                    if (!Convert.IsDBNull(dr[col.UniqueName]))
                    {
                        value = dr[col.UniqueName].ToString();
                        if (col.FieldType == "string")
                        {
                            value = "\"" + value + "\"";
                        }
                    }
                    sw.Write(value);

                    sw.Write(";");
                }

                sw.Write(sw.NewLine);
            }
            sw.Close();

            return(true);
        }
        public List <BO.TheGridColumn> getDefaultPallete(bool bolComboColumns, BO.myQuery mq)
        {
            int intDefaultFlag1 = 1; int intDefaultFlag2 = 2;

            if (bolComboColumns == true)
            {
                intDefaultFlag2 = 3;
            }

            List <BO.TheGridColumn> ret = new List <BO.TheGridColumn>();

            foreach (BO.TheGridColumn c in _lis.Where(p => p.Prefix == mq.Prefix && (p.DefaultColumnFlag == intDefaultFlag1 || p.DefaultColumnFlag == intDefaultFlag2)))
            {
                ret.Add(Clone2NewInstance(c));
            }

            //List<BO.TheGridColumn> ret = _lis.Where(p => p.Prefix == mq.Prefix && (p.DefaultColumnFlag == intDefaultFlag1 || p.DefaultColumnFlag == intDefaultFlag2)).ToList();

            List <BO.EntityRelation> rels = BL.TheEntities.getApplicableRelations(mq.Prefix);

            switch (mq.Prefix)
            {
            case "j02":
                ret.Add(InhaleColumn4Relation("j02_j03", "j03User", "j03Login", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("j02_j03", "j03User", "j04Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("j02_p28", "p28Company", "p28Name", rels, bolComboColumns));

                break;

            case "p10":
                ret.Add(InhaleColumn4Relation("p10_p20", "p20Unit", "p20Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p10_p13", "p13MasterTpv", "p13Code", rels, bolComboColumns));
                break;

            case "p11":
                ret.Add(InhaleColumn4Relation("p11_p20", "p20Unit", "p20Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p11_p21", "p21License", "p21Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p11_p21", "p21License", "p21PermissionFlag", rels, bolComboColumns));
                break;

            case "p12":
                ret.Add(InhaleColumn4Relation("p12_p25", "p25MszType", "p25Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p12_p21", "p21License", "p21Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p12_p21", "p21License", "p21PermissionFlag", rels, bolComboColumns));

                break;

            case "p13":
                ret.Add(InhaleColumn4Relation("p13_p25", "p25MszType", "p25Name", rels, bolComboColumns));
                break;

            case "p14":
                ret.Add(InhaleColumn4Relation("p14_p18", "p18OperCode", "p18Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p14_p18", "p18OperCode", "p18Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p14_p19", "p19Material", "p19Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p14_p19", "p19Material", "p19Name", rels, bolComboColumns));
                break;

            case "p15":
                ret.Add(InhaleColumn4Relation("p15_p18", "p18OperCode", "p18Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p15_p18", "p18OperCode", "p18Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p15_p19", "p19Material", "p19Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p15_p19", "p19Material", "p19Name", rels, bolComboColumns));
                break;

            case "p21":
                ret.Add(InhaleColumn4Relation("p21_p28", "p28Company", "p28Name", rels, bolComboColumns));
                break;

            case "p19":
                ret.Add(InhaleColumn4Relation("p19_p20", "p20Unit", "p20Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p19_p28", "p28Company", "p28Name", rels, bolComboColumns));
                break;

            case "p26":
                ret.Add(InhaleColumn4Relation("p26_p25", "p25MszType", "p25Name", rels, bolComboColumns));
                break;

            case "p27":

                ret.Add(InhaleColumn4Relation("p27_p31", "p31CapacityFond", "p31Name", rels, bolComboColumns));

                break;

            case "p41":

                ret.Add(InhaleColumn4Relation("p41_p27", "p27MszUnit", "p27Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p41_b02", "b02Status", "b02Name", rels, bolComboColumns));
                break;

            case "p44":
                ret.Add(InhaleColumn4Relation("p44_p18", "p18OperCode", "p18Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p44_p18", "p18OperCode", "p18Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p44_p19", "p19Material", "p19Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p44_p19", "p19Material", "p19Name", rels, bolComboColumns));
                break;

            case "p51":
                ret.Add(InhaleColumn4Relation("p51_p28", "p28Company", "p28Name", rels, bolComboColumns));

                ret.Add(InhaleColumn4Relation("p51_b02", "b02Status", "b02Name", rels, bolComboColumns));
                break;

            case "p52":
                ret.Add(InhaleColumn4Relation("p52_p11", "p11ClientProduct", "p11Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p51_p28", "p28Company", "p28Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p11_p20", "p20Unit", "p20Code", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("p52_p51", "p51Order", "p51DateDelivery", rels, bolComboColumns));
                break;

            case "o51":
                ret.Add(InhaleColumn4Relation("o51_o53", "o53TagGroup", "o53Name", rels, bolComboColumns));
                break;

            case "y02":
                ret.Add(InhaleColumn4Relation("y02_p31", "p31CapacityFond", "p31Name", rels, bolComboColumns));
                ret.Add(InhaleColumn4Relation("y02_p27", "p27MszUnit", "p27Name", rels, bolComboColumns));
                break;
            }

            return(ret);
        }
Exemple #23
0
        //zdroj checkboxů pro taghelper mycombochecklist:
        public string GetHtml4Checkboxlist(string controlid, string entity, string selectedvalues, string masterprefix, int masterpid, string param1) //Vrací HTML seznam checkboxů pro taghelper: mycombochecklist
        {
            var mq = new BO.myQuery(entity);

            mq.query_by_entity_prefix = param1;
            mq.explicit_columns       = _colsProvider.getDefaultPallete(false, mq);

            mq.IsRecordValid = true;    //v combo nabídce pouze časově platné záznamy
            if (masterpid > 0)
            {
                mq.InhaleMasterEntityQuery(masterprefix, masterpid);
            }


            List <int> selpids = null;

            if (String.IsNullOrEmpty(selectedvalues) == false)
            {
                selpids = BO.BAS.ConvertString2ListInt(selectedvalues);
            }

            string strTextField = "a__" + entity + "__" + mq.Prefix + "Name";

            if (mq.Prefix == "p27")
            {
                mq.explicit_selectsql = "p27Name+' ('+p27Code+')' as NamePlusCode";
                strTextField          = "NamePlusCode";
            }
            string strGroupField = null;
            string strLastGroup  = null;
            string strGroup      = null;
            string strChecked    = "";
            int    intValue      = 0;
            string strText       = "";
            var    dt            = Factory.gridBL.GetList(mq);
            var    intRows       = dt.Rows.Count;

            var sb = new System.Text.StringBuilder();

            sb.AppendLine("<div class='row' style='padding:0px;margin:0px;'>");
            sb.AppendLine("<div class='col-8'>");
            sb.AppendLine("<ul style='list-style:none;padding-left:0px;'>");


            for (int i = 0; i < intRows; i++)
            {
                intValue   = Convert.ToInt32(dt.Rows[i]["pid"]);
                strText    = Convert.ToString(dt.Rows[i][strTextField]);
                strChecked = "";
                if (strGroupField != null)
                {
                    if (dt.Rows[i][strGroupField] == null)
                    {
                        strGroup = null;
                    }
                    else
                    {
                        strGroup = Convert.ToString(dt.Rows[i][strGroupField]);
                    }
                    if (strGroup != strLastGroup)
                    {
                        sb.AppendLine("<li>");
                        sb.AppendLine("<div style='font-weight:bold;background-color:#ADD8E6;'><span style='padding-left:10px;'>" + strGroup + "</span></div>");
                        sb.AppendLine("</li>");
                    }
                }
                if (selpids != null && selpids.Where(p => p == intValue).Count() > 0)
                {
                    strChecked = "checked";
                }

                sb.AppendLine("<li>");
                sb.Append(string.Format("<input type='checkbox' id='chk{0}_{1}' name='chk{0}' value='{1}' {2} />", controlid, intValue, strChecked));
                sb.Append(string.Format("<label style='min-width:200px;' for='chk{0}_{1}'>{2}</label>", controlid, intValue, strText));

                sb.AppendLine("</li>");
            }



            sb.AppendLine("</ul>");
            sb.AppendLine("</div>");
            sb.AppendLine("<div class='col-4'>");
            sb.AppendLine(string.Format("<button type='button' id='cmdCheckAll{0}' class='btn btn-light'>Zaškrtnout vše</button>", controlid));
            sb.AppendLine(string.Format("<button type='button' id='cmdUnCheckAll{0}' class='btn btn-light'>Odškrtnout vše</button>", controlid));
            sb.AppendLine("</div>");
            sb.AppendLine("</div>");
            return(sb.ToString());
        }
Exemple #24
0
        public BO.Result receptura_operace_save(string p13Code, string p18Code, string p19Code, double p14UnitsCount, double p14DurationPreOper, double p14DurationOper, double p14DurationPostOper, int p14OperNum, double p14OperParam, int p14RowNum, double p14DurOperUnits, double p14DurOperMinutes)
        {
            if (string.IsNullOrEmpty(p13Code) == true || string.IsNullOrEmpty(p18Code) == true)
            {
                return(new BO.Result(true, "Na vstupu je povinný kód receptury [p13Code] a kód operace [p18Code]."));
            }
            if (p14RowNum <= 0 || p14OperNum <= 0)
            {
                return(new BO.Result(true, "[p14RowNum] a [p14OperNum] musí být kladné a nenulové číslo."));
            }
            var recP13 = _f.p13MasterTpvBL.LoadByCode(p13Code, 0);

            if (recP13 == null)
            {
                return(new BO.Result(true, string.Format("Nelze načíst recepturu s kódem: {0}.", p13Code)));
            }
            var recP18 = _f.p18OperCodeBL.LoadByCode(p18Code, recP13.p25ID, 0);

            if (recP18 == null)
            {
                return(new BO.Result(true, string.Format("Nelze načíst šablonu operace s kódem: {0}.", p18Code)));
            }
            BO.p19Material recP19 = null;
            if (string.IsNullOrEmpty(p19Code) == false)
            {
                recP19 = _f.p19MaterialBL.LoadByCode(p19Code, 0);
                if (recP19 == null)
                {
                    return(new BO.Result(true, string.Format("Nelze načíst surovinu s kódem: {0}.", p19Code)));
                }
            }

            var mq = new BO.myQuery("p14MasterOper");

            mq.p13id = recP13.pid;
            var lisP14 = _f.p14MasterOperBL.GetList(mq);

            var recP14 = new BO.p14MasterOper()
            {
                p14RowNum = p14RowNum, p13ID = recP13.pid
            };

            if (lisP14.Where(p => p.p14RowNum == p14RowNum).Count() > 0)
            {
                recP14 = lisP14.Where(p => p.p14RowNum == p14RowNum).First();
            }
            recP14.p14OperNum          = p14OperNum;
            recP14.p18ID               = recP18.pid;
            recP14.p14UnitsCount       = p14UnitsCount;
            recP14.p14OperParam        = p14OperParam;
            recP14.p14DurOperUnits     = p14DurOperUnits;
            recP14.p14DurOperMinutes   = p14DurOperMinutes;
            recP14.p14DurationOper     = p14DurationOper;
            recP14.p14DurationPreOper  = p14DurationPreOper;
            recP14.p14DurationPostOper = p14DurationPostOper;

            if (recP19 != null)
            {
                recP14.p19ID = recP19.pid;
            }

            int intP14ID = _f.p14MasterOperBL.Save(recP14);

            if (intP14ID > 0)
            {
                return(new BO.Result(false, "Uloženo"));
            }
            else
            {
                string strErrs = string.Join(" ** ", _f.CurrentUser.Messages4Notify.Select(p => p.Value));
                return(new BO.Result(true, strErrs));
            }
        }
Exemple #25
0
        public string GetHtml4TheCombo(string entity, string tableid, string param1, string pids, string filterflag, string searchstring, string masterprefix, int masterpid) //Vrací HTML zdroj tabulky pro MyCombo
        {
            var mq = new BO.myQuery(entity);

            mq.SetPids(pids);
            mq.query_by_entity_prefix = param1;
            mq.IsRecordValid          = true; //v combo nabídce pouze časově platné záznamy
            if (filterflag == "1")
            {
                mq.SearchString   = searchstring; //filtrování na straně serveru
                mq.TopRecordsOnly = 50;           //maximálně prvních 50 záznamů, které vyhovují podmínce
            }

            var cols = _colsProvider.getDefaultPallete(true, mq);

            mq.explicit_columns = cols;

            mq.explicit_orderby = BL.TheEntities.ByPrefix(mq.Prefix).SqlOrderByCombo;

            switch (mq.Prefix)
            {
            case "p18":
                mq.p18flag = BO.BAS.InInt(param1);

                mq.explicit_orderby = "a.p18Code";
                if (masterprefix == "p25" && masterpid == 0)    //v recepturách je kódy operací povinné zobrazovat v kontextu k typu zařízení
                {
                    return("<p>Na vstupu chybí vybrat typ zařízení.</p>");
                }

                break;
            }
            mq.InhaleMasterEntityQuery(masterprefix, masterpid);


            var dt      = Factory.gridBL.GetList(mq);
            var intRows = dt.Rows.Count;

            var s = new System.Text.StringBuilder();

            if (mq.TopRecordsOnly > 0)
            {
                if (intRows >= mq.TopRecordsOnly)
                {
                    s.AppendLine(string.Format("<small style='margin-left:10px;'>Zobrazeno prvních {0} záznamů. Zpřesněte filtrovací podmínku.</small>", intRows));
                }
                else
                {
                    s.AppendLine(string.Format("<small style='margin-left:10px;'>Počet záznamů: {0}.</small>", intRows));
                }
            }

            s.Append(string.Format("<table id='{0}' class='table table-hover'>", tableid));

            s.Append("<thead><tr>");
            foreach (var col in cols)
            {
                s.Append(string.Format("<th>{0}</th>", col.Header));
            }
            s.Append(string.Format("</tr></thead><tbody id='{0}_tbody'>", tableid));
            for (int i = 0; i < intRows; i++)
            {
                s.Append(string.Format("<tr class='txz' data-v='{0}'", dt.Rows[i]["pid"]));
                if (mq.Prefix == "p18" || mq.Prefix == "p19" || mq.Prefix == "p21" || mq.Prefix == "p26" || mq.Prefix == "p10" || mq.Prefix == "p13" || mq.Prefix == "p12" || mq.Prefix == "p11")
                {
                    //po výběru hodnoty z comba bude SelectedText kód + název a nikoliv hodnota prvního sloupce
                    s.Append(string.Format(" data-t='{0} - {1}'", dt.Rows[i]["a__" + mq.Entity + "__" + mq.Prefix + "Code"], dt.Rows[i]["a__" + mq.Entity + "__" + mq.Prefix + "Name"]));
                }
                //if (mq.Prefix == "p51")
                //{
                //    s.Append(string.Format(" data-t='{0} - {1} ## {2}'", dt.Rows[i]["a__p51Order__p51Code"], dt.Rows[i]["a__p51Order__p51Name"], dt.Rows[i]["p51_p28_p28Company_p28Name"]));
                //}

                s.Append(">");
                foreach (var col in cols)
                {
                    if (col.NormalizedTypeName == "num")
                    {
                        s.Append(string.Format("<td style='text-align:right;'>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col)));
                    }
                    else
                    {
                        s.Append(string.Format("<td>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col)));
                    }
                }
                s.Append("</tr>");
            }
            s.Append("</tbody></table>");

            return(s.ToString());
        }
Exemple #26
0
        private void handle_create_by_p52(int p52id)
        {
            if (_lisP27.Count == 0 || p52id == 0)
            {
                return;
            }
            var cP52 = _f.p52OrderItemBL.Load(p52id);
            var cP11 = _f.p11ClientProductBL.Load(cP52.p11ID);

            double   dblTotalKG = cP52.Recalc2Kg - cP52.p52Task_Kg;
            double   dblUsedKG  = 0;
            DateTime dat0       = _dat0;
            var      mq         = new BO.myQuery("p41Task");

            mq.p52id = p52id;
            int    x           = 1;
            string strLastCode = "";

            if (dblTotalKG <= 0)
            {
                _f.CurrentUser.AddMessage(string.Format("Položka objednávky [{0}] je již kompletně rozplánovaná.", cP52.p52Code));
            }

            while (dblUsedKG < dblTotalKG)
            {
                foreach (var kotel in _lisP27)
                {
                    var rec = new BO.p41Task();
                    rec.p52ID             = p52id;
                    rec.p52Code           = cP52.p52Code;
                    rec.p27ID             = kotel.pid;
                    rec.p27Name           = kotel.p27Name;
                    rec.p41Name           = cP11.p11Name + " [" + cP11.p11Code + "]";
                    rec.p41PlanUnitsCount = kotel.p27Capacity;
                    if (rec.p41PlanUnitsCount + dblUsedKG > dblTotalKG)
                    {
                        rec.p41PlanUnitsCount = dblTotalKG - dblUsedKG;
                    }
                    double dur = _f.p12ClientTpvBL.Simulate_Total_Duration(cP11.p12ID, rec.p41PlanUnitsCount, kotel.pid);
                    dat0             = kotel.DateInsert;
                    rec.p41PlanStart = dat0;
                    rec.p41Duration  = dur;

                    rec.p41Code = _f.p41TaskBL.EstimateTaskCode(cP52.p52Code, x);
                    while (strLastCode == rec.p41Code)
                    {
                        x          += 1;
                        rec.p41Code = _f.p41TaskBL.EstimateTaskCode(cP52.p52Code, x);
                    }

                    //kotel.DateInsert = rec.p41PlanEnd.AddSeconds(1);
                    kotel.DateInsert = rec.p41PlanEnd;

                    _tasks.Add(rec);

                    dblUsedKG += rec.p41PlanUnitsCount;
                    if (dblUsedKG >= dblTotalKG)
                    {
                        return;
                    }

                    x          += 1;
                    strLastCode = rec.p41Code;
                }
            }
        }
Exemple #27
0
        public DataTable GetList(BO.myQuery mq, bool bolGetTotalsRow = false)
        {
            var sb = new System.Text.StringBuilder();

            sb.Append("SELECT ");
            if (mq.TopRecordsOnly > 0)
            {
                sb.Append("TOP " + mq.TopRecordsOnly.ToString() + " ");
            }

            if (mq.explicit_columns == null || mq.explicit_columns.Count() == 0)
            {
                mq.explicit_columns = new BL.TheColumnsProvider(_mother.App).getDefaultPallete(false, mq);    //na vstupu není přesný výčet sloupců -> pracovat s default sadou
            }
            if (bolGetTotalsRow)
            {
                sb.Append(string.Join(",", mq.explicit_columns.Select(p => p.getFinalSqlSyntax_SUM())));   //součtová řádka gridu
            }
            else
            {
                sb.Append(string.Join(",", mq.explicit_columns.Select(p => p.getFinalSqlSyntax_SELECT()))); //grid sloupce
            }
            sb.Append("," + GetSQL_SELECT_Ocas(mq.Prefix, bolGetTotalsRow));                                //konstantní pole jako pid,isclosed
            if (bolGetTotalsRow == false && (mq.Prefix == "p21" || mq.Prefix == "p41" || mq.Prefix == "o23" || mq.Prefix == "p51" || mq.Prefix == "p10" || mq.Prefix == "p26" || mq.Prefix == "p11"))
            {
                sb.Append(",bc.b02Color as bgcolor");
            }
            else
            {
                sb.Append(",NULL as bgcolor");
            }
            if (mq.explicit_selectsql != null)
            {
                sb.Append("," + mq.explicit_selectsql);
            }

            sb.Append(" FROM ");
            BO.TheEntity ce = BL.TheEntities.ByPrefix(mq.Prefix);
            sb.Append(ce.SqlFromGrid);    //úvodní FROM klauzule s primární "a" tabulkou

            List <string> relSqls = new List <string>();

            foreach (BO.TheGridColumn col in mq.explicit_columns.Where(x => x.RelName != null && x.RelName != "a"))
            {
                if (col.RelSqlDependOn != null && relSqls.Exists(p => p == col.RelSqlDependOn) == false)
                {
                    //if (mq.Prefix=="p41" && (col.RelName == "p11_p20" || col.RelName== "p11_p20pro"))
                    //{   //natvrdo relace, protože bohužel neumíme závilost ob dvě relace:
                    //    if (relSqls.Exists(p => p == "INNER JOIN p52OrderItem p41_p52 ON a.p52ID = p41_p52.p52ID") == false)
                    //    {
                    //        relSqls.Add("INNER JOIN p52OrderItem p41_p52 ON a.p52ID=p41_p52.p52ID");
                    //        sb.Append(" INNER JOIN p52OrderItem p41_p52 ON a.p52ID=p41_p52.p52ID");
                    //    }
                    //}

                    relSqls.Add(col.RelSqlDependOn);
                    sb.Append(" ");
                    sb.Append(col.RelSqlDependOn);
                }
                if (relSqls.Exists(p => p == col.RelSql) == false)
                {
                    relSqls.Add(col.RelSql);
                    sb.Append(" ");
                    sb.Append(col.RelSql);
                }
            }



            //vždy musí být nějaké výchozí třídění v ce.SqlOrderBy!!
            if (bolGetTotalsRow == false && String.IsNullOrEmpty(mq.explicit_orderby))
            {
                mq.explicit_orderby = ce.SqlOrderBy;
            }



            //parametrický dotaz s WHERE klauzulí

            DL.FinalSqlCommand q = DL.basQuery.ParseFinalSql(sb.ToString(), mq, _mother.CurrentUser, true);    //závěrečné vygenerování WHERE a ORDERBY klauzule

            if (bolGetTotalsRow == false && mq.OFFSET_PageSize > 0)
            {
                q.FinalSql += " OFFSET @pagesize*@pagenum ROWS FETCH NEXT @pagesize ROWS ONLY";
                if (q.Parameters4DT == null)
                {
                    q.Parameters4DT = new List <DL.Param4DT>();
                }
                q.Parameters4DT.Add(new DL.Param4DT()
                {
                    ParamType = "int", ParName = "pagesize", ParValue = mq.OFFSET_PageSize
                });
                q.Parameters4DT.Add(new DL.Param4DT()
                {
                    ParamType = "int", ParName = "pagenum", ParValue = mq.OFFSET_PageNum
                });
            }

            return(_db.GetDataTable(q.FinalSql, q.Parameters4DT));
        }
        public string GetWorkTable(string entity, string tableid, string param1, string pids, string delete_function, string edit_function, string queryfield, string queryvalue, string master_entity, int master_pid)
        {
            var mq = new BO.myQuery(entity);

            mq.SetPids(pids);

            var grid = Factory.j72TheGridTemplateBL.LoadState(entity, Factory.CurrentUser.pid, master_entity);

            if (grid == null)
            {
                mq.explicit_columns = _colsProvider.getDefaultPallete(false, mq);
            }
            else
            {
                mq.explicit_columns = _colsProvider.ParseTheGridColumns(mq.Prefix, grid.j72Columns);
                mq.explicit_orderby = grid.j75SortDataField;
                if (grid.j75SortDataField != null && grid.j75SortOrder != null)
                {
                    mq.explicit_orderby += " " + grid.j75SortOrder;
                }
            }
            mq.InhaleMasterEntityQuery(master_entity, master_pid);

            if (string.IsNullOrEmpty(queryfield) == false)
            {
                BO.Reflexe.SetPropertyValue(mq, queryfield, queryvalue);
            }


            var dt      = Factory.gridBL.GetList(mq);
            var intRows = dt.Rows.Count;

            var sb = new System.Text.StringBuilder();

            sb.Append(string.Format("<table id='{0}' class='table table-sm table-hover'>", tableid));
            sb.Append("<thead><tr class='bg-light'>");
            if (edit_function != null)
            {
                sb.Append(("<th></th>"));
            }
            foreach (var c in mq.explicit_columns)
            {
                if (c.NormalizedTypeName == "num")
                {
                    sb.Append(string.Format("<th style='text-align:right;'>{0}</th>", c.Header));
                }
                else
                {
                    sb.Append(string.Format("<th>{0}</th>", c.Header));
                }
            }
            if (delete_function != null)
            {
                sb.Append(("<th></th>"));
            }
            sb.Append("</tr></thead>");
            sb.Append("<tbody>");
            for (int i = 0; i < intRows; i++)
            {
                sb.Append(string.Format("<tr data-v='{0}'>", dt.Rows[i]["pid"]));
                if (edit_function != null)
                {
                    sb.Append(string.Format("<td><button type='button' class='btn btn-sm btn-light' onclick='{0}({1})'>Upravit</button></td>", edit_function, dt.Rows[i]["pid"]));
                }
                foreach (var col in mq.explicit_columns)
                {
                    if (col.NormalizedTypeName == "num")
                    {
                        sb.Append(string.Format("<td style='text-align: right;'>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col)));
                    }
                    else
                    {
                        sb.Append(string.Format("<td>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col)));
                    }
                }
                if (delete_function != null)
                {
                    sb.Append(string.Format("<td><button type='button' class='btn btn-sm btn-danger' title='Odstranit řádek' onclick='{0}({1})'>&times;</button></td>", delete_function, dt.Rows[i]["pid"]));
                }
                sb.Append("</tr>");
            }
            sb.Append("</tbody>");
            sb.Append("</table>");

            return(sb.ToString());
        }
        private void Render_DATAROWS(System.Data.DataTable dt, BO.myQuery mq)
        {
            int intRows       = dt.Rows.Count;
            int intStartIndex = 0;
            int intEndIndex   = 0;

            if (mq.OFFSET_PageSize > 0)
            {   //Zapnutý OFFSET - pouze jedna stránka díky OFFSET
                intStartIndex = 0;
                intEndIndex   = intRows - 1;
            }
            else
            {   //bez OFFSET
                intStartIndex = _grid.GridState.j75CurrentPagerIndex;
                intEndIndex   = intStartIndex + _grid.GridState.j75PageSize - 1;
                if (intEndIndex + 1 > intRows)
                {
                    intEndIndex = intRows - 1;
                }
            }

            for (int i = intStartIndex; i <= intEndIndex; i++)
            {
                System.Data.DataRow dbRow = dt.Rows[i];
                string strRowClass        = "selectable";
                if (Convert.ToBoolean(dbRow["isclosed"]) == true)
                {
                    strRowClass += " trbin";
                }
                if (_grid.GridState.OnDblClick == null)
                {
                    _s.Append(string.Format("<tr id='r{0}' class='{1}'>", dbRow["pid"], strRowClass));
                }
                else
                {
                    _s.Append(string.Format("<tr id='r{0}' class='{1}' ondblclick='{2}(this)'>", dbRow["pid"], strRowClass, _grid.GridState.OnDblClick));
                }



                if (_grid.GridState.j72SelectableFlag > 0)
                {
                    _s.Append(string.Format("<td class='td0' style='width:20px;'><input type='checkbox' id='chk{0}'/></td>", dbRow["pid"]));
                }
                else
                {
                    _s.Append("<td class='td0' style='width:20px;'></td>");
                }

                if (dbRow["bgcolor"] == System.DBNull.Value)
                {
                    _s.Append("<td class='td1' style='width:20px;'></td>");
                }
                else
                {
                    _s.Append(string.Format("<td class='td1' style='width:20px;background-color:{0}'></td>", dbRow["bgcolor"]));
                }

                if (_grid.GridState.ContextMenuFlag > 0)
                {
                    _s.Append(string.Format("<td class='td2' style='width:20px;'><a class='cm' onclick='tg_cm(event)'>&#9776;</a></td>"));      //hamburger menu
                }
                else
                {
                    _s.Append("<td class='td2' style='width:20px;'>");  //bez hamburger menu
                }



                foreach (var col in _grid.Columns)
                {
                    _s.Append("<td");
                    if (col.CssClass != null)
                    {
                        _s.Append(string.Format(" class='{0}'", col.CssClass));
                    }

                    if (i == intStartIndex)   //první řádek musí mít explicitně šířky, aby to z něj zdědili další řádky
                    {
                        _s.Append(string.Format(" style='width:{0}'", col.ColumnWidthPixels));
                    }
                    _s.Append(string.Format(">{0}</td>", BO.BAS.ParseCellValueFromDb(dbRow, col)));
                }
                _s.Append("</tr>");
            }
        }
        public TheGridOutput render_thegrid_html(BO.TheGridState gridState)
        {
            var ret = new TheGridOutput();

            _grid = new TheGridViewModel()
            {
                Entity = gridState.j72Entity
            };
            _grid.GridState = gridState;

            ret.sortfield = gridState.j75SortDataField;
            ret.sortdir   = gridState.j75SortOrder;

            var mq = new BO.myQuery(gridState.j72Entity);

            _grid.Columns = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns);

            if (string.IsNullOrEmpty(gridState.j72MasterEntity) && BL.TheEntities.ByTable(gridState.j72Entity).IsGlobalPeriodQuery)
            {
                BO.ThePeriod per = InhaleGridPeriodDates(mq.Prefix);
                mq.global_d1 = per.d1;
                mq.global_d2 = per.d2;
            }

            mq.explicit_columns = _grid.Columns;

            if (String.IsNullOrEmpty(gridState.j75Filter) == false)
            {
                mq.TheGridFilter = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, mq.explicit_columns);
            }
            mq.lisPeriods = _pp.getPallete();

            if (gridState.j72HashJ73Query)
            {
                mq.lisJ73 = Factory.j72TheGridTemplateBL.GetList_j73(gridState.j72ID, gridState.j72Entity.Substring(0, 3));
            }
            mq.InhaleMasterEntityQuery(gridState.j72MasterEntity, gridState.MasterPID);


            var dtFooter            = Factory.gridBL.GetList(mq, true);
            int intVirtualRowsCount = 0;

            if (dtFooter.Columns.Count > 0)
            {
                intVirtualRowsCount = Convert.ToInt32(dtFooter.Rows[0]["RowsCount"]);
            }
            else
            {
                this.AddMessage("GRID Error: Dynamic SQL failed.");
            }


            if (intVirtualRowsCount > 500)
            {   //dotazy nad 500 záznamů budou mít zapnutý OFFSET režim stránkování
                mq.OFFSET_PageSize = gridState.j75PageSize;
                mq.OFFSET_PageNum  = gridState.j75CurrentPagerIndex / gridState.j75PageSize;
            }

            //třídění řešit až po spuštění FOOTER summary DOTAZu
            if (String.IsNullOrEmpty(gridState.j75SortDataField) == false && _grid.Columns.Where(p => p.UniqueName == gridState.j75SortDataField).Count() > 0)
            {
                var c = _grid.Columns.Where(p => p.UniqueName == gridState.j75SortDataField).First();
                mq.explicit_orderby = c.getFinalSqlSyntax_ORDERBY() + " " + gridState.j75SortOrder;
            }

            var dt = Factory.gridBL.GetList(mq);



            if (_grid.GridState.j75CurrentRecordPid > 0 && intVirtualRowsCount > gridState.j75PageSize)
            {
                //aby se mohlo skočit na cílový záznam, je třeba najít stránku, na které se záznam nachází
                System.Data.DataRow[] recs = dt.Select("pid=" + _grid.GridState.j75CurrentRecordPid.ToString());
                if (recs.Count() > 0)
                {
                    var intIndex = dt.Rows.IndexOf(recs[0]);
                    _grid.GridState.j75CurrentPagerIndex = intIndex - (intIndex % _grid.GridState.j75PageSize);
                }
            }

            _s = new System.Text.StringBuilder();

            Render_DATAROWS(dt, mq);
            ret.body = _s.ToString();
            _s       = new System.Text.StringBuilder();

            Render_TOTALS(dtFooter);
            ret.foot = _s.ToString();
            _s       = new System.Text.StringBuilder();

            RENDER_PAGER(intVirtualRowsCount);
            ret.pager = _s.ToString();
            return(ret);
        }