ConsolidatedInventoryActions.cs
4.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Storage.ConsolidatedInventory;
namespace DirRX.Storage.Client
{
partial class ConsolidatedInventoryActions
{
public virtual void ReopenInventory(Sungero.Domain.Client.ExecuteActionArgs e)
{
_obj.Status = Status.Active;
_obj.Save();
}
public virtual bool CanReopenInventory(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return _obj.Status == Status.Closed;
}
public virtual void CloseInventory(Sungero.Domain.Client.ExecuteActionArgs e)
{
_obj.Status = Status.Closed;
_obj.Save();
}
public virtual bool CanCloseInventory(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return _obj.Status == Status.Active;
}
public virtual void CreateAnnualSection(Sungero.Domain.Client.ExecuteActionArgs e)
{
// Проверить наличие переданных в архив дел для формирования годового раздела.
var caseFiles = PublicFunctions.ConsolidatedInventory.Remote.GetCaseFiles(_obj);
if (!caseFiles.Any())
{
Dialogs.ShowMessage(DirRX.Storage.ConsolidatedInventories.Resources.CreateAnnualSectionDialogCaseFileNotFoundWarning, MessageType.Warning);
return;
}
// Запросить критерии формирования годового раздела.
var dialog = Dialogs.CreateInputDialog(DirRX.Storage.ConsolidatedInventories.Resources.CreateAnnualSectionDialogTitle);
var yearSelector = dialog.AddInteger(DirRX.Storage.ConsolidatedInventories.Resources.CreateAnnualSectionDialogYearLabel, true, (int?)Calendar.Now.Year);
dialog.SetOnButtonClick((d) =>
{
if (d.Button == DialogButtons.Ok)
{
if (yearSelector.Value < 1990)
e.AddError("Неверно указан год.");
}
});
if (dialog.Show() == DialogButtons.Ok)
{
var year = yearSelector.Value.Value;
var annualSection = Functions.Module.Remote.GetAnnualSection(_obj, year);
if (annualSection != null)
{
if (Signatures.Get(annualSection).Where(x => x.SignatureType == SignatureType.Approval).Any())
{
Dialogs.ShowMessage(DirRX.Storage.ConsolidatedInventories.Resources.CreateAnnualSectionDialogAlreadyExists, MessageType.Warning);
return;
}
else
{
var dialogConfirm = Dialogs.CreateConfirmDialog(DirRX.Storage.ConsolidatedInventories.Resources.AnnualSectionCreatingConfirmFormat(year.ToString(), _obj.Name));
if (dialogConfirm.Show() != true)
return;
}
}
// Проверить дела за указанный год.
var caseFilesYear = caseFiles.Where(x => x.LTAConsInventoryYearDirRX == year);
if (!caseFilesYear.Any())
{
Dialogs.ShowMessage(DirRX.Storage.ConsolidatedInventories.Resources.CreateAnnualSectionDialogYearCaseFileNotFoundWarning, MessageType.Warning);
return;
}
// Создать и отобразить годовой раздел.
annualSection = Storage.PublicFunctions.Module.Remote.CreateAnnualSection(_obj, year, caseFilesYear.Count());
// Сформировать тело документа из отчета.
Storage.PublicFunctions.AnnualSection.GenerateLastVersionFromReport(annualSection);
if (annualSection != null)
annualSection.Open();
}
}
public virtual bool CanCreateAnnualSection(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return true;
}
public virtual void ShowAnnualSections(Sungero.Domain.Client.ExecuteActionArgs e)
{
PublicFunctions.ConsolidatedInventory.Remote.GetAnnualSections(_obj).Show();
}
public virtual bool CanShowAnnualSections(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return true;
}
public virtual void ShowCaseFiles(Sungero.Domain.Client.ExecuteActionArgs e)
{
PublicFunctions.ConsolidatedInventory.Remote.GetCaseFiles(_obj).ShowModal();
Functions.ConsolidatedInventory.UpdateConsolidatedInventory(_obj);
}
public virtual bool CanShowCaseFiles(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return true;
}
}
}