Ejemplo n.º 1
0
        private void RemoveClientButton_Click(object sender, EventArgs e)
        {
            int clientId = GetSelectedClientDbId();

            using (var db = new RentalEntities())
            {
                var loansEntities = from poz in db.PozycjeWypozyczenia
                                    join wyp in db.Wypozyczenia on poz.IDwypozyczenia equals wyp.IDwypozyczenia
                                    where wyp.IDklienta == clientId
                                    select poz;

                foreach (var le in loansEntities)
                {
                    db.PozycjeWypozyczenia.Remove(le);
                }

                var loans = db.Wypozyczenia.Where(l => l.IDklienta == clientId).Select(l => l);

                foreach (var l in loans)
                {
                    db.Wypozyczenia.Remove(l);
                }

                var client = db.Klienci.Where(c => c.IDklienta == clientId).FirstOrDefault();
                db.Klienci.Remove(client);

                db.SaveChanges();
            }

            UpdateClientsList();
            LoansGrid.Rows.Clear();
            ToolsList.Rows.Clear();
            LoansGrid.Enabled = ToolsList.Visible = false;
        }
Ejemplo n.º 2
0
        private void AddToCartButton_Click(object sender, EventArgs e)
        {
            Cart.Enabled       = Cart.Rows.Count > 0 ? true : false;
            LoanButton.Enabled = Cart.Rows.Count > 0 ? true : false;
            ToolsError.Dispose();
            int sameToolInCart = 0;

            foreach (DataGridViewRow row in Cart.Rows)
            {
                sameToolInCart += row.Cells[0].Value == ToolsList.SelectedItem ? 1 : 0;
            }

            if (CheckToolAvailability(sameToolInCart))
            {
                using (var db = new RentalEntities())
                {
                    var toolPrice = db.Narzedzia.Where(t => t.Dostepnosc == true &&
                                                       t.NazwaNarzedzia == ToolsList.SelectedItem.ToString()).FirstOrDefault().Cena;

                    Cart.Rows.Add(ToolsList.SelectedItem, toolPrice, 0, "Usuń");
                    Cart.Enabled       = true;
                    LoanButton.Enabled = true;
                }
            }
            else
            {
                ToolsError.SetError(AddToCartButton, $"Wszystkie dostępne narzędzia tego " +
                                    $"typu są już w koszyku!");
            }

            CalculateCart();
        }
Ejemplo n.º 3
0
 int GetSelectedClientDbId()
 {
     using (var db = new RentalEntities())
     {
         return(db.Klienci.OrderBy(c => c.IDklienta)
                .Skip(ClientsList.SelectedIndex).FirstOrDefault().IDklienta);
     }
 }
Ejemplo n.º 4
0
 int GetSelectedCategoryDbId()
 {
     using (var db = new RentalEntities())
     {
         return(db.Kategorie.OrderBy(c => c.IDkategorii)
                .Skip(CategoriesList.SelectedIndex).FirstOrDefault().IDkategorii);
     }
 }
Ejemplo n.º 5
0
 public int GetLatestLoanId()
 {
     using (var db = new RentalEntities())
     {
         var latestLoan = db.Wypozyczenia.Max(l => l.IDwypozyczenia);
         return(latestLoan);
     }
 }
Ejemplo n.º 6
0
 int GetLoanDbId()
 {
     using (var db = new RentalEntities())
     {
         int clientId = GetSelectedClientDbId();
         return(int.Parse(db.Wypozyczenia.Where(l => l.IDklienta == clientId)
                          .OrderBy(l => l.IDwypozyczenia).Skip(LoansGrid.SelectedCells[0].RowIndex)
                          .FirstOrDefault().IDwypozyczenia.ToString()));
     }
 }
Ejemplo n.º 7
0
        public bool CheckToolAvailability(int occurs)
        {
            using (var db = new RentalEntities())
            {
                var toolsNumber = db.Narzedzia.Where(t => t.NazwaNarzedzia ==
                                                     ToolsList.SelectedItem.ToString() && t.Dostepnosc == true).Count();

                return(occurs < toolsNumber);
            }
        }
