Ejemplo n.º 1
0
        public void LoadPayments()
        {
            var db    = new Data.GymContextDataContext();
            var trans = db.Transactions.AsQueryable();

            if (_fromDate != null)
            {
                trans = trans.Where(t => t.Datetime >= _fromDate);
            }

            if (_toDate != null)
            {
                trans = trans.Where(t => t.Datetime <= _toDate);
            }

            if (_memberId != null)
            {
                trans = trans.Where(t => t.MemberId == _memberId);
            }

            if (_type != null)
            {
                trans = trans.Where(t => t.Type == (byte)_type);
            }

            var list = trans.ToList().Select(t => new { t.Amount, Datetime = t.Datetime.ToFa(), t.Type, t.Method, Member = t.Member.Fullname(), t.Info });

            DataGrid.DataContext = list;
        }
Ejemplo n.º 2
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var db = new Data.GymContextDataContext();

            Data.Setting insurance = db.Settings.Where(s => s.Key == "insurance_price").FirstOrDefault();
            txtInsurancePrice.Value = int.Parse(insurance.Value);

            Data.Setting singlesession = db.Settings.Where(s => s.Key == "single_price").FirstOrDefault();
            txtSingleSessionPrice.Value = int.Parse(singlesession.Value);

            Data.Setting extend = db.Settings.Where(s => s.Key == "extend_days").FirstOrDefault();
            txtExtendDays.Value = int.Parse(extend.Value);

            Data.Setting transithours = db.Settings.Where(s => s.Key == "transit_hours").FirstOrDefault();
            txtTransitHours.Value = int.Parse(transithours.Value);

            Data.Setting title = db.Settings.Where(s => s.Key == "app_title").FirstOrDefault();
            txtTitle.Text = title.Value.ToString();

            Data.Setting closetwidth = db.Settings.Where(s => s.Key == "closets_width").FirstOrDefault();
            txtClosetsWidth.Value = int.Parse(closetwidth.Value);

            Data.Setting infotimeout = db.Settings.Where(s => s.Key == "info_timeout").FirstOrDefault();
            txtInfoTimeout.Value = int.Parse(infotimeout.Value);

            Data.Setting guestfinger = db.Settings.Where(s => s.Key == "guest_finger_id").FirstOrDefault();
            txtGuestFinger.Value = int.Parse(guestfinger.Value);
        }
Ejemplo n.º 3
0
        public bool PassingMember(string code, DateTime date)
        {
            int finger = 0;

            int.TryParse(code, out finger);
            var db     = new Data.GymContextDataContext();
            var member = db.Members.Where(m => m.FingerId == finger).FirstOrDefault();

            if (member == null) //finger-owner not found
            {
                if (Notifications.Tresspasses == "")
                {
                    Notifications.Tresspasses = "0";
                }
                Notifications.Tresspasses = (int.Parse(Notifications.Tresspasses) + 1).ToString();
                return(false);
            }
            else //finger-owner found
            {
                MembersSearch search = new MembersSearch();
                search.Closed += Form_Closed;
                search.Type    = Domain.Enums.MemberSelectionCategory.MembersTransit;
                search.LoadSingleMember(member);

                try
                {
                    search.Show();
                    return(true);
                }
                catch {
                    return(false);
                }
            }
        }
Ejemplo n.º 4
0
        private void Dialog_Closing(object sender, MaterialDesignThemes.Wpf.DialogClosingEventArgs eventArgs)
        {
            var confirmed = (bool)eventArgs.Parameter;

            if (confirmed)
            {
                if (!string.IsNullOrEmpty(txtFirstName.Text) && !string.IsNullOrEmpty(txtLastName.Text) &&
                    !string.IsNullOrEmpty(txtMobile.Text))
                {
                    int?id;
                    if (Member.Id == 0)
                    {
                        Member              = new MemberVM();
                        Member.Firstname    = txtFirstName.Text;
                        Member.Lastname     = txtLastName.Text;
                        Member.Mobile       = txtMobile.Text;
                        Member.NationalCode = txtNationalCode.Text;
                        Member.IsRegular    = false;
                        id = Member.Insert();
                        db = new Data.GymContextDataContext();
                    }
                    else
                    {
                        id = Member.Id;
                    }
                    if (id.HasValue)
                    {
                        Member.Id = id.Value;
                        Data.Passage enter = new Data.Passage {
                            IsEntrance = true, MemberId = id.Value, Time = DateTime.Now
                        };

                        byte method = (byte)(rdCash.IsChecked == true ? 0 : (rdPos.IsChecked == true ? 1 : (rdCard.IsChecked == true ? 2 : 3)));

                        Data.Transaction pay = new Data.Transaction
                        {
                            Amount   = txtPayable.Value,
                            Datetime = DateTime.Now,
                            Info     = "تک جلسه" + (txtFacilityCost.Value > 0 ? " + امکانات" : ""),
                            MemberId = id.Value,
                            Method   = method,
                            UserId   = Main.CurrentUser.Id,
                            Type     = (byte)TransactionType.SingleSession
                        };

                        db.Passages.InsertOnSubmit(enter);
                        db.Transactions.InsertOnSubmit(pay);
                        db.SubmitChanges();

                        Member.UseCloset(db);

                        var main = Application.Current.Windows.Cast <Window>().ToList().Find(w => w.GetType().Name == "Main") as Main;
                        main.TransitList.UpdatePassages();

                        Main.Home.Closets.LoadClosets();
                    }
                }
            }
            this.Close();
        }
