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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2010, 19:40   #1  
russ is offline
russ
Участник
Сотрудники Microsoft Dynamics
 
51 / 33 (2) +++
Регистрация: 02.04.2002
Адрес: Moscow
Зачем добавлять новый тип в RAssetSumCalc? Там же уже есть методы возвращающие сумму разнесенной аморт.премии.

Сейчас енум RAssetPostValue уже содержит тип для расчета суммы амортизации, включающией премию. В принципе, можно использовать этот тип, исправив код в RAssetDisposalValue:: postValue(), так чтобы метод возвращал только сумму амортизации без премии. И создать новый тип отдельно для расчета премии.
Старый 18.03.2010, 12:53   #2  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Цитата:
Сообщение от russ Посмотреть сообщение
Зачем добавлять новый тип в RAssetSumCalc? Там же уже есть методы возвращающие сумму разнесенной аморт.премии.
Сейчас ам. премия включается в итоговую проводку.. А мне нужно чтобы она не включалась а по ней формировалась отдельная проводка на сумму ам. премии.

Вы имеете в виду depreciationPostedBonusValue? Для меня если честно это вообще загадка.. Заполнение значение происходит в классе RAssetSumCalc_Trans

X++:
    select sum(DepreciationBonusCost) from rassetTrans
        where rassetTrans.AccountNum      == rangeAssetId                  &&
              rassetTrans.AssetStandardId == rassetStandardId              &&
              rassetTrans.AssetTransType  == RAssetTransType::Depreciation &&
              ((rassetTrans.TransDate     >= dateFrom                      &&
                rassetTrans.TransDate     <= dateTo)                       ||
               ! dateTo)                                                   &&
              ! rassetTrans.StornoRecId;

    depreciationPostedBonusValue = rassetTrans.DepreciationBonusCost;
Тоесть выборка происходит по типу RAssetTransType::Depreciation - "Амортизация", поэтому туда попадает и просто амортизация и амортизационная премия.. Разве нет? Я думал создать доп тип "Амортизационная премия", дабы отделить её от просто "амортизации", а как иначе?

Цитата:
Сообщение от russ Посмотреть сообщение
Сейчас енум RAssetPostValue уже содержит тип для расчета суммы амортизации, включающией премию.
?! Я явно чего то недопонимаю.. Что это за тип?

Цитата:
Сообщение от russ Посмотреть сообщение
В принципе, можно использовать этот тип, исправив код в RAssetDisposalValue:: postValue(), так чтобы метод возвращал только сумму амортизации без премии. И создать новый тип отдельно для расчета премии.
Я честно говоря думал править метод calc класса RAssetSumCalc.. Хм.. Можно по подробнее..

Да ещё.. В профиле разноски на операцию выбытия добавил ещё одну, проводку с моим новым типом.. Однако новая проводка не порадилась.. Хотя в дебагере переменная заполнялась (тоесть не 0). В чем может быть дело?

Последний раз редактировалось Вата; 18.03.2010 в 13:02.
Старый 18.03.2010, 14:14   #3  
russ is offline
russ
Участник
Сотрудники Microsoft Dynamics
 
51 / 33 (2) +++
Регистрация: 02.04.2002
Адрес: Moscow
Создание нового типа операции под расчет аморт.премии - задача на 1-2 две недели разработки.
Вашу проблему можно решить буквально парой строчек кода.
На форме профилей разноски ничего делать не нужно. По кнопке Параметры->Выбытие (продажа) на этой форме перейдите на форму настройки доп.операций при продаже.
Сейчас для разноски всей проведенной суммы Амортизации, включая премию, используется настройка с суммой к разноске "Балансовая амортизация".
Вам нужно создать новый тип суммы к разноске (енум RAssetPostValue) - Аморт.премия.
Таким образом вы сможете задавать свои счета для разноски премии в ГК.
Чтобы рассчитать сумму премии для операции продажи нужно добавить обработку нового типа Суммы к разноске в метод RAssetDisposalValue:: postValue():
case RAssetPostValue::BalanceDeprBonus:
assetAmount = rAssetSumTransDate.depreciationPostedBonusValue();
break;
где BalanceDeprBonus - название нового типа Суммы к разноске, для расчета проведенной суммы аморт.премии.
Теперь осталось только исключить премию из существующего типа Сумма к разноске BalanceDepr "Балансовая амортизация":
case RAssetPostValue::BalanceDepr:
assetAmount = rAssetSumTransDate.depreciationTotal() - rAssetSumTransDate.depreciationPostedBonusValue();
break;
Старый 18.03.2010, 15:24   #4  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Попробовал.. не получилось.. Не возникает проводка по ам премии. так как rAssetSumTransDate.depreciationPostedBonusValue() возвращает 0 (как я уже говорил, не понятно вообще как она должна работать)

К сожалению двух строчек кода, яно не достаточна, так как нужно чтобы сама ам.премия начислялась.. Откуда система узнет что ам премия равна тому то, если для неё что амортизация что ам. премия это одно и тоже (один тип RAssetTransType::Depreciation) ?!

Последний раз редактировалось sukhanchik; 18.03.2010 в 16:46. Причина: Отключил смайлы
Старый 18.03.2010, 16:28   #5  
russ is offline
russ
Участник
Сотрудники Microsoft Dynamics
 
51 / 33 (2) +++
Регистрация: 02.04.2002
Адрес: Moscow
Цитата:
Сообщение от Вата Посмотреть сообщение
Тоесть выборка происходит по типу RAssetTransType::Depreciation - "Амортизация", поэтому туда попадает и просто амортизация и амортизационная премия.. Разве нет?
Нет, амортизация не попадает, так как в проводках амортизации DepreciationBonusCost = 0.

Последний раз редактировалось sukhanchik; 18.03.2010 в 16:46. Причина: Отключил смайлы
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Округление в налогах George Nordic DAX: Функционал 13 20.11.2006 10:12

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

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

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