Цитата:
Сообщение от
Starling
Одну багу (может конечно фичу) в работе "Анализатор затрат" я уже нашел.
Последовательность действий:
1. Купить 1 шт
2. Продать 1 шт
3. Дооценить закупку через корректировку НР
4. Дооценить закупку через периодич. операции
5. Закрыть склад.
Получаем нормальную картинку в форме "Анализатор затрат"
Меняем последовательность действий:
1. Купить 1 шт
2. Продать 1 шт
3. Закрыть склад
4. Дооценить закупку через корректировку НР
5. Дооценить закупку через периодич. операции
6. Закрыть склад
В форме "Анализатор затрат" корректировки по п.4 и 5. не отображаются.
Исправление от MBS.
Класс метод InventSettlementTreeNodeCalc метод expandInventTransIssue
X++:
protected void expandInventTransIssue()
{
InventSettlement inventSettlement;
InventSettlement inventSettlementReceipt;
InventSettlement inventSettlementReceiptSum;
InventTrans inventTransReceipt;
real ratioCaller;
real ratio;
InventQty qtyToExplain;
;
if (inventTransCaller.Qty > 0)
return ;
ratioCaller = this.ratio(qtySettled, inventTransCaller.QtySettled);
while select sum(QtySettled) from inventSettlement
group by SettleTransId
where inventSettlement.TransRecId == inventTransCaller.RecId &&
inventSettlement.SettleType == InventSettleType::Issue &&
inventSettlement.InventTransId == inventTransCaller.InventTransId &&
inventSettlement.QtySettled < 0 &&
inventSettlement.Cancelled == NoYes::No
{
qtyToExplain = inventSettlement.QtySettled * ratioCaller;
select sum(QtySettled) from inventSettlementReceiptSum
where inventSettlementReceiptSum.SettleTransId == inventSettlement.SettleTransId &&
inventSettlementReceiptSum.SettleType == InventSettleType::Receipt &&
inventSettlementReceiptSum.Cancelled == NoYes::No;
while select sum(QtySettled),sum(CostAmountSettled) from inventSettlementReceipt
group by TransRecId
where inventSettlementReceipt.SettleTransId == inventSettlement.SettleTransId &&
inventSettlementReceipt.SettleType == InventSettleType::Receipt &&
//KB979110 -->
// inventSettlementReceipt.QtySettled > 0 &&
inventSettlementReceipt.QtySettled >= 0 &&
//KB979110 <--
inventSettlementReceipt.Cancelled == NoYes::No
{
inventTransReceipt = inventSettlementReceipt.inventTrans();
ratio = this.ratio(qtyToExplain, inventSettlementReceiptSum.QtySettled);
listInventSettlementTreeNode.addEnd(InventSettlementTreeNode::newInventTrans(inventTransReceipt,inventSettlementReceipt.QtySettled * ratio,inventSettlementReceipt.CostAmountSettled * ratio,UnknownNoYes::Unknown));
}
}
}
З.Ы.: Анализатор затрат очень плохо дружит со вторичным складом. MBS ошибку признал, и пообещал исправить в dax60, для 2009 исправлять не хотят...