Example #1
0
 ///<summary>Returns true if Update(DashboardLayout,DashboardLayout) would make changes to the database.
 ///Does not make any changes to the database and can be called before remoting role is checked.</summary>
 public static bool UpdateComparison(DashboardLayout dashboardLayout, DashboardLayout oldDashboardLayout)
 {
     if (dashboardLayout.UserNum != oldDashboardLayout.UserNum)
     {
         return(true);
     }
     if (dashboardLayout.UserGroupNum != oldDashboardLayout.UserGroupNum)
     {
         return(true);
     }
     if (dashboardLayout.DashboardTabName != oldDashboardLayout.DashboardTabName)
     {
         return(true);
     }
     if (dashboardLayout.DashboardTabOrder != oldDashboardLayout.DashboardTabOrder)
     {
         return(true);
     }
     if (dashboardLayout.DashboardRows != oldDashboardLayout.DashboardRows)
     {
         return(true);
     }
     if (dashboardLayout.DashboardColumns != oldDashboardLayout.DashboardColumns)
     {
         return(true);
     }
     if (dashboardLayout.DashboardGroupName != oldDashboardLayout.DashboardGroupName)
     {
         return(true);
     }
     return(false);
 }
Example #2
0
        ///<summary>Inserts one DashboardLayout into the database.  Provides option to use the existing priKey.</summary>
        public static long Insert(DashboardLayout dashboardLayout, bool useExistingPK)
        {
            if (!useExistingPK && PrefC.RandomKeys)
            {
                dashboardLayout.DashboardLayoutNum = ReplicationServers.GetKey("dashboardlayout", "DashboardLayoutNum");
            }
            string command = "INSERT INTO dashboardlayout (";

            if (useExistingPK || PrefC.RandomKeys)
            {
                command += "DashboardLayoutNum,";
            }
            command += "UserNum,UserGroupNum,DashboardTabName,DashboardTabOrder,DashboardRows,DashboardColumns,DashboardGroupName) VALUES(";
            if (useExistingPK || PrefC.RandomKeys)
            {
                command += POut.Long(dashboardLayout.DashboardLayoutNum) + ",";
            }
            command +=
                POut.Long(dashboardLayout.UserNum) + ","
                + POut.Long(dashboardLayout.UserGroupNum) + ","
                + "'" + POut.String(dashboardLayout.DashboardTabName) + "',"
                + POut.Int(dashboardLayout.DashboardTabOrder) + ","
                + POut.Int(dashboardLayout.DashboardRows) + ","
                + POut.Int(dashboardLayout.DashboardColumns) + ","
                + "'" + POut.String(dashboardLayout.DashboardGroupName) + "')";
            if (useExistingPK || PrefC.RandomKeys)
            {
                Db.NonQ(command);
            }
            else
            {
                dashboardLayout.DashboardLayoutNum = Db.NonQ(command, true, "DashboardLayoutNum", "dashboardLayout");
            }
            return(dashboardLayout.DashboardLayoutNum);
        }
