|
|
#1 |
|
Участник
|
Для Вычисления Премии мес %, производят шаги:
Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... |
|
|
|
|
#2 |
|
Участник
|
Цитата:
Сообщение от by_HT
Для Вычисления Премии мес %, производят шаги:
Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... - взять и отнять от текущей даты учетный период; - получить исходные данные для расчета и расчитать? |
|
|
|
|
#3 |
|
Участник
|
такое ощущение что я ищу иголку в стоге сена!
|
|
|
|
|
#4 |
|
Участник
|
Не могу найти, где происходит расчет поля Payroll Amount, на форме "Журнал Расчета Зарплаты" Form 14839.
Перерыл отчет - Payroll Calculation, кодеюниты - Payroll Journal Management, Payroll - Calculation, Payroll Transfer Fields |
|
|
|
|
#5 |
|
Участник
|
В кратце....
1) Создаем Элемент, присваеваем ему шаги.... 2) в 14804 кодеюните создаем шаг и пишим: Код: "Taxable Amount" := "Taxable Amount" + BaseAmountRUHT(Rec,MethodStep."Basic Line No."); Код: // BaseAmountRUHT
Base := 0;
LineCounter := 0;
WITH RecPayLedEntry DO BEGIN
RESET;
SETCURRENTKEY(
"Employee No.","Posting Date","Document Type","Document No.","Ending Payment Date");
SETRANGE("Batch Name",PayrollJnlLine."Batch Name");
SETRANGE("Employee No.",PayrollJnlLine."Employee No.");
SETRANGE("Document Type",PayrollJnlLine."Document Type");
SETFILTER("Starting Account Date",'=%1',CALCDATE('<-1M>',PayrollJnlLine."Starting Date Account Period"));
PayrollBaseAmount.SETRANGE("Element Code",PayrollJnlLine."Element Code");
PayrollBaseAmount.FIND('-');
REPEAT
LineCounter := LineCounter + 1;
// Skip blank entries and entries we don't care about
IF ((PayrollBaseAmount."Element Code Filter" <> '') OR
(PayrollBaseAmount."Type Filter" <> '') OR
(PayrollBaseAmount."Name Filter" <> '') OR
(PayrollBaseAmount."Administrate Type Filter" <> '') OR
(PayrollBaseAmount."Region Filter" <> '') OR
(PayrollBaseAmount."Local Filter" <> '') OR
(PayrollBaseAmount."Gen. Post Type Filter" <> '')) AND
((LineToUse = 0) OR
(LineToUse = LineCounter))
THEN
WITH RecPayLedEntry DO BEGIN
// Set up the filters according to what is in the BaseAmount record
IF PayrollBaseAmount."Element Code Filter" = '' THEN
SETRANGE("Element Code")
ELSE
SETFILTER("Element Code",PayrollBaseAmount."Element Code Filter");
IF PayrollBaseAmount."Type Filter" = '' THEN
SETRANGE("Element Type")
ELSE BEGIN
SETCURRENTKEY(
"Employee No.","Posting Date","Document Type","Document No.","Ending Payment Date");
SETFILTER("Element Type",PayrollBaseAmount."Type Filter");
END;
IF PayrollBaseAmount."Name Filter" = '' THEN
SETRANGE("Element Name")
ELSE
SETFILTER("Element Name",PayrollBaseAmount."Name Filter");
IF PayrollBaseAmount."Administrate Type Filter" = '' THEN
SETRANGE("Administrative Type")
ELSE BEGIN
SETCURRENTKEY(
"Administrative Type",Region,"Local","Element Type","Posting Date","Ending Payment Date");
SETFILTER("Administrative Type",PayrollBaseAmount."Administrate Type Filter");
END;
IF PayrollBaseAmount."Region Filter" = '' THEN
SETRANGE(Region)
ELSE
SETFILTER(Region,PayrollBaseAmount."Region Filter");
IF PayrollBaseAmount."Local Filter" = '' THEN
SETRANGE("Local")
ELSE
SETFILTER("Local",PayrollBaseAmount."Local Filter");
IF PayrollBaseAmount."Gen. Post Type Filter" = '' THEN
SETRANGE("Gen. Post Type")
ELSE
SETFILTER("Gen. Post Type",PayrollBaseAmount."Gen. Post Type Filter");
IF FIND('-') THEN
REPEAT BEGIN
MESSAGE('Am =%1',Amount);
Base := Base + Amount;
END;
UNTIL NEXT = 0;
END;
UNTIL PayrollBaseAmount.NEXT = 0;
END;
EXIT(Base); |
|
|