Advertisement
Valik888

Untitled

Mar 13th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.59 KB | None | 0 0
  1. 1. Что делать с MonthsPart, ведь сумму я считаю только после разнесения объема
  2.    домового счетчика, сейчас передаю единицу
  3. 2. Объем который я передаю сюда не проходит проверку:
  4.    Volume > TarifsE(No).Volume_Min * MonthsPart
  5.    Объемы после разнесения выходят меньше чем Volume_Min на порядок (50-150 и 3000)
  6.    При этом в N_ACCRUALS, по 10 сервису (електро) объемы такого же порядка что и
  7.    у меня,
  8.  
  9. FUNCTION CalcSummByTarifsE(  Data         DATE,
  10.                              NormNo     NUMBER,
  11.                              Volume     NUMBER,
  12.                              MonthsPart NUMBER) RETURN NUMBER AS
  13.     Result NUMBER;
  14.     No     VARCHAR2(12);
  15.   BEGIN
  16.     Result := 0;
  17.     No     := TarifsE.FIRST;
  18.     WHILE No IS NOT NULL LOOP
  19.       IF TarifsE(No).SrvNorm_ID = NormNo AND TarifsE(No).Data <= Data AND
  20.           Data <= TarifsE(No).Data_End AND
  21.           Volume > TarifsE(No).Volume_Min * MonthsPart THEN
  22.         IF Volume >= TarifsE(No).Volume_Max * MonthsPart THEN
  23.           Result := Result +
  24.                     (TarifsE(No).Volume_Max - TarifsE(No).Volume_Min) *
  25.                     MonthsPart * TarifsE(No).Tarif;
  26.         ELSE
  27.           Result := Result + (Volume - TarifsE(No).Volume_Min * MonthsPart) * TarifsE(No)
  28.                    .Tarif;
  29.         END IF;
  30.       END IF;
  31.       No := TarifsE.NEXT(No);
  32.     END LOOP;
  33.     RETURN Result;
  34.   END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement