private void DrawBarChart()
        {
            List <BarEntry> datalist = new List <BarEntry>();

            labelnames = new List <string>();
            for (int i = 0; i < lstbarChartData.Count; i++)
            {
                string month = lstbarChartData[i].Month;
                double total = lstbarChartData[i].Total;
                datalist.Add(new BarEntry(i, (float)total));
                labelnames.Add(month);
            }
            var SelectedMonthindex = labelnames.IndexOf(SelectedMonth.Substring(0, 3));

            int[] colors = new int[12];
            for (int i = 0; i < labelnames.Count; i++)
            {
                if (i == SelectedMonthindex)
                {
                    colors[i] = Android.Graphics.Color.ParseColor("#efbe5d");
                }
                else
                {
                    colors[i] = Android.Graphics.Color.ParseColor("#204060");
                }
            }


            prefs = PreferenceManager.GetDefaultSharedPreferences(this);
            MikePhil.Charting.Data.BarDataSet barDataSet = new MikePhil.Charting.Data.BarDataSet(datalist, "Months");
            barDataSet.SetColors(colors);
            barDataSet.ValueTextSize = 8.5f;
            BarData barData = new BarData(barDataSet);

            barData.HighlightEnabled = false;
            barchartStats.Data       = barData;

            // YAxis yAxis = barchartStats.AxisLeft;
            // yAxis.ValueFormatter = new IndexAxisValueFormatter(labelnames);
            XAxis xAxis = barchartStats.XAxis;

            xAxis.ValueFormatter = new IndexAxisValueFormatter(labelnames);

            xAxis.Position = XAxis.XAxisPosition.Top;
            xAxis.YOffset  = -4f;
            xAxis.SetDrawAxisLine(false);
            xAxis.SetDrawGridLines(false);
            xAxis.Granularity = 1f;
            xAxis.SetLabelCount(lstbarChartData.Count, false);
            xAxis.LabelRotationAngle = 270f;
            barchartStats.AnimateY(1000);

            barchartStats.Invalidate();

            progressBarStats.Visibility = ViewStates.Invisible;
            barchartStats.Visibility    = ViewStates.Visible;
            statsdata.Visibility        = ViewStates.Invisible;
            statstype.Text = "Total expense for the year" + "(" + SelectedYear + ")" + " = " + prefs.GetString("CurrencySymbolSelected", "") + lstbarChartData.Sum(x => Convert.ToDouble(x.Total));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Takes the month selected and stores it in a varaible reformting the string so that it always repsresents the month as the first day of the month selected
        /// </summary>
        /// <param></param>
        /// <returns>The selected month as a string</returns>
        protected void calDate_SelectionChanged(object sender, EventArgs e)
        {
            string SelectedMonth;

            SelectedMonth         = calDate.SelectedDate.ToString("d");
            SelectedMonth         = "01" + SelectedMonth.Substring(2, 8);
            txtDate.Text          = SelectedMonth;
            dateField.Style.Value = "display:none;";
        }
 public void SetupMonthSpinner()
 {
     adapter = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem, months);
     adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
     monthspinner.Adapter       = adapter;
     monthspinner.ItemSelected += Monthspinner_ItemSelected;
     if (SelectedMonth != null)
     {
         int spinnerPosition = adapter.GetPosition(SelectedMonth.Substring(0, 3));
         monthspinner.SetSelection(spinnerPosition);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Takes the month selected and stores it in a varaible reformating the string so that it always repsresents the month as the first day of the month selected
        /// </summary>
        /// <param></param>
        /// <returns>The selected month as a string</returns>
        protected void calDate_SelectionChanged(object sender, EventArgs e)
        {
            //Clear the validation text in case a previous selection caused an error message
            validateTxtDate.Text = "";

            string SelectedMonth;

            SelectedMonth         = calDate.SelectedDate.ToString("d");
            SelectedMonth         = "01" + SelectedMonth.Substring(2, 8);
            txtDate.Text          = SelectedMonth;
            dateField.Style.Value = "display:none;";
        }
Exemplo n.º 5
0
 public void LoadCardsOnPopup(PaymentListModel paymentListModel)
 {
     Number        = (paymentListModel.CARD_NUMBER ?? "").ToString();
     Chname        = paymentListModel.CARD_HOLDER_NAME;
     SelectedMonth = paymentListModel.CARD_EXP_DATE;
     if (!(SelectedMonth == null))
     {
         SelectedMonth = SelectedMonth.Substring(0, 2);
     }
     SelectedYear = paymentListModel.CARD_EXP_DATE;
     if (!(SelectedYear == null))
     {
         SelectedYear = "20" + SelectedYear.Substring(2, 2);
     }
 }
        private void DrawPieChart()
        {
            List <PieEntry> datalist = new List <PieEntry>();

            int[] colors = new int[14];
            for (int i = 0; i < lstPieChartDataValue.Count; i++)
            {
                string expensecategory = lstPieChartDataValue[i].ExpenseCategory;
                double total           = lstPieChartDataValue[i].Total;
                datalist.Add(new PieEntry((float)total, expensecategory));

                switch (expensecategory)
                {
                case "Food and Dining":
                    colors[i] = Android.Graphics.Color.ParseColor("#FFA500");
                    break;

                case "Shopping":
                    colors[i] = Android.Graphics.Color.ParseColor("#40C4FF");
                    break;

                case "Travelling":
                    colors[i] = Android.Graphics.Color.ParseColor("#00BFA5");
                    break;

                case "Entertainment":
                    colors[i] = Android.Graphics.Color.ParseColor("#e49ef0");
                    break;

                case "Medical":
                    colors[i] = Android.Graphics.Color.ParseColor("#FF0000");
                    break;

                case "Personal Care":
                    colors[i] = Android.Graphics.Color.ParseColor("#0EDBDB");
                    break;

                case "Education":
                    colors[i] = Android.Graphics.Color.ParseColor("#1b49f2");
                    break;

                case "Bills and Utilities":
                    colors[i] = Android.Graphics.Color.ParseColor("#006600");
                    break;

                case "Banking":
                    colors[i] = Android.Graphics.Color.ParseColor("#FFAB91");
                    break;

                case "Rent":
                    colors[i] = Android.Graphics.Color.ParseColor("#9E9D24");
                    break;

                case "Taxes":
                    colors[i] = Android.Graphics.Color.ParseColor("#DB32B1");
                    break;

                case "Insurance":
                    colors[i] = Android.Graphics.Color.ParseColor("#AA00FF");
                    break;

                case "Gifts and Donations":
                    colors[i] = Android.Graphics.Color.ParseColor("#8699E3");
                    break;

                case "Other":
                    colors[i] = Android.Graphics.Color.ParseColor("#695e5e");
                    break;
                }
            }
            prefs = PreferenceManager.GetDefaultSharedPreferences(this);
            MikePhil.Charting.Data.PieDataSet pieDataSet = new MikePhil.Charting.Data.PieDataSet(datalist, "");
            pieDataSet.YValuePosition = PieDataSet.ValuePosition.OutsideSlice;
            //pieDataSet.ValueLinePart1OffsetPercentage=100f; /** When valuePosition is OutsideSlice, indicates offset as percentage out of the slice size */
            pieDataSet.ValueLinePart1Length = 0.4f; /** When valuePosition is OutsideSlice, indicates length of first half of the line */
            pieDataSet.ValueLinePart2Length = 0.4f;
            pieDataSet.SliceSpace           = 0.5f;
            pieDataSet.SelectionShift       = 5f;
            Java.Util.Random rnd = new Java.Util.Random();
            //int[] colors = new int[lstExpenseCategories.Count];
            //for (int i = 0; i < lstExpenseCategories.Count; i++)
            //{
            //    Android.Graphics.Color randomColor = Android.Graphics.Color.Rgb(rnd.NextInt(256), rnd.NextInt(256), rnd.NextInt(256));
            //    colors[i] = randomColor;
            //}


            pieDataSet.SetColors(colors);
            // pieDataSet.SetColors(PieChartColors.piecharcolors.Take(lstExpenseCategories.Count).ToArray());
            // pieDataSet.Colors = ColorTemplate.MaterialColors.Select(c => new Java.Lang.Integer(c)).ToList();
            pieDataSet.ValueTextSize          = 10f;
            pieDataSet.ValueTextColor         = Android.Graphics.Color.Black;
            piechartStats.Description.Enabled = false;
            piechartStats.CenterText          = "";

            Legend l = piechartStats.Legend;

            l.VerticalAlignment   = Legend.LegendVerticalAlignment.Bottom;
            l.HorizontalAlignment = Legend.LegendHorizontalAlignment.Left;
            l.Orientation         = Legend.LegendOrientation.Horizontal;
            l.WordWrapEnabled     = true;
            l.SetDrawInside(false);
            l.Enabled = true;
            piechartStats.SetExtraOffsets(0f, 2f, 0f, 2f);
            piechartStats.SetDrawEntryLabels(false);

            PieData pieData = new PieData(pieDataSet);

            piechartStats.Data = pieData;

            piechartStats.AnimateXY(1000, 1000);
            piechartStats.Invalidate();
            progressBarStats.Visibility = ViewStates.Invisible;
            piechartStats.Visibility    = ViewStates.Visible;
            statsdata.Visibility        = ViewStates.Invisible;
            generatePDF.Visibility      = ViewStates.Visible;
            statstype.Text = "Total expense for the month" + "(" + SelectedMonth.Substring(0, 3) + ")" + " = " + prefs.GetString("CurrencySymbolSelected", "") + lstPieChartDataValue.Sum(x => Convert.ToDouble(x.Total));
        }
        public void OnSuccess(Java.Lang.Object result)
        {
            if (IsPieChartSeleted)
            {
                lstExpenseCategories = new List <string>();
                lstPieChartData      = new List <PieChartData>();
                lstPieChartDataValue = new List <PieChartDataValue>();

                var snapshot = (QuerySnapshot)result;

                if (!snapshot.IsEmpty)
                {
                    var documents = snapshot.Documents;
                    foreach (DocumentSnapshot docitem in documents)
                    {
                        var itemName = docitem.Get("ItemName").ToString();
                        if (!lstExpenseCategories.Contains(itemName))
                        {
                            lstExpenseCategories.Add(itemName);
                        }
                        lstPieChartData.Add(new PieChartData {
                            ExpenseCategory = docitem.Get("ItemName").ToString(), ExpenseDescription = docitem.Get("Description").ToString(), ExpenseDate = docitem.Get("Date").ToString(), Amount = docitem.Get("Amount").ToString()
                        });
                    }

                    foreach (var item in lstExpenseCategories)
                    {
                        var ExpenseCategoryItem = item;
                        lstPieChartDataValue.Add(new PieChartDataValue {
                            ExpenseCategory = ExpenseCategoryItem, Total = lstPieChartData.Where(x => x.ExpenseCategory == ExpenseCategoryItem).Select(x => x.Amount).Sum(x => Convert.ToDouble(x))
                        });
                    }
                    DrawPieChart();
                }
                else
                {
                    generatePDF.Visibility      = ViewStates.Invisible;
                    progressBarStats.Visibility = ViewStates.Invisible;
                    statsdata.Visibility        = ViewStates.Visible;
                    statstype.Text = "Total expense for the month" + "(" + SelectedMonth.Substring(0, 3) + ")" + " = " + prefs.GetString("CurrencySymbolSelected", "") + lstPieChartDataValue.Sum(x => Convert.ToDouble(x.Total));
                }
            }
            else
            {
                TotalExpenseJan = new List <string>();
                TotalExpenseFeb = new List <string>();
                TotalExpenseMar = new List <string>();
                TotalExpenseApr = new List <string>();
                TotalExpenseMay = new List <string>();
                TotalExpenseJun = new List <string>();
                TotalExpenseJul = new List <string>();
                TotalExpenseAug = new List <string>();
                TotalExpenseSep = new List <string>();
                TotalExpenseOct = new List <string>();
                TotalExpenseNov = new List <string>();
                TotalExpenseDec = new List <string>();
                lstbarChartData = new List <BarChartData>();
                var snapshot = (QuerySnapshot)result;

                if (!snapshot.IsEmpty)
                {
                    var documents = snapshot.Documents;
                    foreach (DocumentSnapshot docitem in documents)
                    {
                        var month = docitem.Get("DateMonth").ToString();
                        switch (month)
                        {
                        case "January":
                            TotalExpenseJan.Add(docitem.Get("Amount").ToString());
                            break;

                        case "February":
                            TotalExpenseFeb.Add(docitem.Get("Amount").ToString());
                            break;

                        case "March":
                            TotalExpenseMar.Add(docitem.Get("Amount").ToString());
                            break;

                        case "April":
                            TotalExpenseApr.Add(docitem.Get("Amount").ToString());
                            break;

                        case "May":
                            TotalExpenseMay.Add(docitem.Get("Amount").ToString());
                            break;

                        case "June":
                            TotalExpenseJun.Add(docitem.Get("Amount").ToString());
                            break;

                        case "July":
                            TotalExpenseJul.Add(docitem.Get("Amount").ToString());
                            break;

                        case "August":
                            TotalExpenseAug.Add(docitem.Get("Amount").ToString());
                            break;

                        case "September":
                            TotalExpenseSep.Add(docitem.Get("Amount").ToString());
                            break;

                        case "October":
                            TotalExpenseOct.Add(docitem.Get("Amount").ToString());
                            break;

                        case "November":
                            TotalExpenseNov.Add(docitem.Get("Amount").ToString());
                            break;

                        case "December":
                            TotalExpenseDec.Add(docitem.Get("Amount").ToString());
                            break;
                        }
                    }
                    lstbarChartData.Add(new BarChartData {
                        Month = "Jan", Total = TotalExpenseJan.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Feb", Total = TotalExpenseFeb.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Mar", Total = TotalExpenseMar.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Apr", Total = TotalExpenseApr.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "May", Total = TotalExpenseMay.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Jun", Total = TotalExpenseJun.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Jul", Total = TotalExpenseJul.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Aug", Total = TotalExpenseAug.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Sep", Total = TotalExpenseSep.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Oct", Total = TotalExpenseOct.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Nov", Total = TotalExpenseNov.Sum(x => Convert.ToDouble(x))
                    });
                    lstbarChartData.Add(new BarChartData {
                        Month = "Dec", Total = TotalExpenseDec.Sum(x => Convert.ToDouble(x))
                    });
                    DrawBarChart();
                    generatePDF.Visibility = ViewStates.Invisible;
                }
                else
                {
                    generatePDF.Visibility      = ViewStates.Invisible;
                    progressBarStats.Visibility = ViewStates.Invisible;
                    statsdata.Visibility        = ViewStates.Visible;
                    statstype.Text = "Total expense for the year" + "(" + SelectedYear + ")" + " = " + prefs.GetString("CurrencySymbolSelected", "") + lstbarChartData.Sum(x => Convert.ToDouble(x.Total));
                }
            }
        }