已添加34个文件
已修改16个文件
1054 ■■■■■ 文件已修改
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_DataPreview.qbl 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_Publish.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceDataset/Attribute_IsPushSAP_PIR.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryInterfaceData/StaticMethod_Generate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryInterfaceData/StaticMethod_Generate0.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory#575.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/Method_Generate.qbl 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewAssemblyOnlinePlanCell/StaticMethod_PostLayingProcessing.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/StaticMethod_SetPackagingAndUnpackingValuesCC.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Component_pnlContent.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Method_Edit.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/_ROOT_Component_DialogEditQuantitySAP_PIR.def 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Component_pnlActions.def 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Component_pnlContent.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Method_New.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnApply_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/_ROOT_Component_DialogSAP_PIR_DataPreview_JSON.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Method_OnOk.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_listContextMenuInterfaceLoginfo.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Response_ListInterfaceLoginfo_mDelete_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_MS64/_ROOT_Component_FormSAP_MS64.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_List391.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_List655.def 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listActionBarPage234.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listActionBarPage949.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listContextMenu300.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listContextMenu713.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pContent.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pHeader.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pLeft.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pRight.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List391_bGeneratePreviewData_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List391_bPush_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List655_mEdit_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_bConfirm_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_bPush_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_cIsSAP_PIR_Preview_OnUserChanged.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/_ROOT_Component_FormSAP_PIR.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Interface_loginfo_view.vw 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_DataPreview.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: #root
StaticMethod DataPreview (
  InterfaceLoginfo loginfo
) as String
{
  Description: '数据预览'
  TextBody:
  [*
    jsondata           := JSON::Object();
    traverse( loginfo, AOnlineAndMOfflinePlanPIR, pir ){
      jsonarray        := JSON::Array();//.Add( "dto", JSON::Object().Add( "dday", date.Format( "Y-M2-D2" ) ).Add( "fac", "" ) ).Build();
      pirds            := selectsortedset( pir, PIRData, tempPIRD, true, tempPIRD.PlanningDate(), tempPIRD.Product() );
      traverse( pirds, Elements, pirdata ){
        pirjson        := JSON::Object().Add( "product", pirdata.Product() )
                                        .Add( "planningDate", pirdata.PlanningDate().Format( 'YM2D2' ) )//"2024-10-01" )
                                        .Add( "planningQty", pirdata.PlanningQty() )
                                        .Add( "factory", pirdata.Werk() ).Build();/*"2024-10-01 12:00:00" )*/
        jsonarray.Add( pirjson );
      }
      jsondata.Add( 'ZPPPSCode', pir.ZPPPSCode() )
      .Add( 'werk', pir.Werk() )
      .Add( 'VERSB', pir.Version() )
      .Add( 'startDate', pir.StartDate().Format( 'YM2D2' ) )
      .Add( 'endDate', pir.EndDate().Format( 'YM2D2' ) )
      .Add( 'dataList', jsonarray );
    }
    return jsondata.AsPrettyString();
  *]
}
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -8,7 +8,8 @@
  Date startdate,
  Date enddate,
  String executor,
  String feedback
  String feedback,
  Boolean isPush
) as InterfaceLoginfo
{
  TextBody:
@@ -65,7 +66,7 @@
          if( not exists( productids, Elements, e, e = row.ProductID() ) ){
            productids.Add( row.ProductID() );
          }
          pirdata          := selectobject(  pir, PIRData, pirdata, pirdata.Product() = row.ProductID() and pirdata.PlanningDate() = column.StartDate() );
          pirdata          := select( pir, PIRData, pirdata, pirdata.Product() = row.ProductID() and pirdata.PlanningDate() = column.StartDate() );
          if( isnull( pirdata ) ){
            pirdata        := pir.PIRData( relnew, Product := row.ProductID(), PlanningDate := column.StartDate(), PlanningQty := 0, Werk := rowwerk );
          }
@@ -91,7 +92,11 @@
      }
    }
    loginfo.TotalRow( pir.PIRData( relsize ) );
    feedback             := AOnlineAndMOfflinePlanPIR::Publish( owner, loginfo );
    if ( isPush ) {
      feedback             := AOnlineAndMOfflinePlanPIR::Publish( owner, loginfo );
    }
    return loginfo;
  *]
}
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_Publish.qbl
@@ -28,9 +28,9 @@
    }
    
    loginfo.RequestBody( jsondata.Build().AsString() );
    info( loginfo.RequestBody() );
    //info( loginfo.RequestBody() );
    data              := InterfaceLoginfo::CallInterfaceForSAPGet( owner, loginfo );
    info( '----------------', data );
    //info( '----------------', data );
    return data;
  *]
}
_Main/BL/Type_InterfaceDataset/Attribute_IsPushSAP_PIR.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsPushSAP_PIR
{
  #keys: '3[415754.0.904016038][415754.0.904016037][415754.0.904016039]'
  ValueType: Boolean
}
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl
@@ -20,6 +20,7 @@
      if( loginfo.Name() = Translations::InterfaceDataset_AOnlineAndMOfflinePlanMS64_Name() ){//装配上线计划MS64
        httpinterface.URL( Translations::InterfaceDataset_AOnlineAndMOfflinePlanMS64_URL() );
      } 
    //  info( "请求体:", loginfo.RequestBody() );
      httpinterface.Call( loginfo.RequestBody() );
      result         := httpinterface.Result();
      loginfo.Response( result );
