Esempio n. 1
0
        public static string Get_Focus_Next_VNo(Int32 iVT)
        {
            string sDocNo = "";

            try
            {
                //   MessageBox.Show("Before get next voucher -1");
                SeriesValues objSeriesVals = new SeriesValues();
                objSeriesVals.VoucherDate = new Focus.Common.DataStructs.Date(Convert.ToDateTime(DateTime.Now).Year,
                                                                              Convert.ToDateTime(DateTime.Now).Month, Convert.ToDateTime(DateTime.Now).Day, CalendarType.Gregorean);//  FConvert.DateToInt(DateTime.Now));

                //int m_iVoucherType = 3592;
                // MessageBox.Show("Before get next voucher -2");
                Output objReturn = Connection.CallServeRequest(ServiceType.Transaction, TransMethods.GetNewVoucherNo, iVT, objSeriesVals);
                if (objReturn.ReturnData != null)
                {
                    sDocNo = objReturn.ReturnData.ToString(); //(string)objReturn.ReturnData;
                }
                else
                {
                    sDocNo = "1";
                }
            }
            catch (Exception ex)
            {
                //MessageBox.Show("SM " + ex.Message);
                sDocNo = "0";
            }
            return(sDocNo);
        }
Esempio n. 2
0
 public void CalculateFitnessValue()
 {
     if (!SeriesValues.Any())
     {
         Console.WriteLine("Empty list");
         return;
     }
     if (FunctionNumber)
     {
         FirstFunction();
     }
     else
     {
         SecondFunction();
     }
 }
        /// <summary>
        /// Unfortunately we need to recreate the UI process that generates the reports including the JS function that append the json needed.
        /// This needs to match (in its C# version) to the addChartData function in ..\WebApp\Resources\Pages\ReportCharts.js !!!!!!!!!!!!!
        /// </summary>
        /// <param name="reportDef"></param>
        /// <param name="recordsData"></param>
        /// <returns></returns>
        private string GetChartOptionsAndData(string reportDef, string recordsData)
        {
            dynamic reportDefObject = new System.Dynamic.ExpandoObject();

            reportDefObject.Def = JsonConvert.DeserializeObject(reportDef);

            dynamic options = new System.Dynamic.ExpandoObject();

            options = JsonConvert.DeserializeObject(reportDefObject.Def.Chart.ToString());
            dynamic records = new System.Dynamic.ExpandoObject();

            records = JsonConvert.DeserializeObject(recordsData);

            string[] old             = { "#3276B1", "#193b58", "#78A300", "#e72b19", "#008080", "#E57B3A", "#bd4cff", "#FFC312", "#BA55D3" };
            string[] berry           = { "#8A2BE2", "#BA55D3", "#4169E1", "#C71585", "#0000FF", "#8019E0", "#DA70D6", "#7B68EE", "#C000C0", "#0000CD", "#800080" };
            string[] bright          = { "#008000", "#0000FF", "#800080", "#800080", "#FF00FF", "#008080", "#FFFF00", "#808080", "#00FFFF", "#000080", "#800000", "#FF3939", "#7F7F00", "#C0C0C0", "#FF6347", "#FFE4B5" };
            string[] brightPastel    = { "#418CF0", "#FCB441", "#DF3A02", "#056492", "#BFBFBF", "#1A3B69", "#FFE382", "#129CDD", "#CA6B4B", "#005CDB", "#F3D288", "#506381", "#F1B9A8", "#E0830A", "#7893BE" };
            string[] chocolate       = { "#A0522D", "#D2691E", "#8B0000", "#CD853F", "#A52A2A", "#F4A460", "#8B4513", "#C04000", "#B22222", "#B65C3A" };
            string[] earthTones      = { "#33023", "#B8860B", "#C04000", "#6B8E23", "#CD853F", "#C0C000", "#228B22", "#D2691E", "#808000", "#20B2AA", "#F4A460", "#00C000", "#8FBC8B", "#B22222", "#843A05", "#C00000" };
            string[] excel           = { "#9999FF", "#993366", "#FFFFCC", "#CCFFFF", "#660066", "#FF8080", "#0063CB", "#CCCCFF", "#000080", "#FF00FF", "#FFFF00", "#00FFFF", "#800080", "#800000", "#007F7F", "#0000FF" };
            string[] fire            = { "#FFD700", "#FF0000", "#FF1493", "#DC143C", "#FF8C00", "#FF00FF", "#FFFF00", "#FF4500", "#C71585", "#DDE221" };
            string[] grayScale       = { "#C8C8C8", "#BDBDBD", "#B2B2B2", "#A7A7A7", "#9C9C9C", "#919191", "#868686", "#7A7A7A", "#707070", "#656565", "#565656", "#4F4F4F", "#424242", "#393939", "#2E2E2E", "#232323" };
            string[] light           = { "#E6E6FA", "#FFF0F5", "#FFDAB9", "#", "#FFFACD", "#", "#FFE4E1", "#F0FFF0", "#F0F8FF", "#F5F5F5", "#FAEBD7", "#E0FFFF" };
            string[] pastel          = { "#87CEEB", "#32CD32", "#BA55D3", "#F08080", "#4682B4", "#9ACD32", "#40E0D0", "#FF69B4", "#F0E68C", "#D2B48C", "#8FBC8B", "#6495ED", "#DDA0DD", "#5F9EA0", "#FFDAB9", "#FFA07A" };
            string[] seaGreen        = { "#2E8B57", "#66CDAA", "#4682B4", "#008B8B", "#5F9EA0", "#38B16E", "#48D1CC", "#B0C4DE", "#8FBC8B", "#87CEEB" };
            string[] semiTransparent = { "#FF6969", "#69FF69", "#6969FF", "#FFFF5D", "#69FFFF", "#FF69FF", "#CDB075", "#FFAFAF", "#AFFFAF", "#AFAFFF", "#FFFFAF", "#AFFFFF", "#FFAFFF", "#E4D5B5", "#A4B086", "#819EC1" };

            options.colors = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(brightPastel));
            string series = string.Empty;
            string xAxis  = string.Empty;

            if (options.ts.chartType == "pie")
            {
                if (records.Count > 2)
                {
                    return("Please do not select a series field to plot a pie chart.");
                }

                int total = 0;

                for (int i = 0; i < records[1].data.Count; i++)
                {
                    total += (int)records[1].data[i];
                }

                string        seriesFormat = @"[{{ type: ""pie"", name: """ + options.ts.seriesTitle.ToString() + @""", data: [{0}]}}]";
                List <string> seriesData   = new List <string>();

                for (var i = 0; i < records[1].data.Count; i++)
                {
                    float val = (float)(records[1].data[i]) / total * 100;
                    seriesData.Add(@"[""" + FixBlankSeriesName(records[0].data[i].ToString()) + @""", " + val.ToString("#.00") + "]");
                }

                if (seriesData.Any() && seriesData.Count > 0)
                {
                    series = string.Format(seriesFormat, string.Join(",", seriesData.ToArray()));
                }
                else
                {
                    series = string.Format(seriesFormat, "");
                }
            }
            else if ((records[0].fieldType == "datetime" && records[0].format == "date") || (records[1].fieldType == "datetime" && records[1].format == "date"))
            {
                List <SeriesValues> seriesList = new List <SeriesValues>();
                xAxis = @"{ type: ""datetime"" }";

                if (records.Count == 3)
                {
                    for (var i = 0; i < records[0].data.Count; i++)
                    {
                        var    val  = records[0].data[i];
                        string name = (string)val;

                        if (String.IsNullOrEmpty(name))
                        {
                            name = "Unknown";
                        }

                        if (!seriesList.Where(p => p.Name == name).Any())
                        {
                            seriesList.Add(new SeriesValues()
                            {
                                Name  = name,
                                Value = val,
                                Data  = new List <string>()
                            });
                        }

                        SeriesValues values = seriesList.Where(p => p.Name == name).FirstOrDefault();
                        values.Data.Add("[" + ((DateTime)records[1].data[i]).ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds + "," + records[2].data[i] + "]");
                    }

                    string seriesFormat = @"{{""name"": ""{0}"",""value"": ""{1}"",""data"": [{2}]}},";

                    foreach (SeriesValues serie in seriesList)
                    {
                        series += "" + string.Format(seriesFormat, serie.Name, serie.Value, (serie.Data.Any() ? string.Join(",", serie.Data.ToArray()) : ""));
                    }

                    if (!string.IsNullOrEmpty(series))
                    {
                        series = "[" + series.Substring(0, series.Length - 1) + "]";
                    }
                    else
                    {
                        Log("No data in series.", LogType.Both);
                    }
                }
                else if (records.Count == 2)
                {
                    Log("//vv Unhandled chart case until know.");
                    //options.series.push("{ name: records[1].name, data: [] }");

                    //for (var i = 0; i < records[0].data.length; i++)
                    //{
                    //    List<string> item = new List<string>();
                    //    //vv item.push(Date.parse(records[0].data[i]));
                    //    //vv item.push(records[1].data[i]);

                    //    if (item[0] != null)
                    //    {
                    //        if (item[1] == null) item[1] = "0";
                    //        options.series[0].data.push(item);
                    //    }
                    //}
                }
            }
            else
            {
                //options.series = new List<string>(); //vv [];

                if (records.Count == 3)
                {
                    List <string> categoriesList = new List <string>();

                    //// build categories
                    for (int i = 0; i < records[1].data.Count; i++)
                    {
                        string name = FixRecordName(records[1], i);

                        if (!categoriesList.Where(p => p == name).Any())
                        {
                            categoriesList.Add(name);
                        }
                    }

                    xAxis = "{ categories: [" + (categoriesList.Any() ? string.Join(",", categoriesList.Select(x => string.Format(@"""{0}""", x)).ToArray()) : "") + "]}";
                    List <SeriesValues> seriesValues = new List <SeriesValues>();

                    for (int i = 0; i < records[0].data.Count; i++)
                    {
                        string       val    = records[0].data[i];
                        SeriesValues values = new SeriesValues();

                        if (!seriesValues.Where(p => p.Name == val).Any())
                        {
                            values.Name  = string.IsNullOrEmpty(val) ? "Unknown" : val + "";
                            values.Value = val;

                            for (int x = 0; x < categoriesList.Count; x++)
                            {
                                values.Data.Add("0");
                            }

                            seriesValues.Add(values);
                        }
                        else
                        {
                            values = seriesValues.Where(p => p.Name == val).FirstOrDefault();
                        }

                        string findCategory = records[1].data[i].ToString();

                        for (int x = 0; x < categoriesList.Count; x++)
                        {
                            if (categoriesList[x] == findCategory)
                            {
                                values.Data[x] = records[2].data[i];
                                break;
                            }
                        }
                    }

                    string seriesFormat = @"{{""name"": ""{0}"",""value"": ""{1}"",""data"": [{2}]}},";

                    foreach (SeriesValues serie in seriesValues)
                    {
                        series += "" + string.Format(seriesFormat, serie.Name, serie.Value, (serie.Data.Any() ? string.Join(",", serie.Data.ToArray()) : ""));
                        //series = "[{ name: '" + FixBlankSeriesName(FixRecordName(records[0], i)) + "', value: '" + list[i] + "', data: " + (list2.Any() ? string.Join(",", list2.Select(x => string.Format("'{0}'", x)).ToArray()) : "") + " }]";
                    }

                    if (!string.IsNullOrEmpty(series))
                    {
                        series = "[" + series.Substring(0, series.Length - 1) + "]";
                    }
                    else
                    {
                        Log("No data in series.", LogType.Both);
                    }
                }
                else if (records.Count == 2)
                {
                    List <string> list = new List <string>();

                    for (int i = 0; i < records[0].data.Count; i++)
                    {
                        list.Add(records[0].data[i].ToString());
                    }

                    xAxis = "{ categories: [" + (list.Any() ? string.Join(",", list.Select(x => string.Format(@"""{0}""", x)).ToArray()) : "") + "]}";

                    string seriesFormat = @"[{{ name: """ + records[1].name.ToString() + @""", data: [{0}]}}]";
                    list = new List <string>();

                    for (int i = 0; i < records[1].data.Count; i++)
                    {
                        list.Add(records[1].data[i].ToString());
                    }

                    series = string.Format(seriesFormat, (list.Any() ? string.Join(",", list.ToArray()) : ""));
                }
            }

            if (!string.IsNullOrEmpty(series) && records[1].data.Count > 1000)
            {
                return("Your series has " + records[1].data.Count + " items. This might cause issues rendering the chart, please try filtering your data to less than 1000.");
            }

            string jsonOptionsAndData = JsonConvert.SerializeObject(options);

            if (!string.IsNullOrEmpty(xAxis))
            {
                jsonOptionsAndData = jsonOptionsAndData.Substring(0, jsonOptionsAndData.Length - 1) + ", xAxis: " + xAxis + "}";
            }

            jsonOptionsAndData = jsonOptionsAndData.Substring(0, jsonOptionsAndData.Length - 1) + ", series: " + series + "}";

            //Add width and height. This might or not be the right decision here.
            if (jsonOptionsAndData.Contains("{\"chart\":{"))
            {
                jsonOptionsAndData = jsonOptionsAndData.Replace("{\"chart\":{", "{\"chart\":{width: 1000, height: 800,");
            }

            return(jsonOptionsAndData);
        }