protected override void populate(SQLiteDataReader reader)
        {
            WriteoffDetails writeoffDetails = new WriteoffDetails();

            writeoffDetails.Id           = reader.GetInt32(0);
            writeoffDetails.DetailsCount = reader.GetInt32(1);
            writeoffDetails.IdDetails    = reader.GetInt32(2);
            writeoffDetails.IdWriteoff   = reader.GetInt32(3);
            add(writeoffDetails);
        }
        public bool add <T>(T model)
        {
            try
            {
                WriteoffDetails writeoffDetails = model as WriteoffDetails;
                _collection.Add(writeoffDetails);

                return(true);
            }
            catch (Exception ex)
            {
                Log.WriteError(ex.Message);
                return(false);
            }
        }
 public bool remove <T>(T model)
 {
     try
     {
         WriteoffDetails writeoffDetails = model as WriteoffDetails;
         if (_collection.Contains(writeoffDetails))
         {
             _collection.Remove(writeoffDetails);
         }
         return(true);
     }
     catch (Exception ex)
     {
         Log.WriteError(ex.Message);
         return(false);
     }
 }
Exemple #4
0
        private void saveWriteoff()
        {
            if (cbxRecipients.SelectedIndex == -1)
            {
                System.Windows.MessageBox.Show("Выберите получателя!");
                return;
            }
            if (tbxAppNumber.Text == "")
            {
                System.Windows.MessageBox.Show("Введите номер заявки!");
                return;
            }
            if (wodh_collection.Collection.Count == 0)
            {
                System.Windows.MessageBox.Show("Невозможно сохранить пустое списание!");
                return;
            }
            if (System.Windows.MessageBox.Show("Подтвердите списание", "Подтвердите списание", MessageBoxButton.YesNo) != MessageBoxResult.Yes)
            {
                return;
            }

            if (!wodh_collection.isAllCorrect())
            {
                System.Windows.MessageBox.Show("Проверьте введенные данные!\nОдна или более строк заполнены некорректно!");
                return;
            }

            Writeoff writeoff = new Writeoff();

            writeoff.WriteoffDate = DateTime.Now;
            writeoff.AppNumber    = tbxAppNumber.Text;
            writeoff.IdRecipient  = (int)cbxRecipients.SelectedValue;

            if (writeoff.save())
            {
                for (int i = 0; i < wodh_collection.Collection.Count; i++)
                {
                    WriteoffDetailsHelper wodh = wodh_collection.Collection[i];
                    if (wodh.IdDetails == 0)
                    {
                        continue;
                    }
                    WriteoffDetails writeoffDetails = new WriteoffDetails();
                    writeoffDetails.IdDetails    = wodh.IdDetails;
                    writeoffDetails.IdWriteoff   = writeoff.Id;
                    writeoffDetails.DetailsCount = wodh.DetailsCount;
                    if (!writeoffDetails.save())
                    {
                        System.Windows.MessageBox.Show("При сохранении элементов списания произошли ошибки.");
                        writeoff.remove();
                        return;
                    }
                }

                ///Update current count
                //wodh_collection.Collection.Count-1 - т.к. последняя строка пустая
                for (int i = 0; i < wodh_collection.Collection.Count - 1; i++)
                {
                    wodh_collection.Collection[i].Detail.CurrentCount = 0;
                }

                wodh_collection.clear();
                cbxRecipients.SelectedIndex = -1;
                tbxAppNumber.Text           = "";

                WriteoffDetailsHelper newWriteoffDetailsHelper = new WriteoffDetailsHelper();
                wodh_collection.add(newWriteoffDetailsHelper);
            }
            else
            {
                System.Windows.MessageBox.Show("При сохранении списания произошли ошибки.");
                return;
            }
        }