/// <summary> /// Додаємо відвідувачів /// </summary> private void btn_AddVisitors_Click(object sender, EventArgs e) { if (textBox_Visitors.Text == "") return; using (DoorsEntities db = new DoorsEntities()) { var note = db.Visitors.FirstOrDefault(v => v.DateTime == dateTimePicker1.Value.Date); if (note != null) { // Якщо запис існує змінюємо кількість відвідувачів note.VisitorsCount = Convert.ToInt32(textBox_Visitors.Text); } else { // Якщо записа не існує створюємо нову var newnote = new Visitor() { DateTime = dateTimePicker1.Value.Date, VisitorsCount = Convert.ToInt32(textBox_Visitors.Text) }; db.Visitors.Add(newnote); } db.SaveChanges(); } textBox_Visitors.ReadOnly = true; }
/// <summary> /// Видалити дані з таблиці Витрат по id /// </summary> private void btn_deleteDataFromOutlay_Click(object sender, EventArgs e) { if (textBox_idOutlay.Text == "") return; // ID позиції для видалення uint id = Convert.ToUInt32(textBox_idOutlay.Text); using (var db = new DoorsEntities()) { OutlayMoney notice = db.OutlayMoneys .Where(p => p.Id == id) .FirstOrDefault(); db.OutlayMoneys.Remove(notice); DialogResult dr; dr = MessageBox.Show("Ви впевнені, що хочете видалити даний запис", "Видалити запис?", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) db.SaveChanges(); } // Оновлюємо таблицю gridview і перераховуємо денний баланс грошей LoadOutlayTableToGridView(); CalculateDayBalance(); }
/// <summary> /// Відображення кількості відвідувачів за день /// </summary> private void LoadVisitors() { string count = ""; using (DoorsEntities db = new DoorsEntities()) { var query = db.Visitors.Find(dateTimePicker1.Value.Date); if (query != null) count = query.VisitorsCount.ToString(); } // Якщо немає даних в БД, то дозволяємо вводити дані // Якщо дані існують, то закриваємо поле для редагування if (count != "") { textBox_Visitors.ReadOnly = true; textBox_Visitors.Text = count; } else { textBox_Visitors.ReadOnly = false; textBox_Visitors.Text = count; } }
/// <summary> /// Зберегти дані в таблицю Витрат /// </summary> private void btn_SaveDataToOutlayTable_Click(object sender, EventArgs e) { if (!ValidateInputFieldsInOutlay()) return; OutlayMoney notice = new OutlayMoney() { DateOut = dateTimePicker1.Value.Date, Summa = Convert.ToDecimal(textBox_SummaOutlay.Text), WhereSpend = textBox_WhereMoneyGoes.Text, WhoReceive = textBox_WhomeReceiveMoney.Text }; using (DoorsEntities db = new DoorsEntities()) { try { db.OutlayMoneys.Add(notice); db.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException) { MessageBox.Show("Переконайтесь, що Ви відобразили всі необхідні записи за попередні дні " + "або переконайтесь, що вибрана Вами дата вірна.", "Помилка при веденні журналу обліку", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.ToString()); WriteLogErrorFile.WriteInLog(logErrorFile, ex.ToString()); } } // Оновлюємо таблицю gridview і перераховуємо денний баланс грошей LoadOutlayTableToGridView(); CalculateDayBalance(); }
/// <summary> /// Редагувати дані в таблиці Витрат /// </summary> private void btn_EditDataToOutlay_Click(object sender, EventArgs e) { if (!ValidateInputFieldsInOutlay() || textBox_idOutlay.Text == "") return; uint id = Convert.ToUInt32(textBox_idOutlay.Text); using (DoorsEntities db = new DoorsEntities()) { var notice = db.OutlayMoneys.FirstOrDefault(n => n.Id == id); if (notice != null) { notice.DateOut = dateTimePicker1.Value.Date; notice.Summa = Convert.ToDecimal(textBox_SummaOutlay.Text); notice.WhereSpend = textBox_WhereMoneyGoes.Text; notice.WhoReceive = textBox_WhomeReceiveMoney.Text; db.SaveChanges(); } } // Refresh view LoadOutlayTableToGridView(); CalculateDayBalance(); }
/// <summary> /// Видалити дані з таблиці по ід /// </summary> private void btn_deleteData_Click(object sender, EventArgs e) { if (textBox_id1.Text == "") return; int idToDel = Convert.ToInt32(textBox_id1.Text); using (var db = new DoorsEntities()) { IncomeMoney notice = db.IncomeMoneys .Where(p => p.Id == idToDel) .FirstOrDefault(); db.IncomeMoneys.Remove(notice); DialogResult dr; dr = MessageBox.Show("Ви впевнені, що хочете видалити даний запис", "Видалити запис?", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) db.SaveChanges(); } // Refresh view LoadIncomeTableInGridView(); CalculateDayBalance(); }
/// <summary> /// Завантаження таблиці Outlay в datagridview /// </summary> private void LoadOutlayTableToGridView() { using (var db = new DoorsEntities()) { var query = from s in db.OutlayMoneys where s.DateOut == dateTimePicker1.Value.Date select s; if (query == null) return; var notices = query.ToList(); dataGridView2.DataSource = notices; } dataGridView2.Columns["DateOut"].Visible = false; dataGridView2.Columns["Summa"].HeaderText = "Сума"; dataGridView2.Columns["WhereSpend"].HeaderText = "Куди витрачено"; dataGridView2.Columns["WhoReceive"].HeaderText = "Кому видано"; dataGridView2.AutoResizeColumns(); }
/// <summary> /// Редагувати дані в таблиці /// </summary> private void btn_EditData_Click(object sender, EventArgs e) { if (!ValidateInputFieldsInIncome() || textBox_id1.Text == "") return; uint id = Convert.ToUInt32(textBox_id1.Text); using (DoorsEntities db = new DoorsEntities()) { var notice = db.IncomeMoneys.FirstOrDefault(n => n.Id == id); if (notice != null) { notice.DateIn = dateTimePicker1.Value.Date; notice.Summa = Convert.ToDecimal(textBox_Summ1.Text); notice.Customer = textBox_WhoGive1.Text; notice.EmployeeId = (short) (comboBox_whoReceive1.SelectedIndex + 1); db.SaveChanges(); } } // Refresh view LoadIncomeTableInGridView(); CalculateDayBalance(); }
/// <summary> /// Зберегти дані в таблицю /// </summary> private void btn_SaveData_Click(object sender, EventArgs e) { if (!ValidateInputFieldsInIncome()) return; IncomeMoney notice = new IncomeMoney() { DateIn = dateTimePicker1.Value.Date, Summa = Convert.ToDecimal(textBox_Summ1.Text), Customer = textBox_WhoGive1.Text, EmployeeId = (short) (comboBox_whoReceive1.SelectedIndex + 1) }; using (DoorsEntities db = new DoorsEntities()) { try { db.IncomeMoneys.Add(notice); // додаємо запис db.SaveChanges(); // зберігаємо таблицю } catch (System.Data.Entity.Infrastructure.DbUpdateException) { MessageBox.Show("Переконайтесь, що Ви відобразили всі необхідні записи за попередні дні " + "або переконайтесь, що вибрана Вами дата вірна.", "Помилка при веденні журналу обліку", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.ToString()); WriteLogErrorFile.WriteInLog(logErrorFile, ex.ToString()); } } // Оновлюємо view LoadIncomeTableInGridView(); CalculateDayBalance(); }
/// <summary> /// Заповнення комбобоксів даними з БД /// </summary> private void AutoFillComboBox() { using (DoorsEntities db = new DoorsEntities()) { var query = from s in db.Employees where s.Status == true select s.Name; foreach (var item in query) { comboBox_whoReceive1.Items.Add(item.ToString()); } } }
/// <summary> /// Завантаження таблиці Income в datagridview /// </summary> private void LoadIncomeTableInGridView() { using (var db = new DoorsEntities()) { var query = from s in db.IncomeMoneys where s.DateIn == dateTimePicker1.Value.Date join prod in db.Employees on s.EmployeeId equals prod.Id select new { Summa = s.Summa, Customer = s.Customer, Employee=prod.Name, Id=s.Id, EmployeeId=s.EmployeeId, DateIn=s.DateIn }; if (query == null) return; var notices = query.ToList(); dataGridView1.DataSource = notices; } dataGridView1.Columns["DateIn"].Visible = false; dataGridView1.Columns["EmployeeId"].Visible = false; dataGridView1.Columns["Summa"].HeaderText = "Сума"; dataGridView1.Columns["Customer"].HeaderText = "Від кого поступили"; dataGridView1.Columns["Employee"].HeaderText = "Хто отримав"; dataGridView1.AutoResizeColumns(); }
/// <summary> /// Розрахунок всіх інформативних полів /// </summary> private void CalculateDayBalance() { decimal summaInput, summaOut, moneyInTheMorning, moneyInTheEvening; using (DoorsEntities db = new DoorsEntities()) { var queryFromIn = db.IncomeMoneys.Where(p => p.DateIn == dateTimePicker1.Value.Date) .Sum(p => p.Summa) .GetValueOrDefault(0); summaInput = queryFromIn; var queryFromOut = db.OutlayMoneys.Where(p => p.DateOut == dateTimePicker1.Value.Date) .Sum(p => p.Summa) .GetValueOrDefault(0); summaOut = queryFromOut; var queryInTheMorning = db.Balances.Where(p => p.Date == dateTimePicker1.Value.Date).FirstOrDefault(); moneyInTheMorning = queryInTheMorning == null ? 0 : queryInTheMorning.SummaInTheMorning; var queryInTheEvening = db.Balances.Where(p => p.Date == dateTimePicker1.Value.Date).FirstOrDefault(); moneyInTheEvening = queryInTheEvening == null ? 0 : queryInTheEvening.SummaInTheEvening; } textBox_summInputToday.Text = summaInput.ToString(); textBox_summaOutlayToday.Text = summaOut.ToString(); textBox_dayBalance.Text = moneyInTheEvening.ToString(); textBox_moneyYesterdayEvening.Text = moneyInTheMorning.ToString(); }