|
@@ -332,7 +332,7 @@ procedure TDealPaymentData.sdvDealPaymentNeedLookupRecord(
|
|
|
AID := ARecord.ValueByName('ID').AsInteger;
|
|
|
APayRec.ValueByName(sFField).AsString := ANewText;
|
|
|
ARecord.ValueByName('Formula').AsString := ANewText;
|
|
|
- fTotalPrice := FPayFormula.Calculate(ANewText);
|
|
|
+ fTotalPrice := FPayFormula.Calculate(ANewText, ARecord.ValueByName('StartedPrice').AsFloat);
|
|
|
if CheckStartedPrice(AID) then
|
|
|
APayRec.ValueByName(sTPField).AsFloat := GetAllowTotalPrice(AID, fTotalPrice);
|
|
|
end;
|
|
@@ -454,7 +454,10 @@ procedure TDealPaymentData.sdvDealPaymentSetText(var Text: string;
|
|
|
Rec.ValueByName('Formula').AsString := Text;
|
|
|
AValue.Owner.ValueByName(sFField).AsString := Text;
|
|
|
AID := ARecord.ValueByName('ID').AsInteger;
|
|
|
- fTotalPrice := FPayFormula.Calculate(Text) - AValue.AsFloat;
|
|
|
+ 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;
|
|
|
if CheckStartedPrice(AID) then
|
|
|
Text := FloatToStr(AValue.AsFloat + GetAllowTotalPrice(AID, fTotalPrice))
|
|
|
else
|