Hi,
I'm creating a sales order using this code. And I noticed that when I set the salesLineAmount and the i call salesLine.createLine(true, false, true, true, true, true); -- Then LineAmount changes back to 0. So I had to update SalesLine again as you can see in order to fill the line amount with the value that I need -- why is that?? why it gets changed to 0?
public void createSalesOrder(XXReqHeader _reqHeader, XXReqLine _reqLine) { SalesTable salesTable; SalesLine salesLine; CustTable custTable; select firstonly custTable where custTable.AccountNum == _reqHeader.AccountNum(); salesTable.CustAccount = custTable.AccountNum; salesTable.SalesId = NumberSeq::newGetNum(SalesParameters::numRefSalesId()).num(); salesTable.initValue(); salesTable.initFromCustTable(); if(_reqHeader.Currency()) { salesTable.CurrencyCode = _reqHeader.Currency(); } if(salesTable.validateWrite()) { salesTable.insert(); } salesLine.initFromSalesTable(_salesTable); salesLine.ItemId = _reqLine.ItemId(); salesLine.Name = _reqLine.ItemName(); salesLine.SalesQty = _reqLine.Qty(); salesLine.SalesPrice = _reqLine.Price(); salesLine.LineAmount = _reqLine.LineAmount(); salesLine.createLine(true, false, true, true, true, true); this.updateSalesLine(salesLine, _reqLine); } public void updateSalesLine(SalesLine _salesLine, XXReqLine _reqLine) { salesLine salesLineLocal; select firstonly forupdate salesLineLocal where salesLineLocal.SalesId == _salesLine.SalesId && salesLineLocal.LineNum == _salesLine.LineNum; salesLineLocal.Name = _reqLine.ItemName(); salesLineLocal.LineAmount = _reqLine.LineAmount(); if(_reqLine.SalesUnit()) { salesLineLocal.SalesUnit = _reqLine.SalesUnit(); } salesLineLocal.update(); }