示例#1
0
        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);
        }
示例#2
0
        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());
        }
示例#3
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());
        }
示例#4
0
        public IActionResult p41Timeline(string d)
        {
            var v = new Models.p41TimelineViewModel();

            if (String.IsNullOrEmpty(d) == true)
            {
                v.CurrentDate = DateTime.Today;
            }
            else
            {
                v.CurrentDate = BO.BAS.String2Date(d);
            }
            v.HourFrom   = Factory.CBL.LoadUserParamInt("p41Timeline-hourfrom", 6);
            v.HourUntil  = Factory.CBL.LoadUserParamInt("p41Timeline-houruntil", 20);
            v.localQuery = new p41TimelineQuery();
            v.localQuery.SelectedP26IDs = Factory.CBL.LoadUserParam("p41Timeline-p26ids");
            //v.localQuery.SelectedP26Names = Factory.CBL.LoadUserParam("p41Timeline-p26names");
            v.localQuery.SelectedP27IDs = Factory.CBL.LoadUserParam("p41Timeline-p27ids");
            //v.localQuery.SelectedP27Names = Factory.CBL.LoadUserParam("p41Timeline-p27names");
            v.localQuery.SelectedB02IDs   = Factory.CBL.LoadUserParam("p41Timeline-b02ids");
            v.localQuery.SelectedB02Names = Factory.CBL.LoadUserParam("p41Timeline-b02names");
            v.localQuery.IsPoPre          = Factory.CBL.LoadUserParamBool("p41Timeline-ispopre", true);
            v.localQuery.IsTo             = Factory.CBL.LoadUserParamBool("p41Timeline-isto", true);
            v.localQuery.IsPoPost         = Factory.CBL.LoadUserParamBool("p41Timeline-ispopost", true);

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

            mq.IsRecordValid = true;
            if (v.localQuery.SelectedP26IDs != "")
            {
                mq.SetPids(v.localQuery.SelectedP26IDs);
            }
            v.lisP26 = Factory.p26MszBL.GetList(mq).ToList();
            if (string.IsNullOrEmpty(v.localQuery.SelectedP26IDs) == false)
            {
                v.localQuery.SelectedP26Names = string.Join(",", v.lisP26.Select(p => p.p26Name));
            }

            mq = new BO.myQuery("p27MszUnit");
            mq.IsRecordValid = true;
            if (string.IsNullOrEmpty(v.localQuery.SelectedP26IDs) == false)
            {
                mq.p26ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP26IDs);
            }
            if (string.IsNullOrEmpty(v.localQuery.SelectedP27IDs) == false)
            {
                mq.SetPids(v.localQuery.SelectedP27IDs);
            }
            v.lisP27 = Factory.p27MszUnitBL.GetList(mq).ToList();
            if (string.IsNullOrEmpty(v.localQuery.SelectedP27IDs) == false)
            {
                v.localQuery.SelectedP27Names = string.Join(",", v.lisP27.Select(p => p.p27Name));
            }



            mq                 = new BO.myQuery("p41Task");
            mq.DateBetween     = v.CurrentDate;
            mq.DateBetweenDays = 1;
            mq.p18flags        = new List <int>()
            {
                999
            };
            if (v.localQuery.IsPoPre)
            {
                mq.p18flags.Add(2);
            }
            if (v.localQuery.IsTo)
            {
                mq.p18flags.Add(1);
            }
            if (v.localQuery.IsPoPost)
            {
                mq.p18flags.Add(3);
            }
            mq.b02ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedB02IDs);
            mq.p26ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP26IDs);
            mq.p27ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP27IDs);

            mq.explicit_orderby = "a.p41PlanStart";                                                                                                                                                               //je důležité setřídit zakázky podle času-od, aby se v grid matici načítali postupně po řádcích!
            v.Tasks             = Factory.p41TaskBL.GetList(mq).Where(p => (p.p41PlanStart >= v.CurrentDT1 && p.p41PlanStart <= v.CurrentDT2) || (p.p41PlanEnd >= v.CurrentDT1 && p.p41PlanEnd <= v.CurrentDT2)); //.OrderBy(p=>p.p41PlanStart);
            v.Slots             = new List <Slot>();
            Slot lastSlot = null;

            foreach (BO.p41Task task in v.Tasks)
            {
                //var slot = new Slot() { p41ID = task.pid,p27ID=task.p27ID,Start=task.p41PlanStart.AddMinutes(task.p41DurationPoPre),End=task.p41PlanEnd.AddMinutes(-1*task.p41DurationPoPost),CssName="onetask" };
                var slot = new Slot()
                {
                    p41ID = task.pid, p27ID = task.p27ID, Start = task.p41PlanStart, End = task.p41PlanEnd, CssName = "onetask", p41Code = task.p41Code, b02Color = task.b02Color, b02Name = task.b02Name
                };
                slot.Title         = task.p11Code + ": " + BO.BAS.ObjectDateTime2String(slot.Start, "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(slot.End, "HH:mm") + ": " + BO.BAS.OM2(task.p41Name, 30);
                slot.DurationHours = task.DurationHours;
                if (task.p41Duration > task.p41DurationPoPre + task.p41DurationPoPost)
                {
                    slot.TitleClear = BO.BAS.ObjectDateTime2String(task.p41PlanStart.AddMinutes(task.p41DurationPoPre), "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost), "HH:mm");
                }

                if (slot.Start < v.CurrentDT1)
                {
                    slot.Start   = v.CurrentDT1;
                    slot.CssName = "onetask_overday";
                }
                if (slot.End > v.CurrentDT2)
                {
                    slot.End     = v.CurrentDT2;
                    slot.CssName = "onetask_overday";
                }
                slot.ColStart = (slot.Start.Hour * 60 + slot.Start.Minute) / 10;

                if (task.p41Code.Contains("PRE"))
                {
                    slot.CssName = "pretask";
                    if (lastSlot != null && (slot.ColStart + slot.ColSpan > lastSlot.ColStart))
                    {
                        slot.ColSpanKorekce = -1;
                    }
                }
                if (task.p41Code.Contains("POST"))
                {
                    slot.CssName = "posttask";
                    if (lastSlot != null && (slot.ColStart < lastSlot.ColStart + lastSlot.ColSpan))
                    {
                        slot.ColStart += 1;
                    }
                }

                if (task.p41DurationPoPre > 0 && task.p41PlanStart >= v.CurrentDT1)
                {
                    slot.TitlePre = "PO-PRE: " + BO.BAS.ObjectDateTime2String(task.p41PlanStart, "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanStart.AddMinutes(task.p41DurationPoPre), "HH:mm");
                    if (task.p41Duration == task.p41DurationPoPre)
                    {
                        slot.ColEndPre = slot.ColSpan;
                    }
                    else
                    {
                        slot.ColEndPre = Convert.ToInt32(task.p41DurationPoPre) / 10;
                    }
                }
                if (task.p41DurationPoPost > 0 && task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost) < v.CurrentDT2)
                {
                    slot.TitlePost = "PO-POST: " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost), "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd, "HH:mm");
                    if (task.p41Duration == task.p41DurationPoPost)
                    {
                        slot.ColStartPost = 1;
                    }
                    else
                    {
                        slot.ColStartPost = Convert.ToInt32(task.p41Duration - task.p41DurationPoPost) / 10;
                    }
                }

                lastSlot = slot;

                v.Slots.Add(slot);
            }



            v.lisFond = Factory.p31CapacityFondBL.GetCells(v.CurrentDate, v.CurrentDate);

            return(View(v));
        }