aboutsummaryrefslogtreecommitdiff
path: root/src/PriceListTools
diff options
context:
space:
mode:
Diffstat (limited to 'src/PriceListTools')
-rw-r--r--src/PriceListTools/AbstractTool.cs31
-rw-r--r--src/PriceListTools/CombineTool.cs23
-rw-r--r--src/PriceListTools/ConvertTool.cs21
-rw-r--r--src/PriceListTools/ExportTool.cs9
-rw-r--r--src/PriceListTools/MergeTool.cs20
5 files changed, 59 insertions, 45 deletions
diff --git a/src/PriceListTools/AbstractTool.cs b/src/PriceListTools/AbstractTool.cs
index 68c5250..af60d0d 100644
--- a/src/PriceListTools/AbstractTool.cs
+++ b/src/PriceListTools/AbstractTool.cs
@@ -4,7 +4,6 @@ using RehauSku.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Windows.Forms;
using Application = Microsoft.Office.Interop.Excel.Application;
using ProgressBar = RehauSku.Interface.ProgressBar;
@@ -12,10 +11,12 @@ namespace RehauSku.PriceListTools
{
internal abstract class AbstractTool
{
- protected private Application ExcelApp = (Application)ExcelDnaUtil.Application;
- protected private TargetPriceList TargetFile;
- protected private ResultBar ResultBar { get; set; }
- protected private ProgressBar ProgressBar { get; set; }
+ protected Application ExcelApp = (Application)ExcelDnaUtil.Application;
+ protected TargetPriceList TargetFile { get; set; }
+ protected ResultBar ResultBar { get; set; }
+ protected ProgressBar ProgressBar { get; set; }
+
+ public abstract void FillTarget();
public void OpenNewPrice()
{
@@ -23,12 +24,6 @@ namespace RehauSku.PriceListTools
.Cast<Workbook>()
.FirstOrDefault(w => w.FullName == RegistryUtil.PriceListPath) != null)
{
- MessageBox.Show
- ("Шаблонный файл редактируется в другом месте",
- "Ошибка открытия шаблонного прайс-листа",
- MessageBoxButtons.OK,
- MessageBoxIcon.Information);
-
throw new ArgumentException("Шаблонный файл редактируется в другом месте");
}
@@ -41,12 +36,6 @@ namespace RehauSku.PriceListTools
catch (Exception exception)
{
- MessageBox.Show
- (exception.Message,
- "Ошибка открытия шаблонного прайс-листа",
- MessageBoxButtons.OK,
- MessageBoxIcon.Information);
-
if (wb != null)
{
wb.Close();
@@ -56,7 +45,7 @@ namespace RehauSku.PriceListTools
}
}
- protected private void FillPositionAmountToColumns(KeyValuePair<Position, double> positionAmount, params int[] columns)
+ protected void FillPositionAmountToColumns(KeyValuePair<Position, double> positionAmount, params int[] columns)
{
int? row = GetPositionRow(TargetFile.skuCell.EntireColumn, positionAmount.Key.Sku, positionAmount.Key.Group);
@@ -108,7 +97,7 @@ namespace RehauSku.PriceListTools
ResultBar.IncrementNotFound();
}
- protected private void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns)
+ protected void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns)
{
int row = TargetFile.Sheet.Cells[TargetFile.Sheet.Rows.Count, TargetFile.skuCell.Column]
.End[XlDirection.xlUp]
@@ -145,7 +134,7 @@ namespace RehauSku.PriceListTools
}
}
- protected private int? GetPositionRow(Range range, string sku, string group)
+ protected int? GetPositionRow(Range range, string sku, string group)
{
Range found = range.Find(sku);
string foundGroupValue;
@@ -175,7 +164,7 @@ namespace RehauSku.PriceListTools
}
}
- protected private void FilterByAmount()
+ protected void FilterByAmount()
{
AutoFilter filter = TargetFile.Sheet.AutoFilter;
int startColumn = filter.Range.Column;
diff --git a/src/PriceListTools/CombineTool.cs b/src/PriceListTools/CombineTool.cs
index af9378c..e3cb83e 100644
--- a/src/PriceListTools/CombineTool.cs
+++ b/src/PriceListTools/CombineTool.cs
@@ -1,15 +1,32 @@
using Microsoft.Office.Interop.Excel;
-using System.Collections.Generic;
using RehauSku.Interface;
+using System;
+using System.Collections.Generic;
using System.Linq;
+using Dialog = RehauSku.Interface.Dialog;
namespace RehauSku.PriceListTools
{
internal class CombineTool : AbstractTool
{
- public List<SourcePriceList> SourceFiles;
+ private List<SourcePriceList> SourceFiles { get; set; }
+
+ public CombineTool()
+ {
+ string[] files = Dialog.GetMultiplyFiles();
+
+ if (files != null)
+ {
+ SourceFiles = SourcePriceList.GetSourceLists(files);
+ }
+
+ else
+ {
+ throw new Exception("Не выбраны файлы");
+ }
+ }
- public void FillTarget()
+ public override void FillTarget()
{
ProgressBar = new ProgressBar("Заполняю строки...", SourceFiles.Sum(file => file.PositionAmount.Count));
ResultBar = new ResultBar();
diff --git a/src/PriceListTools/ConvertTool.cs b/src/PriceListTools/ConvertTool.cs
index d13c803..fc5850f 100644
--- a/src/PriceListTools/ConvertTool.cs
+++ b/src/PriceListTools/ConvertTool.cs
@@ -5,27 +5,14 @@ namespace RehauSku.PriceListTools
{
internal class ConvertTool : AbstractTool
{
- private SourcePriceList Current;
+ private SourcePriceList Current { get; set; }
- public void GetCurrent()
+ public ConvertTool()
{
- try
- {
- Current = new SourcePriceList(ExcelApp.ActiveWorkbook);
- }
-
- catch (Exception exception)
- {
- System.Windows.Forms.MessageBox.Show
- (exception.Message,
- "Ошибка распознавания",
- System.Windows.Forms.MessageBoxButtons.OK,
- System.Windows.Forms.MessageBoxIcon.Information);
- throw exception;
- }
+ Current = new SourcePriceList(ExcelApp.ActiveWorkbook);
}
- public void FillTarget()
+ public override void FillTarget()
{
ProgressBar = new ProgressBar("Заполняю строки...", Current.PositionAmount.Count);
ResultBar = new ResultBar();
diff --git a/src/PriceListTools/ExportTool.cs b/src/PriceListTools/ExportTool.cs
index f341671..acc6515 100644
--- a/src/PriceListTools/ExportTool.cs
+++ b/src/PriceListTools/ExportTool.cs
@@ -13,11 +13,16 @@ namespace RehauSku.PriceListTools
public ExportTool()
{
Selection = ExcelApp.Selection;
+ GetSelected();
+
+ if (PositionAmount.Count == 0)
+ {
+ throw new Exception("В выделенном диапазоне не найдены позиции для экспорта");
+ }
}
- public void FillTarget()
+ public override void FillTarget()
{
- GetSelected();
ProgressBar = new ProgressBar("Заполняю строки...", PositionAmount.Count);
ResultBar = new ResultBar();
diff --git a/src/PriceListTools/MergeTool.cs b/src/PriceListTools/MergeTool.cs
index 0e3f1dc..77732bf 100644
--- a/src/PriceListTools/MergeTool.cs
+++ b/src/PriceListTools/MergeTool.cs
@@ -1,4 +1,5 @@
using RehauSku.Interface;
+using System;
using System.Collections.Generic;
using System.Linq;
@@ -6,9 +7,24 @@ namespace RehauSku.PriceListTools
{
internal class MergeTool : AbstractTool
{
- public List<SourcePriceList> SourceFiles;
+ private List<SourcePriceList> SourceFiles { get; set; }
- public void FillTarget()
+ public MergeTool()
+ {
+ string[] files = Dialog.GetMultiplyFiles();
+
+ if (files != null)
+ {
+ SourceFiles = SourcePriceList.GetSourceLists(files);
+ }
+
+ else
+ {
+ throw new Exception("Не выбраны файлы");
+ }
+ }
+
+ public override void FillTarget()
{
ProgressBar = new ProgressBar("Заполняю строки...", SourceFiles.Sum(x => x.PositionAmount.Count));
ResultBar = new ResultBar();