Przeglądaj źródła

Добавлен Чек

polinakulakova114@gmail.com 3 lat temu
rodzic
commit
d33fcb71f1

BIN
.vs/mateo/v16/.suo


+ 163 - 14
mateo/MainWindow.xaml.cs

@@ -14,6 +14,7 @@ using System.Windows.Media;
 using System.Windows.Media.Imaging;
 using System.Windows.Navigation;
 using System.Windows.Shapes;
+using Word = Microsoft.Office.Interop.Word;
 
 namespace mateo
 {
@@ -113,7 +114,7 @@ namespace mateo
                 };
                 DB.GetContext().Tickets.Add(tickets);
                 DB.GetContext().SaveChanges();
-                MessageBox.Show("Билет добавлен в раздел \"Билеты\"", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
+                MessageBox.Show("Билет(Взрослый) добавлен в раздел \"Билеты\"", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
                 listTickets.ItemsSource = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).ToList();
 
             }
@@ -141,16 +142,14 @@ namespace mateo
                 };
                 DB.GetContext().Tickets.Add(tickets);
                 DB.GetContext().SaveChanges();
-                MessageBox.Show("Билет добавлен в раздел \"Билеты\"", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
+                MessageBox.Show("Билет(Детский) добавлен в раздел \"Билеты\"", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
                 listTickets.ItemsSource = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).ToList();
-
-
             }
         }
 
         public decimal Summ(decimal summ) //функция для вывода суммы добавленных билетов
         {
-            try
+            try //hmm...
             {
                 summ = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).Sum(x => x.Quantity * x.Summ);
             }
