Esempio n. 1
0
        private void button2_Click(object sender, EventArgs e)
        {
            MedicamentRemain selectedItem = remainsTable.CurrentRow.DataBoundItem as MedicamentRemain;

            if (selectedItem.Medicament != null &&
                NotificationHelper.ShowQuestion("Ви впевнені, що хочете видалити виділений елемент?") != System.Windows.Forms.DialogResult.Yes)
            {
                return;
            }

            int deletingRowIndex = remainsTable.CurrentRow.Index;

            if (selectedItem.Medicament != null)
            {
                existingMedicamentsInTable.Remove(selectedItem.Medicament.Id);
            }

            remainsTable.Rows.RemoveAt(deletingRowIndex);
            RecalculateRowsNumbers(deletingRowIndex);

            if (selectedItem.Id > 0)
            {
                backgroundDbUpdateWorker.RunWorkerAsync(new DbRecordChangesTask {
                    DbRecord = selectedItem, ChangesType = DbRecordChangesType.Remove
                });
                medRemainsList.Remove(selectedItem);
            }
        }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            MedicamentRemain newMedRem = new MedicamentRemain();

            newMedRem.HospitalDepartmentId = Convert.ToInt32(departmentsCBList.SelectedValue);
            medRemainsList.Add(newMedRem);
            remainsTable.CurrentCell = remainsTable.Rows[remainsTable.Rows.Count - 1].Cells[2];
        }
Esempio n. 3
0
        // Обновляем данные в БД в фоновом режиме
        private void backgroundDbUpdateWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            DbRecordChangesTask updateDbTask = e.Argument as DbRecordChangesTask;

            try
            {
                using (MedicamentRemainsContext mc = new MedicamentRemainsContext())
                {
                    MedicamentRemain record = updateDbTask.DbRecord as MedicamentRemain;
                    record.UpdateDate = DateTime.Now;

                    switch (updateDbTask.ChangesType)
                    {
                    case DbRecordChangesType.Create:
                        backgroundDbUpdateWorker.ReportProgress(0, "Створення запису по медикаменту " + record.Medicament + " ...");

                        mc.Medicaments.Attach(record.Medicament);
                        mc.MedicamentRemains.Add(record);
                        mc.SaveChanges();

                        backgroundDbUpdateWorker.ReportProgress(0, "Запис успішно доданий до бази данних!");
                        break;

                    case DbRecordChangesType.Update:
                        backgroundDbUpdateWorker.ReportProgress(0, "Оновлення запису по медикаменту " + record.Medicament + " ...");

                        mc.Medicaments.Attach(record.Medicament);
                        mc.Entry <MedicamentRemain>(record).State = System.Data.Entity.EntityState.Modified;
                        mc.SaveChanges();

                        backgroundDbUpdateWorker.ReportProgress(0, "Запис успішно оновлений у базі данних!");
                        break;

                    case DbRecordChangesType.Remove:
                        backgroundDbUpdateWorker.ReportProgress(0, "Видалення запису по медикаменту " + record.Medicament + " ...");

                        MedicamentRemain item = mc.MedicamentRemains.Where(p => (p.Id == record.Id)).First();
                        mc.MedicamentRemains.Remove(item);
                        mc.SaveChanges();

                        backgroundDbUpdateWorker.ReportProgress(0, "Запис успішно видалений з бази данних!");
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                backgroundDbUpdateWorker.ReportProgress(0, "Помилка: " + ex.Message);
            }

            // Задержка, чтобы пользователь смог прочитать сообщение об успехе операции либо об ошибке
            System.Threading.Thread.Sleep(3000);
        }
Esempio n. 4
0
        private void remainsTable_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            for (int i = 0; i < e.RowCount; i++)
            {
                MedicamentRemain rowMedRemain = remainsTable.Rows[e.RowIndex].DataBoundItem as MedicamentRemain;
                remainsTable.Rows[e.RowIndex + i].Cells[1].Value = (e.RowIndex + i + 1);

                if (rowMedRemain.Medicament != null)
                {
                    remainsTable.Rows[e.RowIndex + i].Cells[4].Value = rowMedRemain.Medicament.Meter;
                }
            }
        }
Esempio n. 5
0
        private void remainsTable_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if ((e.ColumnIndex == 3 || e.ColumnIndex == 2) && e.RowIndex >= 0)
            {
                MedicamentRemain currentElement = remainsTable.Rows[e.RowIndex].DataBoundItem as MedicamentRemain;

                // Форматируем введённый остаток (добавляем десятичную часть)
                //string formatedRemain = currentElement.CurrentRemain.ToString("F4");
                //remainsTable.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Convert.ToDecimal(formatedRemain);

                if (currentElement.Medicament != null && currentElement.Id > 0)
                {
                    SendUpdateDbTask(new DbRecordChangesTask {
                        DbRecord = currentElement, ChangesType = DbRecordChangesType.Update
                    });
                }
            }
        }
Esempio n. 6
0
        // Смена медикамента при двойном клике на ячейку таблицы
        private void remainsTable_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            // Убираем возможность смены медикамента, если выбран показ итогов по остаткам
            int selectedDepartmentId = Convert.ToInt32(departmentsCBList.SelectedValue);

            if (selectedDepartmentId < 0)
            {
                return;
            }

            MedicamentRemain currentElement = remainsTable.Rows[e.RowIndex].DataBoundItem as MedicamentRemain;

            if (e.ColumnIndex == 2)
            {
                MedicamentSelectForm mf = new MedicamentSelectForm(existingMedicamentsInTable);
                mf.ShowDialog();
                if (mf.SelectedMedicament != null)
                {
                    if (currentElement.Medicament != null)
                    {
                        existingMedicamentsInTable.Remove(currentElement.Medicament.Id);
                    }
                    existingMedicamentsInTable.Add(mf.SelectedMedicament.Id);

                    remainsTable.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = mf.SelectedMedicament;
                    remainsTable.Rows[e.RowIndex].Cells[4].Value             = mf.SelectedMedicament.Meter;
                    currentElement.MedicamentId = mf.SelectedMedicament.Id;

                    if (currentElement.Id == 0)
                    {
                        SendUpdateDbTask(new DbRecordChangesTask {
                            DbRecord = currentElement, ChangesType = DbRecordChangesType.Create
                        });
                    }
                    else
                    {
                        SendUpdateDbTask(new DbRecordChangesTask {
                            DbRecord = currentElement, ChangesType = DbRecordChangesType.Update
                        });
                    }
                }
            }
        }
Esempio n. 7
0
        private void remainsLoadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            remainsTable.DataSource = medRemainsList;
            for (int i = 0; i < remainsTable.RowCount; i++)
            {
                MedicamentRemain row = remainsTable.Rows[i].DataBoundItem as MedicamentRemain;
                if (row.Medicament != null)
                {
                    remainsTable.Rows[i].Cells[4].Value = row.Medicament.Meter;
                }
            }

            remainsTable.Update();
            departmentsCBList.Enabled = true;

            int selectedDepId = Convert.ToInt32(departmentsCBList.SelectedValue);

            if (selectedDepId > 0)
            {
                addRecord.Enabled = true;
            }

            ToggleLoadingAnimation();
        }