From 641cca4f8f96002f98eb8e099867864deb282f98 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期三, 21 八月 2024 17:51:26 +0800
Subject: [PATCH] 添加班次信息下发类,修复一些bug
---
_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl | 119 +++++++++++++++++++
_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl | 36 ++++++
_Main/BL/Type_DispatchShiftPlan/Attribute_FactoryName.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/_ROOT_Type_DispatchShiftPlan.qbl | 10 +
_Main/BL/Type_DispatchShiftPlan/Attribute_ProductLine.qbl | 8 +
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def | 14 ++
_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl | 17 ++
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelAllSalesDemands.def | 8 +
_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/TypeIndex_IDTypeIndex.qbl | 12 ++
_Main/BL/Relations/Relation_DispatchShiftPlan_RecycleBin_RecycleBin_DispatchShiftPlan.qbl | 23 +++
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/_ROOT_Component_FormForecasts.def | 10 +
_Main/BL/Type_DispatchShiftPlan/Attribute_VersionName.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/Attribute_ID.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftDate.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/Attribute_InterfaceTime.qbl | 8 +
_Main/BL/Type_DispatchShiftPlan/Attribute_Tips.qbl | 8 +
_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl | 2
_Main/BL/Type_DispatchShiftPlan/Attribute_Fac.qbl | 8 +
_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def | 8 +
20 files changed, 330 insertions(+), 1 deletions(-)
diff --git a/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl b/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl
new file mode 100644
index 0000000..3e006d1
--- /dev/null
+++ b/_Main/BL/EDI/Broker_RB_DispatchShiftPlanBroker.qbl
@@ -0,0 +1,119 @@
+Quintiq file version 2.0
+#parent: #root
+EDIBroker RB_DispatchShiftPlanBroker
+{
+ MDSDefinition: RecycleBin
+ TimeZone: 'ACT'
+ UseOSTimeZone: false
+ EDIModelLink.Source DispatchShiftPlanSource
+ {
+ EDIMLTable DispatchShiftPlan
+ {
+ TargetType: DispatchShiftPlan
+ EDIMLColumn Fac { Attribute: Fac ValueType: String }
+ EDIMLColumn FactoryName { Attribute: FactoryName ValueType: String }
+ EDIMLColumn ID { Attribute: ID ValueType: String }
+ EDIMLColumn InterfaceTime { Attribute: InterfaceTime ValueType: DateTime }
+ EDIMLColumn ProductLine { Attribute: ProductLine ValueType: String }
+ EDIMLColumn ShiftDate { Attribute: ShiftDate ValueType: Date }
+ EDIMLColumn Tips { Attribute: Tips ValueType: String }
+ EDIMLColumn VersionFlag { Attribute: VersionFlag ValueType: String }
+ EDIMLColumn VersionName { Attribute: VersionName ValueType: String }
+ }
+ }
+ EDIODBCLink.Destination DispatchShiftPlanDestination
+ {
+ DataIntegrityStrategy: 'Disabled'
+ SettingsEngineLink: 'domainmodel.ediremotedatasourcedefinition.remotestorage.vwed'
+ EDIODBCLinkTable A_DispatchShiftPlan
+ {
+ MayCreateTable: true
+ MayDeleteRow: true
+ MayDropTable: true
+ MayFlushTable: true
+ MayInsertRow: true
+ Parameters: '/owner="dbo"'
+ PrimaryKeyColumns: ID
+ RecordModificationHintStrategy: 'None'
+ EDIODBCLinkColumn Fac
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn FactoryName
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn ID
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn InterfaceTime
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn ProductLine
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn ShiftDate
+ {
+ MayUpdateColumn: true
+ ValueType: DateTime
+ }
+ EDIODBCLinkColumn Tips
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn VersionFlag
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ EDIODBCLinkColumn VersionName
+ {
+ MayUpdateColumn: true
+ ValueType: String
+ }
+ }
+ }
+ EDITransformation.Transformation DispatchShiftPlanTransformation
+ {
+ EDITableTransformation
+ {
+ InputTable: DispatchShiftPlan
+ OutputTable: A_DispatchShiftPlan
+ EDIColumnMatch { InputColumn: Fac OutputColumn: Fac }
+ EDIColumnMatch { InputColumn: FactoryName OutputColumn: FactoryName }
+ EDIColumnMatch { InputColumn: ID OutputColumn: ID }
+ EDIColumnMatch { InputColumn: InterfaceTime OutputColumn: InterfaceTime }
+ EDIColumnMatch { InputColumn: ProductLine OutputColumn: ProductLine }
+ EDIColumnMatch
+ {
+ InputColumn: ShiftDate
+ OutputColumn: ShiftDate
+ Converter
+ {
+ XMLDefinition:
+ [*
+ <?xml version="1.0" encoding="UTF-16"?>
+ <DateToDateTime xmlns="http://www.quintiq.com/GEB/DateToDateTime" Key="@1">
+ <IsStandard>true</IsStandard>
+ <IsISO>false</IsISO>
+ <IsCustom>false</IsCustom>
+ <ConversionType>0</ConversionType>
+ </DateToDateTime>
+ *]
+ }
+ }
+ EDIColumnMatch { InputColumn: Tips OutputColumn: Tips }
+ EDIColumnMatch { InputColumn: VersionFlag OutputColumn: VersionFlag }
+ EDIColumnMatch { InputColumn: VersionName OutputColumn: VersionName }
+ }
+ }
+}
diff --git a/_Main/BL/Relations/Relation_DispatchShiftPlan_RecycleBin_RecycleBin_DispatchShiftPlan.qbl b/_Main/BL/Relations/Relation_DispatchShiftPlan_RecycleBin_RecycleBin_DispatchShiftPlan.qbl
new file mode 100644
index 0000000..37b7f50
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DispatchShiftPlan_RecycleBin_RecycleBin_DispatchShiftPlan.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DispatchShiftPlan_RecycleBin_RecycleBin_DispatchShiftPlan
+{
+ #keys: '1[414996.1.17706936]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide RecycleBin
+ {
+ #keys: '3[414996.1.17706938][414996.1.17706937][414996.1.17706939]'
+ Cardinality: '0to1'
+ ObjectDefinition: DispatchShiftPlan
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide DispatchShiftPlan
+ {
+ #keys: '3[414996.1.17706941][414996.1.17706940][414996.1.17706942]'
+ Cardinality: '1toN'
+ ObjectDefinition: RecycleBin
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
index a24173c..0b65024 100644
--- a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
@@ -11,7 +11,7 @@
f.Delete();
}
- traverse ( archiveExecutionStatus, TemporaryDemandData, tdd ,tdd.StartDate() >= macroPlan.StartOfPlanning().Date()) {
+ traverse ( archiveExecutionStatus, TemporaryDemandData, tdd ,tdd.Origin() = "" or tdd.StartDate() >= macroPlan.StartOfPlanning().Date()) {
targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = tdd.ProductID() );
targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = tdd.StockingPointID() );
info( tdd.SalesSegmentName() );
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_Fac.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_Fac.qbl
new file mode 100644
index 0000000..65d0636
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_Fac.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Fac
+{
+ #keys: '3[414996.1.17706904][414996.1.17706903][414996.1.17706905]'
+ Description: '宸ュ巶绠�鍐�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_FactoryName.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_FactoryName.qbl
new file mode 100644
index 0000000..a4bee3b
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_FactoryName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FactoryName
+{
+ #keys: '3[414996.1.17706894][414996.1.17706893][414996.1.17706895]'
+ Description: '宸ュ巶鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_ID.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_ID.qbl
new file mode 100644
index 0000000..1c70718
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+ #keys: '3[414996.1.17710059][414996.1.17710058][414996.1.17710060]'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_InterfaceTime.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_InterfaceTime.qbl
new file mode 100644
index 0000000..7c56e26
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_InterfaceTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InterfaceTime
+{
+ #keys: '3[414996.1.17706914][414996.1.17706913][414996.1.17706915]'
+ Description: '涓嬪彂鏃堕棿'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_ProductLine.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_ProductLine.qbl
new file mode 100644
index 0000000..446e53f
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_ProductLine.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductLine
+{
+ #keys: '3[414996.1.17706957][414996.1.17706956][414996.1.17706958]'
+ Description: '浜х嚎'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftDate.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftDate.qbl
new file mode 100644
index 0000000..4d0b8f8
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_ShiftDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftDate
+{
+ #keys: '3[414996.1.17706855][414996.1.17706854][414996.1.17706856]'
+ Description: '鐝鏃ユ湡'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_Tips.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_Tips.qbl
new file mode 100644
index 0000000..c180089
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_Tips.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Tips
+{
+ #keys: '3[414996.1.17706865][414996.1.17706864][414996.1.17706866]'
+ Description: '澶囨敞'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl
new file mode 100644
index 0000000..047acd8
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionFlag.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionFlag
+{
+ #keys: '3[414996.1.17706927][414996.1.17706926][414996.1.17706928]'
+ Description: '鐗堟湰鏍囪瘑'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionName.qbl b/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionName.qbl
new file mode 100644
index 0000000..7fc4ab5
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Attribute_VersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionName
+{
+ #keys: '3[414996.1.17706875][414996.1.17706874][414996.1.17706876]'
+ Description: '鐗堟湰鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl b/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl
new file mode 100644
index 0000000..a20b0a3
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/Function_CalcFac.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcFac
+{
+ TextBody:
+ [*
+ // Akari Aug-21-2024 (created)
+ value := "";
+ if( this.FactoryName() = "澶ц繛宸ュ巶" ){
+ value := "DL";
+ }else if( this.FactoryName() = "闀挎槬宸ュ巶"){
+ value := "CC";
+ }
+
+ this.Fac( value );
+ *]
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
new file mode 100644
index 0000000..cbf8db1
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Dispatch (
+ const MacroPlan macroPlan,
+ RecycleBin owner
+)
+{
+ TextBody:
+ [*
+ // Akari Aug-21-2024 (created)
+ now := DateTime::Now();
+ macroPlanName := macroPlan.MDSMacroPlan().Description();
+ traverse( macroPlan,Unit.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan,shiftPlan ){
+ factory := shiftPlan.UnitPeriodTime().Unit();
+ while( factory.HasParent() ){
+ temp1 := factory;
+ factory := factory.Parent();
+ if( not factory.HasParent() ){
+ factory := temp1;
+ }
+ }
+
+ owner.DispatchShiftPlan( relnew,ID := OS::GenerateGUIDAsString(),
+ ProductLine := shiftPlan.UnitPeriodTime().Unit().ID(),
+ ShiftDate := shiftPlan.UnitPeriodTime().Period_MP().StartDate(),
+ Tips := shiftPlan.Remark(),
+ VersionName := macroPlanName,
+ FactoryName := factory.ID(),
+ InterfaceTime := now
+ );
+
+ }
+
+ owner.RB_DispatchShiftPlanBroker().AsyncExecute();
+ *]
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/TypeIndex_IDTypeIndex.qbl b/_Main/BL/Type_DispatchShiftPlan/TypeIndex_IDTypeIndex.qbl
new file mode 100644
index 0000000..18969ed
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/TypeIndex_IDTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex IDTypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: ID
+ }
+ ]
+}
diff --git a/_Main/BL/Type_DispatchShiftPlan/_ROOT_Type_DispatchShiftPlan.qbl b/_Main/BL/Type_DispatchShiftPlan/_ROOT_Type_DispatchShiftPlan.qbl
new file mode 100644
index 0000000..2986864
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftPlan/_ROOT_Type_DispatchShiftPlan.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type DispatchShiftPlan
+{
+ #keys: '5[414996.1.17706851][414996.1.17706849][0.0.0][414996.1.17706850][414996.1.17706852]'
+ BaseType: Object
+ Description: '涓嬪彂鐝淇℃伅'
+ StructuredName: 'DispatchShiftPlans'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def
new file mode 100644
index 0000000..8fc3953
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_ListSalesDemands.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component ListSalesDemands #extension
+{
+ Children:
+ [
+ Component DataSetLevelSalesDemands #extension
+ {
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgNotLinkedToPeriod","title":"ImgNotLinkedToPeriod","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgNotLinkedToPeriod"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsPostponed","title":"ImgIsPostponed","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsPostponed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"Quantity UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Original Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NettedQuantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"NettedQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment Illustration","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfillment","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round(2)"}},{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue(object.NettedQuantity()-object.FulfilledQuantity(),0.0).Round(2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Priority.Name","title":"Priority","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Priority.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandUncertaintyPercentage","title":"Uncertainty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandUncertaintyPercentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Origin","title":"Origin","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Origin"}}]'
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelAllSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelAllSalesDemands.def
new file mode 100644
index 0000000..b6550d1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelAllSalesDemands.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component PanelAllSalesDemands #extension
+{
+ Children:
+ [
+ #child: ListSalesDemands
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def
new file mode 100644
index 0000000..14acdde
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/Component_PanelSalesDemands.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component PanelSalesDemands #extension
+{
+ Children:
+ [
+ #child: PanelAllSalesDemands
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/_ROOT_Component_FormForecasts.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/_ROOT_Component_FormForecasts.def
new file mode 100644
index 0000000..697d046
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecasts/_ROOT_Component_FormForecasts.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: LibMacroPlannerWebUI
+OrphanComponent FormForecasts #extension
+{
+ Children:
+ [
+ #child: PanelSalesDemands
+ ]
+}
--
Gitblit v1.9.3