From 35d084ff11504c5081f5276f643d8980df29e0eb Mon Sep 17 00:00:00 2001
From: yunchai <yunying.chai@capgemini.com>
Date: 星期一, 30 十月 2023 13:22:30 +0800
Subject: [PATCH] 拆行V1.0

---
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def        |   25 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl                                                             |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl                                                                       |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl                                                               |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl                                                                      |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl                                                                         |    7 
 _Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl                                                                 |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl                                                            |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl                                                                |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl                                                     |    7 
 _Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl                                                                      |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl                                                                    |    7 
 _Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl                                                               |   10 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails#450.def                                   |   42 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl                                                                  |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl                                                                     |    7 
 _Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl                                          |   23 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl                                                                            |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def                       |   22 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl                                                            |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor#413.qbl                                                  |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl                                                                 |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl                                                                     |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl                                                                    |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl                                                                   |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def                                              |   14 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl                                                                   |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def                    |  102 ++
 _Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl                                      |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def                                      |  114 +++
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def                      |   18 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl                                                                   |    7 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl                                                                   |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl                                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199#1.def                                  |   10 
 _Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl                          |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl                                                    |    7 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl                                                                    |    6 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl                                                                   |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def                                             |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders#635.def                                        |   54 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl                                                                          |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl                                                                  |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl                                                                 |    8 
 _Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl                                                    |   16 
 _Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl                                                                 |   10 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def                                              |   44 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl                                                                    |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl                                                            |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl                                                        |    7 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl                                                                        |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def                              |   16 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655#1.def                                  |   10 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl                                                                |    7 
 _Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl                                  |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl                                                |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl                                                                      |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl                                                         |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def                      |   38 +
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl                                                                 |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl                                                                      |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229#1.def                           |   10 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def                              |   19 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl                                                               |    7 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl                                                              |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl                                                                     |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def |   22 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def             |   40 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl                                                                         |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl                                              |    7 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl                                                                 |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl                                                                        |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def                                 |   26 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def              |   16 
 _Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl                                        |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails#136.def                           |   61 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl                                                                    |    7 
 _Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl                                                             |   10 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def                     |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl                                                                       |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl                                                                    |    8 
 _Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl                                               |   23 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl                                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def             |   32 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl                                                |    7 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl                                                                             |    9 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def                  |   41 +
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl                                                           |    6 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def          |   36 +
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def             |   25 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def                                   |   50 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def                                         |   39 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl                                                                       |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl                                                                 |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def                                           |   16 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl                                                                  |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl                                                                     |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def                                 |   41 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl                                                                           |    7 
 _Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl                                                         |  207 +++++
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def                                     |    1 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def   |   37 +
 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def                                     |   22 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def                                              |   26 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl                                                                     |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl                                                       |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl                                                                   |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl                                                     |    7 
 _Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl                                                         |   10 
 _Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl                                                                         |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243#1.def                                |   10 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl                                                                      |    8 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl                                                                        |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl                                                                              |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950#1.def                             |   25 
 _Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl                                                               |    6 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl                                                  |    7 
 _Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl                                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def             |   51 +
 _Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl                                                                       |    8 
 _Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978#1.def                                |   10 
 _Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl                                                                   |   12 
 127 files changed, 2,159 insertions(+), 0 deletions(-)

