У меня есть этот простой код для создания однострочного заказа на продажу
public PXAction<SOOrder> createOrder;
[PXUIField(DisplayName = "Create Order")]
[PXButton]
public void CreateOrder()
{
SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();
//create header
SOOrder order = new SOOrder();
order.OrderType = "SO";
order = graph.Document.Insert(order);
order.CustomerID = 2805;
order = graph.Document.Update(order);
//create line
SOLine line = graph.Transactions.Insert(new SOLine());
line.InventoryID = 764;
line.OrderQty = 1m;
graph.Transactions.Update(line);
graph.Actions.PressSave();
throw new PXException("New Order : {0}",graph.Document.Current.OrderNbr);//display a message
}
Большинство полей должны иметь значения по умолчанию. Только клиент, инвентарь и кол-во назначены явно. Это создает заказ на продажу в порядке. Проблема в том, что он не обеспечивает проверку кредитного лимита. Если я подниму это вручную. Как только строка добавлена. Заказ автоматически переводится в кредит.
Попытка отследить код, и кажется, что события SOLine_RowInserted и SOLine_RowUpdated отвечают за вычисление итогов, которое вызывает:
TaxAttribute.Calculate<SOLine.taxCategoryID>(sender, e);
Но даже если я позвоню. Это не устанавливает Кредитный Держатель.
Кроме того, я также поднял этот заказ через RestAPI. Он правильно устанавливает значение кредитного удержания. Так чего мне не хватает? Есть ли поле, которое я должен явно установить или метод для вызова?
1011 * ТИА *