|
@@ -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
|