-
Notifications
You must be signed in to change notification settings - Fork 0
/
Zlecenie.pas
103 lines (85 loc) · 2.43 KB
/
Zlecenie.pas
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
unit Zlecenie;
interface
uses
System.Generics.Collections, Data.Win.ADODB, VCLTee.GanttCh, ZlecenieEtap, ZlecenieDane;
type
TZlecenie = class(TObjectList<TZlecenieEtap>)
private
var
poprzedniEtap : TZlecenieEtap;
public
var
daneZlecenia : TZlecenieDane;
constructor Create(AOwnsObjects : Boolean = True);
destructor Free;
function Add(etapZlecenia : TZlecenieEtap) : Integer;
procedure PolaczKolejneEtapyZleceniaWSerii(seria : TGanttSeries);
procedure Czysc;
function ZnajdzEtapZleceniaZGanttId(ganttId : Integer) : TZlecenieEtap;
function PierwszyNierozpoczetyEtap() : TZlecenieEtap;
end;
implementation
constructor TZlecenie.Create(AOwnsObjects : Boolean = True);
begin
inherited Create(ownsObjects);
poprzedniEtap := nil;
daneZlecenia := TZlecenieDane.Create;
end;
destructor TZlecenie.Free;
begin
daneZlecenia.Free;
inherited Free;
end;
function TZlecenie.Add(etapZlecenia : TZlecenieEtap) : Integer;
begin
if not (poprzedniEtap = nil) then
begin
etapZlecenia.poprzedniEtap := poprzedniEtap;
poprzedniEtap.nastepnyEtap := etapZlecenia;
end;
poprzedniEtap := etapZlecenia;
etapZlecenia.daneZlecenia := daneZlecenia;
Result := inherited Add(etapZlecenia);
end;
procedure TZlecenie.PolaczKolejneEtapyZleceniaWSerii(seria : TGanttSeries);
var
etapZlecenia : TZlecenieEtap;
begin
for etapZlecenia in self do
if not (etapZlecenia.poprzedniEtap = nil) and not (etapZlecenia.ganttID = 0) then
seria.NextTask[etapZlecenia.poprzedniEtap.ganttID] := etapZlecenia.ganttID;
end;
procedure TZlecenie.Czysc;
var
etapZlecenia : TZlecenieEtap;
begin
for etapZlecenia in self do
etapZlecenia.Czysc;
end;
function TZlecenie.ZnajdzEtapZleceniaZGanttId(ganttId: Integer) : TZlecenieEtap;
var
etapZlecenia : TZlecenieEtap;
begin
Result := nil;
for etapZlecenia in self do
if etapZlecenia.ganttID = ganttId then Result := etapZlecenia;
end;
function TZlecenie.PierwszyNierozpoczetyEtap() : TZlecenieEtap;
var
zlecenieEtapTemp : TZlecenieEtap;
begin
Result := nil;
zlecenieEtapTemp := nil;
for zlecenieEtapTemp in self do
begin
if not (zlecenieEtapTemp = nil) then
begin
if not zlecenieEtapTemp.rozpoczety then
begin
Result := zlecenieEtapTemp;
break;
end;
end;
end;
end;
end.