public class BW_TransferJournalService
{
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('_transferJournalContractList',Types::Class,classStr(BW_TransferJournalContract)),
AifCollectionTypeAttribute('return',Types::String)
]
public str cerateTransferJournal( List _transferJournalContractList,
InventLocationIdFrom _fromLoction,
InventLocationIdTo _toLocation,
str _pgRequestNum)
{
InventTransferTable inventTransferTable;
InventTransferLine inventTransferLine;
InventJournalNameId inventJournalName;
InventDim inventDim;
JournalCheckPost journalCheckPost;
Str1260 msg, msgPost;
BW_TransferJournalContract transferJournalContract;
ListEnumerator listEnumerator = _transferJournalContractList.getEnumerator();
numberSeq numberSeq;
NumberSequenceReference numberSequenceReference;
InventTransferUpd inventTransferUpd;
try
{
ttsBegin;
if (!_transferJournalContractList.empty())
{
inventTransferTable.clear();
inventTransferTable.initValue();
numberSequenceReference = InventParameters::numRefTransferId();
numberSeq = numberSeq::newGetNumFromCode(numberSequenceReference.numberSequenceTable().NumberSequence);
inventTransferTable.TransferId = numberSeq.num();
inventTransferTable.InventLocationIdFrom = _fromLoction;
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdFrom));
inventTransferTable.InventLocationIdTo = _toLocation;
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdTo));
inventTransferTable.TransferStatus = InventTransferStatus::Created;
inventTransferTable.InventLocationIdTransit = InventLocation::find(inventTransferTable.InventLocationIdFrom).InventLocationIdTransit;
inventTransferTable.BW_PGRequestNum = _pgRequestNum;
inventTransferTable.BW_RequestorId = curUserId();
inventTransferTable.initFromAddress();
inventTransferTable.initToAddress();
inventTransferTable.initDeliveryMode();
inventTransferTable.insert();
while (listEnumerator.moveNext())
{
transferJournalContract = listEnumerator.current();
ttsbegin;
inventTransferLine.clear();
inventTransferLine.initValue();
inventTransferLine.initFromInventTransferTable(inventTransferTable, NoYes::Yes);
inventTransFerLine.TransferId = inventTransferTable.TransferId;
inventTransFerLine.LineNum = InventTransferLine::lastLineNum(inventTransferTable.TransferId) + 1;
inventTransferLine.ItemId = transferJournalContract.parmItemId();
inventTransferLine.initFromInventTable(InventTable::find(transferJournalContract.parmItemId()));
inventTransferLine.QtyTransfer = transferJournalContract.parmTransferQty();
inventTransferLine.QtyRemainReceive = transferJournalContract.parmTransferQty();
inventTransferLine.QtyRemainShip = transferJournalContract.parmTransferQty();
inventTransferLine.QtyShipNow = 0;
inventTransferLine.QtyReceiveNow = 0;
inventTransferLine.RemainStatus = InventTransferRemainStatus::Shipping;
inventDim = InventDim::findOrCreateBlank();
inventDim.initProductDimensionsFromInventTable(InventTable::find(transferJournalContract.parmItemId()));
inventTransferLine.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;
inventTransferLine.initFromInventTransferTable(InventTransferTable::find(inventTransferTable.TransferId), true);
InventMovement::bufferSetRemainQty(inventTransferLine,InventMovSubType::None);
InventMovement::bufferSetRemainQty(inventTransferLine,InventMovSubType::TransferOrderTransitFrom);
if (inventTransferLine.validateWrite())
{
inventTransferLine.insert();
}
ttscommit;
}
msg = strFmt("%1", "1|"+" "+inventTransferTable.TransferId);
}
else
{
throw error('Error:Empty contract');
}
ttsCommit;
}
catch
{
msg = "0|"+" "+infolog.text(infologLine());
infolog.clear();
}
return msg;
}
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('return',Types::Class,classStr(BW_TransferOrderDetailsContract))
]
public List getTransferOrderDetails(JournalId _transferId)
{
InventTransferTable inventTransferTable;
InventTransferLine inventTransferLine;
List detailsList = new List(Types::Class);
str valueCentre, subValueCentre, unitCode;
InventTable inventTable;
InventTableModule inventTableModule;
Str1260 msg;
AmountMST purchPrice, salesPrice;
if (_transferId)
{
while select inventTransferTable
join inventTransferLine
where inventTransferTable.TransferId == _transferId
&& inventTransferLine.TransferId == inventTransferTable.TransferId
{
if(inventTransferLine)
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
transferOrderDetailsContract.parmItemId(inventTransferLine.ItemId);
transferOrderDetailsContract.parmQty(inventTransferLine.QtyTransfer);
transferOrderDetailsContract.parmFromSerialNum(inventTransferLine.BW_FromSerialNum);
transferOrderDetailsContract.parmToSerialNum(inventTransferLine.BW_ToSerialNum);
transferOrderDetailsContract.parmBatchNum(inventTransferLine.BW_BatchNum);
transferOrderDetailsContract.parmExpDateOfStock(inventTransferLine.BW_ExpDateOfStock);
transferOrderDetailsContract.parmMessage("1");
detailsList.addEnd(transferOrderDetailsContract);
}
else
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
msg = "0| Transfer order Line/Lines not available in database";
transferOrderDetailsContract.parmMessage(msg);
detailsList.addEnd(transferOrderDetailsContract);
}
}
}
else
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
msg = "0| Transfer order is not available in database";
transferOrderDetailsContract.parmMessage(msg);
detailsList.addEnd(transferOrderDetailsContract);
}
return detailsList;
}
/*-----------------------------Posting transfer Order---------------------------------------------------*/
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('return',Types::String)
]
public str postTransferOrder(InventTransferId _transferId)
{
InventTransferTable inventTransferTable;
InventTransferUpd inventTransferUpd;
InventTransferParmTable inventTransferParmTable;
Str1260 msg, msgPost;
try
{
ttsBegin;
if (_transferId)
{
select inventTransferTable where inventTransferTable.TransferId == _transferId;
if(inventTransferTable.TransferStatus != InventTransferStatus::Received)
{
inventTransferParmTable.TransferId = inventTransferTable.TransferId;
inventTransferParmTable.EditLines = true;
inventTransferParmTable.AutoReceiveQty = true;
inventTransferParmTable.ExplodeLines = true;
inventTransferParmTable.UpdateType = InventTransferUpdateType::Shipment;
inventTransferParmTable.TransDate = systemDateGet();
inventTransferParmTable.ShipUpdateQty = InventTransferShipUpdateQty::All;
//inventTransferParmTable.insert();
inventTransferUpd = InventTransferUpdShip::newParmBuffer(inventTransferParmTable);
inventTransferUpd.run();
msg = strFmt("1| Transfer order - %1 is posted", _transferId);
}
else
{
msg = strFmt("0| Transfer order - %1 is already Received", _transferId);
}
}
else
{
throw error('0| Error: Transfer order not available');
}
ttsCommit;
}
catch
{
msg = "0|"+" "+infolog.text(infologLine());
infolog.clear();
}
return msg;
}
}
{
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('_transferJournalContractList',Types::Class,classStr(BW_TransferJournalContract)),
AifCollectionTypeAttribute('return',Types::String)
]
public str cerateTransferJournal( List _transferJournalContractList,
InventLocationIdFrom _fromLoction,
InventLocationIdTo _toLocation,
str _pgRequestNum)
{
InventTransferTable inventTransferTable;
InventTransferLine inventTransferLine;
InventJournalNameId inventJournalName;
InventDim inventDim;
JournalCheckPost journalCheckPost;
Str1260 msg, msgPost;
BW_TransferJournalContract transferJournalContract;
ListEnumerator listEnumerator = _transferJournalContractList.getEnumerator();
numberSeq numberSeq;
NumberSequenceReference numberSequenceReference;
InventTransferUpd inventTransferUpd;
try
{
ttsBegin;
if (!_transferJournalContractList.empty())
{
inventTransferTable.clear();
inventTransferTable.initValue();
numberSequenceReference = InventParameters::numRefTransferId();
numberSeq = numberSeq::newGetNumFromCode(numberSequenceReference.numberSequenceTable().NumberSequence);
inventTransferTable.TransferId = numberSeq.num();
inventTransferTable.InventLocationIdFrom = _fromLoction;
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdFrom));
inventTransferTable.InventLocationIdTo = _toLocation;
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdTo));
inventTransferTable.TransferStatus = InventTransferStatus::Created;
inventTransferTable.InventLocationIdTransit = InventLocation::find(inventTransferTable.InventLocationIdFrom).InventLocationIdTransit;
inventTransferTable.BW_PGRequestNum = _pgRequestNum;
inventTransferTable.BW_RequestorId = curUserId();
inventTransferTable.initFromAddress();
inventTransferTable.initToAddress();
inventTransferTable.initDeliveryMode();
inventTransferTable.insert();
while (listEnumerator.moveNext())
{
transferJournalContract = listEnumerator.current();
ttsbegin;
inventTransferLine.clear();
inventTransferLine.initValue();
inventTransferLine.initFromInventTransferTable(inventTransferTable, NoYes::Yes);
inventTransFerLine.TransferId = inventTransferTable.TransferId;
inventTransFerLine.LineNum = InventTransferLine::lastLineNum(inventTransferTable.TransferId) + 1;
inventTransferLine.ItemId = transferJournalContract.parmItemId();
inventTransferLine.initFromInventTable(InventTable::find(transferJournalContract.parmItemId()));
inventTransferLine.QtyTransfer = transferJournalContract.parmTransferQty();
inventTransferLine.QtyRemainReceive = transferJournalContract.parmTransferQty();
inventTransferLine.QtyRemainShip = transferJournalContract.parmTransferQty();
inventTransferLine.QtyShipNow = 0;
inventTransferLine.QtyReceiveNow = 0;
inventTransferLine.RemainStatus = InventTransferRemainStatus::Shipping;
inventDim = InventDim::findOrCreateBlank();
inventDim.initProductDimensionsFromInventTable(InventTable::find(transferJournalContract.parmItemId()));
inventTransferLine.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;
inventTransferLine.initFromInventTransferTable(InventTransferTable::find(inventTransferTable.TransferId), true);
InventMovement::bufferSetRemainQty(inventTransferLine,InventMovSubType::None);
InventMovement::bufferSetRemainQty(inventTransferLine,InventMovSubType::TransferOrderTransitFrom);
if (inventTransferLine.validateWrite())
{
inventTransferLine.insert();
}
ttscommit;
}
msg = strFmt("%1", "1|"+" "+inventTransferTable.TransferId);
}
else
{
throw error('Error:Empty contract');
}
ttsCommit;
}
catch
{
msg = "0|"+" "+infolog.text(infologLine());
infolog.clear();
}
return msg;
}
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('return',Types::Class,classStr(BW_TransferOrderDetailsContract))
]
public List getTransferOrderDetails(JournalId _transferId)
{
InventTransferTable inventTransferTable;
InventTransferLine inventTransferLine;
List detailsList = new List(Types::Class);
str valueCentre, subValueCentre, unitCode;
InventTable inventTable;
InventTableModule inventTableModule;
Str1260 msg;
AmountMST purchPrice, salesPrice;
if (_transferId)
{
while select inventTransferTable
join inventTransferLine
where inventTransferTable.TransferId == _transferId
&& inventTransferLine.TransferId == inventTransferTable.TransferId
{
if(inventTransferLine)
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
transferOrderDetailsContract.parmItemId(inventTransferLine.ItemId);
transferOrderDetailsContract.parmQty(inventTransferLine.QtyTransfer);
transferOrderDetailsContract.parmFromSerialNum(inventTransferLine.BW_FromSerialNum);
transferOrderDetailsContract.parmToSerialNum(inventTransferLine.BW_ToSerialNum);
transferOrderDetailsContract.parmBatchNum(inventTransferLine.BW_BatchNum);
transferOrderDetailsContract.parmExpDateOfStock(inventTransferLine.BW_ExpDateOfStock);
transferOrderDetailsContract.parmMessage("1");
detailsList.addEnd(transferOrderDetailsContract);
}
else
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
msg = "0| Transfer order Line/Lines not available in database";
transferOrderDetailsContract.parmMessage(msg);
detailsList.addEnd(transferOrderDetailsContract);
}
}
}
else
{
BW_TransferOrderDetailsContract transferOrderDetailsContract = new BW_TransferOrderDetailsContract();
msg = "0| Transfer order is not available in database";
transferOrderDetailsContract.parmMessage(msg);
detailsList.addEnd(transferOrderDetailsContract);
}
return detailsList;
}
/*-----------------------------Posting transfer Order---------------------------------------------------*/
[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute('return',Types::String)
]
public str postTransferOrder(InventTransferId _transferId)
{
InventTransferTable inventTransferTable;
InventTransferUpd inventTransferUpd;
InventTransferParmTable inventTransferParmTable;
Str1260 msg, msgPost;
try
{
ttsBegin;
if (_transferId)
{
select inventTransferTable where inventTransferTable.TransferId == _transferId;
if(inventTransferTable.TransferStatus != InventTransferStatus::Received)
{
inventTransferParmTable.TransferId = inventTransferTable.TransferId;
inventTransferParmTable.EditLines = true;
inventTransferParmTable.AutoReceiveQty = true;
inventTransferParmTable.ExplodeLines = true;
inventTransferParmTable.UpdateType = InventTransferUpdateType::Shipment;
inventTransferParmTable.TransDate = systemDateGet();
inventTransferParmTable.ShipUpdateQty = InventTransferShipUpdateQty::All;
//inventTransferParmTable.insert();
inventTransferUpd = InventTransferUpdShip::newParmBuffer(inventTransferParmTable);
inventTransferUpd.run();
msg = strFmt("1| Transfer order - %1 is posted", _transferId);
}
else
{
msg = strFmt("0| Transfer order - %1 is already Received", _transferId);
}
}
else
{
throw error('0| Error: Transfer order not available');
}
ttsCommit;
}
catch
{
msg = "0|"+" "+infolog.text(infologLine());
infolog.clear();
}
return msg;
}
}
No comments:
Post a Comment