Ejemplo n.º 5
0
        private void BuyGood_Click(object sender, RoutedEventArgs e)
        {
            BuyGoods.Visibility    = Visibility.Visible;
            DefineGoods.Visibility = Visibility.Collapsed;

            db = new GymContextDataContext();

            var good = ((FrameworkElement)sender).DataContext as Data.Good;

            good              = db.Goods.Where(g => g.Id == good.Id).FirstOrDefault();
            BuyingGoodId      = good.Id;
            txtBuyName.Text   = good.Name;
            txtBuyCount.Value = 0;
            if (good.Trades.Any(t => !t.IsSold))
            {
                txtBuyPrice.Value = good.Trades.Where(t => !t.IsSold).OrderByDescending(t => t.Id)
                                    .FirstOrDefault().Price;
            }
            else
            {
                txtBuyPrice.Value = 0;
            }

            DialogHost.IsOpen = true;
            Main.Home.CheckupOrderPoints();
        }
Ejemplo n.º 6
0
        private void Dialog_Closing(object sender, MaterialDesignThemes.Wpf.DialogClosingEventArgs eventArgs)
        {
            if (MemberId > 0)
            {
                var confirmed = (bool)eventArgs.Parameter;
                if (confirmed)
                {
                    Data.GymContextDataContext db = new Data.GymContextDataContext();

                    byte method = (byte)(rdCash.IsChecked == true ? 0 : (rdPos.IsChecked == true ? 1 : (rdCard.IsChecked == true ? 2 : 3)));

                    Data.Transaction transaction = new Data.Transaction();
                    transaction.Amount   = txtChargeCredit.Value;
                    transaction.Datetime = DateTime.Now;
                    transaction.Info     = txtInfo.Text;
                    transaction.MemberId = MemberId;
                    transaction.UserId   = Main.CurrentUser.Id;
                    transaction.Method   = method;
                    transaction.Type     = (byte)TransactionType.Credit;

                    var member = db.Members.Where(m => m.Id == MemberId).FirstOrDefault();
                    member.Credit += transaction.Amount;

                    db.Transactions.InsertOnSubmit(transaction);
                    db.SubmitChanges();

                    txtCredit.Text = $"{member.Credit:n0}";
                    Main.Home.CheckupCreditDebtors();
                }
                else
                {
                    Dynamics.LastEscapeTime = DateTime.Now;
                }
            }
        }
