浏览代码

找回Bug #918代码

MaiXinRong 9 年之前
父节点
当前提交
6cd2a6b388
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      DataModules/DealPaymentDm.pas

+ 9 - 3
DataModules/DealPaymentDm.pas

@@ -328,12 +328,15 @@ procedure TDealPaymentData.sdvDealPaymentNeedLookupRecord(
     sTPField := 'TotalPrice' + IntToStr(TProjectData(FProjectData).PhaseData.StageIndex);
     sFField := 'Formula' + IntToStr(TProjectData(FProjectData).PhaseData.StageIndex);
     if CheckNumeric(ANewText) then
-      fTotalPrice := StrToFloat(ANewText)
+    begin
+      APayRec.ValueByName(sFField).AsString := ANewText;
+      fTotalPrice := StrToFloat(ANewText);
+    end
     else
     begin
       APayRec.ValueByName(sFField).AsString := ANewText;
       ARecord.ValueByName('Formula').AsString := ANewText;
-      fTotalPrice := FPayFormula.Calculate(ANewText);
+      fTotalPrice := FPayFormula.Calculate(ANewText, ARecord.ValueByName('StartedPrice').AsFloat);
     end;
     iID := ARecord.ValueByName('ID').AsInteger;
     if CheckStartedPrice(iID) then
@@ -459,7 +462,10 @@ procedure TDealPaymentData.sdvDealPaymentSetText(var Text: string;
     begin
       Rec.ValueByName('Formula').AsString := Text;
       AValue.Owner.ValueByName(sFField).AsString := Text;
-      fTotalPrice := FPayFormula.Calculate(Text);
+      if ARecord.ValueByName('Pre' + AValue.FieldName).AsFloat = 0 then
+        fTotalPrice := FPayFormula.Calculate(Text, Rec.ValueByName('StartedPrice').AsFloat) - AValue.AsFloat
+      else
+        fTotalPrice := FPayFormula.Calculate(Text) - AValue.AsFloat;
     end;
     iID := ARecord.ValueByName('ID').AsInteger;
     if CheckStartedPrice(iID) then