29.05.2006, 17:16 | #1 |
Участник
|
остатки товара по поставщику и уровню асс. классификатора
Есть отчет который считает остатки на дату в разрезе аналитки по складу и поставщику используя метод стандартного класса InventSumDatePhysicalDim:nHandQty( ...) http://axapta.mazzy.ru/lib/inventsum...atePhysicalDim.
Но работает он с поставщиком почему то не-корректно, по всем поставщикам одна и та же сумма, вообщем что-то не так, из-за чего это может быть? Почему не работает с поставщиком? Пример кода: void initFromDateOnHand(TransDate _transdate, ItemId _itemId, InventLocationId _InventLocationId, VendAccount _vendAccount = '') { VendInvoiceTrans lastVendInvoiceTrans = VendInvoiceTrans::findLast(_itemId, _transDate, _vendAccount); RetailShopItem retailShopItem = RetailShopItem::find(InventLocation::find(_InventLocationId).InventLocationId, _itemId); InventDim inventDim; InventDimParm InventDimParm; InventTrans inventTrans; ; inventDim.InventLocationId = _InventLocationId; inventDim.VendAccount = _vendAccount; InventDimParm.VendAccountFlag = NoYes::Yes; InventDimParm.InventLocationIdFlag = NoYes::Yes; InventDimParm.ItemIdFlag = NoYes::Yes; this.ItemId = _itemId; this.ItemRangeId = InventTable::find(_itemId).ItemRangeId; this.Qty = InventSumDatePhysicalDim:nHandQty(_transdate, _itemId, inventDim, InventDimParm); if ( lastVendInvoiceTrans ) { this.Price = lastVendInvoiceTrans.costValue() / lastVendInvoiceTrans.Qty; this.CostAmount = this.Price * this.Qty; } else { if ( this.Qty ) { this.CostAmount = InventSumFinancial::newParameters(_transdate, _itemId, inventDim, InventDimParm).value(); this.Price = this.CostAmount / this.Qty; } } this.RetailPrice = retailShopItem.RetailPrice; this.RetailAmount = retailShopItem.RetailPrice * this.Qty; } |
|
29.05.2006, 17:27 | #2 |
Участник
|
В макрос который джойнит InventDim (#InventDimJoin) добавлен поставщик?
|
|
29.05.2006, 18:25 | #3 |
Участник
|
Должен быть добавлен, хотя надо уточнить
|
|
29.05.2006, 18:27 | #4 |
Участник
|
Что-то типа этого
(%2.VendAccount == %3.VendAccount || ! %4.VendAccountFlag) && |
|
29.05.2006, 18:43 | #5 |
Участник
|
Ну тады идей больше нет
|
|
30.05.2006, 10:33 | #6 |
Участник
|
Может, в 3.0 или у Вас лично что-то и изменили, но вообще-то, у артикула есть еще конфигурация. Это должен быть 3 параметр после _itemId.
this.Qty = InventSumDatePhysicalDim:onHandQty(_transdate, _itemId, _configId, inventDim, InventDimParm); |
|
30.05.2006, 11:39 | #7 |
Участник
|
У нас стоит 3.0 сервис пак. Да что-то в Корусе дописали, а _configId за что отвечает?
|
|
30.05.2006, 12:42 | #8 |
Участник
|
Цитата:
Сообщение от angler
У нас стоит 3.0 сервис пак. Да что-то в Корусе дописали, а _configId за что отвечает?
Например, артикул "Ручка шариковая", но может иметь как синий, так и черный стержень. Артикул один, но состав (конфигурация) - разные. Обычно это используется в производстве (модуль "Спецификации"). Если конфигурация не используется, то можно явно указывать пустую строку (подряд две кавычки) this.Qty = InventSumDatePhysicalDim:onHandQty(_transdate, _itemId, "", inventDim, InventDimParm); Но, вообще-то, лучше посмотри сам статический метод onHandQty на предмет того, какие параметры ему требуются. Может, лично у Вас что-то "подправили". |
|