Ejemplo n.º 8
0
 public AddLoanForm(int _selectedUserId)
 {
     InitializeComponent();
     selectedUserId = _selectedUserId;
     using (var db = new RentalEntities())
     {
         var categories = db.Kategorie.Select(c => c.NazwaKategorii);
         foreach (var c in categories)
         {
             CategoriesList.Items.Add(c);
         }
     }
 }
Ejemplo n.º 9
0
 private void AddClientButton_Click(object sender, EventArgs e)
 {
     using (var db = new RentalEntities())
     {
         var client = new Klienci()
         {
             Imie     = FirstNameBox.Text,
             Nazwisko = LastNameBox.Text
         };
         db.Klienci.Add(client);
         db.SaveChanges();
         Close();
     }
 }
Ejemplo n.º 10
0
 private void UpdateClientsList()
 {
     ClientsList.Items.Clear();
     ToolsList.Rows.Clear();
     LoansGrid.Rows.Clear();
     LoanButton.Enabled = RemoveClientButton.Enabled = false;
     using (var db = new RentalEntities())
     {
         var clients = db.Klienci.Select(c => new { c.Imie, c.Nazwisko });
         foreach (var c in clients)
         {
             ClientsList.Items.Add($"{c.Imie} {c.Nazwisko}");
         }
     }
 }
Ejemplo n.º 11
0
        private void CategoriesList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ToolsList.Items.Clear();
            ToolsList.Enabled       = true;
            AddToCartButton.Enabled = false;
            int categoryId = GetSelectedCategoryDbId();

            using (var db = new RentalEntities())
            {
                var tools = db.Narzedzia.Where(t => t.Dostepnosc == true &&
                                               t.IDkategorii == categoryId).Select(t => t.NazwaNarzedzia);

                foreach (var t in tools)
                {
                    ToolsList.Items.Add(t);
                }
            }
        }
Ejemplo n.º 12
0
        private void LoansGrid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (LoansGrid.SelectedCells[0].Value.ToString() == "Podgląd" ||
                LoansGrid.SelectedCells[0].Value.ToString() == "Zwrot")
            {
                int    clientId       = GetSelectedClientDbId();
                string selectedLoanId = LoansGrid.SelectedCells[0].RowIndex.ToString();
                int    loanId         = GetLoanDbId();

                if (LoansGrid.SelectedCells[0].Value.ToString() == "Podgląd")
                {
                    ToolsList.Rows.Clear();

                    using (var db = new RentalEntities())
                    {
                        var tools = from wyp in db.Wypozyczenia
                                    join poz in db.PozycjeWypozyczenia on wyp.IDwypozyczenia equals poz.IDwypozyczenia
                                    join narz in db.Narzedzia on poz.IDnarzedzia equals narz.IDnarzedzia
                                    where wyp.IDklienta == clientId && wyp.IDwypozyczenia == loanId
                                    select narz.NazwaNarzedzia;

                        if (tools.Any())
                        {
                            foreach (var toolName in tools)
                            {
                                ToolsList.Rows.Add(toolName);
                            }
                            ToolsList.Visible = true;
                        }
                    }
                }
                if (LoansGrid.SelectedCells[0].Value.ToString() == "Zwrot")
                {
                    using (var db = new RentalEntities())
                    {
                        var loan = db.Wypozyczenia.Where(l => l.IDwypozyczenia == loanId)
                                   .Select(l => l).SingleOrDefault();
                        loan.DataZwrotu = DateTime.Now;
                        db.SaveChanges();
                        ClientsList_SelectedIndexChanged(sender, e);
                    }
                }
            }
        }
