-
Notifications
You must be signed in to change notification settings - Fork 0
/
DyspozytorskaRegulaHarmonogramowaniaSCRW.pas
45 lines (38 loc) · 1.45 KB
/
DyspozytorskaRegulaHarmonogramowaniaSCRW.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
unit DyspozytorskaRegulaHarmonogramowaniaSCRW;
interface
uses
DyspozytorskaRegulaHarmonogramowania, Etapy, ZlecenieEtap;
type
TDyspozytorskaRegulaHarmonogramowaniaSCRW = class(TDyspozytorskaRegulaHarmonogramowania)
public
function WybierzZEtapy(etapy : TEtapy) : TZlecenieEtap; override;
function NazwaReguly() : String; override;
end;
implementation
function TDyspozytorskaRegulaHarmonogramowaniaSCRW.WybierzZEtapy(etapy: TEtapy) : TZlecenieEtap;
var
etapZlecenia : TZlecenieEtap;
resultCR, etapCR : TDateTime;
begin
Result := nil;
etapZlecenia := nil;
for etapZlecenia in etapy do
begin
if Result = nil then
begin
Result := etapZlecenia;
end
else
begin
resultCR := (Result.daneZlecenia.PLAN_TERMIN_REALIZACJI - Result.DataProponowana) / (CzasHelper.DataCzasZakonczeniaDlaDatyCzasuStartuICzasuTrwania(Result.DataProponowana, PozostalyCzasWykonaniaNettoWyrobu(Result)) - Result.DataProponowana);
etapCR := (etapZlecenia.daneZlecenia.PLAN_TERMIN_REALIZACJI - etapZlecenia.DataProponowana) / (CzasHelper.DataCzasZakonczeniaDlaDatyCzasuStartuICzasuTrwania(etapZlecenia.DataProponowana, PozostalyCzasWykonaniaNettoWyrobu(etapZlecenia)) - etapZlecenia.DataProponowana);
if (resultCR > etapCR) then
Result := etapZlecenia;
end;
end;
end;
function TDyspozytorskaRegulaHarmonogramowaniaSCRW.NazwaReguly;
begin
Result := 'SCR dla wyrobu';
end;
end.