|
13.05.2008, 08:28 | #1 |
Участник
|
Для Вычисления Премии мес %, производят шаги:
Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... |
|
13.05.2008, 16:43 | #2 |
Участник
|
Цитата:
Сообщение от by_HT
Для Вычисления Премии мес %, производят шаги:
Код: Базовая Сумма Сум=СТАВКА% КАЛ ЧАС КОРР = СУМ СУМ = НАЛ\ОБЛ СУМ = СУМ Х КОРР т.е. вся проблема в Базовой Сумме... Как мне взять Базовую сумму с прошлого месяца??? в функции BaseAmountRu в 14804 кодеюните, так и не разобрался.... - взять и отнять от текущей даты учетный период; - получить исходные данные для расчета и расчитать? |
|
14.05.2008, 10:27 | #3 |
Участник
|
такое ощущение что я ищу иголку в стоге сена!
|
|
14.05.2008, 14:41 | #4 |
Участник
|
Не могу найти, где происходит расчет поля Payroll Amount, на форме "Журнал Расчета Зарплаты" Form 14839.
Перерыл отчет - Payroll Calculation, кодеюниты - Payroll Journal Management, Payroll - Calculation, Payroll Transfer Fields |
|
22.05.2008, 09:43 | #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); |
|