AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.02.2008, 12:15   #1  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Зарплата: Периодические выплаты - не пойму код
есть класс RPayCalculateEmplPeriod метод CalcCommon

X++:
 while select * from payEmplPeriodTrans where payEmplPeriodTrans.emplId == emplTable.emplId
    {
Все хорошо до тех пор пока. У нас есть пособие до 1,5 лет. Полтора года кончились и мы ввели новую период выплату до 3 лет.
Получилось 2 строки в период выплатах.
При расчете Переодические выплаты процедура два раза дает выплату до 3 лет, т.к. ей надо 2 раза обойти периодические выплаты, то она 2 раза и начисляет одну и утже сумму.
Это связано с тем, что расчет процедуры период выплаты никак ен контролирует, что строка уже обрабатывалась.

Скажите, это уже решено кем-то или надо самокат придумать типа второй раз одну и туже выплату не обрабатывать?
Если был СП скажите, пж, номер

Последний раз редактировалось Arahnid; 08.02.2008 в 12:17.
Старый 08.02.2008, 12:27   #2  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Если не ошибаюсь, то при добавлении периодической выплаты нужно указывать период действия.
Старый 08.02.2008, 12:30   #3  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Причем проблема возникает , когда сотрудника при расчете процедуры не выбирать (более того, он присваивает код периодической выплаты которая есть, но к которой мои до 3 лет не привязаны). Если выбрать, то все хорошо

Повозившись поняла.
класс RPayCalculateEmplPeriod метод CalcCommon вызывается из класса RPayCalculate метод calcQuery.
класс RPayCalculateEmplPeriod обрабатывает все строчки периодических выплат по сотрулнику.
класс RPayCalculate
X++:
   while (queryRun.next())
        {
            this.setSourceTable(queryRun.get(payModuleControl.sourceTableId()));
            this.calcCommon(_paySequence);
            sysOperationProgress.setText("@DIS11949" + emplTable.emplId);
            sysOperationProgress.incCount();

        }
вызывает RPayCalculateEmplPeriod столько раз сколько периодических выплат почему-то. Вот и получется у меня их больше (по каждой действующей периодической выплате формируется кол-во строк равное КолвоПерВыпл * КолДействВыплат)

Последний раз редактировалось Arahnid; 08.02.2008 в 13:28.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Код палеты Varmen DAX: Функционал 10 27.03.2008 15:54
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 5 07.09.2004 17:24
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 0 07.09.2004 13:39
Не найден исполнимый код метода insert Александр Костоусов DAX: Программирование 10 03.09.2004 16:47
Ошибка "необходимо заполнить 'основной код сотрудника' " alpin DAX: Функционал 2 04.12.2003 16:28

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:14.