Example #3
0
        ///<summary>Gets all dashboard layouts associated to this tab control.</summary>
        public void GetDashboardLayout(out List <DashboardLayout> layouts)
        {
            layouts = new List <DashboardLayout>();
            int tabCount = IsEditMode?tabControl.TabCount - 1:tabControl.TabCount;

            for (int i = 0; i < tabCount; ++i)
            {
                TabPage tabPage; DashboardPanelCtrl dashboardPanel;
                if (!GetDashboardPanel(i, out tabPage, out dashboardPanel))
                {
                    continue;
                }
                DashboardLayout layout = new DashboardLayout()
                {
                    IsNew             = true,
                    DashboardTabName  = tabPage.Text,
                    DashboardTabOrder = dashboardPanel.TabOrder,
                    DashboardRows     = dashboardPanel.Rows,
                    DashboardColumns  = dashboardPanel.Columns,
                    //The rest of the fields are filled below if this was an existing db row.
                    DashboardLayoutNum = 0,
                    UserNum            = 0,
                    UserGroupNum       = 0,
                };
                if (dashboardPanel.DbItem != null)                //This was an existing db row so update.
                {
                    layout.IsNew = false;
                    layout.DashboardLayoutNum = dashboardPanel.DbItem.DashboardLayoutNum;
                    layout.UserNum            = dashboardPanel.DbItem.UserNum;
                    layout.UserGroupNum       = dashboardPanel.DbItem.UserGroupNum;
                }
                layout.Cells = dashboardPanel.Cells;
                layouts.Add(layout);
            }
        }
 ///<summary>Inserts one DashboardLayout into the database.  Returns the new priKey.</summary>
 public static long Insert(DashboardLayout dashboardLayout)
 {
     if (DataConnection.DBtype == DatabaseType.Oracle)
     {
         dashboardLayout.DashboardLayoutNum = DbHelper.GetNextOracleKey("dashboardlayout", "DashboardLayoutNum");
         int loopcount = 0;
         while (loopcount < 100)
         {
             try {
                 return(Insert(dashboardLayout, true));
             }
             catch (Oracle.ManagedDataAccess.Client.OracleException ex) {
                 if (ex.Number == 1 && ex.Message.ToLower().Contains("unique constraint") && ex.Message.ToLower().Contains("violated"))
                 {
                     dashboardLayout.DashboardLayoutNum++;
                     loopcount++;
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         throw new ApplicationException("Insert failed.  Could not generate primary key.");
     }
     else
     {
         return(Insert(dashboardLayout, false));
     }
 }
Example #5
0
        public async Task <int> SaveLayout(DashboardLayout layout)
        {
            BlockDataProvider blockDataProvider = new BlockDataProvider();
            string            layoutXML         = new XMLHelper().SerializeXML(layout.Elements, "Root", true);
            string            moduleXML         = new XMLHelper().SerializeXML(layout.Modules, "Root", true);

            return(await blockDataProvider.SaveLayout(layoutXML, moduleXML, layout.PageName, layout.SiteID));
        }
Example #6
0
        public override void SetDatabaseObject(IActivateItems activator, DashboardLayout databaseObject)
        {
            base.SetDatabaseObject(activator, databaseObject);

            _controlFactory = new DashboardControlFactory(activator, new Point(5, 25));
            btnAddDashboardControl.Image = activator.CoreIconProvider.GetImage(RDMPConcept.AggregateGraph, OverlayKind.Add);
            _layout = databaseObject;
            ReLayout();

            activator.Theme.ApplyTo(toolStrip1);
        }
Example #7
0
        public override void Execute()
        {
            base.Execute();

            if (TypeText("Dashboard Name", "Name", out string name))
            {
                var l = new DashboardLayout(Activator.RepositoryLocator.CatalogueRepository, name);
                Publish(l);
                Emphasise(l);
            }
        }
Example #8
0
        public async Task <IActionResult> Layout([FromBody] DashboardLayout layout)
        {
            BlockController con = new BlockController();

            layout.SiteID = GetSiteID;
            await con.SaveLayout(layout);

            return(new ObjectResult(new OperationStatus()
            {
                IsSuccess = true, Message = "Layout Save Successfully."
            }));
        }
Example #9
0
        /// <summary>
        /// Creates a new instance of Type t (which must be an IDashboardableControl derrived ultimately from UserControl) which is then hydrated with an empty collection and a database
        /// record is created which can be used to save it's collection state for the lifetime of the control (allowing you to restore the state later)
        /// </summary>
        /// <param name="forLayout"></param>
        /// <param name="t"></param>
        /// <param name="theControlCreated"></param>
        /// <returns></returns>
        public DashboardControl Create(DashboardLayout forLayout, Type t, out DashboardableControlHostPanel theControlCreated)
        {
            var instance = CreateControl(t);

            //get the default size requirements of the control as it exists post construction
            int w = instance.Width;
            int h = instance.Height;

            var dbRecord = new DashboardControl(_activator.RepositoryLocator.CatalogueRepository, forLayout, t, _startLocationForNewControls.X, _startLocationForNewControls.Y, w, h, "");

            theControlCreated = Hydrate((IDashboardableControl)instance, dbRecord);

            return(dbRecord);
        }
Example #10
0
        private void AddNewDashboard()
        {
            var dialog = new TypeTextOrCancelDialog("Dashboard Name", "Name", 100, null, false);

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                var dash = new DashboardLayout(_manager.RepositoryLocator.CatalogueRepository, dialog.ResultText);

                var cmd = new ExecuteCommandActivate(_manager.ActivateItems, dash);
                cmd.Execute();

                ReCreateDropDowns();
            }
        }
Example #11
0
        ///<summary>Updates one DashboardLayout in the database.</summary>
        public static void Update(DashboardLayout dashboardLayout)
        {
            string command = "UPDATE dashboardlayout SET "
                             + "UserNum           =  " + POut.Long(dashboardLayout.UserNum) + ", "
                             + "UserGroupNum      =  " + POut.Long(dashboardLayout.UserGroupNum) + ", "
                             + "DashboardTabName  = '" + POut.String(dashboardLayout.DashboardTabName) + "', "
                             + "DashboardTabOrder =  " + POut.Int(dashboardLayout.DashboardTabOrder) + ", "
                             + "DashboardRows     =  " + POut.Int(dashboardLayout.DashboardRows) + ", "
                             + "DashboardColumns  =  " + POut.Int(dashboardLayout.DashboardColumns) + ", "
                             + "DashboardGroupName= '" + POut.String(dashboardLayout.DashboardGroupName) + "' "
                             + "WHERE DashboardLayoutNum = " + POut.Long(dashboardLayout.DashboardLayoutNum);

            Db.NonQ(command);
        }
Example #12
0
 ///<summary>Inserts one DashboardLayout into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DashboardLayout dashboardLayout)
 {
     if (DataConnection.DBtype == DatabaseType.MySql)
     {
         return(InsertNoCache(dashboardLayout, false));
     }
     else
     {
         if (DataConnection.DBtype == DatabaseType.Oracle)
         {
             dashboardLayout.DashboardLayoutNum = DbHelper.GetNextOracleKey("dashboardlayout", "DashboardLayoutNum");                  //Cacheless method
         }
         return(InsertNoCache(dashboardLayout, true));
     }
 }
Example #13
0
        ///<summary>Converts a DataTable to a list of objects.</summary>
        public static List <DashboardLayout> TableToList(DataTable table)
        {
            List <DashboardLayout> retVal = new List <DashboardLayout>();
            DashboardLayout        dashboardLayout;

            foreach (DataRow row in table.Rows)
            {
                dashboardLayout = new DashboardLayout();
                dashboardLayout.DashboardLayoutNum = PIn.Long(row["DashboardLayoutNum"].ToString());
                dashboardLayout.UserNum            = PIn.Long(row["UserNum"].ToString());
                dashboardLayout.UserGroupNum       = PIn.Long(row["UserGroupNum"].ToString());
                dashboardLayout.DashboardTabName   = PIn.String(row["DashboardTabName"].ToString());
                dashboardLayout.DashboardTabOrder  = PIn.Int(row["DashboardTabOrder"].ToString());
                dashboardLayout.DashboardRows      = PIn.Int(row["DashboardRows"].ToString());
                dashboardLayout.DashboardColumns   = PIn.Int(row["DashboardColumns"].ToString());
                dashboardLayout.DashboardGroupName = PIn.String(row["DashboardGroupName"].ToString());
                retVal.Add(dashboardLayout);
            }
            return(retVal);
        }
Example #14
0
 public DashboardPanelCtrl(DashboardLayout dbItem = null)
 {
     InitializeComponent();
     _dbItem = dbItem;
 }
Example #15
0
        ///<summary>Will add the pre-defined default practice tab.
        ///Only one default practice tab can exist at a time, but the user may rename it to add multiple.
        ///This method does NOT save the tab to the database. The user will still have to save changes and will have the option of discarding this tab.</summary>
        public void AddDefaultsTabPractice(bool hasPrompt)
        {
            if (!ValidateTabName("Practice Defaults"))
            {
                return;
            }
            //get current layouts
            List <DashboardLayout> layoutsCur;

            GetDashboardLayout(out layoutsCur);
            //create layout
            DashboardLayout layout = new DashboardLayout()
            {
                DashboardColumns   = 3,
                DashboardRows      = 2,
                DashboardGroupName = "Default",
                DashboardTabName   = "Practice Defaults",
                //assigned default layout to first tab.
                DashboardTabOrder = layoutsCur.Count,
                UserGroupNum      = 0,
                UserNum           = 0,
                IsNew             = true,
            };
            int i = 0;

            //define cell settings. anything not set here will be the defaults defined in GraphQuantityOverTimeFilter
            for (int row = 0; row < layout.DashboardRows; row++)
            {
                for (int col = 0; col < layout.DashboardColumns; col++)
                {
                    DashboardCell cell = new DashboardCell()
                    {
                        CellRow    = row,
                        CellColumn = col,
                    };
                    switch (i++)
                    {
                    case 0:
                        cell.CellType     = DashboardCellType.ProductionGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                IncludeCompleteProcs = true,
                                IncludeAdjustements  = true,
                                IncludeWriteoffs     = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Production - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;

                    case 1:
                        cell.CellType     = DashboardCellType.IncomeGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                IncludePaySplits       = true,
                                IncludeInsuranceClaims = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Income - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;

                    case 2:
                        cell.CellType     = DashboardCellType.BrokenApptGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurRunFor = BrokenApptGraphOptionsCtrl.RunFor.appointment
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Broken Appointments - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.count,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Weeks,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;

                    case 3:
                        cell.CellType     = DashboardCellType.AccountsReceivableGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = "",
                            GraphJson  = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Accounts Receivable - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;

                    case 4:
                        cell.CellType     = DashboardCellType.NewPatientsGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = "",
                            GraphJson  = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "New Patients - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.count,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;

                    case 5:
                    default:
                        cell.CellType     = DashboardCellType.ProductionGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                IncludeCompleteProcs = true,
                                IncludeAdjustements  = true,
                                IncludeWriteoffs     = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Production - Last 30 Days",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Days,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.None,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last30Days,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.none,
                            })
                        });
                        break;
                    }
                    layout.Cells.Add(cell);
                }
            }
            layoutsCur.Add(layout);
            //set dashboard tab control layouts
            SetDashboardLayout(layoutsCur, false);
            _hasUnsavedChanges = _hasUnsavedChanges || hasPrompt;
        }