@@ -33,6 +34,7 @@
    data             := JSON::Null().Build();
    sapresponse      := construct( InterfaceSAPResponseLoginfos );
    feedback         := '';
    info( "返回响应:", loginfo.Response() );
    if( loginfo.Success() ){
      resultJson     := JSON::Parse( loginfo.Response() );
      code           := resultJson.Get( "code" ).GetNumber();
_Main/BL/Type_InventoryInterfaceData/StaticMethod_Generate.qbl
@@ -7,7 +7,8 @@
  String partno,
  String inventory,
  String fac,
  Number quantitiy
  Number quantitiy,
  String dtype
) as InventoryInterfaceDataDetail
{
  TextBody:
@@ -21,9 +22,9 @@
    if( not isnull( product ) and exists( product.GetAllParent(), Elements, proparent, proparent.ID() = 'PL' ) ){
      quantitiy   := floor( [Real]quantitiy / 4 );
    }
    iidl          := selectobject( iid, InventoryInterfaceDataDetail, detail, detail.InventoryPoint() = inventory and detail.Fac() = fac );
    iidl          := selectobject( iid, InventoryInterfaceDataDetail, detail, detail.InventoryPoint() = inventory and detail.Fac() = fac and detail.Dtype() = dtype );
    if( isnull( iidl ) ){
      iidl        := iid.InventoryInterfaceDataDetail( relnew, Date := date, PartNumber := partno, InventoryPoint := inventory, Fac := fac, Quantity := quantitiy );
      iidl        := iid.InventoryInterfaceDataDetail( relnew, Date := date, PartNumber := partno, InventoryPoint := inventory, Fac := fac, Quantity := quantitiy, Dtype := dtype );
    }else{
      iidl.Quantity( quantitiy );
    }
_Main/BL/Type_InventoryInterfaceData/StaticMethod_Generate0.qbl
@@ -14,7 +14,7 @@
  [*
    // ç”„兰鸽 Jul-26-2024 (created)
    traverse( scenariomanager, ScenarioMP, smp ){
      MDSMacroPlan::Root( smp.DatasetMDSID() ) -> InventoryInterfaceData::Generate( interfaceDataset, date, partno, inventory, fac, quantitiy );
      MDSMacroPlan::Root( smp.DatasetMDSID() ) -> InventoryInterfaceData::Generate( interfaceDataset, date, partno, inventory, fac, quantitiy, '' );
    }
  *]
}
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory#575.qbl
@@ -17,8 +17,8 @@
    // èŽ·å–æŒ‡å®šæ—¥æœŸåº“å­˜æŽ¥å£æ•°æ®
    //发动机成品库存
    traverse( inventorys, Elements, inventory ){
      iidl              := InventoryInterfaceData::Generate( macroplan, owner, inventory.DDay(), inventory.FourCode(), inventory.BIPlace(), inventory.Fac(), [Number]inventory.Total() );
      iidl.Dtype( inventory.DType() );
      InventoryInterfaceData::Generate( macroplan, owner, inventory.DDay(), inventory.FourCode(), inventory.BIPlace(), inventory.Fac(), [Number]inventory.Total(), inventory.DType() );
    //  iidl.Dtype( inventory.DType() );
    }
  *]
}
_Main/BL/Type_InventoryInterfaceData/StaticMethod_SynchronizeInventory.qbl
@@ -22,11 +22,11 @@
        if( inventory.Fac() = 'DL' and inventory.Lgort() = 'All' ){
          inventoryname := inventory.LineType();
        }
        InventoryInterfaceData::Generate( macroPlan, interfaceDataset, inventory.DDay(), inventory.MaterialNo(), inventoryname, inventory.Fac(), [Number]inventory.Total() );
        InventoryInterfaceData::Generate( macroPlan, interfaceDataset, inventory.DDay(), inventory.MaterialNo(), inventoryname, inventory.Fac(), [Number]inventory.Total(), '' );
      }
      //发动机成品库存
      traverse( loginfo, FinishedEngineInventory, inventory ){
        InventoryInterfaceData::Generate( macroPlan, interfaceDataset, inventory.DDay(), inventory.FourCode(), inventory.BIPlace(), inventory.Fac(), [Number]inventory.Total() );
        InventoryInterfaceData::Generate( macroPlan, interfaceDataset, inventory.DDay(), inventory.FourCode(), inventory.BIPlace(), inventory.Fac(), [Number]inventory.Total(), inventory.DType() );
      }
    }
  *]
