Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GenerateData (
|
MacroPlan macroPlan,
|
InterfaceDataset interfaceDataset
|
)
|
{
|
Description: '生成计划库存存档数据'
|
TextBody:
|
[*
|
//interfaceDataset.InventoryPlanArchiveVersion( relflush );
|
info( '-------------------------Start---------------------');
|
allunit := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
|
name := InventoryPlanArchiveVersion::GetDefaultName();
|
search := interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
|
table := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, not version.IsShow() );
|
if( isnull( table ) ){
|
table := interfaceDataset.InventoryPlanArchiveVersion( relnew, ID := name, Name := name );
|
}
|
showtable := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, version.IsShow() );
|
if( isnull( showtable ) ){
|
showtable := interfaceDataset.InventoryPlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
|
}
|
periods := selectuniquevalues( macroPlan, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day()
|
and not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = period.StartDate() ), period.StartDate() );
|
if( periods.Size() > 0 ){
|
table.GenerateColumn( periods, false );
|
}
|
actinventorytree := NamedValueTree::Create();
|
inventoryqrys := construct( Reals );
|
inventoryindex := 0;
|
traverse( interfaceDataset,InterfaceLoginfo.MachineStockData, actinventory ){
|
inventoryqrys.Add( actinventory.Total() );
|
actinventoryKey := actinventory.MaterialNo() + actinventory.DDay().AsQUILL();
|
actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
|
actinventorytree.Root().AddChild( actinventoryhandle,inventoryindex );
|
inventoryindex := inventoryindex + 1;
|
}
|
traverse( interfaceDataset,InterfaceLoginfo.FinishedEngineInventory,actinventory ){
|
product := selectobject( macroPlan, Product_MP, product, product.Notes() = actinventory.FourCode() );
|
if( not isnull( product ) ){
|
inventoryqrys.Add( actinventory.Total() );
|
actinventoryKey := actinventory.FourCode() + actinventory.DDay().AsQUILL();
|
actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
|
actinventorytree.Root().AddChild( actinventoryhandle,inventoryindex );
|
inventoryindex := inventoryindex + 1;
|
}
|
}
|
traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pispmp, not pispmp.IsSystem() and pispmp.IsLeaf() ) {
|
unit := ifexpr( pispmp.StockingPointID().Regex( "大连" ) or pispmp.StockingPointID().Regex( "DL" ), FinancialProductionReport::GetDefaultDLUnit(), FinancialProductionReport::GetDefaultCCUnit() );
|
inventoryrow := table.GetRowByUnit( pispmp.Product_MP(), unit );
|
traverse ( pispmp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, not pispippl.IsPeriodFrozen() ) {
|
startdate := pispippl.Start().Date();
|
daycolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), startdate );
|
weekcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), startdate );
|
monthcolumn := table.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), startdate );
|
actinventoryKey := pispmp.ProductID() + startdate.AsQUILL();
|
actinventoryhandle := actinventorytree.GetHandle( actinventoryKey );
|
actinventoryindex := guard( actinventorytree.Root().Child( actinventoryhandle ),null( NamedValue ));
|
|
actinventoryqty := 0.0;
|
if( not isnull( actinventoryindex )){
|
actinventoryqty := inventoryqrys.Element( actinventoryindex.GetValueAsNumber() );
|
}
|
inventoryrow.SetQuantity( daycolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
|
inventoryrow.SetQuantity( weekcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
|
inventoryrow.SetQuantity( monthcolumn, pispippl.InventoryLevelEnd(), actinventoryqty );
|
|
}
|
}
|
|
info( '-------------------------End---------------------');
|
showtable.Generate( search );
|
*]
|
}
|