|
@@ -286,9 +286,7 @@ procedure TProjectGLData.sdvProjectGLGetText(var Text: String;
|
|
|
SameText('RiskRange', AColumn.FieldName)) then
|
|
|
begin
|
|
|
if AValue.AsFloat = 0 then
|
|
|
- Text := ''
|
|
|
- else
|
|
|
- Text := FormatFloat('0.###', Decimal.Price.RoundTo(AValue.AsFloat));
|
|
|
+ Text := '';
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -301,6 +299,7 @@ procedure TProjectGLData.CalculateAll;
|
|
|
begin
|
|
|
CalculatePrice;
|
|
|
CalculatePriceMargin;
|
|
|
+ CalculatePALRelas;
|
|
|
RefreshGatherData;
|
|
|
end;
|
|
|
|
|
@@ -374,11 +373,11 @@ begin
|
|
|
with TProjectData(FProjectData).BillsMeasureData do
|
|
|
BillsNode := TMeasureBillsIDTreeNode(BillsMeasureTree.FindNode(GLRec.ValueByName('BillsID').AsInteger));
|
|
|
if Assigned(BillsNode.StageRec) then
|
|
|
- fQuantity := fQuantity + BillsNode.StageRec.GatherQuantity.AsFloat * GLRec.ValueByName('Quantity').AsFloat;
|
|
|
+ fQuantity := fQuantity + Decimal.Quantity.RoundTo(BillsNode.StageRec.GatherQuantity.AsFloat * GLRec.ValueByName('Quantity').AsFloat);
|
|
|
end;
|
|
|
|
|
|
if fQuantity <> ARec.PM_Quantity.AsFloat then
|
|
|
- ARec.PM_Quantity.AsFloat := fQuantity;
|
|
|
+ ARec.PM_Quantity.AsFloat := Decimal.Quantity.RoundTo(fQuantity);
|
|
|
finally
|
|
|
vGLs.Free;
|
|
|
end;
|
|
@@ -390,7 +389,7 @@ var
|
|
|
begin
|
|
|
fTotalPrice := ARec.ValidDeltaPrice.AsFloat * ARec.PM_Quantity.AsFloat;
|
|
|
if fTotalPrice <> ARec.PM_TotalPrice.AsFloat then
|
|
|
- ARec.PM_TotalPrice.AsFloat := fTotalPrice;
|
|
|
+ ARec.PM_TotalPrice.AsFloat := Decimal.TotalPrice.RoundTo(fTotalPrice);
|
|
|
end;
|
|
|
|
|
|
procedure TProjectGLData.sddProjectGLGetRecordClass(
|
|
@@ -714,20 +713,21 @@ var
|
|
|
iRec: Integer;
|
|
|
RecGL: TsdDataRecord;
|
|
|
vQuery: TADOQuery;
|
|
|
+ fCur, fPre: Double;
|
|
|
begin
|
|
|
- ARec.ValueByName('CurTotalPrice').AsFloat := 0;
|
|
|
- ARec.ValueByName('PreTotalPrice').AsFloat := 0;
|
|
|
- ARec.ValueByName('EndTotalPrice').AsFloat := 0;
|
|
|
- ARec.ValueByName('AddTotalPrice').AsFloat := 0;
|
|
|
+ fCur := 0;
|
|
|
+ fPre := 0;
|
|
|
|
|
|
for iRec := 0 to sddProjectGL.RecordCount - 1 do
|
|
|
begin
|
|
|
RecGL := sddProjectGL.Records[iRec];
|
|
|
- ARec.ValueByName('CurTotalPrice').AsFloat := ARec.ValueByName('CurTotalPrice').AsFloat + RecGL.ValueByName(AFieldName).AsFloat;
|
|
|
- ARec.ValueByName('PreTotalPrice').AsFloat := ARec.ValueByName('PreTotalPrice').AsFloat + RecGL.ValueByName(APreFieldName).AsFloat;
|
|
|
+ fCur := fCur + RecGL.ValueByName(AFieldName).AsFloat;
|
|
|
+ fPre := fPre + RecGL.ValueByName(APreFieldName).AsFloat;
|
|
|
end;
|
|
|
- ARec.ValueByName('EndTotalPrice').AsFloat := ARec.ValueByName('PreTotalPrice').AsFloat + ARec.ValueByName('CurTotalPrice').AsFloat;
|
|
|
- ARec.ValueByName('AddTotalPrice').AsFloat := ARec.ValueByName('EndTotalPrice').AsFloat;
|
|
|
+ ARec.ValueByName('CurTotalPrice').AsFloat := Decimal.TotalPrice.RoundTo(fCur);
|
|
|
+ ARec.ValueByName('PreTotalPrice').AsFloat := Decimal.TotalPrice.RoundTo(fPre);
|
|
|
+ ARec.ValueByName('EndTotalPrice').AsFloat := Decimal.TotalPrice.RoundTo(fPre + fCur);
|
|
|
+ ARec.ValueByName('AddTotalPrice').AsFloat := Decimal.TotalPrice.RoundTo(fPre + fCur);
|
|
|
|
|
|
with TProjectData(FProjectData) do
|
|
|
begin
|
|
@@ -739,7 +739,7 @@ begin
|
|
|
vQuery.SQL.Clear;
|
|
|
vQuery.SQL.Add(Format(sSelectSql, [APreFieldName, AFieldName]));
|
|
|
vQuery.Open;
|
|
|
- ARec.ValueByName('AddTotalPrice').AsFloat := vQuery.FieldByName('AddGather').AsFloat;
|
|
|
+ ARec.ValueByName('AddTotalPrice').AsFloat := Decimal.TotalPrice.RoundTo(vQuery.FieldByName('AddGather').AsFloat);
|
|
|
finally
|
|
|
vQuery.Free;
|
|
|
end;
|