public static IEnumerable <DebtRow> Deserialize(string fileName) { if (!File.Exists(fileName)) { throw new FileNotFoundException("Файл не найден", fileName); } var serializer = new XmlSerializer(typeof(XmlDebtRows)); using (var reader = new StreamReader(fileName, Encoding.UTF8)) { var xmlRows = ((XmlDebtRows)serializer.Deserialize(reader)).Rows; var rows = new List <DebtRow>(); foreach (var xmlRow in xmlRows) { var row = new DebtRow(); row.Amount = xmlRow.Amount; row.Amount2 = xmlRow.Amount2; row.DebtType = (DebtType)xmlRow.DebtType; row.Month = xmlRow.Month; row.Year = xmlRow.Year; row.Subject = DebtDAO.GetSubjectByCode(xmlRow.SubjectCode); row.Classifier = DebtDAO.FindClassifier(xmlRow.ClassifierCode); if (row.Classifier == null) { row.Classifier = new Classifier(xmlRow.ClassifierId) { Code = xmlRow.ClassifierCode, GrpName12 = string.Format("<Классификатор импортирован из {0}>", Path.GetFileName(fileName)) }; } rows.Add(row); } return(rows); } }
private void SettingsForm_Load(object sender, EventArgs e) { comboBoxDefSubject.DataSource = DebtDAO.GetSubjects(); settings = DebtDAO.GetSettings(); if (settings.DefaultSubject != null) { comboBoxDefSubject.SelectedItem = settings.DefaultSubject; } checkBoxAuto.Checked = settings.IsAutoPasteClassifier; comboBoxBudgets.DataSource = DebtDAO.GetBudgets(); if (!string.IsNullOrEmpty(settings.FilterBudget)) { checkBoxFilterSubjects.Checked = true; if (comboBoxBudgets.Items.Contains(settings.FilterBudget)) { comboBoxBudgets.SelectedItem = settings.FilterBudget; } } else { checkBoxFilterSubjects.Checked = false; } }
private void initBooksWorker_DoWork(object sender, DoWorkEventArgs e) { try { DebtDAO.Initialize(); } catch { } }
/// <inheritdoc/> public override object ParseFormattedValue(object formattedValue, DataGridViewCellStyle cellStyle, System.ComponentModel.TypeConverter formattedValueTypeConverter, System.ComponentModel.TypeConverter valueTypeConverter) { try { var clsfCode = formattedValue as string; if (string.IsNullOrEmpty(clsfCode)) { return(null); } var clsf = DebtDAO.FindClassifier(clsfCode); if (clsf == null) { ErrorText = string.Format("Классификатор с кодом {0} не обнаружен в справочнике.\r\nБудет создан новый классификатор", clsfCode); return(new Classifier() { MaskedCode = clsfCode, GrpName12 = "<Новый классификатор>" }); } ErrorText = string.Empty; return(clsf); } catch (ClassifierFormatException e) { ErrorText = e.Message; return(Classifier.Empty); } }
private void ClassifiersForm_Shown(object sender, EventArgs e) { var classifiers = DebtDAO.GetClassifiers(); classifierBindingSource.DataSource = classifiers; treeView.BeginUpdate(); FillLevel(1, treeView.Nodes, classifiers); treeView.EndUpdate(); if (radioButtonList.Checked) { if (classifierBindingSource.DataSource != null && selectedClassifier != null && 0 <= classifierBindingSource.IndexOf(selectedClassifier)) { classifierBindingSource.Position = classifierBindingSource.IndexOf(selectedClassifier); } } else { if (selectedClassifier != null && cacheNodes.ContainsKey(selectedClassifier.Id)) { TreeNode node = (TreeNode)cacheNodes[selectedClassifier.Id]; treeView.BeginUpdate(); node.EnsureVisible(); treeView.SelectedNode = node; treeView.EndUpdate(); } } }
private void rowsDataGrid_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { if (0 <= e.Row.Index && e.Row.Index < rows.Count) { DebtDAO.RemoveDebtRow(rows[e.Row.Index]); rows.RemoveAt(e.Row.Index); } }
private void ShowDebtRows() { rows = new List <DebtRow>( DebtDAO.GetDebtRows(debtDocProperties.DebtType, debtDocProperties.Month, debtDocProperties.Year) ); rowsDataGrid.Rows.Clear(); rowsDataGrid.RowCount = this.rows.Count + 1; }
public Report1ParamForm(DebtType type, int month, int year) { InitializeComponent(); DebtProperties.DebtType = type; DebtProperties.Month = month; DebtProperties.Year = year; comboBoxBudgetName.Items.Add("<Все бюджеты>"); comboBoxBudgetName.Items.AddRange(DebtDAO.GetBudgets()); comboBoxBudgetName.SelectedIndex = 0; }
public void ShowReport(DebtType type, int month, int year) { var reportParam = new Report1ParamForm(type, month, year); if (reportParam.ShowDialog() != DialogResult.OK) { return; } type = reportParam.DebtProperties.DebtType; month = reportParam.DebtProperties.Month; year = reportParam.DebtProperties.Year; string reportCaption = string.Format("Отчет по {0} задолженности за {1} месяц {2} года", (type == DebtType.Кредиторская ? "кредиторской" : "дебиторской"), DebtUtil.GetMonthName(month).ToLower(), year); string reportName = (reportParam.GroupBySubjects ? reportName = "CI.Debt.Reports.Report1.rdlc" : "CI.Debt.Reports.Report2.rdlc"); var reportForm = new ReportForm(); reportForm.Text = reportCaption; reportForm.reportViewer.LocalReport.ReportEmbeddedResource = reportName; reportForm.reportViewer.LocalReport.DisplayName = reportCaption; reportForm.reportViewer.LocalReport.SetParameters(new[] { new ReportParameter("pCaption", reportCaption) }); reportForm.Show(); IList <DebtRow> rows = null; if (reportParam.GroupBySubjects && 0 < reportParam.comboBoxBudgetName.SelectedIndex) { rows = DebtDAO.GetDebtRows(type, month, year, (string)reportParam.comboBoxBudgetName.SelectedItem); } else { rows = DebtDAO.GetDebtRows(type, month, year); } var reportRows = new List <Report1Row>(); foreach (var row in rows) { reportRows.Add(new Report1Row(row)); } reportForm.reportViewer.LocalReport.DataSources.Add(new ReportDataSource("Report1Row", reportRows)); reportForm.reportViewer.RefreshReport(); reportForm.reportViewer.SetDisplayMode(DisplayMode.PrintLayout); reportForm.reportViewer.ZoomMode = ZoomMode.Percent; reportForm.reportViewer.ZoomPercent = 100; }
private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { settings.DefaultSubject = comboBoxDefSubject.SelectedItem as Subject; settings.IsAutoPasteClassifier = checkBoxAuto.Checked; if (checkBoxFilterSubjects.Checked) { settings.FilterBudget = comboBoxBudgets.SelectedItem as string; } else { settings.FilterBudget = null; } DebtDAO.SaveSettings(settings); } }
private void buttonSelect_Click(object sender, EventArgs e) { var clsf = EditingControlDataGridView.CurrentCell.Value as Classifier; if (clsf == null || Classifier.Empty.Equals(clsf)) { clsf = DebtDAO.FindNearestClassifier(EditingControlFormattedValue as string); } clsfForm.SelectedClassifier = clsf ?? Classifier.Empty; if (clsfForm.ShowDialog() == DialogResult.OK) { clsf = clsfForm.SelectedClassifier; if (clsf != null) { EditingControlDataGridView.CurrentCell.Value = clsf; EditingControlFormattedValue = clsf.MaskedCode; } } }
private void buttonExport_Click(object sender, EventArgs e) { if (exportFolderBrowser.ShowDialog() != DialogResult.OK) { return; } try { string fileName = Path.Combine( exportFolderBrowser.SelectedPath, string.Format("{0}_{1}_{2}.xml", debtDocProperties.DebtType.ToString(), DebtUtil.GetMonthName(debtDocProperties.Month), debtDocProperties.Year) ); XmlDebtRowsSerializer.Serialize(DebtDAO.GetDebtRows(debtDocProperties.DebtType, debtDocProperties.Month, debtDocProperties.Year), fileName); MessageBox.Show(string.Format("Экспорт успешно завершен.\r\nФайл экспорта: {0}", fileName), Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("При экспорте возникло програмное исключение. Экспорт не выполнен.\r\nТекст ошибки: " + ex.ToString(), Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private DebtRow CreateDebtRow() { if (!initialized) { return(null); } var defaultSubject = DebtDAO.GetSettings().DefaultSubject; if (defaultSubject == null) { for (int i = rows.Count - 1; 0 <= i; i--) { if (rows[i].Subject != null) { defaultSubject = rows[i].Subject; break; } } } var defaultClassifier = Classifier.Empty; for (int i = rows.Count - 1; 0 <= i; i--) { if (rows[i].Classifier != null) { defaultClassifier = rows[i].Classifier; break; } } return(new DebtRow() { DebtType = debtDocProperties.DebtType, Month = debtDocProperties.Month, Year = debtDocProperties.Year, Subject = defaultSubject, Classifier = defaultClassifier, }); }
static void Main(string[] args) { ICreditDAO creditDao = new CreditDAO(); IDebtDAO debtDao = new DebtDAO(); IBankBookDAO bookDao = new BankBookDAO(); var cronPenya = new PenyaCron(10000);//каждые 10 секунд cronPenya.OnStart(); var cronCredit = new CreditCron(30000);//каждые 5 минут cronCredit.OnStart(); var cron = new Cron(8000); //cron.OnStart(); while (true) { var input = Console.ReadKey(); if (input.Key != ConsoleKey.Escape) continue; Console.WriteLine("завершение работы"); Thread.Sleep(500); Console.Clear(); Console.WriteLine(" ^_^"); Thread.Sleep(500); Console.Clear(); Console.WriteLine(@"\^_^/"); Thread.Sleep(500); Console.Clear(); Console.WriteLine(@"/-_-\"); Thread.Sleep(500); Console.Clear(); Console.WriteLine("goodbay! Т_Т"); Thread.Sleep(500); break; } cron.OnStop(); cronCredit.OnStop(); cronPenya.OnStop(); }
private void toolStripMenuItemCopy_Click(object sender, EventArgs e) { var copyForm = new DebtCopyForm(debtDocProperties.DebtType, debtDocProperties.Month, debtDocProperties.Year); if (copyForm.ShowDialog(this) != DialogResult.OK) { return; } DebtDAO.CopyDebtRows( copyForm.DebtPropertiesFrom.DebtType, copyForm.DebtPropertiesFrom.Month, copyForm.DebtPropertiesFrom.Year, copyForm.DebtPropertiesTo.DebtType, copyForm.DebtPropertiesTo.Month, copyForm.DebtPropertiesTo.Year); MessageBox.Show("Копирование строк задолженности успешно завершено.", Text, MessageBoxButtons.OK, MessageBoxIcon.Information); debtDocProperties.SetDebtProperties(copyForm.DebtPropertiesTo.DebtType, copyForm.DebtPropertiesTo.Month, copyForm.DebtPropertiesTo.Year); }
private void initBooksWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { waitForm.CanClose = true; waitForm.Close(); waitForm.Dispose(); waitForm = null; subjects = DebtDAO.GetSubjects(); var budget = DebtDAO.GetSettings().FilterBudget; if (!string.IsNullOrEmpty(budget)) { subjects = subjects.FindAll(s => { return(string.Compare(budget, s.BudgetName, true) == 0); }); subjectsFiltered = true; } SubjectColumn.DataSource = subjects; SubjectColumn.DisplayMember = "FullName"; SubjectColumn.ValueMember = "Self"; initialized = true; ShowDebtRows(); }
private bool ValidateToDebt() { if (DebtPropertiesFrom.DebtType == DebtPropertiesTo.DebtType && DebtPropertiesFrom.Month == DebtPropertiesTo.Month && DebtPropertiesFrom.Year == DebtPropertiesTo.Year) { var result = MessageBox.Show("Задолженности совпадают. В задолженности будут созданы копии существующих строк.\r\n" + "Вы действительно хотите копировать строки в одну и ту же задолженность?", Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); return(result == DialogResult.OK); } var toDebtRowsCount = DebtDAO.GetDebtRows(DebtPropertiesTo.DebtType, DebtPropertiesTo.Month, DebtPropertiesTo.Year).Count; if (toDebtRowsCount != 0) { var result = MessageBox.Show("В задолженность, в которую вы хотите скопировать строки, уже имеются строки.\r\n" + "Вы действительно хотите копировать строки в непустую задолженность?", Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); return(result == DialogResult.OK); } return(true); }
private void maskedTextBox_TextChanged(object sender, EventArgs e) { if (EditingControlDataGridView != null) { EditingControlDataGridView.NotifyCurrentCellDirty(true); } EditingControlValueChanged = true; if (!DebtDAO.GetSettings().IsAutoPasteClassifier) { return; } //автоподстановка классификатора int position = (int)caretField.GetValue(maskedTextBox) + 1; string code = Classifier.RemoveMaskSymbols(Text.Substring(0, position)); if (string.IsNullOrEmpty(code) || code.Length == Classifier.CodeLenght) { return; } var clsf = DebtDAO.FindNearestClassifier(code); string newCode = null; if (clsf != null) { newCode = clsf.MaskedCode; } else { newCode = code + new string('0', Classifier.CodeLenght).Substring(0, Classifier.CodeLenght); } position -= 1; Text = newCode; if (0 <= position && position < maskedTextBox.MaskedTextProvider.Length) { caretField.SetValue(maskedTextBox, position); } }
private void rowsDataGrid_CellValuePushed(object sender, DataGridViewCellValueEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } DebtRow row = null; if (e.RowIndex < rows.Count) { row = rows[e.RowIndex]; } else { row = newRow; rows.Add(row); } if (e.ColumnIndex == 0) { row.Classifier = e.Value as Classifier; } if (e.ColumnIndex == 1) { row.Amount = ParseStringToAmount(e.Value as string); } if (e.ColumnIndex == 2) { row.Amount2 = ParseStringToAmount(e.Value as string); } if (e.ColumnIndex == 3) { row.Subject = e.Value as Subject; } DebtDAO.SaveOrUpdateDebtRow(row); }
private void toolStripMenuItemImport_Click(object sender, EventArgs e) { if (openFileDialogImport.ShowDialog() != DialogResult.OK) { return; } try { var rows = new List <DebtRow>(XmlDebtRowsSerializer.Deserialize(openFileDialogImport.FileName)); if (rows.Count == 0) { return; } var existsRows = new List <DebtRow>(DebtDAO.GetDebtRows(rows[0].DebtType, rows[0].Month, rows[0].Year)); if (0 < existsRows.Count) { var answer = MessageBox.Show("Уже существуют строки задолженности такого же типа, месяца и года, как и в файле импорта.\r\nПродолжить импорт?\r\nДа - продолжить импорт, Отмена - прервать импорт.", Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (answer == DialogResult.Cancel) { return; } } foreach (var row in rows) { if (existsRows.Exists(r => { return(r.Classifier.Equals(row.Classifier) && r.Subject.Equals(row.Subject)); })) { var answer = MessageBox.Show("Уже существуют строки задолженности с такими же классификатором и субъектом, как и в файле импорта.\r\nПродолжить импорт и перезаписать существующие строки?\r\nДа - продолжить импорт, Отмена - прервать импорт.", Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (answer == DialogResult.Cancel) { return; } break; } } var rowsToSave = new List <DebtRow>(); foreach (var row in rows) { var existsRow = existsRows.Find(r => { return(r.Classifier.Equals(row.Classifier) && r.Subject.Equals(row.Subject)); }); if (existsRow != null) { existsRow.Amount = row.Amount; existsRow.Amount2 = row.Amount2; rowsToSave.Add(existsRow); } else { rowsToSave.Add(row); } } DebtDAO.SaveOrUpdateDebtRows(rowsToSave); debtDocProperties.SetDebtProperties(rows[0].DebtType, rows[0].Month, rows[0].Year); MessageBox.Show(string.Format("Импорт успешно завершен.\r\nФайл импорта: {0}", openFileDialogImport.FileName), Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(string.Format("Ошибка при импорте задолженности, импорт не выполнен.\r\nТекст ошибки: {0}", ex), Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void SubjectsForm_Shown(object sender, EventArgs e) { subjectsView.DataSource = new SubjectsBindingList(DebtDAO.GetSubjects()); }