From 7804ec7a70a7ffe3116daec64154c15842f8c513 Mon Sep 17 00:00:00 2001
From: yanweiyuan3 <yanweiyuan3@gmail.com>
Date: 星期一, 11 九月 2023 16:51:00 +0800
Subject: [PATCH] Add Forecast form

---
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def                                |   10 +
 _Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw                                                                                         |  183 ++++++++++++++++++++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def |   16 ++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def                                         |   63 +++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def                                            |   15 ++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def         |   24 +++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def                                  |   10 +
 _Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp                                                                               |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def                                       |   43 ++++++
 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def                                             |   41 +++++
 10 files changed, 406 insertions(+), 1 deletions(-)

diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def
new file mode 100644
index 0000000..f825db9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListForecastForHedging
+{
+  #keys: '[412960.0.117650662]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorForecastForHedging453
+    {
+      #keys: '[412960.0.117650663]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'structured[Forecast]'
+        Source: 'DataHolderForecastForHedging'
+        Taborder: 0
+        Transformation: 'Elements'
+      ]
+    }
+    #child: listActionBarPageForecastForHedging
+    Component DataSetLevelForecastForHedging
+    {
+      #keys: '[412960.0.117650668]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuForecastForHedging
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}}]'
+        ContextMenu: 'listContextMenuForecastForHedging'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def
new file mode 100644
index 0000000..cc6a096
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelForecastForHedging
+{
+  #keys: '[412960.0.117670724]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: ListForecastForHedging
+    #child: PanelForecastForHedging961
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def
new file mode 100644
index 0000000..4940eca
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def
@@ -0,0 +1,63 @@
+Quintiq file version 2.0
+Component PanelForecastForHedging961
+{
+  #keys: '[412960.0.124780919]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component DateSelectorForecastForHedging
+    {
+      #keys: '[412960.0.124781002]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Date: 2023-01-01
+        DateFormat: 'YMM'
+        Label: '鎴鏃ユ湡'
+        MinDate: 2023-01-01
+        Taborder: 1
+      ]
+    }
+    Component ButtonForecastForHedging
+    {
+      #keys: '[412960.0.124781317]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        BadgeTextColor: 'blue'
+        ButtonSize: 'compact'
+        Label: '  鎼滅储  '
+        Taborder: 2
+      ]
+    }
+    Component EditFieldForecastForHedging
+    {
+      #keys: '[412960.0.124781382]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        PlaceHolder: '妯$硦鎼滅储'
+        Taborder: 0
+      ]
+    }
+    Component LabelForecastForHedging
+    {
+      #keys: '[412960.0.124781423]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鎼滅储'
+        Taborder: 3
+        Text: '鎼滅储'
+        Visible: false
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    SizeRatio: 0
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def
new file mode 100644
index 0000000..c92b3a7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageForecastForHedging
+{
+  #keys: '[412960.0.117650665]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def
new file mode 100644
index 0000000..3da0a0b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuForecastForHedging
+{
+  #keys: '[412960.0.117650670]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def
new file mode 100644
index 0000000..7e09df5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: PanelForecastForHedging961/ButtonForecastForHedging
+Response OnClick () id:Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick
+{
+  #keys: '[412960.0.124781470]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      DataExtractorForecastForHedging.FixedFilter( 
+                                                   "( object.ID().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" 
+                                                   + " or " + "object.ProductID().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" 
+      //                                             + " or " + "object.Quantity().AsString().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" 
+                                                   + " or " + "object.UnitOfMeasureName().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" 
+                                                   + " or " + "object.SalesSegmentName().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " ) )" 
+                                                   + "and" + "( object.EndDate() < " + DateSelectorForecastForHedging.Date().StartOfNextMonth().AsQUILL() + 
+                                                   " and " + "object.EndDate() >= " + DateSelectorForecastForHedging.Date().StartOfMonth().AsQUILL() + " )"
+                                                   );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def
new file mode 100644
index 0000000..2d9b51d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelForecastForHedging961/DateSelectorForecastForHedging
+Response OnCreated () id:Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated
+{
+  #keys: '[412960.0.124961321]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      this.Date( Date::ActualDate() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def
new file mode 100644
index 0000000..d3b3f75
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormForecastForHedging
+{
+  #keys: '[412960.0.116513237]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelForecastForHedging
+    Component DataHolderForecastForHedging
+    {
+      #keys: '[412960.0.117670741]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[Forecast]*'
+      Children:
+      [
+        Component DataExtractorForecastForHedging
+        {
+          #keys: '[412960.0.117620894]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'SalesDemand.astype(Forecast)'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '鍐插噺鍔熻兘涓嬬殑棰勬祴鏁版嵁鐣岄潰'
+    Image: 'PURCHASE_ORDER'
+    Title: '棰勬祴鍒楄〃椤�'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw b/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw
new file mode 100644
index 0000000..7bb36cf
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw
@@ -0,0 +1,183 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    forms
+    {
+      form_legacy_1
+      {
+        title: 'Currencies'
+        shown: true
+        componentID: 'FormCurrency'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 8
+          columnPosition: 1
+          columnSpan: 6
+        }
+        components
+        {
+          FormCurrency_PanelCurrency
+          {
+            sizeRatio: 1
+          }
+          FormCurrency_ListCurrency
+          {
+          }
+          FormCurrency_DataSetLevelCurrency
+          {
+            groupDepth: -1
+            sort: 'DESC:IsBase,Name'
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              title: 'All constraints'
+              index: 0
+              subtotals: ''
+              width: 33
+            }
+            column_Base
+            {
+              columnId: 'Base'
+              dataPath: 'Base'
+              dataType: 'string'
+              title: '鍩虹'
+              index: 1
+              subtotals: ''
+              width: 30
+            }
+            column_InUse
+            {
+              columnId: 'InUse'
+              dataPath: 'InUse'
+              dataType: 'string'
+              title: 'InUse'
+              index: 2
+              subtotals: ''
+              width: 30
+            }
+            column_Name
+            {
+              columnId: 'Name'
+              dataPath: 'Name'
+              dataType: 'string'
+              title: '鍚嶇О'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_Symbol
+            {
+              columnId: 'Symbol'
+              dataPath: 'Symbol'
+              dataType: 'string'
+              title: '璞″緛'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_legacy_2
+      {
+        title: 'Currency rates'
+        shown: true
+        componentID: 'FormCurrencyRates'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 8
+          columnPosition: 7
+          columnSpan: 6
+        }
+        components
+        {
+          FormCurrencyRates_ListCurrencyRate
+          {
+          }
+          FormCurrencyRates_DataSetLevelCurrencyRate
+          {
+            groupDepth: -1
+            sort: 'DESC:Start'
+            column_All_constraints
+            {
+              columnId: 'All constraints'
+              dataPath: 'All constraints'
+              dataType: 'string'
+              title: 'All constraints'
+              index: 0
+              subtotals: ''
+              width: 33
+            }
+            column_Start
+            {
+              columnId: 'Start'
+              dataPath: 'Start'
+              dataType: 'date'
+              title: '寮�濮�'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_Rate
+            {
+              columnId: 'Rate'
+              dataPath: 'Rate'
+              dataType: 'real'
+              title: '閫熷害'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_legacy_3
+      {
+        title: 'Currency rates chart'
+        shown: true
+        componentID: 'FormCurrencyRatesChart'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 9
+          rowSpan: 8
+          columnPosition: 1
+          columnSpan: 12
+        }
+        components
+        {
+          FormCurrencyRatesChart_DashboardChartCurrencyRates
+          {
+            SynchronizationGroup: ''
+          }
+          FormCurrencyRatesChart_DashboardChartCurrencyRates_legend
+          {
+            LegendItems:
+            [
+            ]
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    page: 'applicationDevelopmentActionBarPageDef'
+    group: ''
+    index: 0
+    image: 'APPLICATION_SERVER_PREFERENCES'
+    description: ''
+  }
+  formatversion: 2
+  id: 'Test_for_hedging'
+  name: 'Test for hedging'
+  isglobal: false
+  isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
index cb94597..237ed78 100644
--- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
   ProjectProperties
   {
     ApplicationComponentName: 'ApplicationMacroPlanner'
-    BuildVersion: '2022.3.0.32'
+    BuildVersion: '2022.3.0.72'
     Description: 'Quintiq Macro Planner'
     ProjectKind: 'WebClient'
   }

--
Gitblit v1.9.3