|
@@ -513,76 +513,6 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TProjectData.SaveInfoToManager;
|
|
procedure TProjectData.SaveInfoToManager;
|
|
-
|
|
|
|
- procedure CalculateParentInfo(AID: Integer);
|
|
|
|
-
|
|
|
|
- procedure ResetDigit(ANode: TsdIDTreeNode);
|
|
|
|
- var
|
|
|
|
- iChild, iCommonDigit, iDealPayDigit: Integer;
|
|
|
|
- vChild: TsdIDTreeNode;
|
|
|
|
- begin
|
|
|
|
- iCommonDigit := 0;
|
|
|
|
- iDealPayDigit := 0;
|
|
|
|
- for iChild := 0 to ANode.ChildCount - 1 do
|
|
|
|
- begin
|
|
|
|
- vChild := ANode.ChildNodes[iChild];
|
|
|
|
- iCommonDigit := Max(iCommonDigit, vChild.Rec.ValueByName('CommonDigit').AsInteger);
|
|
|
|
- iDealPayDigit := Max(iDealPayDigit, vChild.Rec.ValueByName('DealPayDigit').AsInteger);
|
|
|
|
- end;
|
|
|
|
- ANode.Rec.ValueByName('CommonDigit').AsInteger := iCommonDigit;
|
|
|
|
- ANode.Rec.ValueByName('DealPayDigit').AsInteger := iDealPayDigit;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
- procedure ReCalculateInfo(ANode: TsdIDTreeNode);
|
|
|
|
- var
|
|
|
|
- fDeal, fDeal_BGL, fPhase, fEndDeal, fEndChange, fEnd, fPre, fPhasePay: Double;
|
|
|
|
- iChild: Integer;
|
|
|
|
- vChild: TsdIDTreeNode;
|
|
|
|
- begin
|
|
|
|
- fDeal := 0;
|
|
|
|
- fDeal_BGL := 0;
|
|
|
|
- fPhase := 0;
|
|
|
|
- fEndDeal := 0;
|
|
|
|
- fEndChange := 0;
|
|
|
|
- fEnd := 0;
|
|
|
|
- fPre := 0;
|
|
|
|
- fPhasePay := 0;
|
|
|
|
- for iChild := 0 to ANode.ChildCount - 1 do
|
|
|
|
- begin
|
|
|
|
- vChild := ANode.ChildNodes[iChild];
|
|
|
|
- fDeal := fDeal + vChild.Rec.ValueByName('DealTotalPrice').AsFloat;
|
|
|
|
- fDeal_BGL := fDeal_BGL + vChild.Rec.ValueByName('Deal_BGLTotalPrice').AsFloat;
|
|
|
|
- fPhase := fPhase + vChild.Rec.ValueByName('PhaseTotalPrice').AsFloat;
|
|
|
|
- fEndDeal := fEndDeal + vChild.Rec.ValueByName('EndDealTotalPrice').AsFloat;
|
|
|
|
- fEndChange := fEndChange + vChild.Rec.ValueByName('EndChangeTotalPrice').AsFloat;
|
|
|
|
- fEnd := fEnd + vChild.Rec.ValueByName('EndTotalPrice').AsFloat;
|
|
|
|
- fPre := fPre + vChild.Rec.ValueByName('PreTotalPrice').AsFloat;
|
|
|
|
- fPhasePay := fPhasePay + vChild.Rec.ValueByName('PhasePay').AsFloat;
|
|
|
|
- end;
|
|
|
|
- ANode.Rec.ValueByName('DealTotalPrice').AsFloat := fDeal;
|
|
|
|
- ANode.Rec.ValueByName('Deal_BGLTotalPrice').AsFloat := fDeal_BGL;
|
|
|
|
- ANode.Rec.ValueByName('PhaseTotalPrice').AsFloat := fPhase;
|
|
|
|
- ANode.Rec.ValueByName('EndDealTotalPrice').AsFloat := fEndDeal;
|
|
|
|
- ANode.Rec.ValueByName('EndChangeTotalPrice').AsFloat := fEndChange;
|
|
|
|
- ANode.Rec.ValueByName('EndTotalPrice').AsFloat := fEnd;
|
|
|
|
- ANode.Rec.ValueByName('PreTotalPrice').AsFloat := fPre;
|
|
|
|
- ANode.Rec.ValueByName('PhasePay').AsFloat := fPhasePay;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
- var
|
|
|
|
- vNode, vChild: TsdIDTreeNode;
|
|
|
|
- iChild: Integer;
|
|
|
|
- begin
|
|
|
|
- if AID = -1 then Exit;
|
|
|
|
- vNode := ProjectManager.ProjectsTree.FindNode(AID);
|
|
|
|
- if not Assigned(vNode) then Exit;
|
|
|
|
-
|
|
|
|
- ResetDigit(vNode);
|
|
|
|
- ReCalculateInfo(vNode);
|
|
|
|
-
|
|
|
|
- CalculateParentInfo(vNode.ParentID);
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
var
|
|
var
|
|
InfoRec, PhaseRec: TsdDataRecord;
|
|
InfoRec, PhaseRec: TsdDataRecord;
|
|
begin
|
|
begin
|
|
@@ -601,7 +531,7 @@ begin
|
|
InfoRec.ValueByName('AuditStatus').AsInteger := FProjProperties.AuditStatus;
|
|
InfoRec.ValueByName('AuditStatus').AsInteger := FProjProperties.AuditStatus;
|
|
InfoRec.ValueByName('CommonDigit').AsInteger := FProjProperties.DecimalManager.Common.TotalPrice.Digit;
|
|
InfoRec.ValueByName('CommonDigit').AsInteger := FProjProperties.DecimalManager.Common.TotalPrice.Digit;
|
|
InfoRec.ValueByName('DealPayDigit').AsInteger := FProjProperties.DecimalManager.DealPay.TotalPrice.Digit;
|
|
InfoRec.ValueByName('DealPayDigit').AsInteger := FProjProperties.DecimalManager.DealPay.TotalPrice.Digit;
|
|
- CalculateParentInfo(InfoRec.ValueByName('ParentID').AsInteger);
|
|
|
|
|
|
+ ProjectManager.CalculateParentInfo(InfoRec.ValueByName('ParentID').AsInteger);
|
|
ProjectManager.Save;
|
|
ProjectManager.Save;
|
|
end;
|
|
end;
|
|
|
|
|