lazhen
2024-10-18 06fce9cb4260a08854643380bc981f9e6c6c8ed0
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
已修改7个文件
已添加10个文件
已删除4个文件
459 ■■■■ 文件已修改
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/Attribute_NewSupply.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/StaticMethod_SetPackagingAndUnpackingValues.qbl 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/PackagingPlanCell.qrp 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_abpContent.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_cmContent.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_lstContent.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_pnlContent.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Method_Create.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Response_lstContent_mnDelete_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/_ROOT_Component_DialogMaintainArchivedFiles.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation#568.def 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomation.def 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomationBase.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomationCompare.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bMaintainArchivedFiles_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pVersionInfomationBase_ButtonDelete_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pVersionInfomationCompare_ButtonDelete2_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_bExport_OnClick#891.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Component_MatrixEditor493.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachineLogisticsCostReportCell/StaticMethod_CreateData.qbl
@@ -36,9 +36,9 @@
        
        // è¿è¾“成本参数
        lct  := select( macroPlan, LogisticsCostTransport, tempLCT, 
                        tempLCT.Product()     = mlcrr.Category()                                                   and
                        tempLCT.Origin()      = ifexpr( mlcrr.Factory() = "大连工厂", "长春外租库", "大连厂内库" ) and
                        tempLCT.Destination() = ifexpr( mlcrr.Factory() = "大连工厂", "大连场内库", "长春外租库" ) );
                        tempLCT.Product()     = mlcrr.Category()                                      and
                        tempLCT.Origin()      = mlcrr.Factory() + " " + mlcrr.Category() + "外租库"   and
                        tempLCT.Destination() = mlcrr.Factory() + " " + mlcrr.Category() + "线边库" );
        lct1 := select( macroPlan, LogisticsCostTransport, tempLCT, 
                        tempLCT.Product()     = mlcrr.Category()                                                   and 
                        tempLCT.Origin()      = ifexpr( mlcrr.Factory() = "大连工厂", "大连厂内库", "CC åŽ‚å†…åº“" ) and 
_Main/BL/Type_PackagingPlanCell/Attribute_NewSupply.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NewSupply
{
  #keys: '3[415754.0.436130246][415754.0.436130245][415754.0.436130247]'
  Description: '供应'
  ValueType: Real
}
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl
@@ -62,15 +62,17 @@
        
        // å¤§è¿žå·¥åŽ‚è®¾ç½®å€¼
        if ( factory = "大连工厂" ) {
          // å‡€éœ€æ±‚&剩余库存
          // å‡€éœ€æ±‚&剩余库存&供应量
          cell.NetDemand( cell.NetDemand() + pispipl.DependentDemandAndSalesDemandQuantity() );
          cell.EndingInventory( cell.EndingInventory() + pispipl.InventoryLevelEnd() );
          cell.NewSupply( cell.NewSupply() + pispipl.NewSupplyQuantity() );
        }
        
        // é•¿æ˜¥å·¥åŽ‚è®¾ç½®å€¼
        if ( factory = "长春工厂" ) {
          // å‰©ä½™åº“å­˜
          // å‰©ä½™åº“å­˜&供应量
          cell.EndingInventory( cell.EndingInventory() + pispipl.InventoryLevelEnd() );
          cell.NewSupply( cell.NewSupply() + pispipl.NewSupplyQuantity() );
          
          // å‡€éœ€æ±‚【只取线边库】&包装库存&非包装库存
          if ( pisp.StockingPointID().Regex( "外租库" ) ) {
_Main/BL/Type_PackagingPlanCell/StaticMethod_SetPackagingAndUnpackingValues.qbl
@@ -91,5 +91,56 @@
        }
      }
    }
    // è®¾ç½®æ‹†åŒ…值(符合lotsize和一日最大包装量)
    traverse ( macroPlan, PackagingPlanRow, ppr/*, ppr.Factory() = "大连工厂" and ppr.ProductID() = "06K103011CM"*/ ) {
      traverse ( ppr, PackagingPlanCell, ppcell/*, ppcell.StartDate() <= Date::Construct( 2025, 1, 4 )*/ ) {
        // Product_MP
        pmp                     := select( macroPlan, Product_MP, tempPMP, tempPMP.IsLeaf() and tempPMP.ID() = ppr.ProductID() );
        // åŒ…装lotsize
        ppls                    := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppr.Factory() and
                                           tempPPLS.ProductID() = ifexpr( exists( macroPlan, PackagingPlanLotSize, tempPPLS1, tempPPLS1.ProductID() = pmp.ID() ),
                                                                          pmp.ID(),
                                                                          pmp.ParentID() ) );
        // ä¸€æ—¥åŒ…装容量
        ppnc                    := select( macroPlan, PackagingPlanNewCapability, tempPPNC, tempPPNC.Factory() = ppr.Factory() and
                                           tempPPNC.ProductID() = ifexpr( exists( macroPlan, PackagingPlanNewCapability, tempPPNC1, tempPPNC1.ProductID() = pmp.ID() ),
                                                                          pmp.ID(),
                                                                          pmp.ParentID() ) );
        // Unit
        us                      := selectset( macroPlan, Unit, tempU, tempU.ID().Regex( ppr.FactoryAbbreviation() + " " + ppr.Category() ) );
        // å½“前非包装库存 + ä¸‹ä¸€å¤©çš„NewSupply < ä¸‹ä¸€å¤©çš„净需求
        if ( ppcell.UnpackagedInventory() < guard( ppcell.Next().NetDemand(), 0 ) and not isnull( ppls ) and not isnull( ppnc ) ) {
          // éœ€è¦åŒ…装的数量
          needPackagingQuantity := abs( ppcell.PackagingInventory() ).Round( 0 );
          // åŒ…装开始的索引
          indexPPCell           := ppcell.Previous();
    //      info( "产线个数:", us.Size(), "    å¼€å§‹æ—¶é—´ï¼š", ppcell.StartDate().Format( "Y-M2-D2" ), "    åŒ…装库存数量:", ppcell.PackagingInventory(), "    éœ€è¦åŒ…装的数量:", needPackagingQuantity,
    //            "    åŒ…装lotsize:",guard( ppls.LotSize(), 0 ), "    æœ€å¤§åŒ…装容量:", ppnc.MaximumDailyPackagingQuantity() );
          while ( not isnull( indexPPCell )                                                   and
                  indexPPCell.StartDate() >= plannedStartDate                                 and
                  exists( us, Elements.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan, tempSP,
                          tempSP.UnitPeriodTime().StartDate() = indexPPCell.StartDate(),
                          tempSP.Outcome() <> "" )                                            and
                  needPackagingQuantity > 0 ) {
            // èƒ½åŒ…装的数量
            canPackagingQuantity  := ifexpr( ceil( needPackagingQuantity / ppls.LotSize() ) < floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ),
                                             ceil( needPackagingQuantity / ppls.LotSize() ),
                                             floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ) ) * ppls.LotSize();
    //        info( "开始包装的日期:", indexPPCell.StartDate().Format( "Y-M2-D2" ), "    èƒ½åŒ…装的数量:", canPackagingQuantity );
            indexPPCell.Package( canPackagingQuantity );
            Transaction::Transaction().Propagate( attribute( PackagingPlanCell, PackagingInventory ) );
            Transaction::Transaction().Propagate( attribute( PackagingPlanCell, UnpackagedInventory ) );
            needPackagingQuantity := needPackagingQuantity - canPackagingQuantity;
            indexPPCell           := indexPPCell.Previous();
          }
        }
      }
    }
  *]
}
_Main/Sys/Repr/Global/PackagingPlanCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation PackagingPlanCell
{
  AttributeRepresentation EndingInventory
  {
    AttributeKey: '[413988.0.1393320114]'
    Synonym: 'Inventory end'
  }
  AttributeRepresentation NetDemand
  {
    AttributeKey: '[413988.0.1393320104]'
    Synonym: 'Demand'
  }
  AttributeRepresentation NewSupply
  {
    AttributeKey: '[415754.0.436130245]'
    Synonym: 'New supply'
  }
  AttributeRepresentation Out
  {
    AttributeKey: '[413988.0.1393320156]'
    Synonym: 'Transport-out'
  }
  AttributeRepresentation Package
  {
    AttributeKey: '[413988.0.1393320188]'
    Synonym: 'Package'
  }
  AttributeRepresentation PackagingInventory
  {
    AttributeKey: '[413988.0.1393320143]'
    Synonym: 'Packaged'
  }
  AttributeRepresentation TransferIn
  {
    AttributeKey: '[413988.0.1393320166]'
    Synonym: 'Transport-in'
  }
  AttributeRepresentation UnpackagedInventory
  {
    AttributeKey: '[413988.0.1393320130]'
    Synonym: 'Unpackaged'
  }
  AttributeRepresentation Unpacking
  {
    AttributeKey: '[413988.0.1393320198]'
    Synonym: 'Unpackage'
  }
  RelationRepresentation AsFirst { RelationKey: '[413988.0.1425205682]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_abpContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component abpContent
{
  #keys: '[414996.1.144423201]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_cmContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component cmContent
{
  #keys: '[414996.1.144423206]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mnDelete
    {
      #keys: '[414996.1.144423645]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_lstContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component lstContent
{
  #keys: '[414996.1.144423198]'
  BaseType: 'WebList'
  Children:
  [
    Component deContent
    {
      #keys: '[414996.1.144423199]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'Archive'
        Source: 'Archive'
        Taborder: 0
        Transformation: 'ArchiveFile'
      ]
    }
    #child: abpContent
    Component dslContent
    {
      #keys: '[414996.1.144423204]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: cmContent
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FilePath","title":"FilePath","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FilePath"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DateTime","title":"DateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UserName","title":"UserName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UserName"}}]'
        ContextMenu: 'cmContent'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_lstContent_WebMenu_OnClick
    {
      #keys: '[414996.1.144423479]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[267.0.23880229]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414996.1.144423160]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: lstContent
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Method_Create.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
Method Create () id:Method_DialogMaintainArchivedFiles_Create
{
  #keys: '[414996.1.144423799]'
  Body:
  [*
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/Response_lstContent_mnDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: lstContent
Response OnClick (
  structured[ArchiveFile] selection
) id:Response_lstContent_mnDelete_OnClick
{
  #keys: '[414996.1.144423689]'
  CanBindMultiple: false
  DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'mnDelete'
  QuillAction
  {
    Body:
    [*
      if( WebMessageBox::Question( Translations::MessageBox_ConfirmDeletion( "this files" ),Translations::MessageBox_YesNo() ) = 0 ){
        traverse( selection,Elements,element ){
          element.Delete();
        }
      }
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaintainArchivedFiles/_ROOT_Component_DialogMaintainArchivedFiles.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogMaintainArchivedFiles
{
  #keys: '[414996.1.144423158]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
  ]
  Properties:
  [
    Alignment: 'trailing'
    Description: 'Maintain archived files '
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: 'Maintain archived files '
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_PanelOperation#568.def
@@ -12,7 +12,7 @@
      Properties:
      [
        Label: '开始对比'
        Taborder: 2
        Taborder: 3
      ]
    }
    Component dhXMLDataListener id:dhXMLDataListener_906
@@ -38,7 +38,7 @@
      ]
      Properties:
      [
        Taborder: 1
        Taborder: 2
      ]
    }
    Component bExport id:bExport_98
@@ -49,10 +49,21 @@
      [
        Image: 'EXPORT1'
        Label: '导出'
        Taborder: 0
        Taborder: 1
      ]
    }
    #child: pVersionInfomation
    Component bMaintainArchivedFiles
    {
      #keys: '[414996.1.144423972]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'MAGAZINE_FOLDER'
        Label: 'M'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomation.def
@@ -5,8 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    #child: pVersionInfomationBase
    #child: pVersionInfomationCompare
    Component dhCompareVersion
    {
      #keys: '[414996.1.137780879]'
@@ -27,9 +25,33 @@
        Taborder: 2
      ]
    }
    Component lBaseVersionName
    {
      #keys: '[414996.1.144422027]'
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'dhBaseVersion.Data.Name'
        Label: '基准需求版本:'
        NumberOfColumns: 50
        Taborder: 0
      ]
    }
    Component lCompareVersionName
    {
      #keys: '[414996.1.144422050]'
      BaseType: 'WebLabel'
      Properties:
      [
        DataBinding: 'dhCompareVersion.Data.Name'
        Label: '对比需求版本:'
        NumberOfColumns: 50
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Taborder: 3
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomationBase.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Component_pVersionInfomationCompare.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_PanelOperation_568_bMaintainArchivedFiles_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: PanelOperation_568/bMaintainArchivedFiles
Response OnClick () id:Response_PanelOperation_568_bMaintainArchivedFiles_OnClick
{
  #keys: '[414996.1.144820904]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogMaintainArchivedFiles );
      dlg.Create();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pVersionInfomationBase_ButtonDelete_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormDemandComparison/Response_pVersionInfomationCompare_ButtonDelete2_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_bExport_OnClick#891.def
@@ -11,7 +11,7 @@
    Body:
    [*
      rows := selectset( dhTable.Data(),LocalRow,row,exists( dhFinelProduct.Data(),Elements,product,product.ID() = row.ProductID()));
      columns := selectset( dhTable.Data( ),LocalColumn,column,true );
      columns := selectset( dhTable.Data( ),LocalColumn,column,not column.IsAttrbuteColumn() and dhStartDate.Data() <= column.Date() and dhEndDate.Data() > column.Date() );
      LocalCell_ProductionComparison::AsyncExport( RecycleBin, rows, columns, MacroPlan );
    *]
  }
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Component_MatrixEditor493.def
@@ -26,7 +26,7 @@
      ]
      Properties:
      [
        Attributes: 'NetDemand;EndingInventory;UnpackagedInventory;PackagingInventory;Out;TransferIn;Package;Unpacking'
        Attributes: 'NetDemand;NewSupply;EndingInventory;Out;TransferIn;UnpackagedInventory;PackagingInventory;Package;Unpacking'
        Column: 'PackagingPlanColumn'
        Row: 'PackagingPlanRow'
        Taborder: 0