CreateOrUpdatePage.xaml.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using Microsoft.Win32;
  2. using Namordnik.Class;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace Namordnik.Pages
  18. {
  19. /// <summary>
  20. /// Логика взаимодействия для CreateOrUpdatePage.xaml
  21. /// </summary>
  22. public partial class CreateOrUpdatePage : Page
  23. {
  24. List<ProductType> PT = BaseClass.Base.ProductType.ToList();
  25. List<Material> M = BaseClass.Base.Material.ToList();
  26. List<ProductSale> PrSale = BaseClass.Base.ProductSale.ToList();
  27. Product PROD = new Product();
  28. string path;
  29. bool flag;
  30. bool artnum;
  31. bool del;
  32. public CreateOrUpdatePage()
  33. {
  34. InitializeComponent();
  35. flag = true;
  36. CBTypePr.Items.Add("Выберите тип");
  37. for (int i = 0; i < PT.Count; i++)
  38. {
  39. CBTypePr.Items.Add(PT[i].Title);
  40. }
  41. CBTypePr.SelectedIndex = 0;
  42. for (int i = 0; i < M.Count; i++)
  43. {
  44. CBMaterial.Items.Add(M[i].Title);
  45. }
  46. }
  47. public CreateOrUpdatePage(Product PrUpdate)
  48. {
  49. InitializeComponent();
  50. if (flag == false)
  51. {
  52. BtnDel.Visibility = Visibility.Visible;
  53. }
  54. CBTypePr.Items.Add("Выберите тип");
  55. for (int i = 0; i < PT.Count; i++)
  56. {
  57. CBTypePr.Items.Add(PT[i].Title);
  58. }
  59. PROD = PrUpdate;
  60. CBTypePr.SelectedIndex = (int)PrUpdate.ProductTypeID;
  61. TBNamePr.Text = PrUpdate.Title;
  62. TBArct.Text = PrUpdate.ArticleNumber;
  63. TBKolvo.Text = Convert.ToString(PrUpdate.ProductionPersonCount);
  64. TBNumder.Text = Convert.ToString(PrUpdate.ProductionWorkshopNumber);
  65. TBMinCost.Text = Convert.ToString(PrUpdate.MinCostForAgent);
  66. path = PrUpdate.Image;
  67. if (path!=null)
  68. {
  69. BitmapImage BI = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
  70. ImagePr.Source = BI;
  71. }
  72. }
  73. private void BtnSetPhoto_Click(object sender, RoutedEventArgs e)
  74. {
  75. OpenFileDialog OFD = new OpenFileDialog();
  76. OFD.ShowDialog();
  77. path = OFD.FileName;
  78. int n = path.IndexOf("products");
  79. path ="\\" + path.Substring(n);
  80. if (path != null)
  81. {
  82. BitmapImage BI = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
  83. ImagePr.Source = BI;
  84. }
  85. }
  86. private void BtnAddRed_Click(object sender, RoutedEventArgs e)
  87. {
  88. try
  89. {
  90. int IdType = 0;
  91. if (CBTypePr.SelectedIndex != 0)
  92. {
  93. IdType = CBTypePr.SelectedIndex;
  94. }
  95. PROD.ProductTypeID = IdType;
  96. PROD.Title = TBNamePr.Text;
  97. PROD.ArticleNumber = TBArct.Text;
  98. PROD.ProductionPersonCount = Convert.ToInt32(TBKolvo.Text);
  99. PROD.ProductionWorkshopNumber = Convert.ToInt32(TBNumder.Text);
  100. PROD.MinCostForAgent = Convert.ToInt32(TBMinCost.Text);
  101. PROD.Image = path;
  102. if (artnum == true)
  103. {
  104. MessageBox.Show("Данные не записаны:\nАртикул не может повторяться");
  105. }
  106. else if (Convert.ToInt32(TBMinCost.Text) < 0)
  107. {
  108. MessageBox.Show("Данные не записаны:\nЦена не может быть отрицательной");
  109. }
  110. else
  111. {
  112. if (flag == true)
  113. {
  114. BaseClass.Base.Product.Add(PROD);
  115. }
  116. BaseClass.Base.SaveChanges();
  117. MessageBox.Show("Данные записаны");
  118. FrameClass.FrameMain.Navigate(new MainPage());
  119. }
  120. }
  121. catch
  122. {
  123. MessageBox.Show("Данные не записаны");
  124. }
  125. }
  126. private void BtnDel_Click(object sender, RoutedEventArgs e)
  127. {
  128. foreach(ProductSale item in PrSale)
  129. {
  130. if(PROD.ID == item.ProductID)
  131. {
  132. del = true;
  133. }
  134. }
  135. if(del == true)
  136. {
  137. MessageBox.Show("Данные не записаны:\nТовар продан агентом");
  138. }
  139. else
  140. {
  141. int ind = PROD.ID;
  142. Product PrDel = BaseClass.Base.Product.FirstOrDefault(y => y.ID == ind);
  143. BaseClass.Base.Product.Remove(PrDel);
  144. BaseClass.Base.SaveChanges();
  145. MessageBox.Show("Запись удалена");
  146. FrameClass.FrameMain.Navigate(new MainPage());
  147. }
  148. }
  149. }
  150. }