|
![]() |
#1 |
Участник
|
На самом деле calcGrossAmount считает не совсем то что надо. Если надо узнать какова реально линия будет в инвойсе то я написал такой метод:
X++: // [CR372][Release 41] Created on 05 Mar 2015 by TE-korru: Customer credit limit management AmountMst CalcTotalAmountMst() { SalesTotals salesTotals; AmountMst ret; SalesParmTable tmpSalesParmTable; SalesParmLine salesParmLine; SalesQuantity salesQuantity; ParmId parmId = NumberSeq::newGetNum(CompanyInfo::numRefParmId()).num(); ; ttsbegin; tmpSalesParmTable.setTmp(); tmpSalesParmTable.initFromSalesTable(this.salesTable()); tmpSalesParmTable.ParmId = parmId; tmpSalesParmTable.TableRefId = parmId; tmpSalesParmTable.write(); salesParmLine.initFromSalesLine(this); salesParmLine.ParmId = parmId; salesParmLine.TableRefId = parmId; salesQuantity = SalesQuantity::construct(DocumentStatus::Invoice); [salesParmLine.DeliverNow, salesParmLine.RemainBefore , salesParmLine.RemainAfter ] = salesQuantity.qtySales (this); [salesParmLine.InventNow , salesParmLine.RemainBeforeInvent, salesParmLine.RemainAfterInvent] = salesQuantity.qtyInvent (this); salesParmLine.setLineAmount(this); salesParmLine.write(); salesTotals = SalesTotals::construct(tmpSalesParmTable, SalesUpdate::All, AccountOrder::None, parmId, '', DocumentStatus::Invoice); ret = Currency::amountCur2MST(salesTotals.totalAmount(),this.CurrencyCode); delete_from salesParmLine where salesParmLine.ParmId == parmId && salesParmLine.TableRefId == parmId; ttscommit; return ret; } |
|