创建销售订单不会强制执行信用额度

时间:2019-03-28 03:54:01

标签: acumatica

我有这个简单的代码来创建单线销售订单

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

0 个答案:

没有答案