2016-06-27 7 views
0

С некоторой помощью, и много проб и ошибок, я был в состоянии создать настройку, которая позволяла следующее:Acumatica: заказ клиента на заказ расчет несогласованность

  1. поле «Общая прибыль» на суммарной площади Sales Order
  2. поле «GP%» на суммарной площади Sales Order
  3. поле «Общая прибыль» на заказ клиента детали площадь (по линии)
  4. поле «GP%» на заказ клиента детализирует область (по линии)

Общая прибыль = Внутренняя. Цена - экст. Стоимость GP% = (общая прибыль/внешняя цена) * 100

Расчет для этих четырех полей работает некоторое время, но я заметил, что когда я фиксирую строку либо путем ввода новой строки, либо с помощью Control + Войдите, а затем вернитесь и измените Ext. Стоимость, общая прибыль и GP% не обновляются. Даже когда я сохраняю и обновляю, он делает это. Единственный раз, когда кажется, что он работает на 100%, - это когда я вхожу в него очень методично, делая шаг за шагом. Но это не так, как рассчитываются итоги из коробки. Не имеет значения, какой заказ вы вводите в своем количестве, цене и т. Д. - итоговые значения из окна всегда обновляются. Как я могу сделать четыре своих пользовательских поля в Acumatica?

Солинах Пользовательские поля (каждое поле отделяется пустой строкой):

[PXDBCurrency(typeof(SOLine.curyInfoID), typeof(SOLineExt.usrTotalProfit))] 
[PXUIField(DisplayName = "Total Profit", Enabled = false)] 
[PXFormula(typeof(Sub<SOLine.curyLineAmt, SOLine.curyExtCost>))] 
[PXDefault(TypeCode.Decimal, "0.0")] 
[PXFormula(null, typeof(SumCalc<SOOrderExt.usrCuryOrderTotalProfit>))] 

[PXDBDecimal(4)] 
[PXDefault(TypeCode.Decimal, "0.0")] 

[PXFormula(typeof(Switch<Case<Where<SOLine.curyLineAmt, Equal<decimal0>>, decimal0>, Div<SOLineExt.usrTotalProfit, SOLine.curyLineAmt>>))] 
[PXDefault(TypeCode.Decimal, "0.0")] 

[PXUIField(DisplayName = "GP %", Enabled = false)] 
[PXFormula(typeof(Mult<SOLineExt.usrGPPercent, decimal100>))] 
[PXDefault(TypeCode.Decimal, "0.0")] 

SOOrder Пользовательские поля (каждое поле отделяется пустой строкой):

[PXDBCurrency(typeof(SOOrder.curyInfoID), typeof(SOOrderExt.usrOrderTotalProfit))] 
[PXUIField(DisplayName = "Total Profit", Enabled = false)] 
[PXDefault(TypeCode.Decimal, "0.0")] 

[PXDBDecimal(4)] 
[PXDefault(TypeCode.Decimal, "0.0")] 

[PXFormula(typeof(Switch<Case<Where<SOOrder.curyOrderTotal, Equal<decimal0>>, decimal0>, Div<SOOrderExt.usrOrderTotalProfit, SOOrder.curyOrderTotal>>))] 
[PXDefault(TypeCode.Decimal, "0.0")] 

[PXUIField(DisplayName = "GP %", Enabled = false)] 
[PXFormula(typeof(Mult<SOOrderExt.usrOrderGPPercent, decimal100>))] 
+0

Можете ли вы предоставить исходный код для вашего решения? Включите все пользовательские поля и атрибуты ЦАП, которые вы использовали. – Gabriel

+0

Gabriel - я обновил свой оригинальный пост. Дай мне знать если тебе нужно что-нибудь еще! –

+0

Если у вашей компании есть подписка на поддержку, я рекомендую создать файл для поддержки Acumatica. Это может значительно ускорить решение проблемы. –

ответ

0

PXFormula должны иметь никаких проблем с Расширения DAC и настраиваемые поля. Трудно сказать, в чем проблема, если посмотреть только на атрибуты поля. По крайней мере, обновите фрагмент кода с помощью объявлений полей ЦАП, поэтому становится более понятным, какие атрибуты принадлежат тому или иному полю.

+0

на самом деле выглядит так, как будто это работает. Единственная проблема сейчас выглядит так: уровень валовой прибыли на уровне заказа вычисляется первоначально и отображает правильный процент, но затем исчезает ... Это очень странно. Любая идея, почему это может произойти? Мои формулы работают отлично, но что-то происходит с этим полем. Любые идеи или предложения очень ценны. –

+0

Другая вещь - процент отображается с 12 знаками после запятой. Любая идея, как изменить его 2? Кроме того, любая идея, как выделить жирный шрифт в Acumatica на экране? Я просто хочу изменить определенные поля, а не все. –

+0

Я вычислил десятичное место и жирный шрифт. Теперь мне нужно выяснить, почему процент валовой прибыли исчезает. Есть идеи? –

Смежные вопросы