01.02.2013, 11:07 | #1 |
Возьми свет!!!
|
DAX 2009 связь скл. проводки со строкой накладной по заказу
Обнаружил что теперь в DAX 2009 связи между проводкой складской и строкой накладной(custinvoicetrans) не прописаны, каким образом устроена связь между проводкой и накладной и почему от этой связки отказались?
Необходимо посчитать маржу в OLAP.
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
01.02.2013, 12:10 | #2 |
MCT
|
для расчета маржи уже есть методы прям на таблице CustInvoiceTrans (ContributionMargin и ContributionMarginMST).
там же и связь прописана X++: InventTrans::invoiceCostAmount(this.InventTransId,this.InvoiceDate,this.InvoiceId); ответ: по номуру лота, номеру накладной и дате накладной.
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
|
За это сообщение автора поблагодарили: Murlin (1). |
01.02.2013, 12:21 | #3 |
Возьми свет!!!
|
Цитата:
Сообщение от d&m
для расчета маржи уже есть методы прям на таблице CustInvoiceTrans (ContributionMargin и ContributionMarginMST).
там же и связь прописана X++: InventTrans::invoiceCostAmount(this.InventTransId,this.InvoiceDate,this.InvoiceId); ответ: по номуру лота, номеру накладной и дате накладной.
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
01.02.2013, 12:47 | #4 |
Участник
|
Все правильно. Это косяк аксапты. Вылезает если разрешены дубликаты по номерам накладных.
Можно порекомендовать вам сделать какое-то поле идентифицирующее однозначно накладную. И протаскивать его в строку и в проводку. Мы таким полем назначили ваучер. В строку его протаскиваем. В проводке он и так есть. |
|
01.02.2013, 14:41 | #5 |
Участник
|
Цитата:
Вы как раньше-то связывали? В какой версии?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
01.02.2013, 14:46 | #6 |
Возьми свет!!!
|
Цитата:
Сообщение от Владимир Максимов
А можно уточнить, что Вы вкладываете в термин "теперь"? Насколько я вижу, все те индексы, которые были на таблице CustInvoiceTrans в Ax2.5 и Ax3.0 так и остался в Ax2009. Один-в-один. Relations также совпадают для версий Ax3.0 и Ax2009. Вообще НИКАКИХ изменений.
Вы как раньше-то связывали? В какой версии?
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
01.02.2013, 15:57 | #7 |
Участник
|
Вообще-то, однозначная связь между строками фактур и складскими проводками невозможна "по определению". Так сказать, by-design
По самой "природе" строки фактур создаются на основе строк заказа. А складские проводки выступают лишь как некий дополнительный фактор контроля. Дополнительные проверки. Причем "интегральный" (суммовой) фактор контроля (сумма по разным складским аналитикам). Ну, а поскольку на основании одной строки заказа может быть как много строк фактур, так и много складских проводок, то и связь между этими таблицами будет много-ко-многим. Собстенно, код на однозначную связь и не рассчитывает. Если посмотреть, что делает метод InventTrans::invoiceCostAmount(), то видно, что он суммирует складские проводки. Причем InvoiceId и InvoiceDate - это всего-лишь контроль частичной фактуровки, а вовсе не попытка создать уникальный идентификатор. Другими словами, сделать "исторический" анализ - не получится. Даже в том случае, если Вы добавите уникальные идентификаторы. Может банально не оказаться складской проводки с таким идентификатором (удалили после сторнирования). PS: А вот "проклятием рода Баскервилей" я считаю отсутствие однозначной связи между шапками и строками фактур (CustInvoiceJour - CustInvoiceTrans). Но это уже другая история
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Murlin (1). |
01.02.2013, 22:09 | #8 |
Участник
|
Владимир Максимов, а почему вы накладные называете фактурами?
|
|
04.02.2013, 07:10 | #9 |
Возьми свет!!!
|
Пипец
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
04.02.2013, 10:39 | #10 |
Участник
|
|
|
04.02.2013, 11:17 | #11 |
Участник
|
Потому что я все еще работаю в Ax2.5. А там эта таблица называлась "Строки счетов-фактур", а CustInvoiceJour - соответственно "Счета-фактур"
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
04.02.2013, 11:38 | #12 |
Участник
|
Цитата:
Например, запрет удаления строк заказов. Ведь после сторнирования никто не мешает удалить строки заказов, при этом строки накладных "провиснут". Будут ссылаться на не существующие лоты. Ну, и весьма специфическим способом придется организовывать связку складских проводок с разной складской аналитикой. Также надо добавить контроль уникальности на значение InvoiceId. Может, еще чего надо сделать. Т.е. работать будет, если постоянно "пальцем придерживать"
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|