|
@@ -172,18 +172,39 @@ procedure TrmWuJiuZqzfGatherData.LoadPhaseData(APhaseIndex: Integer;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
+ procedure GetDealPayRecords(AList: TList; AName: string; AMinus: Boolean = false; ACalcType: Integer = 0);
|
|
|
+ var
|
|
|
+ iRec: Integer;
|
|
|
+ Rec: TsdDataRecord;
|
|
|
+ begin
|
|
|
+ AList.Clear;
|
|
|
+ with AProjectData.DealPaymentData do
|
|
|
+ for iRec := 0 to sddDealPayment.RecordCount - 1 do
|
|
|
+ begin
|
|
|
+ Rec := sddDealPayment.Records[iRec];
|
|
|
+ if (Pos(AName, Rec.ValueByName('Name').AsString) > 0) and (Rec.ValueByName('IsMinus').AsBoolean = AMinus)
|
|
|
+ and (Rec.ValueByName('CalcType').AsInteger = ACalcType) then
|
|
|
+ begin
|
|
|
+ AList.Add(Rec);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
var
|
|
|
PhaseData: TPhaseData;
|
|
|
sTPField: string;
|
|
|
iDealPayId: Integer;
|
|
|
Rec: TsdDataRecord;
|
|
|
+ vRecList: TList;
|
|
|
+ iRec: Integer;
|
|
|
begin
|
|
|
PhaseData := TPhaseData.Create(AProjectData);
|
|
|
+ vRecList := TList.Create;
|
|
|
try
|
|
|
PhaseData.SimpleOpen(Format('%s\Phase%d.dat', [AProjectData.TempPath, APhaseIndex]));
|
|
|
cdsZqzf.Append;
|
|
|
cdsZqzfPhaseIndex.AsInteger := APhaseIndex;
|
|
|
- cdsZqzfQyht.AsFloat := FQyht;
|
|
|
+ cdsZqzfQyht.AsFloat := FQyht;
|
|
|
cdsZqzfFhqd.AsFloat := FFhqd;
|
|
|
cdsZqzfBg.AsFloat := AProjectData.BGLData.EndTotalPrice[APhaseIndex];
|
|
|
cdsZqzfSp.AsFloat := FSp;
|
|
@@ -198,40 +219,66 @@ begin
|
|
|
cdsZqzfEndGather.AsFloat := Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
cdsZqzfPreGather.AsFloat := Rec.ValueByName('Pre' + sTPField).AsFloat;
|
|
|
cdsZqzfCurGather.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
- iDealPayId := GetDealPayID('괏즛쏜', true);
|
|
|
- Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
- if Assigned(Rec) then
|
|
|
+
|
|
|
+ GetDealPayRecords(vRecList, '괏즛쏜', true);
|
|
|
+ for iRec := 0 to vRecList.Count - 1 do
|
|
|
begin
|
|
|
- cdsZqzfAddKhBlj.AsFloat := Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
- cdsZqzfCurKhBlj.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ iDealPayId := TsdDataRecord(vRecList.Items[iRec]).ValueByName('ID').AsInteger;
|
|
|
+ Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
+ if Assigned(Rec) then
|
|
|
+ begin
|
|
|
+ cdsZqzfAddKhBlj.AsFloat := cdsZqzfAddKhBlj.AsFloat + Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
+ cdsZqzfCurKhBlj.AsFloat := cdsZqzfCurKhBlj.AsFloat + Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ end;
|
|
|
end;
|
|
|
- iDealPayId := GetDealPayID('크췽묏묏栗', true);
|
|
|
- Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
- if Assigned(Rec) then
|
|
|
+
|
|
|
+ GetDealPayRecords(vRecList, '크췽묏묏栗', true);
|
|
|
+ for iRec := 0 to vRecList.Count - 1 do
|
|
|
begin
|
|
|
- cdsZqzfAddKhNmggz.AsFloat := Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
- cdsZqzfCurKhNmggz.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
- end;
|
|
|
- iDealPayId := GetDealPayID('땡逃渡마운', false);
|
|
|
- Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
- if Assigned(Rec) then
|
|
|
+ iDealPayId := TsdDataRecord(vRecList.Items[iRec]).ValueByName('ID').AsInteger;
|
|
|
+ Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
+ if Assigned(Rec) then
|
|
|
+ begin
|
|
|
+ cdsZqzfAddKhNmggz.AsFloat := cdsZqzfAddKhNmggz.AsFloat + Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
+ cdsZqzfCurKhNmggz.AsFloat := cdsZqzfCurKhNmggz.AsFloat + Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
+ GetDealPayRecords(vRecList, '땡逃渡마운', false);
|
|
|
+ for iRec := 0 to vRecList.Count - 1 do
|
|
|
begin
|
|
|
- cdsZqzfDyyfk.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ iDealPayId := TsdDataRecord(vRecList.Items[iRec]).ValueByName('ID').AsInteger;
|
|
|
+ Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
+ if Assigned(Rec) then
|
|
|
+ begin
|
|
|
+ cdsZqzfDyyfk.AsFloat := cdsZqzfDyyfk.AsFloat + Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ end;
|
|
|
end;
|
|
|
- iDealPayId := GetDealPayID('땡逃渡마운', true);
|
|
|
- Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
- if Assigned(Rec) then
|
|
|
+
|
|
|
+ GetDealPayRecords(vRecList, '땡逃渡마운', true);
|
|
|
+ for iRec := 0 to vRecList.Count - 1 do
|
|
|
begin
|
|
|
- cdsZqzfAddKhDyyfk.AsFloat := Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
- cdsZqzfCurKhDyyfk.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ iDealPayId := TsdDataRecord(vRecList.Items[iRec]).ValueByName('ID').AsInteger;
|
|
|
+ Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
+ if Assigned(Rec) then
|
|
|
+ begin
|
|
|
+ cdsZqzfAddKhDyyfk.AsFloat := cdsZqzfAddKhDyyfk.AsFloat + Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
+ cdsZqzfCurKhDyyfk.AsFloat := cdsZqzfCurKhDyyfk.AsFloat + Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ end;
|
|
|
end;
|
|
|
- iDealPayId := GetDealPayID('藤令江', true);
|
|
|
- Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
- if Assigned(Rec) then
|
|
|
+
|
|
|
+ GetDealPayRecords(vRecList, '藤令江', true);
|
|
|
+ for iRec := 0 to vRecList.Count - 1 do
|
|
|
begin
|
|
|
- cdsZqzfAddKAddedTax.AsFloat := Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
- cdsZqzfCurKAddedTax.AsFloat := Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ iDealPayId := TsdDataRecord(vRecList.Items[iRec]).ValueByName('ID').AsInteger;
|
|
|
+ Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
+ if Assigned(Rec) then
|
|
|
+ begin
|
|
|
+ cdsZqzfAddKAddedTax.AsFloat := cdsZqzfAddKAddedTax.AsFloat + Rec.ValueByName('End' + sTPField).AsFloat;
|
|
|
+ cdsZqzfCurKAddedTax.AsFloat := cdsZqzfCurKAddedTax.AsFloat + Rec.ValueByName(sTPField).AsFloat;
|
|
|
+ end;
|
|
|
end;
|
|
|
+
|
|
|
iDealPayId := GetDealPayID('굶퍅壇마');
|
|
|
Rec := sddPhasePay.Locate('ID', iDealPayId);
|
|
|
if Assigned(Rec) then
|
|
@@ -242,6 +289,7 @@ begin
|
|
|
end;
|
|
|
cdsZqzf.Post;
|
|
|
finally
|
|
|
+ vRecList.Free;
|
|
|
PhaseData.Free;
|
|
|
end;
|
|
|
end;
|