Create Transfer Journal in d365fo x++
Create Transfer Journal in d365fo x++
Code:
[FormControlEventHandler(formControlStr(TxlDemandNoteForm, CreateTransferJournal), FormControlEventType::Clicked)]
public static void CreateTransferJournal_OnClicked(FormControl sender, FormControlEventArgs e)
{
TxlDemandNoteLine TxlDemandNoteLine;
InventJournalTable inventJournalTable;
InventJournalTrans inventJournalTrans;
InventJournalName InventJournalName;
int64 line = 0;
NumberSeq num,num1;
FormDataSource TxlDemandNoteHeader_DS = sender.formRun().dataSource(formDataSourceStr(TxlDemandNoteForm, TxlDemandNoteHeader));
TxlDemandNoteHeader TxlDemandNoteHeader = TxlDemandNoteHeader_DS.cursor();
select TxlDemandNoteLine where TxlDemandNoteLine.DemandNO == TxlDemandNoteHeader.DemandNO;
if(!TxlDemandNoteLine)
{
error("Add Lines!");
return;
}
if(TxlDemandNoteHeader.CBLTransferJournal)
{
error("Journal already Created!");
return;
}
if(!TxlDemandNoteHeader.CBLInventSiteId || !TxlDemandNoteHeader.CBLInventLocationId || !TxlDemandNoteHeader.CBLwMSLocationId)
{
error("Site, warehouse & location must be filled in!");
return;
}
TxlDemandNoteLine.clear();
ttsbegin;
inventJournalTable.clear();
num = new NumberSeq();
num = NumberSeq::newGetNum(InventParameters::numRefTransferId());
InventJournalName = InventJournalName::find('ITrf');
inventJournalTable.initFromInventJournalName(InventJournalName::find(InventJournalName.JournalNameId));
inventJournalTable.Description = "Transfer from Demand note ";
inventJournalTable.bfpJournalType = bfpJournalType::NonGarment;
inventJournalTable.SystemBlocked = true;
inventJournalTable.JournalType = InventJournalType::Transfer;
inventJournalTable.insert();
while
select TxlDemandNoteLine
where TxlDemandNoteLine.DemandNO == TxlDemandNoteHeader.DemandNO
{
InventDim frominventDim,ToinventDim;
frominventDim = InventDim::find(TxlDemandNoteLine.InventDimId);
num1 = new NumberSeq();
num1 = NumberSeq::newGetNum(InventParameters::bfpNumRefInventTransLineGroupId());
inventJournalTrans.clear();
inventJournalTrans.bfpInventJournalTransLineGroupId = num1.num();
inventJournalTrans.initFromInventJournalTable(inventJournalTable);
inventJournalTrans.initFromInventTable(InventTable::find(TxlDemandNoteLine.ItemId));
InventJournalTrans.JournalType = InventJournalType::Transfer;
inventJournalTrans.Qty = (-1) * TxlDemandNoteLine.Qty;
inventJournalTrans.TransDate = SystemDateget();
inventJournalTrans.InventDimId = InventDim::findOrCreate(frominventDim).inventDimId;
ToinventDim.configId = frominventDim.configId;
ToinventDim.InventSiteId = TxlDemandNoteHeader.CBLInventSiteId;
ToinventDim.wMSLocationId = TxlDemandNoteHeader.CBLwMSLocationId;
ToinventDim.InventLocationId = TxlDemandNoteHeader.CBLInventLocationId;
inventJournalTrans.ToInventDimId = InventDim::findOrCreate(ToinventDim).inventDimId;
inventJournalTrans.insert();
}
TxlDemandNoteHeader.selectForUpdate(true);
TxlDemandNoteHeader.CBLTransferJournal = inventJournalTable.JournalId;
TxlDemandNoteHeader.update();
ttscommit;
TxlDemandNoteHeader_DS.research(true);
TxlDemandNoteHeader_DS.reread();
Info(strFmt("%1 Journal Created!", inventJournalTable.JournalId));
}
Comments
Post a Comment