_Main/BL/Type_MachiningPipelineReport/Method_Generate.qbl
@@ -8,7 +8,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    startyearmonth          := search.MacroPlan().StartOfPlanning().StartOfMonth().Date();
    //startyearmonth          := search.MacroPlan().StartOfPlanning().StartOfMonth().Date();
    table                   := selectobject( this, Source.Report, report, not report.IsShow() );
    //清空之前存储的显示数据
    this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() );
@@ -25,20 +25,9 @@
        ccassemblyplanqty   := sum( daycells, Elements, cell, cell.CCAssemblyPlanQty() );
        ccproductionqty     := sum( daycells, Elements, cell, cell.CCProductionQty() );
        cctransferqty       := sum( daycells, Elements, cell, cell.CCTransferQty() );
        ccinventoryqty      := 0.0;
        dlassemblyplanqty   := sum( daycells, Elements, cell, cell.DLAssemblyPlanQty() );
        dlproductionqty     := sum( daycells, Elements, cell, cell.DLProductionQty() );
        dltransferqty       := sum( daycells, Elements, cell, cell.DLTransferQty() );
        dlinventoryqty      := 0.0;
        if( column.StartDate() = startyearmonth ){//当日期是计划开始第一个月时,计算库存是实际库存
          ccinventoryqty    := row.CCInventoryQty() + maxinventory.CCProductionQty() - maxinventory.CCToDLDepartureQty() + maxinventory.DLToCCArrivalQty() - maxinventory.CCAssemblyPlanQty();
          dlinventoryqty    := row.DLInventoryQty() + maxinventory.DLProductionQty() - maxinventory.DLToCCDepartureQty() + maxinventory.CCToDLArrivalQty() - maxinventory.DLAssemblyPlanQty();
        }else{
          beforecolumn      := column.PreviousColumn();
          beforeinventory   := selectobject( showrow, Cell, c, c.Column() = beforecolumn );
          ccinventoryqty    := beforeinventory.CCInventoryQty() + maxinventory.CCProductionQty() - maxinventory.CCToDLDepartureQty() + maxinventory.DLToCCArrivalQty() - maxinventory.CCAssemblyPlanQty();
          dlinventoryqty    := beforeinventory.DLInventoryQty() + maxinventory.DLProductionQty() - maxinventory.DLToCCDepartureQty() + maxinventory.DLToCCDepartureQty() - maxinventory.DLAssemblyPlanQty();
        }
        sumcell  := selectobject( column, Cell, c, c.Row() = sumrow );
        if( isnull( sumcell ) ){
          sumcell           := column.Cell( relnew, CCAssemblyPlanQty  := 0, 
@@ -54,11 +43,11 @@
        showcell            := column.Cell( relnew, CCAssemblyPlanQty  := ccassemblyplanqty, 
                                             CCProductionQty           := ccproductionqty, 
                                             CCTransferQty             := cctransferqty,
                                             CCInventoryQty            := ccinventoryqty,
                                             CCInventoryQty            := maxinventory.CCInventoryQty(),
                                             DLAssemblyPlanQty         := dlassemblyplanqty,
                                             DLProductionQty           := dlproductionqty, 
                                             DLTransferQty             := dltransferqty,
                                             DLInventoryQty            := dlinventoryqty );
                                             DLInventoryQty            := maxinventory.DLInventoryQty() );
        showrow.Cell( relinsert, showcell );
      
        sumcell.Add( showcell );
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -9,6 +9,7 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    owner.FinancialProductionSource( relflush );
    startinventorydate        := owner.StartOfPlanning() - Duration::Days( 1 );
    startyearmonth            := owner.StartOfPlanning().StartOfMonth().Date();
    productparent             := MachiningPipelineReport::GetDefaultProductParent();
    source                    := owner.MachiningPipelineSource( relnew, Name := MachiningPipelineReport::GetDefaultName() );
    table                     := source.Report( relnew, ID := source.Name(), Name := source.Name() );
@@ -84,7 +85,7 @@
      //CC to DL é•¿æ˜¥å·¥åŽ‚åˆ°å¤§è¿žå·¥åŽ‚
      iscctodl               := ( originspid.StartsWith( '长春' ) or originspid.StartsWith( 'CC' ) ) and ( destinationspid.StartsWith( '大连' ) or destinationspid.StartsWith( 'DL' ) );
      //DL to CC å¤§è¿žåŽ‚å†…åº“åˆ°å¤§è¿žå‘åŠ¨æœºçš„é•¿æ˜¥å¤–ç§Ÿåº“
      isdltocc               := originspid.EndsWith( '厂内库' ) and ( originspid.StartsWith( '大连' ) or originspid.StartsWith( 'DL' ) ) and destinationspid = '大连发动机的长春外租库';
      isdltocc               := ( originspid.StartsWith( '大连' ) or originspid.StartsWith( 'DL' ) ) and ( destinationspid.StartsWith( '长春' ) or destinationspid.StartsWith( 'CC' ) )//originspid.EndsWith( '厂内库' ) and ( originspid.StartsWith( '大连' ) or originspid.StartsWith( 'DL' ) ) and destinationspid = '大连发动机的长春外租库';
      if( iscctodl or isdltocc ){
    //    info( '------iscctodl------', originspid, destinationspid, iscctodl );
        traverse( table, Column, column  ){//, column.StartDate().Month() = 1
@@ -140,12 +141,30 @@
      }
    }
    
    //rows := selectsortedset( table, Row, row, row.Name() );
    //i    := 0;
    //traverse( rows, Elements, e ){
    //  e.RowNr( i );
    //  i := i + 1;
    //}
    traverse( table, Row, row ){
      traverse( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
        maxinventory        := selectobject( row, Cell, cell, cell.Column() = column );
        ccinventoryqty      := 0.0;
        dlinventoryqty      := 0.0;
        if( column.StartDate() = startyearmonth ){//当日期是计划开始第一个月时,计算库存是实际库存
          ccinventoryqty    := row.CCInventoryQty() + maxinventory.CCProductionQty() - maxinventory.CCToDLDepartureQty() + maxinventory.DLToCCArrivalQty() - maxinventory.CCAssemblyPlanQty();
          dlinventoryqty    := row.DLInventoryQty() + maxinventory.DLProductionQty() - maxinventory.DLToCCDepartureQty() + maxinventory.CCToDLArrivalQty() - maxinventory.DLAssemblyPlanQty();
        }else{
          beforecolumn      := column.PreviousColumn();
          beforeinventory   := selectobject( row, Cell, c, c.Column() = beforecolumn );
          beCCinventoryqty  := 0.0;
          beDLinventoryqty  := 0.0;
          if( not isnull( beforeinventory ) ){
            beCCinventoryqty := beforeinventory.CCInventoryQty();
            beDLinventoryqty := beforeinventory.DLInventoryQty();
          }
          ccinventoryqty    := beCCinventoryqty + maxinventory.CCProductionQty() - maxinventory.CCToDLDepartureQty() + maxinventory.DLToCCArrivalQty() - maxinventory.CCAssemblyPlanQty();
          dlinventoryqty    := beDLinventoryqty + maxinventory.DLProductionQty() - maxinventory.DLToCCDepartureQty() + maxinventory.CCToDLArrivalQty() - maxinventory.DLAssemblyPlanQty();
        }
        maxinventory.CCInventoryQty( ccinventoryqty );
        maxinventory.DLInventoryQty( dlinventoryqty );
      }
    }
    showtable.Generate( search, products );
  *]
}
_Main/BL/Type_NewAssemblyOnlinePlanCell/StaticMethod_PostLayingProcessing.qbl
@@ -58,8 +58,9 @@
              
              targetQuantity := targetQuantity - [Number]finalQuantity;
              targetCell    := minselect( targetCells, Elements, tempNAOPCell, tempNAOPCell.OrderNr() > 0 and tempNAOPCell.Quantity() > 0, tempNAOPCell.OrderNr() );
              finalQuantity := minvalue( targetQuantity, targetCell.Quantity() );
              currentCell   := select( naopc, NewAssemblyOnlinePlanCell, tempNAOPCell, tempNAOPCell.NewAssemblyOnlinePlanRow() = targetCell.NewAssemblyOnlinePlanRow() );
              finalQuantity := minvalue( targetQuantity, guard( targetCell.Quantity(), 0.0 ) );
              currentCell   := select( naopc, NewAssemblyOnlinePlanCell, tempNAOPCell,
                                       guard( tempNAOPCell.NewAssemblyOnlinePlanRow() = targetCell.NewAssemblyOnlinePlanRow(), false ) );
            }
          }
        }
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl
@@ -10,14 +10,14 @@
    // åˆ›å»ºæ•°æ®
    PackagingPlanCell::CreateData( macroPlan );
    
    // è®¾ç½®èµ·å§‹åŒ…装库存
    PackagingPlanCell::SetInitialPackagingInventory( macroPlan, interfaceDataset );
    // è®¾ç½®åŒ…装&拆包-数量(大连工厂)
    PackagingPlanCell::SetPackagingAndUnpackingValuesDL( macroPlan );
    
    // è®¾ç½®åŒ…装&拆包-数量(长春工厂)
    PackagingPlanCell::SetPackagingAndUnpackingValuesCC( macroPlan );
    // è®¾ç½®èµ·å§‹åŒ…装库存
    PackagingPlanCell::SetInitialPackagingInventory( macroPlan, interfaceDataset );
    
    //traverse ( macroPlan, PackagingPlanRow, ppr, ( ppr.ProductID() = "Windshield" and ppr.StockingPointID() = "Bosch" ) or ( ppr.ProductID() = "Windshield" and ppr.StockingPointID() = "Components (Spain)" ) ) {
    //  traverse ( ppr, PackagingPlanCell, ppc/*, ppc.StartDate() = Date::Construct( 2020, 4, 1 )*/ ) {
