Browse Source

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

MaiXinRong 9 years ago
parent
commit
6eb04c0869
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);
       end;
@@ -919,12 +920,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);
       end;
@@ -955,12 +957,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);
       end;