@@ -247,6 +246,144 @@ namespace mateo
                 }
                 else
                 {
+
+                    #region ЧЕК
+                    SaveFileDialog saveFileDialog = new SaveFileDialog();
+                    saveFileDialog.Title = "Выберите место для сохранения чека";
+                    saveFileDialog.FileName = "Чек за " + DateTime.Now.ToShortDateString() + " - PDF";
+                    saveFileDialog.Filter = "PDF Files |*.pdf";
+                    if (saveFileDialog.ShowDialog() == true)
+                    {
+                        var application = new Word.Application();
+                        Word.Document document = application.Documents.Add();
+
+                        Word.Paragraph paragraph = document.Paragraphs.Add();
+                        Word.Range cellrange = paragraph.Range;
+                        Word.InlineShape inlineShape = cellrange.InlineShapes.AddPicture(@"C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\image\logocheck.png");
+                        inlineShape.Width = 400;
+                        inlineShape.Height = 100;
+                        paragraph.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+                        cellrange.InsertParagraphAfter();
+
+                        Word.Paragraph paragraph2 = document.Paragraphs.Add();
+                        Word.Range range2 = paragraph2.Range;
+                        range2.Text = "Чек №1";
+                        paragraph2.set_Style("Заголовок");
+                        paragraph2.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+                        range2.Font.Size = 18;
+                        range2.InsertParagraphAfter();
+
+                        //Word.Paragraph paragraph3 = document.Paragraphs.Add();
+                        //Word.Range range3 = paragraph3.Range;
+                        //range3.Text = "Дата: "+ DateTime.Now;
+                        //paragraph3.set_Style("Заголовок");
+                        //paragraph3.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
+                        //range3.Font.Size = 16;
+                        //range3.InsertParagraphAfter();
+
+
+
+
+
+                        var report = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).ToList();
+
+                        Word.Paragraph tableparagraph = document.Paragraphs.Add();
+                        Word.Range tablerange = tableparagraph.Range;
+                        Word.Table paymentstable = document.Tables.Add(tablerange, report.Count() + 2, 2);
+                        paymentstable.Borders.InsideLineStyle = paymentstable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
+                        //paymentstable.Range.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
+
+                        paymentstable.PreferredWidth = 400;
+
+                        paymentstable.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter;
+                        paymentstable.Borders.OutsideColor = Word.WdColor.wdColorWhite;
+                        paymentstable.Borders.InsideColor = Word.WdColor.wdColorWhite;
+
+                        
+
+                        Word.Range cellRange;
+
+
+                        //paymentstable.Rows[1].Range.Bold = 1;
+                        //paymentstable.Rows[1].Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+
+                        cellRange = paymentstable.Cell(1, 2).Range;
+                        cellRange.Text = "Дата: " + DateTime.Now;
+                        paymentstable.Cell(1, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
+                        range2.Font.Size = 16;
+
+                        for (int i = 0; i < report.Count(); i++)
+                        {
+                            var orders = report[i];
+                            var type = DB.GetContext().TypeTickets.Where(x => x.IDTypeTickets == orders.FKTypeTickets).FirstOrDefault();
+
+                            cellRange = paymentstable.Cell(i + 2, 1).Range;
+                            cellRange.Text = orders.Attraction.NameAttraction + " (" + type.TypeTickets1 + ")" + " x" + orders.Quantity;
+                            cellRange.Font.Size = 14;
+
+                            paymentstable.Cell(i + 2, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
+                            cellRange.Font.Size = 14;
+                            cellRange = paymentstable.Cell(i + 2, 2).Range;
+                            decimal price = orders.Summ * orders.Quantity;
+                            cellRange.Text = String.Format("{0:0.00}",price).ToString() + " руб.";
+                        }
+
+
+                        cellRange = paymentstable.Cell(report.Count() + 3, 1).Range;
+                        cellRange.Text = "Итого: " + String.Format("{0:0.00}", summ).ToString() + " руб.";
+                        cellRange.set_Style("Заголовок");
+                        cellRange.Bold = 1;
+                        paymentstable.Cell(report.Count() + 3, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
+                        cellRange.Font.Size = 20;
+
+                        //№ карты
+                        cellRange.InsertParagraphAfter();
+                        tablerange.InsertParagraphAfter();
+
+
+                        Word.Paragraph paragraph3 = document.Paragraphs.Add();
+                        Word.Range range3 = paragraph3.Range;
+                        range3.Text = "-------------------------------------------------------------";
+                        paragraph3.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+                        range3.Font.Size = 18;
+                        range3.InsertParagraphAfter();
+
+
+                        Word.Paragraph paragraph4 = document.Paragraphs.Add();
+                        Word.Range range4 = paragraph4.Range;
+                        range4.Text = "№ карты лояльности: " + balance.NumberCard;
+                        paragraph4.set_Style("Заголовок");
+                        paragraph4.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
+                        range4.Font.Size = 14;
+                        range4.InsertParagraphAfter();
+
+
+
+                        //a+=2;
+                        //paymentstable.Cell(a + 2, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
+                        //cellRange = paymentstable.Cell(a + 2, 2).Range;
+                        //cellRange.Text = "Итого: " + String.Format("{0:0.00}", summ).ToString() + " руб.";
+                        //cellrange.set_Style("Заголовок");
+                        //cellrange.Bold = 1;
+                        //cellrange.Font.Size = 20;
+
+
+
+                        //Word.Paragraph paragraph4 = document.Paragraphs.Add();
+                        //Word.Range range4 = paragraph4.Range;
+                        //range4.Text = "\nИтого: " + String.Format("{0:0.00}", summ).ToString() + " руб.";
+                        //paragraph4.set_Style("Заголовок");
+                        //range4.Bold = 1;
+                        //paragraph4.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
+                        //range4.Font.Size = 20;
+                        //range4.InsertParagraphAfter();
+
+
+                        document.SaveAs2(saveFileDialog.FileName, Word.WdExportFormat.wdExportFormatPDF);
+                    }
+                    #endregion
+
+
                     balance.Balance -= Convert.ToDecimal(summ);
 
                     var tickets = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).ToList();
@@ -267,7 +404,7 @@ namespace mateo
                     listTickets.ItemsSource = DB.GetContext().Tickets.Where(x => x.FKUser == DB.Iduser && x.FKStatusPuy == 2).ToList();
 
                     summ = Summ(summ);
-                };
+                } //была ; зачем-то :/
             }
         }
 
@@ -281,6 +418,7 @@ namespace mateo
             listAllAttraction.Visibility = Visibility.Hidden;
             gridTickets.Visibility = Visibility.Hidden;
             gridProfile.Visibility = Visibility.Visible;
+            Update();
         }
 
         private void BtnAddPhoto(object sender, RoutedEventArgs e) //добавить/изменить фото пользователя в разделе Профиль и в бд
@@ -310,6 +448,7 @@ namespace mateo
             {
                 MessageBox.Show(ex.Message);
             }
+            Update();
         }
 
         private void BtnDeletePhoto(object sender, RoutedEventArgs e) //удаление фото в тч из бд
@@ -319,32 +458,42 @@ namespace mateo
             DB.GetContext().SaveChanges();
             imgProfile.Source = null;
             btnAddPhoto.Content = "добавить фото";