Example #16
0
        ///<summary>Will add the pre-defined default clinics tab.
        ///Only one default clinics tab can exist at a time, but the user may rename it to add multiple.
        ///This method does NOT save the tab to the database. The user will still have to save changes and will have the option of discarding this tab.</summary>
        public void AddDefaultsTabByGrouping(bool hasPrompt, GroupingOptionsCtrl.Grouping grouping)
        {
            string strGrouping = char.ToUpper(grouping.ToString()[0]) + grouping.ToString().Substring(1);

            if (!ValidateTabName(strGrouping + " Defaults"))
            {
                return;
            }
            //get current layouts
            List <DashboardLayout> layoutsCur;

            GetDashboardLayout(out layoutsCur);
            //create layout
            DashboardLayout layout = new DashboardLayout()
            {
                DashboardColumns   = 3,
                DashboardRows      = 2,
                DashboardGroupName = "Default",
                DashboardTabName   = strGrouping + " Defaults",
                //assigned default layout to first tab.
                DashboardTabOrder = layoutsCur.Count,
                UserGroupNum      = 0,
                UserNum           = 0,
                IsNew             = true,
            };
            int i = 0;

            for (int row = 0; row < layout.DashboardRows; row++)
            {
                for (int col = 0; col < layout.DashboardColumns; col++)
                {
                    DashboardCell cell = new DashboardCell()
                    {
                        CellRow    = row,
                        CellColumn = col,
                    };
                    switch (i++)
                    {
                    default:
                    case 0:
                        cell.CellType     = DashboardCellType.ProductionGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping          = grouping,
                                IncludeCompleteProcs = true,
                                IncludeAdjustements  = true,
                                IncludeWriteoffs     = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Production - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;

                    case 1:
                        cell.CellType     = DashboardCellType.IncomeGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping            = grouping,
                                IncludePaySplits       = true,
                                IncludeInsuranceClaims = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Income - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;

                    case 2:
                        cell.CellType     = DashboardCellType.BrokenApptGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping = grouping,
                                CurRunFor   = BrokenApptGraphOptionsCtrl.RunFor.appointment,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Broken Appointments - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.count,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;

                    case 3:
                        cell.CellType     = DashboardCellType.ProductionGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping          = grouping,
                                IncludeCompleteProcs = true,
                                IncludeAdjustements  = true,
                                IncludeWriteoffs     = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Production - Last 30 Days",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Days,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last30Days,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;

                    case 4:
                        cell.CellType     = DashboardCellType.IncomeGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping            = grouping,
                                IncludePaySplits       = true,
                                IncludeInsuranceClaims = true,
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "Income - Last 30 Days",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.money,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Days,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last30Days,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;

                    case 5:
                        cell.CellType     = DashboardCellType.NewPatientsGraph;
                        cell.CellSettings = ODGraphJson.Serialize(new ODGraphJson()
                        {
                            FilterJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTimeFilter.GraphQuantityOverTimeFilterSettings()
                            {
                                CurGrouping = grouping
                            }),
                            GraphJson = ODGraphSettingsBase.Serialize(new GraphQuantityOverTime.QuantityOverTimeGraphSettings()
                            {
                                Title          = "New Patients - Last 12 Months",
                                QtyType        = OpenDentalGraph.Enumerations.QuantityType.count,
                                SeriesType     = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn,
                                GroupByType    = System.Windows.Forms.DataVisualization.Charting.IntervalType.Months,
                                LegendDock     = OpenDentalGraph.Enumerations.LegendDockType.Bottom,
                                QuickRangePref = OpenDentalGraph.Enumerations.QuickRange.last12Months,
                                BreakdownPref  = OpenDentalGraph.Enumerations.BreakdownType.items,
                                BreakdownVal   = 10,
                            })
                        });
                        break;
                    }
                    layout.Cells.Add(cell);
                }
            }
            layoutsCur.Add(layout);
            //set dashboard tab control layouts
            SetDashboardLayout(layoutsCur, true);
            _hasUnsavedChanges = _hasUnsavedChanges || hasPrompt;
        }
