|
@@ -43,6 +43,7 @@ type
|
|
|
procedure CalculateDeal(ABillsID: Integer);
|
|
|
procedure CalculateQuantityChange(ABillsID: Integer);
|
|
|
procedure CalculatePriceChange(ABillsID: Integer);
|
|
|
+ procedure CalculateGather(ABillsID: Integer);
|
|
|
|
|
|
procedure CalculateParent(ANode: TMeasureBillsIDTreeNode);
|
|
|
procedure CalculateLeaf(ANode: TMeasureBillsIDTreeNode);
|
|
@@ -206,7 +207,9 @@ begin
|
|
|
with TProjectData(TPhaseData(FPhaseData).ProjectData).BillsMeasureData do
|
|
|
UpdateRecordDeal(ABillsID, fQtyDiffer, fTPDiffer);
|
|
|
|
|
|
- CalculatePriceMargin(ABillsID);
|
|
|
+ //CalculatePriceMargin(ABillsID);
|
|
|
+ if ABillsID = iPriceMarginID then
|
|
|
+ CalculateGather(ABillsID);
|
|
|
|
|
|
TPhaseData(FPhaseData).PhasePayData.CalculateAll;
|
|
|
end;
|
|
@@ -967,4 +970,17 @@ begin
|
|
|
Result := Assigned(vPM_Node);
|
|
|
end;
|
|
|
|
|
|
+procedure TStageData.CalculateGather(ABillsID: Integer);
|
|
|
+var
|
|
|
+ Rec: TStageRecord;
|
|
|
+ fQuantity, fTotalPrice: Double;
|
|
|
+begin
|
|
|
+ Rec := TStageRecord(sddStage.FindKey('idxBID', ABillsID));
|
|
|
+ if not Assigned(Rec) then Exit;
|
|
|
+ fQuantity := QuantityRoundTo(Rec.DealQuantity.AsFloat + Rec.QcQuantity.AsFloat) - Rec.GatherQuantity.AsFloat;
|
|
|
+ fTotalPrice := TotalPriceRoundTo(
|
|
|
+ Rec.DealTotalPrice.AsFloat + Rec.QcTotalPrice.AsFloat + Rec.PcTotalPrice.AsFloat) - Rec.GatherTotalPrice.AsFloat;
|
|
|
+ UpdateComplete(ABillsID, fQuantity, fTotalPrice);
|
|
|
+end;
|
|
|
+
|
|
|
end.
|