Ejemplo n.º 7
0
        public static bool UseCloset(this MemberVM memberVM, Data.GymContextDataContext db)
        {
            if (memberVM.ClosetId != null) //If has rented closet
            {
                var freecloset = db.Closets.Where(c => c.Id == memberVM.ClosetId).FirstOrDefault();
                if (freecloset != null)
                {
                    freecloset.IsFree = false;
                    freecloset.UserId = memberVM.Id;

                    db.ClosetUsages.InsertOnSubmit(new ClosetUsage
                    {
                        MemberId = memberVM.Id,
                        ClosetId = freecloset.Id,
                        FromTime = DateTime.Now,
                    });
                    db.SubmitChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else //give them a proper closet
            {
                var isVIP = (from e in db.Enrolls
                             where e.MemberId == memberVM.Id &&
                             e.StartDate <= DateTime.Now &&
                             e.ExpireDate >= DateTime.Now
                             select e.EnrollCourses.Any(c => c.Course.IsVIP)).ToList().FirstOrDefault();

                var freecloset = db.Closets.Where(c =>
                                                  c.IsVip == isVIP &&
                                                  c.IsFree &&
                                                  c.RentorId == null &&
                                                  !c.IsCoach &&
                                                  !c.IsBroken).FirstOrDefault();

                if (freecloset != null)
                {
                    freecloset.IsFree = false;
                    freecloset.UserId = memberVM.Id;

                    db.ClosetUsages.InsertOnSubmit(new ClosetUsage
                    {
                        MemberId = memberVM.Id,
                        ClosetId = freecloset.Id,
                        FromTime = DateTime.Now,
                    });
                    db.SubmitChanges();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Ejemplo n.º 8
0
        public void CheckupCreditDebtors()
        {
            var db = new Data.GymContextDataContext();

            var count = db.Members.Where(m => !m.IsDeleted && m.Credit < 0).Count();

            //var d3 = db.Enrolls.Where(e=>e.Idd == 3).Select(e=>e.EnrollPayments.Sum(p => p.Transaction.Amount ?? 0)).ToList();
            Notifications.CaffeDebtors = count > 0 ? count.ToString() : "";
        }
Ejemplo n.º 9
0
        public void CheckupOrderPoints()
        {
            var db = new Data.GymContextDataContext();

            var count = db.Goods.Where(g => g.Count <= g.OrderPoint).Count();

            //var d3 = db.Enrolls.Where(e=>e.Id == 3).Select(e=>e.EnrollPayments.Sum(p => p.Transaction.Amount ?? 0)).ToList();
            Notifications.OrderTimes = count > 0 ? count.ToString() : "";
        }
Ejemplo n.º 10
0
        private void RefreshGrid()
        {
            db = new GymContextDataContext();
            List <Data.POS> poses = db.POS.ToList();

            DataList = new ObservableCollection <Data.POS>(poses);

            GoodsGrid.DataContext = poses;
        }
Ejemplo n.º 11
0
        public void LoadClosets()
        {
            db = new Data.GymContextDataContext();
            var closets = db.Closets;

            closetsStackPanel.Children.Clear();
            foreach (Data.Closet closet in closets)
            {
                //ClosetStates state;
                //if (closet.IsBroken)
                //    state = ClosetStates.Broken;
                //else if (closet.UserId != null)
                //    state = ClosetStates.InUse;
                //else
                //{
                //    if (closet.IsVip) state = ClosetStates.VIP;
                //    else state = ClosetStates.Free;
                //}


                //Closet c = new Closet { ClosetState = state, Number = closet.Id + 1, Height = ClosetSize, DataContext = closet };
                Closet c = new Closet
                {
                    //ClosetState = state,
                    Height      = ClosetSize,
                    ClosetModel = new ViewModels.ClosetVM
                    {
                        Id       = closet.Id,
                        IsBroken = closet.IsBroken,
                        IsVIP    = closet.IsVip,
                        IsRented = closet.Rentor != null,
                        IsFree   = closet.IsFree,
                        IsCoach  = closet.IsCoach,
                        Rentor   = closet.Rentor,
                        User     = closet.User
                                   //closet.ClosetUsages.Any(u => u.ClosetId == closet.Id && u.ToTime == null) ?
                                   //         closet.ClosetUsages.Where(u => u.ClosetId == closet.Id && u.ToTime == null)
                                   //        .OrderByDescending(u => u.Id).FirstOrDefault().Member.Fullname() : ""
                    }
                };

                if (ClosetSelected != null)
                {
                    c.Type              = Enums.ClosetFormType.Selection;
                    c.MouseDoubleClick += (s, me) =>
                    {
                        if (closet.RentorId == null)
                        {
                            ClosetSelected(closet.Id);
                        }
                    };
                }
                //c.MouseDoubleClick += Closet_MouseDoubleClick;
                closetsStackPanel.Children.Add(c);
            }
        }
Ejemplo n.º 12
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            this.Hide();

            this.DataContext = Notifications;

            Domain.Dynamics.Refresh();
            ResizeClosets();
            CheckupTuitionDebtors();
            CheckupCreditDebtors();
            CheckupExtenders();
            CheckupOrderPoints();
            Notifications.Tresspasses = "";
            LoadTitle();

            Data.GymContextDataContext db = new Data.GymContextDataContext();
            //if (db.Closets.Count() == 0)
            //{
            //    for (int i = 0; i < 80; i++)
            //    {
            //        var c = new Data.Closet { Id = i + 1, IsVip = false, IsFree = true };
            //        if (i > 10 && i < 20)
            //            c.IsBroken = true;
            //        //if (i > 35 && i <= 40)
            //        //    c.IsFree = false;
            //        db.Closets.InsertOnSubmit(c);
            //    }
            //    for (int i = 80; i < 120; i++)
            //    {
            //        var c = new Data.Closet { Id = i + 1, IsVip = true, IsFree = true };
            //        if (i > 115)
            //            c.IsBroken = true;
            //        db.Closets.InsertOnSubmit(c);
            //    }
            //    db.SubmitChanges();
            //}
            //db.Closets.FirstOrDefault().UserId = 1;
            //db.Closets.Where(c => c.Id == 2 || c.Id == 3).ToList().ForEach(c =>
            //    { c.IsFree = false; c.RentorId = c.Id - 1; }
            //);
            //db.ClosetUsages.InsertOnSubmit(new ClosetUsage
            //{
            //    ClosetId = 1,
            //    MemberId = 1,
            //    FromTime = DateTime.Now.AddHours(-1)
            //});
            //db.Closets.Where(c => c.Id == 100).FirstOrDefault().UserId = 2;
            //db.Closets.Where(c => c.Id == 2).FirstOrDefault().UserId = 4;
            //db.SubmitChanges();
            //db.Passages.ToList().ForEach(p => p.Time = p.Time.AddDays((DateTime.Today - p.Time.Date).Days));
            //db.SubmitChanges();


            (new Login()).ShowDialog();
            SetBackground();
        }
Ejemplo n.º 13
0
        private void RefreshGrid()
        {
            var db = new Data.GymContextDataContext();

            var query =
                from u in db.ClosetUsages
                select u;

            if (txtName.Text.Length > 0)
            {
                query = query.Where(t => (t.Member.Firstname + " " + t.Member.Lastname).Contains(txtName.Text));
            }

            if (Date1.Date != "")
            {
                if (Time1.SelectedTime.HasValue)
                {
                    query = query.Where(t => t.FromTime >= Date1.Date.ToEn().Value.Add(Time1.SelectedTime.Value.TimeOfDay));
                }
                else
                {
                    query = query.Where(t => t.FromTime >= Date1.Date.ToEn());
                }
            }
            if (Date2.Date != "")
            {
                if (Time2.SelectedTime.HasValue)
                {
                    query = query.Where(t => t.ToTime <= Date2.Date.ToEn().Value.Add(Time2.SelectedTime.Value.TimeOfDay));
                }
                else
                {
                    query = query.Where(t => t.ToTime <= Date2.Date.ToEn());
                }
            }

            //if (InRadioButton.IsChecked.Value != OutRadioButton.IsChecked.Value)
            //    query = query.Where(t => t.IsEntrance == InRadioButton.IsChecked.Value);

            query = query.OrderByDescending(i => i.FromTime).ThenByDescending(i => i.ToTime);

            var items = query.ToList().Select(
                t => new
            {
                Id       = t.ClosetId,
                IsVip    = t.Closet.IsVip ? "VIP" : "",
                Member   = t.Member.Fullname(),
                FromTime = t.FromTime.ToFaTime(),
                ToTime   = t.ToTime.HasValue ? t.ToTime.Value.ToFaTime() : "بدون خروج"
            }).ToList();

            PassageList = new ObservableCollection <dynamic>(items);

            CostsGrid.DataContext = PassageList;
        }
Ejemplo n.º 14
0
        internal void ResetBackground()
        {
            var _Image = new BitmapImage(new Uri(System.AppDomain.CurrentDomain.BaseDirectory + "/CamelBackground.jpg"));

            BackGroundImageBrush.ImageSource = _Image;
            //Domain.Dynamics.BackgroundImage = "background.jpg";
            var db = new Data.GymContextDataContext();

            Data.Setting background = db.Settings.Where(s => s.Key == "background_image").FirstOrDefault();
            background.Value = "CamelBackground.jpg";
        }
Ejemplo n.º 15
0
        private void LoadBarChartData()
        {
            var db = new Data.GymContextDataContext();

            var costs = db.Transactions.Where(t => t.CostId != null);

            if (!string.IsNullOrEmpty(Date1.Date))
            {
                costs = costs.Where(c => c.Datetime >= Date1.Date.ToEn());
            }
            if (!string.IsNullOrEmpty(Date2.Date))
            {
                costs = costs.Where(c => c.Datetime <= Date2.Date.ToEn().Value.Date.AddDays(1).AddSeconds(-1));
            }

            var incomes = db.Transactions.Where(t => new int[] { (int)TransactionType.Tuition, (int)TransactionType.SingleSession }.Contains(t.Type));

            if (!string.IsNullOrEmpty(Date1.Date))
            {
                incomes = incomes.Where(i => i.Datetime >= Date1.Date.ToEn());
            }
            if (!string.IsNullOrEmpty(Date2.Date))
            {
                incomes = incomes.Where(i => i.Datetime <= Date2.Date.ToEn().Value.Date.AddDays(1).AddSeconds(-1));
            }

            var pair1 = new List <KeyValuePair <string, int> >();

            costs.GroupBy(c => c.Cost).ToList().ForEach(c =>
            {
                pair1.Add(new KeyValuePair <string, int>(c.Key.Category, c.Sum(t => t.Amount)));
            });

            var pair2 = new List <KeyValuePair <string, int> >();

            incomes.GroupBy(i => i.Type).ToList().ForEach(i =>
            {
                pair2.Add(new KeyValuePair <string, int>(((TransactionType)i.Key).GetName(), i.Sum(t => t.Amount)));
            });

            ((ColumnSeries)chart.Series[0]).ItemsSource =
                pair2;
            ((ColumnSeries)chart.Series[1]).ItemsSource =
                pair1;
            //        new KeyValuePair<string, int>[]{
            //new KeyValuePair<string,int>("Project Manager", 12),
            //new KeyValuePair<string,int>("CEO", 25),
            //new KeyValuePair<string,int>("Software Engg.", 5),
            //new KeyValuePair<string,int>("Team Leader", 6),
            //new KeyValuePair<string,int>("Project Leader", 10),
            //new KeyValuePair<string,int>("Developer", 4) };
        }
Ejemplo n.º 16
0
        public static bool FreeUpCloset(this MemberVM memberVM, Data.GymContextDataContext db)
        {
            var occupiedclosets = db.ClosetUsages.Where(c => c.ToTime == null && c.MemberId == memberVM.Id);

            foreach (ClosetUsage closet in occupiedclosets)
            {
                closet.Closet.IsFree = true;
                closet.Closet.UserId = null;
                closet.ToTime        = DateTime.Now;
            }

            db.SubmitChanges();
            return(true);
        }
Ejemplo n.º 17
0
        static public void Refresh()
        {
            var db = new Data.GymContextDataContext();

            _InsuranceFee        = int.Parse(db.Settings.Where(s => s.Key == "insurance_price").FirstOrDefault().Value);
            _SingleSessionPrice  = int.Parse(db.Settings.Where(s => s.Key == "single_price").FirstOrDefault().Value);
            _ExtendDaysInterval  = int.Parse(db.Settings.Where(s => s.Key == "extend_days").FirstOrDefault().Value);
            _TransitFarthestHour = int.Parse(db.Settings.Where(s => s.Key == "transit_hours").FirstOrDefault().Value);
            _AppTitle            = db.Settings.Where(s => s.Key == "app_title").FirstOrDefault().Value;
            _GuestFingerId       = db.Settings.Where(s => s.Key == "guest_finger_id").FirstOrDefault().Value;
            _ClosetsWidth        = int.Parse(db.Settings.Where(s => s.Key == "closets_width").FirstOrDefault().Value);
            _InfoTimeout         = int.Parse(db.Settings.Where(s => s.Key == "info_timeout").FirstOrDefault().Value);
            //_BackgroundImage = db.Settings.Where(s => s.Key == "background_image").FirstOrDefault().Value;
        }
Ejemplo n.º 18
0
        public void CheckupExtenders()
        {
            var db = new Data.GymContextDataContext();

            var d = Domain.Dynamics.ExtendDaysInterval;

            var count = db.Enrolls.Where(e =>
                                         e.IsActive &&
                                         e.StartDate < DateTime.Now &&
                                         e.ExpireDate >= DateTime.Today &&
                                         e.ExpireDate <= DateTime.Today.AddDays(d)).GroupBy(e => e.MemberId).Count();

            //var d3 = db.Enrolls.Where(e=>e.Id == 3).Select(e=>e.EnrollPayments.Sum(p => p.Transaction.Amount ?? 0)).ToList();
            Notifications.Extenders = count > 0 ? count.ToString() : "";
        }
Ejemplo n.º 19
0
        private void RefreshGrid()
        {
            db = new GymContextDataContext();
            IQueryable <Good> query = db.Goods;

            if (FilterGoodsBelowOrderPoint)
            {
                query = query.Where(g => g.Count <= g.OrderPoint);
            }
            var goods = query.ToList();

            DataList = new ObservableCollection <Data.Good>(goods);

            GoodsGrid.DataContext = goods;
        }
Ejemplo n.º 20
0
        public static int?Insert(this MemberVM memberVM)
        {
            try
            {
                var db  = new Data.GymContextDataContext();
                var obj = new Data.Member(); db.Members.InsertOnSubmit(obj);
                obj.Address        = memberVM.Address;
                obj.FingerId       = memberVM.FingerId;
                obj.Birthdate      = memberVM.BirthDate?.ToFa();
                obj.Dadsname       = memberVM.Fathername;
                obj.Description    = memberVM.Description;
                obj.Firstname      = memberVM.Firstname;
                obj.Lastname       = memberVM.Lastname;
                obj.Mobile         = memberVM.Mobile;
                obj.NationalCode   = memberVM.NationalCode;
                obj.IsRegular      = memberVM.IsRegular;
                obj.UserId         = Windows.Main.CurrentUser.Id;
                obj.IsActive       = true;
                obj.Image          = Guid.NewGuid().ToString();
                memberVM.ImagePath = obj.Image;
                db.SubmitChanges();

                var closet = db.Closets.Where(c => c.Id == memberVM.ClosetId).FirstOrDefault();
                if (closet != null)
                {
                    closet.RentorId = obj.Id;
                }

                db.SubmitChanges();

                if (memberVM.Image != null)
                {
                    try
                    {
                        memberVM.Image.Save(AppDomain.CurrentDomain.BaseDirectory + $"/Images/{obj.Image}.jpg");
                    }
                    catch
                    {
                    }
                }

                return(obj.Id);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Ejemplo n.º 21
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var db  = new Data.GymContextDataContext();
            var amb = (from m in db.Members
                       where m.Passages.Any() &&
                       m.Passages.OrderByDescending(p => p.Id).FirstOrDefault().IsEntrance == true
                       select new { Id = m.Id, Name = m.Firstname + " " + m.Lastname }).ToList();

            amb.ForEach(m =>
            {
                Holder.Children.Add(new CheckBox {
                    Content = m.Name, Style = sample.Style, Tag = m.Id, HorizontalContentAlignment = HorizontalAlignment.Right
                });
            });
            DialogHost.IsOpen = true;
        }
Ejemplo n.º 22
0
        bool AlertMembersWithoutExit()
        {
            var db = new Data.GymContextDataContext();

            bool any = (from m in db.Members
                        where m.Passages.Any() &&
                        m.Passages.OrderByDescending(p => p.Id).FirstOrDefault().IsEntrance == true
                        select m).Any();

            if (any)
            {
                return(new AmbiguousMembersAlert().ShowDialog().Value);
            }
            else
            {
                return(true);
            }
        }
Ejemplo n.º 23
0
        private void LoadBarChartData()
        {
            var db     = new Data.GymContextDataContext();
            var pc     = new PersianCalendar();
            int year   = int.Parse(cmbYear.SelectedValue as string),
                month1 = rdMonthReport.IsChecked == true ? cmbMonth.SelectedIndex + 1 : 1,
                month2 = rdMonthReport.IsChecked == true ? cmbMonth.SelectedIndex + 1 : 12,
                day1   = 1,
                day2   = pc.GetDaysInMonth(year, month2);

            var from = new DateTime(year, month1, day1, pc);
            var to   = new DateTime(year, month2, day2, pc);

            var costs = db.Transactions.Where(t => new[] { (int)TransactionType.Cost, (int)TransactionType.Withdraw }.Contains(t.Type));

            costs = costs.Where(c => c.Datetime >= from);
            costs = costs.Where(c => c.Datetime <= to.AddDays(1).AddSeconds(-1));

            var incomes = db.Transactions.Where(t => new int[] { (int)TransactionType.Tuition, (int)TransactionType.SingleSession }.Contains(t.Type));

            incomes = incomes.Where(i => i.Datetime >= from);
            incomes = incomes.Where(i => i.Datetime <= to.AddDays(1).AddSeconds(-1));

            var pair1 = new List <KeyValuePair <string, int> >();

            //costs.GroupBy(c => c.Cost).ToList().ForEach(c =>
            //{
            pair1.Add(new KeyValuePair <string, int>("هزینه", costs.ToList().Select(c => c.Amount).Sum()));
            //});

            var pair2 = new List <KeyValuePair <string, int> >();

            //incomes.GroupBy(i => i.Type).ToList().ForEach(i =>
            //{
            pair2.Add(new KeyValuePair <string, int>("درآمد", incomes.ToList().Select(t => t.Amount).Sum()));
            //});

            ((ColumnSeries)chart.Series[0]).ItemsSource =
                pair2;
            ((ColumnSeries)chart.Series[1]).ItemsSource =
                pair1;
        }
Ejemplo n.º 24
0
        private void btnAction_Click(object sender, RoutedEventArgs e)
        {
            var db = new Data.GymContextDataContext();

            Holder.Children.Cast <CheckBox>().ToList().ForEach(member =>
            {
                if (member.IsChecked == true)
                {
                    db.Passages.InsertOnSubmit(new Data.Passage
                    {
                        IsEntrance = false,
                        MemberId   = (int)member.Tag,
                        Time       = DateTime.Now
                    });
                }
            });
            db.SubmitChanges();
            DialogResult = true;
            this.Close();
        }
Ejemplo n.º 25
0
        public void ChangeBackground_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "jpg images|*.jpg";
            if (ofd.ShowDialog() == true)
            {
                if (ofd.FileName != "")
                {
                    if (System.IO.File.Exists(ofd.FileName))
                    {
                        var _Image = new BitmapImage();
                        _Image.BeginInit();
                        _Image.StreamSource = System.IO.File.OpenRead(ofd.FileName);
                        _Image.EndInit();
                        BackGroundImageBrush.ImageSource = _Image;
                        var filename = ofd.FileName.Split('\\')[ofd.FileName.Split('\\').Count() - 1];
                        if (filename.Length > 45)
                        {
                            filename = Guid.NewGuid().ToString();
                        }
                        System.IO.File.Copy(ofd.FileName, System.AppDomain.CurrentDomain.BaseDirectory + filename, true);
                        //Domain.Dynamics.BackgroundImage = "background.jpg";
                        var          db         = new Data.GymContextDataContext();
                        Data.Setting background = db.Settings.Where(s => s.Key == "background_image").FirstOrDefault();
                        if (background == null)
                        {
                            db.Settings.InsertOnSubmit(new Setting {
                                Key = "background_image", Value = filename
                            });
                            db.SubmitChanges();
                        }
                        else
                        {
                            background.Value = filename;
                            db.SubmitChanges();
                        }
                    }
                }
            }
        }
Ejemplo n.º 26
0
        public static bool Update(this MemberVM memberVM)
        {
            try
            {
                var db  = new Data.GymContextDataContext();
                var obj = db.Members.Where(m => m.Id == memberVM.Id).FirstOrDefault();
                obj.Address        = memberVM.Address;
                obj.FingerId       = memberVM.FingerId;
                obj.Birthdate      = memberVM.BirthDate?.ToFa();
                obj.Dadsname       = memberVM.Fathername;
                obj.Description    = memberVM.Description;
                obj.Firstname      = memberVM.Firstname;
                obj.Lastname       = memberVM.Lastname;
                obj.Mobile         = memberVM.Mobile;
                obj.NationalCode   = memberVM.NationalCode;
                obj.Referrer       = memberVM.Referrer;
                obj.ReferrerMobile = memberVM.ReferrerMobile;
                obj.IsActive       = memberVM.IsActive;
                obj.Image          = memberVM.ImagePath;

                var oldCloset = db.Closets.Where(c => c.RentorId == memberVM.Id).FirstOrDefault();
                if (oldCloset != null)
                {
                    oldCloset.RentorId = null;
                }

                var closet = db.Closets.Where(c => c.Id == memberVM.ClosetId).FirstOrDefault();
                if (closet != null)
                {
                    closet.RentorId = obj.Id;
                }

                db.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Ejemplo n.º 27
0
        private void Login_OnClick(object sender, RoutedEventArgs e)
        {
            //if (DateTime.Now >= new DateTime(2019, 3, 3)) {
            //    throw new Exception("Microsoft.akin.software error. Please update and try");
            //    Exit_Click(null, null);
            //};
            var db      = new Data.GymContextDataContext();
            var isvalid = db.Users.Where(u => u.Username == txtUsername.Text && u.Password == txtPassword.Password).Any();

            if (isvalid)
            {
                //Windows.Main home = new Main();
                //home.Show();
                Main.Home.SetUser(db.Users.Where(u => u.Username == txtUsername.Text && u.Password == txtPassword.Password).FirstOrDefault().Id);
                Main.Home.Show();
                this.Close();
            }
            else
            {
                MessageSnackBar.IsActive = true;
            }
        }
Ejemplo n.º 28
0
        void SetBackground()
        {
            var file = "CamelBackground.jpg";
            var back = (new Data.GymContextDataContext()).Settings.Where(s => s.Key == "background_image");

            if (back != null)
            {
                file = back.FirstOrDefault().Value;
            }
            if (!System.IO.File.Exists(System.AppDomain.CurrentDomain.BaseDirectory + "/" + file))
            {
                file = "CamelBackground.jpg";
            }
            var _Image = new BitmapImage(new Uri(System.AppDomain.CurrentDomain.BaseDirectory + "/" + file));

            BackGroundImageBrush.ImageSource = _Image;
            //Domain.Dynamics.BackgroundImage = "background.jpg";
            var db = new Data.GymContextDataContext();

            Data.Setting background = db.Settings.Where(s => s.Key == "background_image").FirstOrDefault();
            background.Value = "CamelBackground.jpg";
        }
Ejemplo n.º 29
0
        public void CheckupTuitionDebtors()
        {
            var db = new Data.GymContextDataContext();

            var debtors = db.Members.Where(m => !m.IsDeleted && m.Debtor > 0);
            //var debtors = db.Enrolls.Where(e => e.EnrollPayments.Count == 0 || e.Price < e.EnrollPayments.Sum(p => p.Transaction.Amount)).GroupBy(e => e.Member);
            var count = debtors.Count();

            //var names = debtors.Select(g => g.Key.Firstname + " " + g.Key.Lastname);

            //var d3 = db.Enrolls.Where(e=>e.Id == 3).Select(e=>e.EnrollPayments.Sum(p => p.Transaction.Amount ?? 0)).ToList();
            Notifications.TuitionDetors = count > 0 ? count.ToString() : "";

            foreach (Window window in Application.Current.Windows)
            {
                if (window is MembersSearch && window.Title == "بدهکاران شهریه")
                {
                    var search = window as MembersSearch;
                    search.ListMembers(search.txtSearchBox.Text);
                }
            }
        }
Ejemplo n.º 30
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var db = new Data.GymContextDataContext();

            Data.Setting insurance = db.Settings.Where(s => s.Key == "insurance_price").FirstOrDefault();
            insurance.Value = (txtInsurancePrice.Value > 0 ? txtInsurancePrice.Value.ToString() : insurance.Value);

            Data.Setting singlesession = db.Settings.Where(s => s.Key == "single_price").FirstOrDefault();
            singlesession.Value = (txtSingleSessionPrice.Value > 0 ? txtSingleSessionPrice.Value.ToString() : singlesession.Value);

            Data.Setting extend = db.Settings.Where(s => s.Key == "extend_days").FirstOrDefault();
            extend.Value = (txtExtendDays.Value > 0 ? txtExtendDays.Value.ToString() : extend.Value);

            Data.Setting transithours = db.Settings.Where(s => s.Key == "transit_hours").FirstOrDefault();
            transithours.Value = (txtTransitHours.Value > 0 ? txtTransitHours.Value.ToString() : transithours.Value);

            Data.Setting title = db.Settings.Where(s => s.Key == "app_title").FirstOrDefault();
            title.Value = txtTitle.Text;

            Data.Setting closetwidth = db.Settings.Where(s => s.Key == "closets_width").FirstOrDefault();
            closetwidth.Value = (txtClosetsWidth.Value > 0 ? (txtClosetsWidth.Value).ToString() : "70");

            Data.Setting infotimeout = db.Settings.Where(s => s.Key == "info_timeout").FirstOrDefault();
            infotimeout.Value = (txtInfoTimeout.Value > 0 ? (txtInfoTimeout.Value).ToString() : "30");

            Data.Setting guestfinger = db.Settings.Where(s => s.Key == "guest_finger_id").FirstOrDefault();
            guestfinger.Value = (txtGuestFinger.Value > 0 ? (txtGuestFinger.Value).ToString() : "0");

            db.SubmitChanges();

            Domain.Dynamics.Refresh();
            Main.Home.TransitList.UpdatePassages();
            Main.Home.CheckupExtenders();
            Main.Home.LoadTitle();
            Main.Home.ResizeClosets();
            Main.Home.ShowMessage("تنظیمات با موفقیت ذخیره شد", 10);
            this.Close();
        }