Controller
/// <summary>
/// RAF controller
/// </summary>
internal final class LSRafLabelController extends SrsReportRunController
{
/// <summary>
/// Main class of RAF lebel
/// </summary>
/// <param name = "_args">_args</param>
public static void main(Args _args)
{
LSRafLabelController rafLabelController = new LSRafLabelController();
rafLabelController.parmReportName(ssrsReportStr(LSRAFLabel, Report));
rafLabelController.parmDialogCaption("@LS_HISOL_GD:RAFLabel");
rafLabelController.parmShowDialog(false);
rafLabelController.parmArgs(_args);
rafLabelController.startOperation();
}
/// <summary>
/// prePromptModifyContract
/// </summary>
protected void prePromptModifyContract()
{
if(this.parmArgs())
{
LSRafLabelContract contract;
ProdJournalProd prodJournalProd;
contract = this.parmReportContract().parmRdpContract();
prodJournalProd = this.parmArgs().record();
contract.parmRecid(prodJournalProd.RecId);
}
super();
}
}
Contract
/// <summary>
/// Contract class of RAF label
/// </summary>
[DataContractAttribute]
internal final class LSRafLabelContract
{
RefRecid lineRecid;
/// <summary>
/// Parm contract
/// </summary>
/// <param name = "_recid">_recid</param>
/// <returns>RefRecid</returns>
[DataMemberAttribute('Recid')]
public RefRecid parmRecid(RefRecid _recid = lineRecid)
{
lineRecid = _recid;
return lineRecid;
}
}
DP
/// <summary>
/// DP class for RAF report
/// </summary>
[SRSReportParameterAttribute(classStr(LSRafLabelContract))]
class LSRafLabelDP extends SRSReportDataProviderBase
{
LSRafLabelTmp rafTmp;
[SRSReportDataSetAttribute(tableStr(LSRafLabelTmp))]
public LSRafLabelTmp getLSRafLabelTmp()
{
select rafTmp;
return rafTmp;
}
/// <summary>
/// Process report
/// </summary>
public void processReport()
{
ProdJournalProd prodJournalProd;
InventDim inventDim;
LSRafLabelContract rafLabelContract;
rafLabelContract = this.parmDataContract();
select firstonly ItemId,QtyGood from prodJournalProd
where prodJournalProd.RecId == rafLabelContract.parmRecid()
join InventLocationId,inventBatchId,wMSLocationId from inventDim
where prodJournalProd.InventDimId == inventDim.inventDimId;
rafTmp.Warehouse = inventDim.InventLocationId;
rafTmp.ItemId = prodJournalProd.ItemId;
rafTmp.ProductName = InventTable::find(prodJournalProd.ItemId).productName(SystemParameters::getSystemLanguageId());
rafTmp.InventBatchId = inventDim.inventBatchId;
rafTmp.WMSLocationId = inventDim.wMSLocationId;
rafTmp.ManufacturingDate = InventBatch::find(inventDim.inventBatchId,prodJournalProd.ItemId).prodDate;
rafTmp.Qty = prodJournalProd.QtyGood;
rafTmp.QtyBX = this.convertedVal(prodJournalProd.ItemId,prodJournalProd.QtyGood,InventTableModule::find(prodJournalProd.ItemId,ModuleInventPurchSales::Invent).UnitId,'BX');
rafTmp.ExpiryDate = InventBatch::find(inventDim.inventBatchId,prodJournalProd.ItemId).expDate;
rafTmp.insert();
}
/// <summary>
/// Converted value
/// </summary>
/// <param name = "_itemid">_itemid</param>
/// <param name = "_qty">_qty</param>
/// <param name = "_fromUnit">_fromUnit</param>
/// <param name = "_toUnit">_toUnit</param>
/// <returns>Qty</returns>
public Qty convertedVal(ItemId _itemid, Qty _qty, UnitOfMeasureSymbol _fromUnit, UnitOfMeasureSymbol _toUnit )
{
try
{
UnitOfMeasureConverter_Product unitConverter = UnitOfMeasureConverter_Product::construct();
unitConverter.parmProduct(InventTable::find(_itemid,true).Product);
unitConverter.parmFromUnitOfMeasure(UnitOfMeasure::unitOfMeasureIdBySymbol(_fromUnit));
unitConverter.parmToUnitOfMeasure(UnitOfMeasure::unitOfMeasureIdBySymbol(_toUnit));
unitConverter.parmRoundAbsoluteValue(NoYes::No);
unitConverter.parmApplyRounding(NoYes::No);
return unitConverter.convertValue(_qty);
}
catch
{
warning("@DMF:DMFNoTimezone");
return 0;
}
}
}