Example #17
0
 public void Post([FromBody] DashboardLayout layout)
 {
     _layout = layout.Layout;
 }
Example #18
0
        ///<summary>Updates one DashboardLayout in the database.  Uses an old object to compare to, and only alters changed fields.  This prevents collisions and concurrency problems in heavily used tables.  Returns true if an update occurred.</summary>
        public static bool Update(DashboardLayout dashboardLayout, DashboardLayout oldDashboardLayout)
        {
            string command = "";

            if (dashboardLayout.UserNum != oldDashboardLayout.UserNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "UserNum = " + POut.Long(dashboardLayout.UserNum) + "";
            }
            if (dashboardLayout.UserGroupNum != oldDashboardLayout.UserGroupNum)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "UserGroupNum = " + POut.Long(dashboardLayout.UserGroupNum) + "";
            }
            if (dashboardLayout.DashboardTabName != oldDashboardLayout.DashboardTabName)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DashboardTabName = '" + POut.String(dashboardLayout.DashboardTabName) + "'";
            }
            if (dashboardLayout.DashboardTabOrder != oldDashboardLayout.DashboardTabOrder)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DashboardTabOrder = " + POut.Int(dashboardLayout.DashboardTabOrder) + "";
            }
            if (dashboardLayout.DashboardRows != oldDashboardLayout.DashboardRows)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DashboardRows = " + POut.Int(dashboardLayout.DashboardRows) + "";
            }
            if (dashboardLayout.DashboardColumns != oldDashboardLayout.DashboardColumns)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DashboardColumns = " + POut.Int(dashboardLayout.DashboardColumns) + "";
            }
            if (dashboardLayout.DashboardGroupName != oldDashboardLayout.DashboardGroupName)
            {
                if (command != "")
                {
                    command += ",";
                }
                command += "DashboardGroupName = '" + POut.String(dashboardLayout.DashboardGroupName) + "'";
            }
            if (command == "")
            {
                return(false);
            }
            command = "UPDATE dashboardlayout SET " + command
                      + " WHERE DashboardLayoutNum = " + POut.Long(dashboardLayout.DashboardLayoutNum);
            Db.NonQ(command);
            return(true);
        }
Example #19
0
 ///<summary>Inserts one DashboardLayout into the database.  Returns the new priKey.  Doesn't use the cache.</summary>
 public static long InsertNoCache(DashboardLayout dashboardLayout)
 {
     return(InsertNoCache(dashboardLayout, false));
 }