Merhaba
Uzun zamandır fırsat bulup yeni yazı yazamıyordum. Canlıya geçiş yoğunlu sonra iş değişikliği derken zaman çok hızlı geçti. Yeni işimle birlikte farklı konularda da yazılar yazmayı planlıyorum.
Bu yazımda koddan bir stok hareketine nasıl rezervasyon koyulabileceğini anlatacağım. Bu örnekte SalesLine’nın stok hareketi var ancak SalesQoutationLine gibi farklı tablolar da olabilir. Rezervasyonu eldeki stoğa veya satın almaya koyabilirsiniz. Formdan rezervasyon koymak için satış formunu açıp satırlardan / Stok/ Rezervasyon menüsünden açılan formda, Rezervasyon sütununa istediğiniz miktarı yazarak yapabilirsiniz.
Eğer bu işlemi koddan yapmak istersek aşağıdaki gibi bir kod işimizi görecektir.
DMRSalesQuotationControl::inventReservation(Salesline.InventTransId ,
"", SalesLine.SalesQty , false ,true);
Server Static void inventReservation( InventTransId _inventTransId,
InventSerialId _inventSerialId,
Qty _qty ,
boolean _unreserve = false ,
boolean _allowReserveOrdered = false)
{
InventUpd_Reservation inventUpd_Reservation;
inventMovement inventMovement;
InventSerial invserial;
inventdim inventDim,iDimNew;
SalesLine salesLine;
;
ttsbegin;
salesLine = SalesLine::findInventTransId(_inventTransId);
if (!salesline)
{
throw error("Sales order line could not be found !");
}
inventDim = salesLine.inventDim();
inventdim.inventSerialId = _inventSerialId;
iDimNew = inventDim::findOrCreate(inventDim);
inventMovement =InventTrans::findTransId(salesLine.InventTransId).inventMovement(true);
if(inventMovement)
{
inventUpd_Reservation = InventUpd_Reservation::newInventDim(inventMovement,
iDimNew, _unreserve ? _qty : -_qty);
// if there is not enough inventory make rezervation from Purchase order.
inventUpd_Reservation.parmAllowReserveOrdered(_allowReserveOrdered);
inventUpd_Reservation.updateNow();
}
ttscommit;
}
Ax 2009 ve Ax 2012 aynı kod çalışıyor.
Selamlar.