|  | @@ -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;
 |