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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2004, 16:19   #1  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Себестоимость списания
Привет.
Как мне кажется обнаружил ошибку в коде при расчете себестоимости в операции перенос.

Как описано в доках по расчету себестоимости, при списании сверх нормы и при установленном параметре отрицательный финансовый склад, себестоимость списания пойдет по стандартной. Но на деле это не выполняется.


При разноске журнала, в конечном итоге
вызвается метод класса

PHP код:
InventUpd_Financial.updateFinancialIssue 
Далее по методу идет следующий код, где мы получем себестоимость

PHP код:
changeCostAmount movement.financialIssueCostValue(inventTrans,inventOnhand) - inventTrans.costValue();

 if (
changeCostAmount)
 {
            
inventTrans.costAmountPosted       += changeCostAmount;
            ....... 
Если посмотреть подробно метод movement.financialIssueCostValue,
то в нем идет довольно странный код, где предположительно есть ошибка
PHP код:
CostAmount financialIssueCostValue(InventTrans      _inventTrans,
                                   
InventOnhand     _inventOnhand)
{
    
CostAmount  value;
    
InventQty   qty;

    
InventSum   inventSum;
    ;

    if (
_inventTrans.qty >= || ! _inventOnhand)
        throw 
error(strFmt("@SYS22828",funcName()));

   if (
this.inventModelGroup().standardCost)
        return 
Currency::amount(this.inventTable().costPcsPrice(_inventTrans.inventDimId) * _inventTrans.qty);

    if (
_inventTrans.InventRefTransId && inventTrans::useMarkedCostprice(this.dimGroupId()))
    {
        [
qty,value] = inventTrans::calcMarkedCostValue(_inventTrans.InventRefTransId,_inventTrans.ItemId,_inventTrans.inventDimId,this.inventModelGroup().inclPhysicalValueInCost);

        if (
qty && value >= 0)
            return 
Currency::amount(value qty _inventTrans.qty);
    }

    
inventSum   _inventOnhand.inventSum();

    
value       inventSum.postedValue;
    
qty         inventSum.postedQty;

    if (
this.inventModelGroup().inclPhysicalValueInCost)
    {
        
value += inventSum.physicalValue;
        
qty   += inventSum.received inventSum.deducted;
    }

    if ((
value qty) <= 0)
    {
        
value _inventTrans.costAmountPhysical;
        
qty   _inventTrans.qty;
    }

    if ((
value qty) <= 0)
        return 
Currency::amount(this.inventTable().costPcsPrice(_inventTrans.inventDimId) * _inventTrans.qty);

    return 
Currency::amount(value qty _inventTrans.qty);

В данном методе при совпадении знаков value (InventSum.PostedValue) и qty (InventSum.PostedQty) себестоимость всегда будет расчитана по средней.

Может-ли вообще быть ситуация, когда знаки InventSum.PostedValue и InventSum.PostedQty будут разными и себестоимость будет расчитана верно.

Буду благодарен за любые материалы или подсказки по внутренним механизмам формирования себестоимости.
Старый 15.07.2004, 17:22   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Об этой фиче Ax3.0 AKIS писал. Когда PostedValue < 0 и PostedQty < 0 расчитывается по средней (в 2.5 было из карточки).
Случаи с разными знаками встречаются на практике нередко.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Fedotenko: Себестоимость и длинные производственные заказы Blog bot DAX Blogs 13 21.11.2013 16:57
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Ошибки (?) в акте списания Ivanhoe DAX: Функционал 0 01.02.2007 13:32
Себестоимость списания в SO - просто тупик какой-то Axa DAX: Функционал 31 30.09.2004 14:21
Списание себестоимости, финансовая и физическая себестоимость tony DAX: Функционал 4 09.02.2004 16:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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