我有这个简单的代码来创建单线销售订单
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提出了此订单。它正确设置了信用保留值。那我想念什么呢?是否有我应该显式设置的字段或要调用的方法?
TIA