| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Data.SqlClient;
- namespace СУБД_Книжный_клуб
- {
- public partial class FormMain : Form
- {
- public FormMain()
- {
- InitializeComponent();
- }
- public SqlConnection Con = new SqlConnection(TxtCon);
- public static string TxtCon = @"Data Source=213.155.192.79,3002;Initial Catalog=BookClubKMA;Persist Security Info=True;User ID=u21kleschenkov;Password=vhk5";
- public class OrderItem
- {
- public string IdProduct, NameProduct;
- public double Cost, Discount;
- public int CountInStorage, Count, CountInOrder;
- }
- static List<OrderItem> LstOrder = new List<OrderItem>();
- /// <summary>
- /// Подччёт суммы заказа и суммы скидки
- /// </summary>
- /// <param name="Sum">Сумма заказа с учетом скидки</param>
- /// <param name="DiscountSum">Сумма скидки</param>
- public static void CalcOrder(ref double Sum, ref double DiscountSum)
- {
- Sum= 0;
- DiscountSum= 0;
-
- double CostItem = 0, DiscountItem = 0;
-
- for (int i = 0; i < LstOrder.Count; i++)
- {
- CostItem = LstOrder[i].Cost * LstOrder[i].CountInOrder;
- DiscountItem = CostItem * LstOrder[i].Discount / 100;
- DiscountSum += DiscountItem;
- Sum+= CostItem - DiscountItem;
- }
- }
- /// <summary>
- /// Заполнение списков товаров, имеющихся на складе
- /// </summary>
- void FillListProduct()
- {
- DgvProductList.Rows.Clear();
- Con.Open();
- string TxtQuery = @"SELECT Product.IdProduct, Product.Photo,
- Product.NameProduct, Manufacturer.NameManufacturer, Product.Cost,
- Product.Discount, Product.CountProduct, Product.Description
- FROM Product INNER JOIN Manufacturer ON Product.IdManufacturer =
- Manufacturer.IdManufacturer";
- SqlCommand Query = new SqlCommand(TxtQuery, Con);
- SqlDataReader Res= Query.ExecuteReader();
- while (Res.Read())
- {
- string Info = $@"Товар: {Res["NameProduct"]}
- Производитель: {Res["NameManufacturer"]}
- Описание: {Res["Description"]}
- Цена: {Res["Cost"]}
- Скидка: {Res["Discount"]}
- Кол-во на складе: {Res["CountProduct"]}";
- try
- {
- DgvProductList.Rows.Add(Res["IdProduct"], Image.FromFile(Application.StartupPath + "\\Фото\\" + Res["Photo"]), Info, Res["NameProduct"], Res["Cost"], Res["Discount"], Res["CountProduct"]);
- }
- catch
- {
- DgvProductList.Rows.Add(Res["IdProduct"], Image.FromFile(Application.StartupPath + "\\Фото\\blank.jpg" + Res["Photo"]), Info, Res["NameProduct"], Res["Cost"], Res["Discount"], Res["CountProduct"]);
- }
- }
- Con.Close();
- }
- private void FormMain_Load(object sender, EventArgs e)
- {
- FillListProduct();
- }
- private void CmAddToOrder_Click(object sender, EventArgs e)
- {
- PanelOrder.Visible = true;
- OrderItem Item = new OrderItem();
- Item.IdProduct = DgvProductList.SelectedRows[0].Cells[0].Value.ToString();
- Item.NameProduct = DgvProductList.SelectedRows[0].Cells[3].Value.ToString();
- Item.Cost = double.Parse(DgvProductList.SelectedRows[0].Cells[4].Value.ToString());
- Item.Discount = double.Parse(DgvProductList.SelectedRows[0].Cells[5].Value.ToString());
- Item.CountInStorage = int.Parse(DgvProductList.SelectedRows[0].Cells[6].Value.ToString());
- Item.CountInOrder = 1;
- LstOrder.Add(Item);
- OutPutInfo();
- }
- /// <summary>
- /// Вывод информации по сумме заказа и суммы скидки
- /// </summary>
- public void OutPutInfo()
- {
- double Sum = 0, DiscountSum = 0;
- CalcOrder(ref Sum, ref DiscountSum);
- LblSum.Text = $"Сумма заказа (с учетом скидки): {Sum}";
- LblDiscount.Text = $"Скидка: {DiscountSum}";
- }
- private void DgvProductList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
- {
- DgvProductList.ClearSelection();
- DgvProductList[ e.ColumnIndex,e.RowIndex].Selected= true;
-
- }
- private void BtnOrder_Click(object sender, EventArgs e)
- {
- FormOrder Frm = new FormOrder();
- Frm.LstOrder = LstOrder;
- Frm.ShowDialog();
-
- OutPutInfo();
- FillListProduct();
- if(LstOrder.Count == 0)
- PanelOrder.Visible = false;
-
- }
- }
- }
|