Browse Source

Bug #896 无单价时,修改0号台账类数量时,小计不自动计算

MaiXinRong 9 years ago
parent
commit
bbf623020d
1 changed files with 9 additions and 6 deletions
  1. 9 6
      DataModules/BillsCompileDm.pas

+ 9 - 6
DataModules/BillsCompileDm.pas

@@ -883,12 +883,13 @@ begin
       if CalcType.AsInteger = 0 then
         MisTotalPrice.AsFloat := TotalPriceRoundTo(MisQuantity.AsFloat * Price.AsFloat);
 
+      SetFloatValue(Quantity, QuantityRoundTo(
+          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
+
       // 金额与修改前不一样,则向父项增量
       if MisTotalPrice.AsFloat <> CacheMisTP then
       begin
         UpdateParent(vNode.ParentID, MisTotalPrice.AsFloat - CacheMisTP, 'MisTotalPrice');
-        Quantity.AsFloat := QuantityRoundTo(
-            OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat);
         TotalPrice.AsFloat := TotalPriceRoundTo(
             OrgTotalPrice.AsFloat + MisTotalPrice.AsFloat + OthTotalPrice.AsFloat);
         CacheMisTP := MisTotalPrice.AsFloat;
@@ -920,12 +921,13 @@ begin
       if CalcType.AsInteger = 0 then
         OrgTotalPrice.AsFloat := TotalPriceRoundTo(OrgQuantity.AsFloat * Price.AsFloat);
 
+      SetFloatValue(Quantity, QuantityRoundTo(
+          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
+
       // 金额与修改前不一样,则向父项增量
       if CacheOrgTP <> OrgTotalPrice.AsFloat then
       begin
         UpdateParent(vNode.ParentID, OrgTotalPrice.AsFloat - CacheOrgTP, 'OrgTotalPrice');
-        Quantity.AsFloat := QuantityRoundTo(
-            OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat);
         TotalPrice.AsFloat := TotalPriceRoundTo(
             OrgTotalPrice.AsFloat + MisTotalPrice.AsFloat + OthTotalPrice.AsFloat);
         CacheOrgTP := OrgTotalPrice.AsFloat;
@@ -957,12 +959,13 @@ begin
       if CalcType.AsInteger = 0 then
         OthTotalPrice.AsFloat := TotalPriceRoundTo(OthQuantity.AsFloat * Price.AsFloat);
 
+      SetFloatValue(Quantity, QuantityRoundTo(
+          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
+
       // 金额与修改前不一样,则向父项增量
       if OthTotalPrice.AsFloat <> CacheOthTP then
       begin
         UpdateParent(vNode.ParentID, OthTotalPrice.AsFloat - CacheOthTP, 'OthTotalPrice');
-        Quantity.AsFloat := QuantityRoundTo(
-            OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat);
         TotalPrice.AsFloat := TotalPriceRoundTo(
             OrgTotalPrice.AsFloat + MisTotalPrice.AsFloat+ OthTotalPrice.AsFloat);
         CacheOthTP := OthTotalPrice.AsFloat;