diff --git a/_Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl b/_Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl
new file mode 100644
index 0000000..ba14057
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_DT_CustomOrder_Child_S_DT_CustomOrder_Parent
+{
+  #keys: '1[414724.0.301487674]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Child
+  {
+    #keys: '3[414724.0.301487676][414724.0.301487675][414724.0.301487677]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_DT_CustomOrder
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Parent
+  {
+    #keys: '3[414724.0.301487679][414724.0.301487678][414724.0.301487680]'
+    Cardinality: '1toN'
+    ObjectDefinition: S_DT_CustomOrder
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl b/_Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl
new file mode 100644
index 0000000..1060e96
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_DT_CustomOrder_MacroPlan_MacroPlan_S_DT_CustomOrder
+{
+  #keys: '1[414724.0.292616032]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414724.0.292616034][414724.0.292616033][414724.0.292616035]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_DT_CustomOrder
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide S_DT_CustomOrder
+  {
+    #keys: '3[414724.0.292616037][414724.0.292616036][414724.0.292616038]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl b/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl
new file mode 100644
index 0000000..101f476
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_DT_OrderSpliteRow_MacroPlan_MacroPlan_S_DT_OrderSpliteRow
+{
+  #keys: '1[414724.0.289871273]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414724.0.289871275][414724.0.289871274][414724.0.289871276]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_DT_OrderSpliteRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide S_DT_OrderSpliteRow
+  {
+    #keys: '3[414724.0.289871278][414724.0.289871277][414724.0.289871279]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl b/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl
new file mode 100644
index 0000000..673ec22
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_DT_OrderSpliteRow_S_DT_CustomOrder_S_DT_CustomOrder_S_DT_OrderSpliteRow
+{
+  #keys: '1[414724.0.292600485]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide S_DT_CustomOrder
+  {
+    #keys: '3[414724.0.292600487][414724.0.292600486][414724.0.292600488]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_DT_OrderSpliteRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide S_DT_OrderSpliteRow
+  {
+    #keys: '3[414724.0.292600490][414724.0.292600489][414724.0.292600491]'
+    Cardinality: '1toN'
+    ObjectDefinition: S_DT_CustomOrder
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl b/_Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl
new file mode 100644
index 0000000..71e9ae6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_DT_SpliteStruct_MacroPlan_MacroPlan_S_DT_SpliteStruct
+{
+  #keys: '1[414724.0.291485612]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414724.0.291485614][414724.0.291485613][414724.0.291485615]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_DT_SpliteStruct
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide S_DT_SpliteStruct
+  {
+    #keys: '3[414724.0.291485617][414724.0.291485616][414724.0.291485618]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl b/_Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl
new file mode 100644
index 0000000..01a5c7d
--- /dev/null
+++ b/_Main/BL/Relations/Relation_S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation S_FunctionClass_MacroPlan_MacroPlan_S_FunctionClass
+{
+  #keys: '1[414724.0.288796777]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414724.0.288796779][414724.0.288796778][414724.0.288796780]'
+    Cardinality: '0to1'
+    ObjectDefinition: S_FunctionClass
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide S_FunctionClass
+  {
+    #keys: '3[414724.0.288796782][414724.0.288796781][414724.0.288796783]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..9acd896
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414724.0.292616049][414724.0.292616048][414724.0.292616050]'
+  Description: '浜嬩笟閮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl
new file mode 100644
index 0000000..f1af9aa
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CurrencyID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CurrencyID
+{
+  #keys: '3[414724.0.292600064][414724.0.292600063][414724.0.292600065]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl
new file mode 100644
index 0000000..5134f1f
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerID
+{
+  #keys: '3[414724.0.292600051][414724.0.292600050][414724.0.292600052]'
+  Description: 'CustomerID'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl
new file mode 100644
index 0000000..48816ad
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerName
+{
+  #keys: '3[414724.0.292600074][414724.0.292600073][414724.0.292600075]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl
new file mode 100644
index 0000000..26d9c89
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerPolicy.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerPolicy
+{
+  #keys: '3[414724.0.292600039][414724.0.292600038][414724.0.292600040]'
+  Description: '瀹㈡埛绛栫暐'
+  ValueType: String
+}
diff --git "a/_Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor\043413.qbl" "b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor\043413.qbl"
new file mode 100644
index 0000000..9c7b50f
--- /dev/null
+++ "b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DefaultUOMConversionFactor\043413.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DefaultUOMConversionFactor
+{
+  #keys: '3[414724.0.292600084][414724.0.292600083][414724.0.292600085]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl
new file mode 100644
index 0000000..fa27856
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DemandUncertaintyPercentage.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DemandUncertaintyPercentage
+{
+  #keys: '3[414724.0.292600099][414724.0.292600098][414724.0.292600100]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl
new file mode 100644
index 0000000..7aa9f83
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_DerivedPriorityName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DerivedPriorityName
+{
+  #keys: '3[414724.0.292600109][414724.0.292600108][414724.0.292600110]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl
new file mode 100644
index 0000000..a67ffa2
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+  #keys: '3[414724.0.292600119][414724.0.292600118][414724.0.292600120]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl
new file mode 100644
index 0000000..cf35ed4
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ExpectedQuantity
+{
+  #keys: '3[414724.0.292600129][414724.0.292600128][414724.0.292600130]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl
new file mode 100644
index 0000000..7ab421a
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_FulfilledQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FulfilledQuantity
+{
+  #keys: '3[414724.0.292600139][414724.0.292600138][414724.0.292600140]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl
new file mode 100644
index 0000000..0ff7b63
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasPostponedSalesDemand.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute HasPostponedSalesDemand
+{
+  #keys: '3[414724.0.292600152][414724.0.292600151][414724.0.292600153]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl
new file mode 100644
index 0000000..99402a6
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_HasValidConversionFactor.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute HasValidConversionFactor
+{
+  #keys: '3[414724.0.292600162][414724.0.292600161][414724.0.292600163]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl
new file mode 100644
index 0000000..2c6851c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414724.0.292600172][414724.0.292600171][414724.0.292600173]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl
new file mode 100644
index 0000000..a963e1d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ID_SpliteStruct.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID_SpliteStruct
+{
+  #keys: '3[414724.0.314769076][414724.0.314769075][414724.0.314769077]'
+  Description: 'S_DT_SpliteStruct琛↖D'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl
new file mode 100644
index 0000000..26d302c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsAvailable.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsAvailable
+{
+  #keys: '3[414724.0.292600045][414724.0.292600044][414724.0.292600046]'
+  Description: '璁㈠崟鏄惁鍙備笌璁″垝'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl
new file mode 100644
index 0000000..ce1d9c3
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsEligibleForNetting.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsEligibleForNetting
+{
+  #keys: '3[414724.0.292600182][414724.0.292600181][414724.0.292600183]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl
new file mode 100644
index 0000000..a45c711
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPI.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsExcludedFromFulfillmentKPI
+{
+  #keys: '3[414724.0.292600192][414724.0.292600191][414724.0.292600193]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl
new file mode 100644
index 0000000..6e0bd7a
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsExcludedFromFulfillmentKPIUser.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsExcludedFromFulfillmentKPIUser
+{
+  #keys: '3[414724.0.292600202][414724.0.292600201][414724.0.292600203]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl
new file mode 100644
index 0000000..bd03e0e
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsFirmed.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsFirmed
+{
+  #keys: '3[414724.0.292600212][414724.0.292600211][414724.0.292600213]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl
new file mode 100644
index 0000000..66c441e
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLeaf.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsLeaf
+{
+  #keys: '3[414724.0.292600222][414724.0.292600221][414724.0.292600223]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl
new file mode 100644
index 0000000..7a21a34
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsLocked.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsLocked
+{
+  #keys: '3[414724.0.292600232][414724.0.292600231][414724.0.292600233]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl
new file mode 100644
index 0000000..b245b9a
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsManuallyConfigured.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsManuallyConfigured
+{
+  #keys: '3[414724.0.292600242][414724.0.292600241][414724.0.292600243]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl
new file mode 100644
index 0000000..6e85880
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsPostponed.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsPostponed
+{
+  #keys: '3[414724.0.292600252][414724.0.292600251][414724.0.292600253]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl
new file mode 100644
index 0000000..954dea2
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsSoftDeleted.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsSoftDeleted
+{
+  #keys: '3[414724.0.292600262][414724.0.292600261][414724.0.292600263]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl
new file mode 100644
index 0000000..e50d18d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_IsValidData.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsValidData
+{
+  #keys: '3[414724.0.292600272][414724.0.292600271][414724.0.292600273]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl
new file mode 100644
index 0000000..a8d007f
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModify.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModify
+{
+  #keys: '3[414724.0.292600033][414724.0.292600032][414724.0.292600034]'
+  Description: '鏈�鍚庝慨鏀逛汉'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl
new file mode 100644
index 0000000..36d44c5
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LastModifyTime
+{
+  #keys: '3[414724.0.292600021][414724.0.292600020][414724.0.292600022]'
+  Description: '鏈�鍚庢搷浣滄椂闂�'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl
new file mode 100644
index 0000000..1c5d722
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderID
+{
+  #keys: '3[414724.0.292600282][414724.0.292600281][414724.0.292600283]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl
new file mode 100644
index 0000000..6aeeba7
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderLineID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderLineID
+{
+  #keys: '3[414724.0.292600292][414724.0.292600291][414724.0.292600293]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl
new file mode 100644
index 0000000..aa425a4
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTag.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderTag
+{
+  #keys: '3[414724.0.292600042][414724.0.292600041][414724.0.292600043]'
+  Description: '璁㈠崟鐘舵�侊紝鍐插噺鍚庤祴鍊硷紝绾娴�,鏈夐娴嬶紝鏃犻娴嬶紝鍙嶇锛屾巿鏉�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl
new file mode 100644
index 0000000..8e1a43b
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderTime
+{
+  #keys: '3[414724.0.292600024][414724.0.292600023][414724.0.292600025]'
+  Description: '璁㈠崟涓嬪崟鏃堕棿'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl
new file mode 100644
index 0000000..f3f52cf
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OrderType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderType
+{
+  #keys: '3[414724.0.292600018][414724.0.292600017][414724.0.292600019]'
+  Description: '璁㈠崟绫诲瀷'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl
new file mode 100644
index 0000000..ec41ccb
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_OutsideOfPlanningHorizonQuantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OutsideOfPlanningHorizonQuantity
+{
+  #keys: '3[414724.0.292600302][414724.0.292600301][414724.0.292600303]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl
new file mode 100644
index 0000000..a5128b6
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PISPConversionFactor.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PISPConversionFactor
+{
+  #keys: '3[414724.0.292600312][414724.0.292600311][414724.0.292600313]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl
new file mode 100644
index 0000000..1069893
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ParentID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ParentID
+{
+  #keys: '3[414724.0.301487657][414724.0.301487656][414724.0.301487658]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl
new file mode 100644
index 0000000..9e3c7b9
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Price.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Price
+{
+  #keys: '3[414724.0.292600322][414724.0.292600321][414724.0.292600323]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl
new file mode 100644
index 0000000..f163e1d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriceUoM.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriceUoM
+{
+  #keys: '3[414724.0.292600332][414724.0.292600331][414724.0.292600333]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl
new file mode 100644
index 0000000..62b2da2
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityName
+{
+  #keys: '3[414724.0.292600342][414724.0.292600341][414724.0.292600343]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl
new file mode 100644
index 0000000..d5d79e7
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductGrade.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductGrade
+{
+  #keys: '3[414724.0.292600036][414724.0.292600035][414724.0.292600037]'
+  Description: '浜у搧绛夌骇'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl
new file mode 100644
index 0000000..4d67010
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414724.0.292600352][414724.0.292600351][414724.0.292600353]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl
new file mode 100644
index 0000000..e0194fe
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414724.0.292600368][414724.0.292600367][414724.0.292600369]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl
new file mode 100644
index 0000000..6008923
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute QuantityInDefaultUoM
+{
+  #keys: '3[414724.0.292600378][414724.0.292600377][414724.0.292600379]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl
new file mode 100644
index 0000000..f5d1b6c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityPerDay.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute QuantityPerDay
+{
+  #keys: '3[414724.0.292600388][414724.0.292600387][414724.0.292600389]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl
new file mode 100644
index 0000000..8e79627
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesDemandConversionFactor
+{
+  #keys: '3[414724.0.292600398][414724.0.292600397][414724.0.292600399]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..dff72c7
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+  #keys: '3[414724.0.292600408][414724.0.292600407][414724.0.292600409]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl
new file mode 100644
index 0000000..79942f2
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevere.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SanityCheckDataMostSevere
+{
+  #keys: '3[414724.0.292600416][414724.0.292600415][414724.0.292600417]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl
new file mode 100644
index 0000000..37bec23
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SanityCheckDataMostSevereCount
+{
+  #keys: '3[414724.0.292600426][414724.0.292600425][414724.0.292600427]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl
new file mode 100644
index 0000000..4d8472e
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataTotalViolationCount.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SanityCheckDataTotalViolationCount
+{
+  #keys: '3[414724.0.292600436][414724.0.292600435][414724.0.292600437]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl
new file mode 100644
index 0000000..30bcd18
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SegmentPriority
+{
+  #keys: '3[414724.0.292600030][414724.0.292600029][414724.0.292600031]'
+  Description: '缁嗗垎甯傚満浼樺厛绾�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl
new file mode 100644
index 0000000..c7d7073
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SheetProfitability.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SheetProfitability
+{
+  #keys: '3[414724.0.292600027][414724.0.292600026][414724.0.292600028]'
+  Description: '澶у紶鐩堝埄姘村钩'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl
new file mode 100644
index 0000000..7481b6d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SplitCount.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SplitCount
+{
+  #keys: '3[414724.0.297907220][414724.0.297907219][414724.0.297907221]'
+  Description: '鎷嗚琛屾暟'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl
new file mode 100644
index 0000000..8121f1d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteReason.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SpliteReason
+{
+  #keys: '3[414724.0.297907210][414724.0.297907209][414724.0.297907211]'
+  Description: '鎷嗚鍘熷洜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl
new file mode 100644
index 0000000..2f9bdf5
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_SpliteRenmain.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SpliteRenmain
+{
+  #keys: '3[414724.0.297907230][414724.0.297907229][414724.0.297907231]'
+  Description: '鎷嗚鍓╀綑閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl
new file mode 100644
index 0000000..05bec5c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+  #keys: '3[414724.0.292600446][414724.0.292600445][414724.0.292600447]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl
new file mode 100644
index 0000000..2b8afbc
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Status_Splite.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Status_Splite
+{
+  #keys: '3[414724.0.297907200][414724.0.297907199][414724.0.297907201]'
+  Description: '鎷嗚鐘舵�侊細鏈媶琛岋紝宸叉媶琛�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..f48a4d3
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414724.0.292600456][414724.0.292600455][414724.0.292600457]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..9787651
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414724.0.292600466][414724.0.292600465][414724.0.292600467]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl
new file mode 100644
index 0000000..38c3a16
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/Attribute_Variance.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Variance
+{
+  #keys: '3[414724.0.292600476][414724.0.292600475][414724.0.292600477]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl b/_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl
new file mode 100644
index 0000000..7306bdb
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+DeclarativeTypeIndexRelation CalcChild
+{
+  #keys: '1[414724.0.314769003]'
+  Relation: Child
+  TypeIndex: PrimaryKey_ID
+  TypeIndexExpressions:
+  [
+    DeclarativeRelationTypeIndexExpression
+    {
+      #keys: '1[414724.0.314769004]'
+      TypeIndexExpression: 'this.ParentID()'
+    }
+  ]
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl
new file mode 100644
index 0000000..1672b03
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_BusinessType.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: BusinessType
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl
new file mode 100644
index 0000000..d08c252
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: CustomerPolicy
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl
new file mode 100644
index 0000000..6ef422d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_LastModify.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: LastModify
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl
new file mode 100644
index 0000000..9f5cca1
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderTag.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: OrderTag
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl
new file mode 100644
index 0000000..36871b8
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_OrderType.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: OrderType
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl
new file mode 100644
index 0000000..6571585
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_ProductGrade.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductGrade
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl
new file mode 100644
index 0000000..1da1a6c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: SegmentPriority
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl
new file mode 100644
index 0000000..6f747a5
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SheetProfitability.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: SheetProfitability
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl b/_Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl
new file mode 100644
index 0000000..f455959
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/TypeIndex_PrimaryKey_ID.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex PrimaryKey_ID
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl b/_Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl
new file mode 100644
index 0000000..5aef91a
--- /dev/null
+++ b/_Main/BL/Type_S_DT_CustomOrder/_ROOT_Type_S_DT_CustomOrder.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type S_DT_CustomOrder
+{
+  #keys: '5[414724.0.292616028][414724.0.292616026][0.0.0][414724.0.292616027][414724.0.292616029]'
+  BaseType: Object
+  Description: '棰勬媶琛岃鍗�'
+  StructuredName: 'S_DT_CustomOrders'
+}
diff --git a/_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl b/_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl
new file mode 100644
index 0000000..5e257e7
--- /dev/null
+++ b/_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute NewAttribute
+{
+  #keys: '3[414724.0.289871335][414724.0.289871334][414724.0.289871336]'
+  ValueType: BinaryValue
+}
diff --git a/_Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl b/_Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl
new file mode 100644
index 0000000..c18766d
--- /dev/null
+++ b/_Main/BL/Type_S_DT_OrderSpliteRow/_ROOT_Type_S_DT_OrderSpliteRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type S_DT_OrderSpliteRow
+{
+  #keys: '5[414724.0.289871270][414724.0.289871268][0.0.0][414724.0.289871269][414724.0.289871271]'
+  BaseType: Object
+  Description: '棰勬媶琛岃鍗�'
+  StructuredName: 'S_DT_OrderSpliteRows'
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl
new file mode 100644
index 0000000..9dae9a8
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ForecastDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ForecastDate
+{
+  #keys: '3[414724.0.291485648][414724.0.291485647][414724.0.291485649]'
+  Description: '闇�姹傛棩鏈�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl
new file mode 100644
index 0000000..b3734cd
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414724.0.291485698][414724.0.291485697][414724.0.291485699]'
+  Description: '涓婚敭ID'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl
new file mode 100644
index 0000000..f96559e
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_ID_S_DT_CustomOrder.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID_S_DT_CustomOrder
+{
+  #keys: '3[414724.0.320004537][414724.0.320004536][414724.0.320004538]'
+  Description: 'S_DT_CustomOrder琛↖D,澶栭敭鍏宠仈锛圤rderID鍦ㄨ鍗曡〃涓嶅敮涓�锛屾棤娉曚娇鐢級'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl
new file mode 100644
index 0000000..394500c
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_OrderID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderID
+{
+  #keys: '3[414724.0.291485665][414724.0.291485664][414724.0.291485666]'
+  Description: '璁㈠崟ID'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl
new file mode 100644
index 0000000..c24f8c6
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Qty.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Qty
+{
+  #keys: '3[414724.0.291485658][414724.0.291485657][414724.0.291485659]'
+  Description: '鏁伴噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl
new file mode 100644
index 0000000..e2c2bbf
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_SpliteReason.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SpliteReason
+{
+  #keys: '3[414724.0.320004525][414724.0.320004524][414724.0.320004526]'
+  Description: '鎷嗗垎鍘熷洜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl
new file mode 100644
index 0000000..7aac95f
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/Attribute_Status.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Status
+{
+  #keys: '3[414724.0.291485678][414724.0.291485677][414724.0.291485679]'
+  Description: '鐘舵�侊細null/1 鏈夋晥锛�0鍒犻櫎'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl b/_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl
new file mode 100644
index 0000000..84f8bc0
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  ISOValue: '1'
+  TargetAttribute: Status
+}
diff --git a/_Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl b/_Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl
new file mode 100644
index 0000000..3b5bd6f
--- /dev/null
+++ b/_Main/BL/Type_S_DT_SpliteStruct/_ROOT_Type_S_DT_SpliteStruct.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type S_DT_SpliteStruct
+{
+  #keys: '5[414724.0.291485609][414724.0.291485607][0.0.0][414724.0.291485608][414724.0.291485610]'
+  BaseType: Object
+  Description: '鎷嗗垎缁撴瀯'
+  StructuredName: 'S_DT_SpliteStructs'
+}
diff --git a/_Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl b/_Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl
new file mode 100644
index 0000000..26760bd
--- /dev/null
+++ b/_Main/BL/Type_S_FunctionClass/StaticMethod_SM_OrderToSpliteOrder.qbl
@@ -0,0 +1,207 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SM_OrderToSpliteOrder (
+  MacroPlan Owner,
+  CustomerOrder OrderInfo,
+  String SpliteReason
+) as owning JSON
+{
+  Description: '璁㈠崟杞负棰勬媶鍒嗚鍗曞嚱鏁�'
+  TextBody:
+  [*
+    /************************************璁㈠崟杞崲涓洪鎷嗗垎璁㈠崟******************************
+    *鍑芥暟鍚嶏細SM_OrderToSpliteOrder
+    *鍒涘缓浜猴細yunying
+    *鍒涘缓鏃堕棿锛�2023-10-26
+    *鎻忚堪锛氳鍗曟媶琛岋紝灏嗕紶鍏ョ殑璁㈠崟瀛樺叆棰勬媶鍒嗚〃锛屽苟鍦ㄨ鍗曡〃涓皢璇ヨ鍗曠Щ闄ゃ��
+          鍚屾椂鐢熸垚瀛愯鍗曪紙鑻_DT_SpliteStruct瀛樺湪鐩稿悓璁㈠崟鍙凤級
+    *-----------------------------
+    *鍙傛暟锛歄wner      MacroPlan
+    *     OrderInfo  瑕佽浆涓洪鎷嗗垎鐨勮鍗�
+    *     SpliteReason 鎷嗗垎鍘熷洜
+    *****************************************************************************/
+    // 鍒濆鍖栫粨鏋�
+    bStatus := false;
+    strMsg :="";
+    // 鑾峰彇鐗堟湰鍙�,杩欓噷鏄惁闇�瑕佸拰鐗堟湰鍙峰姛鑳藉鎺�
+    VCode :=H_FunctionClass::SM_GenerateID("VC");
+    
+    try{
+      if( not isnull( Owner))
+      {
+        // 鎷嗗垎琛屾暟
+        SplitCount := selectset( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1).Size();
+        // 鎷嗗垎鏁伴噺
+        SpliteQty:= sum( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty());
+        // 鍓╀綑鏁伴噺
+        UnSpliteQty:= OrderInfo.Quantity() - SpliteQty;
+        // 淇濇寔鎷嗗垎淇℃伅
+        SCustomOrder:=select( Owner,S_DT_CustomOrder,obj,obj.ID()=OrderInfo.ID());
+        if( isnull( SCustomOrder))
+        {
+          Owner.S_DT_CustomOrder(relnew,BusinessType:=OrderInfo.BusinessType()
+                                        ,CurrencyID:=OrderInfo.CurrencyID()
+                                        ,CustomerID:=OrderInfo.CustomerID()
+                                        ,CustomerName:=OrderInfo.CustomerName()
+                                        ,CustomerPolicy:=OrderInfo.CustomerPolicy()
+                                        ,DefaultUOMConversionFactor:=OrderInfo.DefaultUOMConversionFactor()
+                                        ,DemandUncertaintyPercentage:=OrderInfo.DemandUncertaintyPercentage()
+                                        ,DerivedPriorityName:=OrderInfo.DerivedPriorityName()
+                                        ,EndDate:=OrderInfo.EndDate()
+                                        ,ExpectedQuantity:=OrderInfo.ExpectedQuantity()
+                                        ,FulfilledQuantity:=OrderInfo.FulfilledQuantity()
+                                        ,HasPostponedSalesDemand:=OrderInfo.HasPostponedSalesDemand()
+                                        ,HasValidConversionFactor:=OrderInfo.HasValidConversionFactor()
+                                        ,ID:=OrderInfo.ID()
+                                        ,IsEligibleForNetting:=OrderInfo.IsEligibleForNetting()
+                                        ,IsExcludedFromFulfillmentKPI:=OrderInfo.IsExcludedFromFulfillmentKPI()
+                                        ,IsExcludedFromFulfillmentKPIUser:=OrderInfo.IsExcludedFromFulfillmentKPIUser()
+                                        ,IsFirmed:=OrderInfo.IsFirmed()
+                                        ,IsLeaf := OrderInfo.IsLeaf()
+                                        ,IsLocked:=OrderInfo.IsLocked()
+                                        ,IsAvailable := OrderInfo.IsAvailable()
+                                        ,IsManuallyConfigured:=OrderInfo.IsManuallyConfigured()
+                                        ,IsPostponed:=OrderInfo.IsPostponed()
+                                        ,IsSoftDeleted:=OrderInfo.IsSoftDeleted()
+                                        ,IsValidData:=OrderInfo.IsValidData()
+                                        ,LastModify:=OrderInfo.LastModify()
+                                        ,LastModifyTime:=OrderInfo.LastModifyTime()
+                                        ,OrderID:=OrderInfo.OrderID()
+                                        ,OrderLineID:=OrderInfo.OrderLineID()
+                                        ,OrderTag:=OrderInfo.OrderTag()
+                                        ,OrderTime:=OrderInfo.OrderTime()
+                                        ,OrderType:=OrderInfo.OrderType()
+                                        ,OutsideOfPlanningHorizonQuantity:=OrderInfo.OutsideOfPlanningHorizonQuantity()
+                                        ,PISPConversionFactor:=OrderInfo.PISPConversionFactor()
+                                        ,Price:=OrderInfo.Price()
+                                        ,PriceUoM:=OrderInfo.PriceUoM()
+                                        ,PriorityName:=OrderInfo.PriorityName()
+                                        ,ProductGrade:=OrderInfo.ProductGrade()
+                                        ,ProductID:=OrderInfo.ProductID()
+                                        ,Quantity:=OrderInfo.Quantity()
+                                        ,QuantityInDefaultUoM:=OrderInfo.QuantityInDefaultUoM()
+                                        ,QuantityPerDay:=OrderInfo.QuantityPerDay()
+                                        ,SalesDemandConversionFactor:=OrderInfo.SalesDemandConversionFactor()
+                                        ,SalesSegmentName:=OrderInfo.SalesSegmentName()
+                                        ,SanityCheckDataMostSevere:=OrderInfo.SanityCheckDataMostSevere()
+                                        ,SanityCheckDataMostSevereCount:=OrderInfo.SanityCheckDataMostSevereCount()
+                                        ,SanityCheckDataTotalViolationCount:=OrderInfo.SanityCheckDataTotalViolationCount()
+                                        ,SegmentPriority:=OrderInfo.SegmentPriority()
+                                        ,SheetProfitability:=OrderInfo.SheetProfitability()
+                                        ,StartDate:=OrderInfo.StartDate()
+                                        ,StockingPointID:=OrderInfo.StockingPointID()
+                                        ,UnitOfMeasureName:=OrderInfo.UnitOfMeasureName()
+                                        ,SplitCount := SplitCount
+                                        ,SpliteRenmain := UnSpliteQty);
+        }
+        else
+        {
+          SCustomOrder.SplitCount(SplitCount);
+          SCustomOrder.SpliteRenmain(UnSpliteQty);
+        }
+        OId:=0;
+        NewID:="";
+        SpliteOrderInfo :=null( S_DT_CustomOrder,constcontent );
+        // 鐢熸垚瀛愯鍗�
+        traverse( Owner,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID())
+        {
+          OId:=OId+1;
+          // 寰楀埌瀵瑰簲鐨勫凡鎷嗗垎璁㈠崟
+          SpliteOrderInfo := select( Owner,S_DT_CustomOrder,objSO,objSO.ID_SpliteStruct()=obj.ID());
+          // 鎷嗗垎琚垹闄わ紝灏嗗凡缁忎繚鎸佺殑鎷嗗垎璁㈠崟璺熼殢鍒犻櫎
+          if(obj.Status()=0)
+          {
+            if(not isnull( SpliteOrderInfo))
+            {
+              SpliteOrderInfo.Delete();
+            }
+            obj.Delete();  
+          }
+          else
+          {
+            // 淇濆瓨鏂板鐨勬媶鍒�
+            if(isnull( SpliteOrderInfo))
+            {
+              NewID:=OrderInfo.ID()+"_"+OId.AsQUILL()+"_"+DateTime::ActualGMTTime().Format( "hms");
+              Owner.S_DT_CustomOrder(relnew,BusinessType:=OrderInfo.BusinessType()
+                                          ,CurrencyID:=OrderInfo.CurrencyID()
+                                          ,CustomerID:=OrderInfo.CustomerID()
+                                          ,CustomerName:=OrderInfo.CustomerName()
+                                          ,CustomerPolicy:=OrderInfo.CustomerPolicy()
+                                          ,DefaultUOMConversionFactor:=OrderInfo.DefaultUOMConversionFactor()
+                                          ,DemandUncertaintyPercentage:=OrderInfo.DemandUncertaintyPercentage()
+                                          ,DerivedPriorityName:=OrderInfo.DerivedPriorityName()
+                                          ,EndDate:=obj.ForecastDate()
+                                          ,ExpectedQuantity:=OrderInfo.ExpectedQuantity()
+                                          ,FulfilledQuantity:=OrderInfo.FulfilledQuantity()
+                                          ,HasPostponedSalesDemand:=OrderInfo.HasPostponedSalesDemand()
+                                          ,HasValidConversionFactor:=OrderInfo.HasValidConversionFactor()
+                                          ,ID:=NewID
+                                          ,IsEligibleForNetting:=OrderInfo.IsEligibleForNetting()
+                                          ,IsExcludedFromFulfillmentKPI:=OrderInfo.IsExcludedFromFulfillmentKPI()
+                                          ,IsExcludedFromFulfillmentKPIUser:=OrderInfo.IsExcludedFromFulfillmentKPIUser()
+                                          ,IsFirmed:=OrderInfo.IsFirmed()
+                                          ,IsLeaf := OrderInfo.IsLeaf()
+                                          ,IsLocked:=OrderInfo.IsLocked()
+                                          ,IsAvailable := OrderInfo.IsAvailable()
+                                          ,IsManuallyConfigured:=OrderInfo.IsManuallyConfigured()
+                                          ,IsPostponed:=OrderInfo.IsPostponed()
+                                          ,IsSoftDeleted:=OrderInfo.IsSoftDeleted()
+                                          ,IsValidData:=OrderInfo.IsValidData()
+                                          ,LastModify:=OrderInfo.LastModify()
+                                          ,LastModifyTime:=OrderInfo.LastModifyTime()
+                                          ,OrderID:=OrderInfo.OrderID()
+                                          ,OrderLineID:=OrderInfo.OrderLineID()
+                                          ,OrderTag:=OrderInfo.OrderTag()
+                                          ,OrderTime:=OrderInfo.OrderTime()
+                                          ,OrderType:=OrderInfo.OrderType()
+                                          ,OutsideOfPlanningHorizonQuantity:=OrderInfo.OutsideOfPlanningHorizonQuantity()
+                                          ,PISPConversionFactor:=OrderInfo.PISPConversionFactor()
+                                          ,Price:=OrderInfo.Price()
+                                          ,PriceUoM:=OrderInfo.PriceUoM()
+                                          ,PriorityName:=OrderInfo.PriorityName()
+                                          ,ProductGrade:=OrderInfo.ProductGrade()
+                                          ,ProductID:=OrderInfo.ProductID()
+                                          ,Quantity:=obj.Qty()
+                                          ,QuantityInDefaultUoM:=OrderInfo.QuantityInDefaultUoM()
+                                          ,QuantityPerDay:=OrderInfo.QuantityPerDay()
+                                          ,SalesDemandConversionFactor:=OrderInfo.SalesDemandConversionFactor()
+                                          ,SalesSegmentName:=OrderInfo.SalesSegmentName()
+                                          ,SanityCheckDataMostSevere:=OrderInfo.SanityCheckDataMostSevere()
+                                          ,SanityCheckDataMostSevereCount:=OrderInfo.SanityCheckDataMostSevereCount()
+                                          ,SanityCheckDataTotalViolationCount:=OrderInfo.SanityCheckDataTotalViolationCount()
+                                          ,SegmentPriority:=OrderInfo.SegmentPriority()
+                                          ,SheetProfitability:=OrderInfo.SheetProfitability()
+                                          ,StartDate:=OrderInfo.StartDate()
+                                          ,StockingPointID:=OrderInfo.StockingPointID()
+                                          ,UnitOfMeasureName:=OrderInfo.UnitOfMeasureName()
+                                          ,ParentID := OrderInfo.ID()
+                                          ,SpliteReason := obj.SpliteReason()
+                                          ,ID_SpliteStruct := obj.ID());
+            }
+          }
+        }
+        // 鍒犻櫎璁㈠崟
+        //Order:=select( Owner,SalesDemand.astype( CustomerOrder ),obj,obj.ID()=OrderInfo.ID());
+        //OrderInfo.Delete();
+        bStatus:=true;
+        strMsg:="璁㈠崟锛�"+OrderInfo.OrderID()+"宸茶浆鍏ラ鎷嗗垎璁板綍锛屽彲浣跨敤杩樺師鍔熻兘鎭㈠锛�";
+      }
+      else
+      {
+        strMsg:="鍦烘櫙鍒濆鍖栧け璐ワ紝璇烽�夋嫨鍦烘櫙鍚庝娇鐢ㄨ鍔熻兘銆�";
+      }
+    }
+    onerror
+    {
+      strMsg :="璁剧疆涓洪鎷嗗垎琛屽け璐ワ紝璇疯仈绯荤郴缁熺鐞嗗憳锛�";
+      // 璁板綍閿欒鏃ュ織
+      Owner.H_ErrorLogs(relnew,EClassName := "S_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderToSpliteOrder",
+                         DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
+                         GeneralInformation := e.GeneralInformation());                
+    }
+    return JSON::Object().Add( "Status",bStatus)
+                         .Add( "VersionCode",VCode)
+                         .Add( "Msg",strMsg).Build();
+  *]
+}
diff --git a/_Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl b/_Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl
new file mode 100644
index 0000000..eb20166
--- /dev/null
+++ b/_Main/BL/Type_S_FunctionClass/_ROOT_Type_S_FunctionClass.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type S_FunctionClass
+{
+  #keys: '5[414724.0.288796771][414724.0.288796769][0.0.0][414724.0.288796770][414724.0.288796772]'
+  BaseType: Object
+  Description: '璁㈠崟鎷嗚鎿嶄綔绫�'
+  StructuredName: 'S_FunctionClasss'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def
new file mode 100644
index 0000000..6d09b78
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSDIP.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component ListSDIP #extension
+{
+  Children:
+  [
+    Component DataExtractorSDIP #extension
+    {
+      Properties:
+      [
+        FixedFilter: 'object.ProductInStockingPoint_MP().Product_MP().IsLeaf()and isnull( object.OriginalSalesDemand() )'
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def
new file mode 100644
index 0000000..3d7315d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSDIP.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component PanelSDIP #extension
+{
+  Children:
+  [
+    #child: ListSDIP
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def
index 14acdde..15028ad 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_PanelSalesDemands.def
@@ -4,5 +4,6 @@
   Children:
   [
     #child: PanelAllSalesDemands
+    #child: PanelSDIP
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
index 4d52db8..d68b0fe 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def
@@ -23,5 +23,27 @@
         Title: '淇敼瀹㈡埛璁㈠崟浼樺厛绾у洜瀛愪俊鎭�'
       ]
     }
+    Component MenuSpliteOrder
+    {
+      #keys: '[414724.0.284248096]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Description: '璁㈠崟鎷嗚'
+        Image: 'ARROW_FORK'
+        Taborder: 13
+        Title: '鎷嗚'
+      ]
+    }
+    Component Menu189
+    {
+      #keys: '[414724.0.314997570]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Separator: true
+        Taborder: 12
+      ]
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def
new file mode 100644
index 0000000..3274d3e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuSpliteOrder_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListSalesDemands
+Response OnClick (
+  SalesDemandBase selection
+) id:Response_ListSalesDemands_MenuSpliteOrder_OnClick
+{
+  #keys: '[414724.0.284211940]'
+  CanBindMultiple: false
+  DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick
+  Initiator: 'MenuSpliteOrder'
+  QuillAction
+  {
+    Body:
+    [*
+      data := selection.astype( CustomerOrder );
+      frmOrderSplite := construct( FrmCustomOrderSpliteRow );
+      frmOrderSplite.dh_Paramer_FCOS().Data( data);
+      frmOrderSplite.ShowModal();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def
new file mode 100644
index 0000000..48e7fae
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_Panel700.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+Component Panel700
+{
+  #keys: '[414724.0.286088539]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btn_OK_FCOS
+    {
+      #keys: '[414724.0.286088604]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        ButtonSize: 'compact'
+        Image: 'CHECKS'
+        Label: '纭畾'
+        Taborder: 0
+      ]
+    }
+    Component btn_Cancel_FCOS
+    {
+      #keys: '[414724.0.286088615]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        ButtonSize: 'compact'
+        Image: 'NAVIGATE_CROSS_ORANGE'
+        Label: '鍙栨秷'
+        Taborder: 1
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229\0431.def"
new file mode 100644
index 0000000..f67ee63
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listActionBarPage229\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage229 id:listActionBarPage229_1
+{
+  #keys: '[414724.0.290316538]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950\0431.def"
new file mode 100644
index 0000000..434b4de
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950\0431.def"
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component listContextMenu950 id:listContextMenu950_1
+{
+  #keys: '[414724.0.290316540]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component m_delete_list_SD
+    {
+      #keys: '[414724.0.312760935]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Description: '鍒犻櫎-鎷嗗垎鏄庣粏琛�'
+        Image: 'GARBAGE'
+        Taborder: 3
+        Title: '鍒犻櫎'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails\043136.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails\043136.def"
new file mode 100644
index 0000000..5d0dd72
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_list_SpliteDetails\043136.def"
@@ -0,0 +1,61 @@
+Quintiq file version 2.0
+Component list_SpliteDetails id:list_SpliteDetails_136
+{
+  #keys: '[414724.0.290316536]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component de_splisteDetailsFCOS
+    {
+      #keys: '[414724.0.290316537]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'S_DT_SpliteStruct'
+      ]
+    }
+    #child: listActionBarPage229_1
+    Component DataSetLevel583
+    {
+      #keys: '[414724.0.290316539]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenu950_1
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDate","title":"闇�姹傛棩鏈�","subtotals":"","tooltip":"","width":10,"display":"shown","editable":false,"attribute":"ForecastDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"鏁伴噺","subtotals":"","tooltip":"","width":8,"display":"shown","editable":true,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"鎷嗗垎鍘熷洜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
+        ContextMenu: 'listContextMenu950'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '鎷嗗垎鏄庣粏'
+    MinimumRows: 6
+    Taborder: 1
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_list_SpliteDetails_136_WebMenu_OnClick
+    {
+      #keys: '[414724.0.312731020]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[593.0.13413230]'
+          Binding: 'list_SpliteDetails.Selection()'
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def
new file mode 100644
index 0000000..9f635c7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_OperateBtns_FCOS.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component pl_OperateBtns_FCOS
+{
+  #keys: '[414724.0.286058675]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: Panel700
+  ]
+  Properties:
+  [
+    Border: true
+    FixedSize: true
+    Taborder: 6
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def
new file mode 100644
index 0000000..a59ba5b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_function_FCOS.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component pl_function_FCOS
+{
+  #keys: '[414724.0.285282557]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btn_add_FCOS
+    {
+      #keys: '[414724.0.290316633]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        ButtonSize: 'compact'
+        Image: 'LINK_ADD'
+        Label: '棰勬媶琛�'
+        Taborder: 1
+        Visible: false
+      ]
+    }
+    Component lb_OrderID_FCOS id:lb_OrderID_FCOS_652
+    {
+      #keys: '[414724.0.290316653]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Description: '璁㈠崟ID'
+        Label: '璁㈠崟鍙凤細'
+        Taborder: 0
+        Text: '2021564445'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Border: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def
new file mode 100644
index 0000000..8537261
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_spliteDetails.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component pl_spliteDetails
+{
+  #keys: '[414724.0.294615998]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: list_SpliteDetails_136
+    Component Label130
+    {
+      #keys: '[414724.0.290316544]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鎷嗚鏄庣粏锛�'
+        NumberOfColumns: 0
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 5
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def
new file mode 100644
index 0000000..ed01ff6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_pl_splite_info.def
@@ -0,0 +1,50 @@
+Quintiq file version 2.0
+Component pl_splite_info
+{
+  #keys: '[414724.0.289968198]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ds_ForcastDate_FCOS id:ds_ForcastDate_FCOS_675
+    {
+      #keys: '[414724.0.289968265]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        Label: '闇�姹傛椂闂达細'
+        Taborder: 0
+      ]
+    }
+    Component np_Qty_FCOS id:np_Qty_FCOS_656
+    {
+      #keys: '[414724.0.289968285]'
+      BaseType: 'WebNumberPicker'
+      Properties:
+      [
+        Label: '鏁伴噺锛�'
+        Min: '0'
+        PlaceHolder: '鏁伴噺涓嶅ぇ浜庤鍗曢噸閲�'
+        Step: 200
+        Taborder: 1
+      ]
+    }
+    Component btn_splite_add
+    {
+      #keys: '[414724.0.289968313]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        ButtonSize: 'compact'
+        Image: 'DOWN_PLUS'
+        Label: '鎷�'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def
new file mode 100644
index 0000000..a9de0e2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_Cancel_FCOS_OnClick.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+#parent: Panel700/btn_Cancel_FCOS
+Response OnClick () id:Response_Panel700_btn_Cancel_FCOS_OnClick
+{
+  #keys: '[414724.0.294294721]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      // 鎿嶄綔鎭㈠锛氬垹闄ゆ柊澧炵殑鎷嗗垎鎿嶄綔锛岃繕鍘熷垹闄ょ殑鎷嗗垎鎿嶄綔
+      OrderInfo:=dh_Paramer_FCOS.Data();
+      if( not isnull( OrderInfo))
+      {
+        SOrder:=null( S_DT_CustomOrder,constcontent );
+        // 寰楀埌鎵�鏈夋媶鍒嗘搷浣滆褰�
+        traverse( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder() = OrderInfo.ID())
+        {
+          SOrder:=select( MacroPlan,S_DT_CustomOrder,objSO,objSO.ID_SpliteStruct() = obj.ID());
+          // 鏃犲搴旂殑鎷嗗垎璁㈠崟锛岃涓烘柊澧炵殑鎿嶄綔锛岃繘琛岀Щ闄�
+          if( isnull( SOrder))
+          {
+              obj.Delete();
+          }
+          else
+          {
+            // 濡傛灉鐘舵�佷负鍒犻櫎鐘舵�侊紝鍒欐仮澶嶅垹闄�
+            if( obj.Status()=0)
+            {
+              obj.Status(1);
+            }
+          }
+        }  
+      }
+      
+      FrmCustomOrderSpliteRow.Close();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def
new file mode 100644
index 0000000..7106975
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_Panel700_btn_OK_FCOS_OnClick.def
@@ -0,0 +1,38 @@
+Quintiq file version 2.0
+#parent: Panel700/btn_OK_FCOS
+Response OnClick () id:Response_Panel700_btn_OK_FCOS_OnClick
+{
+  #keys: '[414724.0.294747709]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      // 浠庤鍗曡繘鍏ユ媶琛�
+      if( not isnull( dh_Paramer_FCOS.Data()))
+      {
+        // 灏嗚鍗曠Щ闄ゅ苟娣诲姞鍒伴鎷嗚璁㈠崟涓�
+        JResult := S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,dh_Paramer_FCOS.Data(),ef_SpliteReason_FCOS.Text());
+        if( JResult.Get( "Status").GetBoolean())
+        {
+          // 鐢熸垚鎷嗚璁㈠崟
+          FrmCustomOrderSpliteRow.Close();
+          if( JResult.Get( "Msg").GetString().Length()>0)
+          {
+            WebMessageBox::Information(JResult.Get( "Msg").GetString());
+          }
+        }
+        else
+        {
+          WebMessageBox::Warning(JResult.Get( "Msg").GetString());
+        }
+      }
+      else
+      {
+        // 鐢熸垚鎷嗚璁㈠崟  
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def
new file mode 100644
index 0000000..adb671f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_FCOS_OnDataChanged.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: dh_Paramer_FCOS
+Response OnDataChanged () id:Response_FrmCustomOrderSpliteRow_dh_Paramer_FCOS_OnDataChanged
+{
+  #keys: '[414724.0.285614685]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.lb_OrderID_FCOS().Text(this.Data().OrderID());
+      Form.lb_CustomName_FCOS().Text(this.Data().CustomerName());
+      Form.lb_OrderRowNum_FCOS().Text(this.Data().OrderLineID());
+      Form.ds_ForcastDate_FCOS().Date(this.Data().EndDate());
+      Form.de_splisteDetailsFCOS().FixedFilter( "object.ID_S_DT_CustomOrder() = " + this.Data().ID().AsQUILL() + "and object.Status()=1");
+      HQty:=sum( MacroPlan,S_DT_SpliteStruct,Obj,Obj.ID_S_DT_CustomOrder()=this.Data().ID() and Obj.Status()=1,Obj.Qty());
+      Form.np_Qty_FCOS().Max(this.Data().Quantity()-HQty);
+      Form.np_Qty_FCOS().Number(this.Data().Quantity()-HQty);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def
new file mode 100644
index 0000000..613258e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: dh_Paramer_SCustomOrder_FCOS
+Response OnDataChanged () id:Response_FrmCustomOrderSpliteRow_dh_Paramer_SCustomOrder_FCOS_OnDataChanged
+{
+  #keys: '[414724.0.303295647]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      Form.lb_OrderID_FCOS().Text(this.Data().OrderID());
+      Form.lb_CustomName_FCOS().Text(this.Data().CustomerName());
+      Form.lb_OrderRowNum_FCOS().Text(this.Data().OrderLineID());
+      //Form.np_Qty_FCOS().Max(this.Data().Quantity());
+      //Form.np_Qty_FCOS().Number(this.Data().Quantity());
+      Form.ds_ForcastDate_FCOS().Date(this.Data().EndDate());
+      Form.de_splisteDetailsFCOS().FixedFilter( "object.OrderID() = " + this.Data().OrderID().AsQUILL());
+      HQty:=sum( MacroPlan,S_DT_SpliteStruct,Obj,Obj.OrderID()=this.Data().OrderID(),Obj.Qty());
+      Form.np_Qty_FCOS().Max(this.Data().Quantity()-HQty);
+      Form.np_Qty_FCOS().Number(this.Data().Quantity()-HQty);
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def
new file mode 100644
index 0000000..c28bb18
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_list_SpliteDetails_136_m_delete_list_SD_OnClick.def
@@ -0,0 +1,37 @@
+Quintiq file version 2.0
+#parent: list_SpliteDetails_136
+Response OnClick (
+  S_DT_SpliteStruct selection
+) id:Response_list_SpliteDetails_136_m_delete_list_SD_OnClick
+{
+  #keys: '[414724.0.314884983]'
+  CanBindMultiple: false
+  DefinitionID => /list_SpliteDetails_136/Responsedef_list_SpliteDetails_136_WebMenu_OnClick
+  Initiator: 'm_delete_list_SD'
+  Precondition:
+  [*
+    return not isnull( selection);
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      OrderInfo:=dh_Paramer_FCOS.Data();
+      if( isnull( OrderInfo))
+      {
+        WebMessageBox::Warning( "鎿嶄綔澶辫触锛岃閲嶆柊閫夋嫨璁㈠崟杩涜鎷嗚锛�");  
+      }
+      else
+      {
+        selection.Status(0);
+        Qty_Rows:=sum( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty());
+        Qty_Max:=0.0;
+        Qty_Max:= OrderInfo.Quantity()-Qty_Rows;      
+      
+        np_Qty_FCOS.Max(Qty_Max);
+        np_Qty_FCOS.Number(Qty_Max);
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def
new file mode 100644
index 0000000..7a88594
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_function_FCOS_btn_add_FCOS_OnClick.def
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: pl_function_FCOS/btn_add_FCOS
+Response OnClick () id:Response_FrmCustomOrderSpliteRow_btn_add_FCOS_OnClick
+{
+  #keys: '[414724.0.290316632]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( dh_Paramer_FCOS.Data());
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      JResult := S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,dh_Paramer_FCOS.Data(),ef_SpliteReason_FCOS.Text());
+      if( JResult.Get( "Status").GetBoolean())
+      {
+        FrmCustomOrderSpliteRow.Close();
+        if( JResult.Get( "Msg").GetString().Length()>0)
+        {
+         WebMessageBox::Information(JResult.Get( "Msg").GetString());
+        }
+      }
+      else
+      {
+        WebMessageBox::Warning(JResult.Get( "Msg").GetString());
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def
new file mode 100644
index 0000000..906fd8b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_pl_splite_info_btn_splite_add_OnClick.def
@@ -0,0 +1,51 @@
+Quintiq file version 2.0
+#parent: pl_splite_info/btn_splite_add
+Response OnClick () id:Response_pl_splite_info_btn_splite_add_OnClick
+{
+  #keys: '[414724.0.292801656]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( dh_Paramer_FCOS.Data());
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      // 鎷嗗垎涓�涓鍗�
+      SQty:=[Number]np_Qty_FCOS.Number().Round( 0);
+      if(SQty>0)
+      {
+        OrderInfo :=dh_Paramer_FCOS.Data();
+        MacroPlan.S_DT_SpliteStruct(relnew,ID := H_FunctionClass::SM_GenerateID( "OSR")
+                                            ,OrderID := OrderInfo.OrderID()
+                                            ,ID_S_DT_CustomOrder := OrderInfo.ID()
+                                            ,SpliteReason := ef_SpliteReason_FCOS.Text()
+                                            ,Qty :=SQty
+                                            ,Status := 1
+                                            ,ForecastDate:= ds_ForcastDate_FCOS.Date());
+        // 璁$畻鍓╀綑鎷嗗垎
+        LQty:= OrderInfo.Quantity()-sum(MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=OrderInfo.ID() and obj.Status()=1,obj.Qty()) ;
+        np_Qty_FCOS.Max(LQty);
+        np_Qty_FCOS.Number(LQty);
+        if( np_Qty_FCOS.Max()=0)
+        {
+         WebMessageBox::Information( "璁㈠崟宸茬粡鍏ㄩ儴鎷嗗畬锛�");  
+        }
+      }
+      else
+      {
+        if( np_Qty_FCOS.Max()=0)
+        {
+         WebMessageBox::Information( "璁㈠崟宸茬粡鍏ㄩ儴鎷嗗畬锛�");  
+        }
+        else
+        {
+          WebMessageBox::Information( "璇疯皟鏁� 璁㈠崟鏁伴噺");  
+        }
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def
new file mode 100644
index 0000000..770a0fc
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/_ROOT_Component_FrmCustomOrderSpliteRow.def
@@ -0,0 +1,102 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FrmCustomOrderSpliteRow
+{
+  #keys: '[414724.0.285177352]'
+  Accessibility: 'Extensible'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pl_function_FCOS
+    Component lb_OrderRowNum_FCOS
+    {
+      #keys: '[414724.0.285570507]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '璁㈠崟琛屽彿锛�'
+        Taborder: 1
+        Text: '1.1'
+      ]
+    }
+    Component lb_CustomName_FCOS
+    {
+      #keys: '[414724.0.284201013]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '瀹㈡埛鍚嶇О锛�'
+        Taborder: 2
+        Text: '--灏忕背'
+      ]
+    }
+    Component ef_SpliteReason_FCOS
+    {
+      #keys: '[414724.0.285687770]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        Label: '鎷嗚鍘熷洜锛�'
+        MaxRows: 3
+        Multiline: true
+        PlaceHolder: '璇峰綍鍏�'
+        Taborder: 3
+      ]
+    }
+    Component dh_Paramer_FCOS
+    {
+      #keys: '[414724.0.285920379]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'CustomerOrder'
+      Properties:
+      [
+        Taborder: 8
+      ]
+    }
+    #child: pl_OperateBtns_FCOS
+    #child: pl_splite_info
+    Component dh_splitestruct
+    {
+      #keys: '[414724.0.294099522]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[S_DT_SpliteStruct]*'
+      Children:
+      [
+        Component DataExtractor645
+        {
+          #keys: '[414724.0.293956350]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'MacroPlan'
+            Source: 'MacroPlan'
+            Taborder: 0
+            Transformation: 'S_DT_SpliteStruct'
+          ]
+        }
+      ]
+      Properties:
+      [
+        Taborder: 7
+      ]
+    }
+    #child: pl_spliteDetails
+    Component dh_Paramer_SCustomOrder_FCOS
+    {
+      #keys: '[414724.0.303602526]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'S_DT_CustomOrder'
+      Properties:
+      [
+        Taborder: 9
+      ]
+    }
+  ]
+  Properties:
+  [
+    Description: '璁㈠崟鎷嗚琛ㄥ崟'
+    Image: 'ARROW_FORK'
+    Title: '璁㈠崟鎷嗚'
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def
new file mode 100644
index 0000000..1b691ad
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel651.def
@@ -0,0 +1,44 @@
+Quintiq file version 2.0
+Component Panel651
+{
+  #keys: '[414724.0.302810875]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btn_delete_FCOV id:btn_delete_FCOV_902
+    {
+      #keys: '[414724.0.302810937]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'GARBAGE'
+        Label: '鍒犻櫎'
+        Taborder: 0
+      ]
+      ResponseDefinitions:
+      [
+        ResponseDefinition OnClick id:Responsedef_Panel651_btn_delete_FCOV_902_OnClick
+        {
+          #keys: '[414724.0.303035901]'
+          IsInherited: false
+          ResponseType: 'OnClick'
+          Arguments:
+          [
+            ResponseDefinitionArgument selection
+            {
+              #keys: '[575.0.41049375]'
+              Binding: 'lisplitedetails.Selection()'
+            }
+          ]
+        }
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def
new file mode 100644
index 0000000..79251c2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_Panel713.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component Panel713
+{
+  #keys: '[414724.0.302735923]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: lisplitedetails_450
+    #child: Panel651
+    Component Label963
+    {
+      #keys: '[414724.0.302811066]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鎷嗚鏄庣粏锛�'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 1
+    Visible: false
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails\043450.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails\043450.def"
new file mode 100644
index 0000000..97938b2
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_lisplitedetails\043450.def"
@@ -0,0 +1,42 @@
+Quintiq file version 2.0
+Component lisplitedetails id:lisplitedetails_450
+{
+  #keys: '[414724.0.302735971]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component de_liSpliteDetails
+    {
+      #keys: '[414724.0.302735972]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'S_DT_SpliteStruct'
+      ]
+    }
+    #child: listActionBarPage243_1
+    Component DataSetLevel404
+    {
+      #keys: '[414724.0.302735974]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenu199_1
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"鍘熻鍗旾D","subtotals":"","tooltip":"","width":10,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastDate","title":"闇�姹傛棩鏈�","subtotals":"","tooltip":"","width":8,"display":"shown","editable":false,"attribute":"ForecastDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"鐘舵��","subtotals":"","tooltip":"","width":6,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SDateTime","title":"鍙戦�佽嚦ERP鏃堕棿","subtotals":"","tooltip":"","width":8,"display":"shown","editable":false,"attribute":"SDateTime"}}]'
+        ContextMenu: 'listContextMenu199'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    MinimumColumns: 5
+    Taborder: 2
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243\0431.def"
new file mode 100644
index 0000000..abde5ea
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage243\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage243 id:listActionBarPage243_1
+{
+  #keys: '[414724.0.302735973]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978\0431.def"
new file mode 100644
index 0000000..2251089
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listActionBarPage978\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPage978 id:listActionBarPage978_1
+{
+  #keys: '[414724.0.300320629]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199\0431.def"
new file mode 100644
index 0000000..48d83e2
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu199\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenu199 id:listContextMenu199_1
+{
+  #keys: '[414724.0.302735975]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655\0431.def"
new file mode 100644
index 0000000..89f84d3
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listContextMenu655\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenu655 id:listContextMenu655_1
+{
+  #keys: '[414724.0.300320631]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders\043635.def" "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders\043635.def"
new file mode 100644
index 0000000..d533832
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_listOrders\043635.def"
@@ -0,0 +1,54 @@
+Quintiq file version 2.0
+Component listOrders id:listOrders_635
+{
+  #keys: '[414724.0.300320627]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractor726
+    {
+      #keys: '[414724.0.300320628]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        FixedFilter: 'object.ParentID()=""'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'S_DT_CustomOrder'
+      ]
+    }
+    #child: listActionBarPage978_1
+    Component DataSetLevel439
+    {
+      #keys: '[414724.0.300320630]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenu655_1
+        Component DataSetLevel422
+        {
+          #keys: '[414724.0.315209998]'
+          BaseType: 'WebDataSetLevel'
+          Properties:
+          [
+            Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"閿�鍞儴闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"闇�姹傛棩鏈�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"鍗曚綅","subtotals":"","tooltip":"","width":2,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SplitCount","title":"宸叉媶琛屾暟","subtotals":"","tooltip":"","width":3,"display":"shown","editable":false,"attribute":"SplitCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteRenmain","title":"鍓╀綑鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteRenmain"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"鎷嗚鍘熷洜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
+            RelationFromParent: 'Parent'
+            RelationRepeating: 'Parent'
+            Taborder: 1
+          ]
+        }
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"閿�鍞儴闂�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"搴撳瓨鐐�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"浜у搧","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"闇�姹傛棩鏈�","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"鍗曚綅","subtotals":"","tooltip":"","width":2,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SplitCount","title":"宸叉媶琛屾暟","subtotals":"","tooltip":"","width":3,"display":"shown","editable":false,"attribute":"SplitCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteRenmain","title":"鍓╀綑鏁伴噺","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteRenmain"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SpliteReason","title":"鎷嗚鍘熷洜","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SpliteReason"}}]'
+        ContextMenu: 'listContextMenu655'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def
new file mode 100644
index 0000000..60d10c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_DataView.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component pl_DataView
+{
+  #keys: '[414724.0.300320579]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: listOrders_635
+    #child: Panel713
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def
new file mode 100644
index 0000000..9ebb689
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Component_pl_Function_FCOV.def
@@ -0,0 +1,114 @@
+Quintiq file version 2.0
+Component pl_Function_FCOV
+{
+  #keys: '[414724.0.295131518]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component btn_sendERP_FCOV
+    {
+      #keys: '[414724.0.295131536]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'EXPORT1'
+        Label: '鍙戦�佽嚦ERP'
+        Taborder: 0
+      ]
+    }
+    Component btn_huanyuan_FCOV
+    {
+      #keys: '[414724.0.295131559]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'ARROW_INTO'
+        Label: '杩樺師'
+        Taborder: 1
+      ]
+      ResponseDefinitions:
+      [
+        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
+        {
+          #keys: '[414724.0.303365423]'
+          IsInherited: false
+          ResponseType: 'OnClick'
+          Arguments:
+          [
+            ResponseDefinitionArgument selection
+            {
+              #keys: '[575.0.65737681]'
+              Binding: 'listOrders.Selection()'
+            }
+          ]
+        }
+      ]
+    }
+    Component btn_splitRow_FCOV
+    {
+      #keys: '[414724.0.295131572]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'GRAPH_FORK'
+        Label: '鎷嗚'
+        Taborder: 2
+      ]
+      ResponseDefinitions:
+      [
+        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
+        {
+          #keys: '[414724.0.303295769]'
+          IsInherited: false
+          ResponseType: 'OnClick'
+          Arguments:
+          [
+            ResponseDefinitionArgument selection
+            {
+              #keys: '[575.0.74590107]'
+              Binding: 'listOrders.Selection()'
+            }
+          ]
+        }
+      ]
+    }
+    Component btn_deleteOrder_FCOV
+    {
+      #keys: '[414724.0.323807222]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        ButtonSize: 'compact'
+        Description: '鍒犻櫎瀛愯鍗曟寜閽�'
+        Image: 'GARBAGE'
+        Label: '鍒犻櫎'
+        Taborder: 3
+      ]
+      ResponseDefinitions:
+      [
+        ResponseDefinition OnClick id:Responsedef_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
+        {
+          #keys: '[414724.0.323889224]'
+          IsInherited: false
+          ResponseType: 'OnClick'
+          Arguments:
+          [
+            ResponseDefinitionArgument selection
+            {
+              #keys: '[607.0.62176891]'
+              Binding: 'listOrders.Selection()'
+            }
+          ]
+        }
+      ]
+    }
+  ]
+  Properties:
+  [
+    Alignment: 'trailing'
+    Border: true
+    FixedSize: true
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def
new file mode 100644
index 0000000..9600271
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_Panel651_btn_delete_FCOV_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: Panel651/btn_delete_FCOV_902
+Response OnClick (
+  S_DT_SpliteStruct selection
+) id:Response_Panel651_btn_delete_FCOV_OnClick
+{
+  #keys: '[414724.0.302931548]'
+  CanBindMultiple: false
+  DefinitionID => /Panel651/Responsedef_Panel651_btn_delete_FCOV_902_OnClick
+  Precondition:
+  [*
+    return not isnull( selection);
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      selection.Delete();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def
new file mode 100644
index 0000000..c1b8878
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_listOrders_635_OnSelectionChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: listOrders_635
+Response OnSelectionChanged (
+  S_DT_CustomOrder selection
+) id:Response_listOrders_635_OnSelectionChanged
+{
+  #keys: '[414724.0.302697813]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      Form.de_liSpliteDetails().FixedFilter( "object.OrderID() = " + selection.OrderID().AsQUILL());
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def
new file mode 100644
index 0000000..db3389b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick.def
@@ -0,0 +1,36 @@
+Quintiq file version 2.0
+#parent: pl_Function_FCOV/btn_deleteOrder_FCOV
+Response OnClick (
+  S_DT_CustomOrder selection
+) id:Response_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
+{
+  #keys: '[414724.0.321284302]'
+  CanBindMultiple: false
+  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_deleteOrder_FCOV_OnClick
+  Precondition:
+  [*
+    return not isnull( selection) and selection.ParentID()<>"";
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      Num:=WebMessageBox::Question("纭鍒犻櫎锛�",true);
+      if( Num=0)
+      {
+        OrderInfo:=select( MacroPlan,SalesDemand.astype( CustomerOrder ),obj,obj.ID()=selection.ParentID());
+        SSI := select(MacroPlan,S_DT_SpliteStruct,obj,obj.ID() = selection.ID_SpliteStruct());
+        if( not isnull( SSI))
+        {
+          SSI.Status(0);
+        }
+        S_FunctionClass::SM_OrderToSpliteOrder( MacroPlan,OrderInfo,"");
+        if( not isnull( selection))
+        {
+          selection.Delete();
+        }
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def
new file mode 100644
index 0000000..73cacfd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+#parent: pl_Function_FCOV/btn_huanyuan_FCOV
+Response OnClick (
+  S_DT_CustomOrder selection
+) id:Response_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
+{
+  #keys: '[414724.0.303365693]'
+  CanBindMultiple: false
+  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_huanyuan_FCOV_OnClick
+  Precondition:
+  [*
+    return not isnull( selection) and selection.ParentID()="";
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      Num:=WebMessageBox::Question(  "纭瑕佽繕鍘熸媶鍒嗚鍗曞悧锛�
+                                     
+                                     娉ㄦ剰锛氳繕鍘熷悗宸叉媶鍒嗙粨鏋滃皢琚竻绌�",true);
+      if(Num=0)
+      {
+        // 娓呯悊鎷嗗垎璁板綍琛�
+        traverse( MacroPlan,S_DT_SpliteStruct,obj,obj.ID_S_DT_CustomOrder()=selection.ID())
+        {
+          obj.Delete();  
+        }
+        // 娓呯悊鎷嗗垎璁㈠崟
+        traverse( MacroPlan,S_DT_CustomOrder,obj,obj.ParentID()=selection.ID())
+        {
+            obj.Delete();
+        }
+        // 娓呯悊璁㈠崟
+        selection.Delete();
+        WebMessageBox::Information( "璁㈠崟宸茬粡杩樺師");
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def
new file mode 100644
index 0000000..07696c8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pl_Function_FCOV/btn_sendERP_FCOV
+Response OnClick () id:Response_pl_Function_FCOV_btn_sendERP_FCOV_OnClick
+{
+  #keys: '[414724.0.295170066]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      WebMessageBox::Information( "鍔熻兘灏氭湭瀹炵幇锛屼簨浠舵墽琛屾垚鍔燂紒");
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def
new file mode 100644
index 0000000..1f1e7af
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pl_Function_FCOV/btn_splitRow_FCOV
+Response OnClick (
+  S_DT_CustomOrder selection
+) id:Response_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
+{
+  #keys: '[414724.0.303198250]'
+  CanBindMultiple: false
+  DefinitionID => /pl_Function_FCOV/Responsedef_pl_Function_FCOV_btn_splitRow_FCOV_OnClick
+  Precondition:
+  [*
+    return not isnull( selection) and selection.ParentID()="";
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      frmOrderSplite := construct( FrmCustomOrderSpliteRow );
+      orderInfo:= select( MacroPlan,SalesDemand.astype(CustomerOrder ),obj,obj.ID()=selection.ID());
+      frmOrderSplite.dh_Paramer_FCOS().Data(orderInfo);
+      frmOrderSplite.ShowModal();
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def
new file mode 100644
index 0000000..466ad03
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderView/_ROOT_Component_FrmCustomOrderView.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FrmCustomOrderView
+{
+  #keys: '[414724.0.294851286]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: pl_Function_FCOV
+    #child: pl_DataView
+  ]
+  Properties:
+  [
+    Description: '棰勬媶琛岀獥浣�'
+    Image: 'ARROW_FORK'
+    Title: '鎷嗚璁㈠崟'
+  ]
+}

--
Gitblit v1.9.3