+            Update();
         }
 
         private void BtbBalance(object sender, RoutedEventArgs e) //кнопка Пополнить баланс, открываем форму для пополнения баланса
         {
+            txtPlusBalabce.Text = "";
             gridPlusBalance.Visibility = Visibility.Visible;
         }
 
         private void BtbPlusBalance(object sender, RoutedEventArgs e) //пополняем баланс (незакончено, надо чтобы пользователь вводил номер банковской карты)
         {
-            //"пополняем баланс" типа
             if (txtPlusBalabce.Text != "")
             {
-                var a = DB.GetContext().Card.Where(x => x.IDCard == DB.Idcard).FirstOrDefault();
-                a.Balance += Convert.ToDecimal(txtPlusBalabce.Text);
-                DB.GetContext().SaveChanges();
-                gridPlusBalance.Visibility = Visibility.Hidden;
+                try //типа проверка на введенные значения
+                {
+                    var a = DB.GetContext().Card.Where(x => x.IDCard == DB.Idcard).FirstOrDefault();
+                    a.Balance += Convert.ToDecimal(txtPlusBalabce.Text);
+                    DB.GetContext().SaveChanges();
+                    gridPlusBalance.Visibility = Visibility.Hidden;
+                    MessageBox.Show("Успешно", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
+                }
+                catch
+                {
+                    MessageBox.Show("Ошибка, проерьте введенные данные", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                }
             }
-            var fio = DB.GetContext().Users.FirstOrDefault(x => x.IDUsers == DB.Iduser);
-            DB.Idcard = fio.FKCard;
-            txtBalanceProfile.Text = DB.GetContext().Card.FirstOrDefault(x => x.IDCard == fio.FKCard).Balance.ToString();
+            //var fio = DB.GetContext().Users.FirstOrDefault(x => x.IDUsers == DB.Iduser); //типа зачем, видимо в тот раз не удалила когда функцию update седлала
+            //DB.Idcard = fio.FKCard;
+            //txtBalanceProfile.Text = DB.GetContext().Card.FirstOrDefault(x => x.IDCard == fio.FKCard).Balance.ToString();
             Update();
         }
 
         private void BtnCancelBalance(object sender, RoutedEventArgs e)
         {
             gridPlusBalance.Visibility = Visibility.Hidden;
+            Update();
         }
 
         #endregion

BIN
mateo/bin/Debug/mateo.exe


BIN
mateo/bin/Debug/mateo.pdb


BIN
mateo/image/logocheck.png


+ 30 - 0
mateo/mateo.csproj

@@ -216,6 +216,7 @@
     <Resource Include="image\tickets2.png" />
   </ItemGroup>
   <ItemGroup>
+    <Resource Include="image\logocheck.png" />
     <Content Include="Model1.Context.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
       <DependentUpon>Model1.edmx</DependentUpon>
@@ -227,5 +228,34 @@
       <LastGenOutput>Model1.cs</LastGenOutput>
     </Content>
   </ItemGroup>
+  <ItemGroup>
+    <COMReference Include="Microsoft.Office.Core">
+      <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
+      <VersionMajor>2</VersionMajor>
+      <VersionMinor>8</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+    <COMReference Include="Microsoft.Office.Interop.Word">
+      <Guid>{00020905-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>8</VersionMajor>
+      <VersionMinor>7</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+    <COMReference Include="VBIDE">
+      <Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>5</VersionMajor>
+      <VersionMinor>3</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

BIN
mateo/obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN
mateo/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 1 - 1
mateo/obj/Debug/mateo.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-90747ea71908081bc6f643b38090752ac03b6b11
+ed6a69a3665ce10cb33d4ec9232972603e820c02

+ 1 - 0
mateo/obj/Debug/mateo.csproj.FileListAbsolute.txt

@@ -49,3 +49,4 @@ C:\Users\polin\OneDrive\Рабочий стол\mm\mateo\obj\Debug\mateo.exe
 C:\Users\polin\OneDrive\Рабочий стол\mm\mateo\obj\Debug\mateo.pdb
 C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\obj\Debug\SysAdmin.g.cs
 C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\obj\Debug\SysAdmin.baml
+C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\obj\Debug\mateo.csproj.ResolveComReference.cache

BIN
mateo/obj/Debug/mateo.csproj.ResolveComReference.cache


BIN
mateo/obj/Debug/mateo.exe


BIN
mateo/obj/Debug/mateo.g.resources


BIN
mateo/obj/Debug/mateo.pdb


+ 1 - 1
mateo/obj/Debug/mateo_MarkupCompile.cache

@@ -13,7 +13,7 @@ C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\App.xaml
 3-1430287372
 21750853300
 24-2088213926
-18-1046349961
+21-297209307
 First.xaml;MainWindow.xaml;SysAdmin.xaml;
 
 False

+ 2 - 2
mateo/obj/Debug/mateo_MarkupCompile.i.cache

@@ -13,8 +13,8 @@ C:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\App.xaml
 3-1430287372
 21750853300
 251364394003
-18-1046349961
+21-297209307
 First.xaml;MainWindow.xaml;SysAdmin.xaml;
 
-True
+False
 

+ 0 - 4
mateo/obj/Debug/mateo_MarkupCompile.i.lref

@@ -1,4 +0,0 @@
-
-
-FC:\Users\polin\OneDrive\Рабочий стол\mateo\mateo\MainWindow.xaml;;
-