Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GenerateData (
|
MacroPlan macroPlan,
|
InterfaceDataset interfaceDataset
|
)
|
{
|
Description: '生成计划库存存档数据'
|
TextBody:
|
[*
|
//interfaceDataset.InventoryPlanArchiveVersion( relflush );
|
info( '-------------------------Start---------------------');
|
machineproductparent := MachiningPipelineReport::GetDefaultProductParent();
|
engineproductparent := EnginePipelineReport::GetDefaultProductParent();
|
allunit := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
|
name := InventoryPlanArchiveVersion::GetDefaultName();//search :=
|
interfaceDataset.InventoryPlanArchiveVersionSearch( relnew, Product := allunit, Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );//, TimeUnit := Translations::MP_GlobalParameters_Day()
|
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.StartDate() = period.StartDate() ), period.StartDate() );//column.TimeUnit() = Translations::MP_GlobalParameters_Day() and
|
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, product, exists( product.GetAllParent(), Elements, e, e.ID() = machineproductparent or e.ID() = engineproductparent ) ){
|
traverse ( product, 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---------------------');
|
//productids := selectuniquevalues( table, Row, row, row.Name() );
|
//productlines := selectuniquevalues( table, Row, row, row.Unit() );
|
//showtable.Generate( search, productids, productlines );
|
*]
|
}
|