LotSerMst table sets cost to zero during a Bin to Bin, one-step transfer

This article provides a resolution for the issue that the cost in the LotSerMst table goes to zero in a bin to bin one-step transfer in Microsoft Dynamics SL.

Applies to:   Microsoft Dynamics SL
Original KB number:   3034220

Symptoms

You notice that the cost sets to zero in the LotSerMst table after you do a one-step transfer, bin to bin.

Resolution

Apply trigger to database:

create trigger xLotSerMstCost on LotSerMst for insert as
set nocount on
if (select COUNT(*) from inserted where Cost=0)>0
begin
update L set L.Cost=(select MAX(m.cost) from LotSerMst m with (nolock) inner join inserted i on m.Invtid = i.invtid and m.LotSerNbr=i.LotSerNbr)
 from LotSerMst L
 inner join inserted i on L.InvtID=i.InvtID and L.LotSerNbr=i.LotSerNbr and L.SiteID=i.SiteID and L.WhseLoc=i.WhseLoc
 inner join Inventory invt with (nolock) on i.InvtID=invt.InvtID
 where i.Cost=0 and i.LotSerNbr<>'' and i.OrigQty=1 and invt.LotSerTrack='SI'
end
go