Ejemplo n.º 13
0
        private void ClientsList_SelectedIndexChanged(object sender, EventArgs e)
        {
            LoansGrid.Rows.Clear();
            ToolsList.Rows.Clear();
            ToolsList.Visible    = false;
            AddLoanPanel.Enabled = LoanButton.Enabled = RemoveClientButton.Enabled = true;
            int clientId = GetSelectedClientDbId();

            using (var db = new RentalEntities())
            {
                var loans = from wyp in db.Wypozyczenia
                            join poz in db.PozycjeWypozyczenia on wyp.IDwypozyczenia equals poz.IDwypozyczenia
                            join narz in db.Narzedzia on poz.IDnarzedzia equals narz.IDnarzedzia
                            where wyp.IDklienta == clientId
                            group new { narz, wyp, poz } by wyp.IDwypozyczenia into w
                let zal = w.FirstOrDefault().wyp.Zaliczka
                          select new
                {
                    dataWyp = w.FirstOrDefault().wyp.DataWypozyczenia,
                    dataZwr = w.FirstOrDefault().wyp.DataZwrotu,
                    doZap   = w.Sum(p => (1 - p.poz.Rabat) * p.narz.Cena) - zal
                };

                if (loans.Any())
                {
                    LoansGrid.Enabled = true;

                    foreach (var wyp in loans)
                    {
                        LoansGrid.Rows.Add(
                            wyp.dataWyp.Date,
                            wyp.doZap,
                            "Podgląd",
                            wyp.dataZwr.Equals(null) ? "Zwrot" : ""
                            );
                    }
                }
                else
                {
                    LoansGrid.Enabled = false;
                }
            }
        }
Ejemplo n.º 14
0
        private void LoanButton_Click(object sender, EventArgs e)
        {
            double advanceAmount = double.Parse(AdvanceAmount.Value.ToString());
            double discount;
            bool   validDiscount = true;

            foreach (DataGridViewRow row in Cart.Rows)
            {
                if (!double.TryParse(row.Cells[2].Value.ToString(), out discount))
                {
                    validDiscount = false;
                    break;
                }
                else
                {
                    if (discount < 0 || discount > 99)
                    {
                        validDiscount = false;
                        break;
                    }
                }
            }
            double toPay = double.Parse(PriceSum.Text) - double.Parse(DiscountSum.Text);

            if (advanceAmount < 0 || advanceAmount >= toPay)
            {
                CartError.SetError(LoanButton, $"Wartość zaliczki jest wyższa lub równa wartości koszyka");
            }

            else if (!validDiscount)
            {
                CartError.SetError(LoanButton, $"Wartość rabatu jest " +
                                   $" nieprawidłowa, podaj wartość od 0 do 99.");
            }
            else
            {
                using (var db = new RentalEntities())
                {
                    var loan = new Wypozyczenia()
                    {
                        IDklienta        = selectedUserId,
                        DataWypozyczenia = DateTime.Now,
                        Zaliczka         = advanceAmount
                    };
                    db.Wypozyczenia.Add(loan);
                    db.SaveChanges();

                    int                      loanID         = GetLatestLoanId();
                    StringBuilder            loanNodeValues = new StringBuilder();
                    Dictionary <string, int> toolDuplicates = new Dictionary <string, int>();

                    foreach (DataGridViewRow row in Cart.Rows)
                    {
                        if (toolDuplicates.ContainsKey(row.Cells[0].Value.ToString()))
                        {
                            toolDuplicates[row.Cells[0].Value.ToString()] += 1;
                        }

                        else
                        {
                            toolDuplicates.Add(row.Cells[0].Value.ToString(), 1);
                        }
                    }

                    foreach (KeyValuePair <string, int> tool in toolDuplicates)
                    {
                        var toolsIds = db.Narzedzia.Where(t => t.Dostepnosc == true && t.NazwaNarzedzia
                                                          == tool.Key).Take(tool.Value).Select(t => t.IDnarzedzia);
                        var toolsIdsList = toolsIds.ToList();

                        int currentToolId = 0, cartRowsLength = Cart.Rows.Count;
                        for (int i = 0; i < cartRowsLength; i++)
                        {
                            if (Cart.Rows[i].Cells[0].Value.ToString() == tool.Key)
                            {
                                DataGridViewRow row        = Cart.Rows[i];
                                var             loanEntity = new PozycjeWypozyczenia()
                                {
                                    IDwypozyczenia = loanID,
                                    IDnarzedzia    = toolsIdsList[currentToolId],
                                    Rabat          = double.Parse(row.Cells[2].Value.ToString()) / 100
                                };
                                db.PozycjeWypozyczenia.Add(loanEntity);
                                currentToolId++;
                            }
                        }
                    }
                    db.SaveChanges();
                    Close();
                }
            }
        }