Friday, 4 December 2009

Sage 200 Write Off Stock Example


Public Function WriteOffStock(ByVal oSale As StockExchange) As Boolean


Using oTran As New Sage.ObjectStore.PersistentObjectTransaction

Using oGoodsInMovment As New Sage.Accounting.Stock.StockWriteOffMovementActivity

'Dim x As Sage.Accounting.Stock.StockWriteOffMovementActivity

Try

Sage.Accounting.Application.AllowableWarnings.Add(oGoodsInMovment, oTypeMaxStockLevel)

Sage.Accounting.Application.AllowableWarnings.Add(oGoodsInMovment, oTypeMinStockLevel)

With oGoodsInMovment

Dim oStockItem As Sage.Accounting.Stock.StockItem = Nothing

oStockItem = ImportCSVInfomationFromMSI.StockItemLookup(oSale.SKU)

If oStockItem Is Nothing Then

oStockItem = ImportCSVInfomationFromMSI.StockItemLookup(oSale.WinPafArticleID)

End If

If oStockItem IsNot Nothing Then

.StockItem = oStockItem

.Location = ImportCSVInfomationFromMSI.BinItemLookup(oStockItem, oSale.FromStoreNumber, "")

.ActivityDate = oSale.DateOfInventory

.Quantity = Math.Abs(oSale.TransferQuantity)

.CostPrice = oStockItem.AverageBuyingPrice

.IssuePrice = oStockItem.AverageBuyingPrice

.SupplierBuyingPrice = oStockItem.AverageBuyingPrice

.Reference = oSale.SalesPersonID

.SecondReference = oSale.WinPafArticleID

.DefaultNarrative = oSale.WinPafArticleID + " " + oSale.SalesPersonID + " " + oSale.FromStoreNumber

.CalculateValues()



.Validate()



'.PLNominalCode = GetStockWriteOffNominalCode()

GetStockWriteOffNominalCode(oGoodsInMovment, oSale)

'.SourceAreaType = Sage.Accounting.SourceAreaTypeEnum.EnumSourceAreaTypeWriteOff

.Update()

oTran.Commit()

Return True

Else

LogFailedInformation(oSale.RawLine)

Throw New Exception("Invalid Stock Code or SKU for stock adjustment out.")

End If

End With

Catch ex As Exception

LogFailedInformation(oSale.RawLine)

LogException(New ImportExecption(ex))

Finally

Sage.Accounting.Application.AllowableWarnings.Delete(oGoodsInMovment, oTypeMaxStockLevel)

Sage.Accounting.Application.AllowableWarnings.Delete(oGoodsInMovment, oTypeMinStockLevel)

End Try



End Using

End Using

End Function

No comments:

Post a Comment