_Main/BL/Type_PackagingPlanCell/StaticMethod_SetPackagingAndUnpackingValuesCC.qbl
@@ -16,12 +16,14 @@
      traverse ( ts, Elements.ProductInTrip, pit, pit.Quantity() > 0 and pit.ProductID() = ppr.ProductID() ) {
        ppcell := select( ppr, PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn().StartDate() = pit.Trip().Departure().Date() );
        
        if ( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( "外租库" ) and pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( "线边库" ) ) {
          ppcell.Unpacking( pit.Quantity() );
        }
        if ( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( "线边库" ) and pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( "外租库" ) ) {
          ppcell.Package( pit.Quantity() );
        if ( not isnull( ppcell ) ) {
          if ( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( "外租库" ) and pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( "线边库" ) ) {
            ppcell.Unpacking( pit.Quantity() );
          }
          if ( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( "线边库" ) and pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( "外租库" ) ) {
            ppcell.Package( pit.Quantity() );
          }
        }
      }
    //  traverse ( ppr, PackagingPlanCell, ppcell/*, ppcell.StartDate() <= Date::Construct( 2025, 1, 4 )*/ ) {
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[415754.0.907118089]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[415754.0.907118093]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[415754.0.907118095]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[415754.0.907118087]'
  BaseType: 'WebPanel'
  Children:
  [
    Component npContent
    {
      #keys: '[415754.0.907475925]'
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'dhDialogData.Data.PlanningQty'
        Label: '数量'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  AOnlineAndMOfflinePlanPIRData data
) id:Method_DialogEditQuantitySAP_PIR_Edit
{
  #keys: '[415754.0.907475839]'
  Body:
  [*
    dhDialogData.Data( data );
    ApplicationMacroPlanner.ShowFormNonModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[415754.0.907118099]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[415754.0.907118098]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogEditQuantitySAP_PIR/_ROOT_Component_DialogEditQuantitySAP_PIR.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogEditQuantitySAP_PIR
{
  #keys: '[415754.0.907118085]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component dhDialogData
    {
      #keys: '[415754.0.907520662]'
      BaseType: 'WebDataHolder'
      Databinding: 'AOnlineAndMOfflinePlanPIRData'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[415754.0.905402656]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnApply
    {
      #keys: '[415754.0.905402658]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Apply'
        Taborder: 0
      ]
    }
    Component btnOk
    {
      #keys: '[415754.0.905402660]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 1
      ]
    }
    Component btnCancel
    {
      #keys: '[415754.0.905402662]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[415754.0.905402654]'
  BaseType: 'WebPanel'
  Children:
  [
    Component efContent
    {
      #keys: '[415754.0.907034219]'
      BaseType: 'WebEditField'
      Properties:
      [
        FixedSize: false
        MaxRows: 30
        Multiline: true
        NumberOfColumns: 100
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method New (
  String dataPreview
) id:Method_DialogSAP_PIR_DataPreview_JSON_New
{
  #keys: '[415754.0.907034527]'
  Body:
  [*
    efContent.Text( dataPreview );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnApply_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: pnlActions/btnApply
Response OnClick () id:Response_pnlActions_btnApply_OnClick
{
  #keys: '[415754.0.905402664]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return Form.HasChanges();
  *]
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[415754.0.905402666]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[415754.0.905402665]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogSAP_PIR_DataPreview_JSON/_ROOT_Component_DialogSAP_PIR_DataPreview_JSON.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogSAP_PIR_DataPreview_JSON
{
  #keys: '[415754.0.905402652]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    MinimumColumns: 100
    MinimumRows: 30
    Padding: 'false'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Method_OnOk.def
@@ -8,7 +8,15 @@
    Form.ApplyChanges();
    if( WebMessageBox::Question( this, '是否确认推送', 'OK|Cancel' ) = 0 ){
      msg          := '';
      loginfo      := AOnlineAndMOfflinePlanPIR::GenerateData( InterfaceDataset, MacroPlan, ddslFactory.Text(), efVersion.Text(), dsStartDate.Date(), dsEndDate.Date(), QuintiqUser::CurrentUser().DisplayName(), msg );
      loginfo      := AOnlineAndMOfflinePlanPIR::GenerateData( InterfaceDataset,
                                                               MacroPlan,
                                                               ddslFactory.Text(),
                                                               efVersion.Text(),
                                                               dsStartDate.Date(),
                                                               dsEndDate.Date(),
                                                               QuintiqUser::CurrentUser().DisplayName(),
                                                               msg,
                                                               InterfaceDataset.IsPushSAP_PIR() );
      sucproduct   := selectuniquevalues( loginfo, SAPResponseLoginfo, e, e.IsSuccess(), e.Msg_v1() );
      if( sucproduct.Size() = loginfo.SAPResponseLoginfo( relsize ) ){
        WebMessageBox::Success( ApplicationMacroPlanner, '推送成功' );
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_ListInterfaceLoginfo.def
@@ -40,4 +40,22 @@
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListInterfaceLoginfo_WebMenu_OnClick
    {
      #keys: '[415754.0.905471826]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1489.0.24000311]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Component_listContextMenuInterfaceLoginfo.def
@@ -3,6 +3,20 @@
{
  #keys: '[415136.0.931545409]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mDelete
    {
      #keys: '[415754.0.905471756]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceLoginfo/Response_ListInterfaceLoginfo_mDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListInterfaceLoginfo
Response OnClick (
  InterfaceLoginfo selection
) id:Response_ListInterfaceLoginfo_mDelete_OnClick
{
  #keys: '[415754.0.905471954]'
  DefinitionID => /ListInterfaceLoginfo/Responsedef_ListInterfaceLoginfo_WebMenu_OnClick
  Initiator: 'mDelete'
  QuillAction
  {
    Body:
    [*
      selection.Delete();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_MS64/_ROOT_Component_FormSAP_MS64.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormSAP_MS64
{
  #keys: '[415754.0.904183512]'
  BaseType: 'WebForm'
  Properties:
  [
    Title: 'SAP_MS64'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_List391.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component List391
{
  #keys: '[415754.0.906554104]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor655
    {
      #keys: '[415754.0.906554105]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'InterfaceDataset'
        Source: 'InterfaceDataset'
        Taborder: 0
        Transformation: 'AOnlineAndMOfflinePlanPIR'
      ]
    }
    #child: listActionBarPage234
    Component DataSetLevel650
    {
      #keys: '[415754.0.906554110]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu300
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ZPPPSCode","title":"ZPPPSCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ZPPPSCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Werk","title":"Werk","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Werk"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Version","title":"Version","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Version"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}}]'
        ContextMenu: 'listContextMenu300'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_List391_WebButton_OnClick
    {
      #keys: '[415754.0.906512353]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1489.0.28151548]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_List655.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
Component List655
{
  #keys: '[415754.0.906554201]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractor447
    {
      #keys: '[415754.0.906554202]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'AOnlineAndMOfflinePlanPIR'
        ExtractionMode: 'Selected'
        Source: 'List391'
        Taborder: 0
        Transformation: 'PIRData'
      ]
    }
    #child: listActionBarPage949
    Component DataSetLevel912
    {
      #keys: '[415754.0.906554207]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu713
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningDate","title":"PlanningDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlanningDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningQty","title":"PlanningQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlanningQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Product"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Werk","title":"Werk","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Werk"}}]'
        ContextMenu: 'listContextMenu713'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_List655_WebMenu_OnClick
    {
      #keys: '[415754.0.907118164]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[1489.0.58140061]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listActionBarPage234.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage234
{
  #keys: '[415754.0.906554107]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listActionBarPage949.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPage949
{
  #keys: '[415754.0.906554204]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listContextMenu300.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenu300
{
  #keys: '[415754.0.906554112]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_listContextMenu713.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component listContextMenu713
{
  #keys: '[415754.0.906554209]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mEdit
    {
      #keys: '[415754.0.907118195]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'EDITOR_CONSTRAINT'
        Taborder: 3
        Title: 'Edit'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component pContent
{
  #keys: '[415754.0.904183609]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pRight
    #child: pLeft
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
Component pHeader
{
  #keys: '[415754.0.904183592]'
  BaseType: 'WebPanel'
  Children:
  [
    Component cIsSAP_PIR_Preview
    {
      #keys: '[415754.0.905412071]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        CheckboxType: 'toggle'
        DataBinding: 'InterfaceDataset.IsPushSAP_PIR'
        Label: '是否推送'
        Taborder: 0
      ]
    }
    Component bConfirm
    {
      #keys: '[415754.0.906728019]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '确认'
        Taborder: 1
      ]
    }
    Component bGeneratePreviewData
    {
      #keys: '[415754.0.905454331]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '生成预览JSON数据'
        Taborder: 2
      ]
    }
    Component bPush
    {
      #keys: '[415754.0.907118015]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '推送'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pLeft.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pLeft
{
  #keys: '[415754.0.906553813]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: List391
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Component_pRight.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pRight
{
  #keys: '[415754.0.906553826]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: List655
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List391_bGeneratePreviewData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: List391
Response OnClick (
  AOnlineAndMOfflinePlanPIR selection
) id:Response_List391_bGeneratePreviewData_OnClick
{
  #keys: '[415754.0.906512675]'
  CanBindMultiple: false
  DefinitionID => /List391/Responsedef_List391_WebButton_OnClick
  Initiator: 'bGeneratePreviewData'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogSAP_PIR_DataPreview_JSON );
      dlg.New( AOnlineAndMOfflinePlanPIR::DataPreview( selection.InterfaceLoginfo() ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List391_bPush_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: List391
Response OnClick (
  AOnlineAndMOfflinePlanPIR selection
) id:Response_List391_bPush_OnClick
{
  #keys: '[415754.0.907252248]'
  CanBindMultiple: false
  DefinitionID => /List391/Responsedef_List391_WebButton_OnClick
  Initiator: 'bPush'
  QuillAction
  {
    Body:
    [*
      AOnlineAndMOfflinePlanPIR::Publish( InterfaceDataset, selection.InterfaceLoginfo() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_List655_mEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: List655
Response OnClick (
  AOnlineAndMOfflinePlanPIRData selection
) id:Response_List655_mEdit_OnClick
{
  #keys: '[415754.0.907392054]'
  CanBindMultiple: false
  DefinitionID => /List655/Responsedef_List655_WebMenu_OnClick
  Initiator: 'mEdit'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogEditQuantitySAP_PIR );
      dlg.Edit( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_bConfirm_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: pHeader/bConfirm
Response OnClick () id:Response_pHeader_bConfirm_OnClick
{
  #keys: '[415754.0.905481381]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogZEDPPSPIR );
      dlg.New();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_bPush_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bPush
Response OnClick () id:Response_pHeader_bPush_OnClick
{
  #keys: '[415754.0.907252162]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/Response_pHeader_cIsSAP_PIR_Preview_OnUserChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pHeader/cIsSAP_PIR_Preview
Response OnUserChanged () id:Response_pHeader_cIsSAP_PIR_Preview_OnUserChanged
{
  #keys: '[415754.0.906684729]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnUserChanged'
  QuillAction
  {
    Body:
    [*
      InterfaceDataset.IsPushSAP_PIR( this.Checked() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSAP_PIR/_ROOT_Component_FormSAP_PIR.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormSAP_PIR
{
  #keys: '[415754.0.904183421]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pHeader
    #child: pContent
  ]
  Properties:
  [
    Title: 'SAP_PIR'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Interface_loginfo_view.vw
@@ -215,13 +215,142 @@
          }
        }
      }
      form_FormSAP_PIR
      {
        title: 'QMacroPlanner::FormSAP_PIR'
        shown: true
        componentID: 'QMacroPlanner::FormSAP_PIR'
        layout
        {
          mode: 'open'
          rowPosition: 29
          rowSpan: 14
          columnPosition: 1
          columnSpan: 14
        }
        components
        {
          FormSAP_PIR_pHeader
          {
            sizeRatio: 1
          }
          FormSAP_PIR_pContent
          {
            sizeRatio: 1
          }
          FormSAP_PIR_pLeft
          {
            sizeRatio: 1
          }
          FormSAP_PIR_List391
          {
          }
          FormSAP_PIR_DataSetLevel650
          {
            groupDepth: -1
            column_ZPPPSCode
            {
              columnId: 'ZPPPSCode'
              dataPath: 'ZPPPSCode'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Werk
            {
              columnId: 'Werk'
              dataPath: 'Werk'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Version
            {
              columnId: 'Version'
              dataPath: 'Version'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_StartDate
            {
              columnId: 'StartDate'
              dataPath: 'StartDate'
              dataType: 'date'
              index: 3
              subtotals: ''
              width: 150
            }
            column_EndDate
            {
              columnId: 'EndDate'
              dataPath: 'EndDate'
              dataType: 'date'
              index: 4
              subtotals: ''
              width: 150
            }
          }
          FormSAP_PIR_pRight
          {
            sizeRatio: 1
          }
          FormSAP_PIR_List655
          {
          }
          FormSAP_PIR_DataSetLevel912
          {
            groupDepth: -1
            sort: 'PlanningDate,Product'
            column_PlanningDate
            {
              columnId: 'PlanningDate'
              dataPath: 'PlanningDate'
              dataType: 'date'
              index: 0
              subtotals: ''
              width: 150
            }
            column_PlanningQty
            {
              columnId: 'PlanningQty'
              dataPath: 'PlanningQty'
              dataType: 'number'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Product
            {
              columnId: 'Product'
              dataPath: 'Product'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_Werk
            {
              columnId: 'Werk'
              dataPath: 'Werk'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 22
    index: 0
    image: 'DOCUMENT'
    description: ''
  }