Automated Inventory Transfer on Job Operation Completion

here is the code

if (this.FromBin.EndsWith("Q"))
    {
        Erp.Contracts.InvTransferSvcContract svcInvTransfer = null;

        svcInvTransfer = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.InvTransferSvcContract>(Db);

        var dsInvTransfer = new Erp.Tablesets.InvTransferTableset();

        svcInvTransfer.GetInvTransferRecords(this.Part, dsInvTransfer);

        var ttInvTrans = (from r in dsInvTransfer.InvTrans select r).FirstOrDefault();
        if (ttInvTrans != null)
        {
            ttInvTrans.TranReference = "QC Bin Move for job " + this.JobNum;

            ttInvTrans.TransferQty = this.TransferQuantity;
            ttInvTrans.TrackingQty = this.TransferQuantity;
            ttInvTrans.RowMod = "U";

            svcInvTransfer.ChangeUOM(ref dsInvTransfer);

            ttInvTrans.FromWarehouseCode = this.Warehouse;
            svcInvTransfer.ChangeFromWhse(this.Warehouse, ref dsInvTransfer);

            ttInvTrans.FromBinNum = this.FromBin;
            svcInvTransfer.ChangeFromBin(this.FromBin, ref dsInvTransfer);

            ttInvTrans.ToWarehouseCode = this.Warehouse;
            svcInvTransfer.ChangeToWhse(this.Warehouse, ref dsInvTransfer);

            string strToBinNum = this.FromBin.Remove(this.FromBin.Length - 1, 1);
            ttInvTrans.ToBinNum = strToBinNum;
            svcInvTransfer.ChangeToBin(strToBinNum, ref dsInvTransfer);

            bool RequiresUserInput = false;

            svcInvTransfer.PreCommitTransfer(ref dsInvTransfer, out RequiresUserInput);
            ttInvTrans.RowMod = "U";
            string LegalNumberMessage, partTranPKs;

            svcInvTransfer.CommitTransfer(ref dsInvTransfer, out LegalNumberMessage, out partTranPKs);

            svcInvTransfer.Dispose();
            dsInvTransfer = null;

        }
    }

}

1 Like