Przeglądaj źródła

Bug #849.1 价差调整节点,累计完成计量--金额&截止上期完成计量--金额计算有误

MaiXinRong 9 lat temu
rodzic
commit
839f19a596
2 zmienionych plików z 17 dodań i 3 usunięć
  1. 16 2
      DataModules/BillsMeasureDm.pas
  2. 1 1
      DataModules/StageDm.pas

+ 16 - 2
DataModules/BillsMeasureDm.pas

@@ -35,12 +35,12 @@ type
 
     procedure CalcAddCompleteRate(ANode: TsdIDTreeNode);
     procedure CalcAddDgnPrice(ANode: TsdIDTreeNode);
-    procedure UpdateRecordGather(ANode: TsdIDTreeNode; AQuantity, ATotalPrice: Double);
 
     function SelectAndUpdateBGL(ABillsID: Integer; ARec: TsdDataRecord;
       ANewValue: Double; const AType: string): Boolean;
 
-    procedure CalculateNode(ANode: TBillsIDTreeNode);
+    procedure CalculateNode(ANode: TBillsIDTreeNode);            
+    procedure UpdateRecordGather(ANode: TsdIDTreeNode; AQuantity, ATotalPrice: Double);
 
     function GetStageData: TStageData;
     procedure SetOnRecChange(const Value: TRecChangeEvent);
@@ -68,6 +68,7 @@ type
     procedure UpdateRecordQc(ABillsID: Integer; AQuantity, ATotalPrice: Double);
     procedure UpdateRecordPc(ABillsID: Integer; AQuantity, ATotalPrice: Double);
     procedure UpdateRecordPM(ABillsID: Integer; ADiffer: Double);
+    procedure UpdateGather(ABillsID: Integer; ADiffer: Double);
     procedure UpdateBGLInfo(ABillsID: Integer; ARec: TsdDataRecord; const AType: string);
 
     property ProjectData: TObject read FProjectData;
@@ -938,4 +939,17 @@ begin
   end;
 end;
 
+procedure TBillsMeasureData.UpdateGather(ABillsID: Integer;
+  ADiffer: Double);
+var
+  stnNode: TBillsIDTreeNode;
+begin
+  stnNode := TBillsIDTreeNode(BillsMeasureTree.FindNode(ABillsID));
+  if not Assigned(stnNode) then Exit;
+
+  with stnNode.Rec do
+    AddDifferValue(AddGatherTotalPrice, ADiffer);
+  UpdateGather(stnNode.ParentID, ADiffer);
+end;
+
 end.

+ 1 - 1
DataModules/StageDm.pas

@@ -878,7 +878,7 @@ begin
   Rec.AddDifferValue(Rec.EndGatherTotalPrice, ADiffer);
   UpdateParentRecord(iPriceMarginID, ADiffer, 'GatherTotalPrice');
   with TProjectData(TPhaseData(FPhaseData).ProjectData).BillsMeasureData do
-    UpdateRecordPM(Rec.BillsID.AsInteger, ADiffer);
+    UpdateGather(Rec.BillsID.AsInteger, ADiffer);
 end;
 
 procedure TStageData.UpdateParentPriceMargin(ABillsID: Integer; ADiffer: Double);