From 955a1efd53d69b029f370140afba72bf6df992a7 Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期一, 30 十月 2023 15:24:22 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lhj
---
_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl | 12
_Main/BL/Type_GlobalParameters/Attribute_Address.qbl | 8
_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl | 5
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Response_dh_Paramer_SCustomOrder_FCOS_OnDataChanged.def | 25
_Main/UI/MacroPlannerWebApp/Views/全局参数.vw | 351 ++++++
_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/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl | 23
_Main/BL/Type_S_DT_CustomOrder/Attribute_EndDate.qbl | 7
_Main/BL/Type_S_DT_OrderSpliteRow/Attribute_NewAttribute.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def | 31
_Main/BL/Type_S_DT_CustomOrder/Attribute_QuantityInDefaultUoM.qbl | 7
_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl | 10
_Main/BL/Type_S_DT_CustomOrder/Attribute_ExpectedQuantity.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def | 16
_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/Attribute_SalesDemandConversionFactor.qbl | 7
_Main/BL/Type_S_DT_SpliteStruct/DefaultValue_Status.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def | 15
_Main/BL/Type_S_DT_CustomOrder/Attribute_PriorityName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlActions.def | 40
_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_GlobalParameters/Attribute_AttributeName.qbl | 8
_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_GlobalParameters/Attribute_AttributeValue.qbl | 8
_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/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp | 2
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnCancel_OnClick.def | 15
_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/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.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/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def | 18
_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/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def | 19
_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_GlobalParameters/Attribute_Port.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/Attribute_LastModifyTime.qbl | 8
_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl | 7
_Main/BL/Type_S_DT_CustomOrder/Attribute_SegmentPriority.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/DeclarativeTypeIndexRelation_CalcChild.qbl | 16
_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl | 10
_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/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def | 18
_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl | 16
_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/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_ListGlobalParameters.def | 59 +
_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl | 172 ++
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def | 19
_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_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl | 10
_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_SegmentPriority.qbl | 6
_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl | 8
_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_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def | 20
_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_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def | 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_MacroPlan/StaticMethod_DoASync#253.qbl | 54
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlContent.def | 83 +
_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_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def | 15
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl | 10
_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_Form367/Response_ListBusinessType_MenuNew_OnClick.def | 2
_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/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl | 10
_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/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def | 57
_Main/BL/Type_S_DT_CustomOrder/Attribute_CustomerID.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/Attribute_Quantity.qbl | 7
_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def | 18
_Main/BL/Type_S_DT_CustomOrder/Attribute_ID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FrmCustomOrderSpliteRow/Component_listContextMenu950#1.def | 25
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl | 8
_Main/BL/Type_S_DT_CustomOrder/DefaultValue_CustomerPolicy.qbl | 6
_Main/BL/Type_S_DT_CustomOrder/Attribute_SanityCheckDataMostSevereCount.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def | 17
_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
170 files changed, 3,357 insertions(+), 67 deletions(-)
diff --git a/_Main/BL/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl b/_Main/BL/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl
new file mode 100644
index 0000000..05afed6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation GlobalParameters_GlobalOTDTable_GlobalOTDTable_GlobalParameters
+{
+ #keys: '1[412960.0.369930029]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide GlobalOTDTable
+ {
+ #keys: '3[412960.0.369930031][412960.0.369930030][412960.0.369930032]'
+ Cardinality: '0to1'
+ ObjectDefinition: GlobalParameters
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide GlobalParameters
+ {
+ #keys: '3[412960.0.369930034][412960.0.369930033][412960.0.369930035]'
+ Cardinality: '1toN'
+ ObjectDefinition: GlobalOTDTable
+ OwningSide: 'Owned'
+ }
+}
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_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
index 12a5633..66ff081 100644
--- "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
@@ -101,14 +101,6 @@
Global_MappingOperationCost::SynchronizeMacroPlanData( this, macroPlan, executionUser, businessTypes, organcodelist );
}
- //if ( isDOI_DSI ) {
- // Global_MappingDOI_DSI::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_DOI_DSI" );
- //}
- //
- //if ( isCustomerGrade ) {
- // Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
- //}
-
if ( isStockingPoint_MP ) {
Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
}
diff --git a/_Main/BL/Type_GlobalParameters/Attribute_Address.qbl b/_Main/BL/Type_GlobalParameters/Attribute_Address.qbl
new file mode 100644
index 0000000..f2e1fe6
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/Attribute_Address.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Address
+{
+ #keys: '3[412960.0.369930086][412960.0.369930085][412960.0.369930087]'
+ Description: 'Api浣跨敤鐨勫湴鍧�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_GlobalParameters/Attribute_AttributeName.qbl b/_Main/BL/Type_GlobalParameters/Attribute_AttributeName.qbl
new file mode 100644
index 0000000..85f6698
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/Attribute_AttributeName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AttributeName
+{
+ #keys: '3[412960.0.369930046][412960.0.369930045][412960.0.369930047]'
+ Description: '鍙橀噺鍚嶇О'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_GlobalParameters/Attribute_AttributeValue.qbl b/_Main/BL/Type_GlobalParameters/Attribute_AttributeValue.qbl
new file mode 100644
index 0000000..378b5e3
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/Attribute_AttributeValue.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AttributeValue
+{
+ #keys: '3[412960.0.369930056][412960.0.369930055][412960.0.369930057]'
+ Description: '鍙橀噺鍊�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_GlobalParameters/Attribute_Port.qbl b/_Main/BL/Type_GlobalParameters/Attribute_Port.qbl
new file mode 100644
index 0000000..29658ab
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/Attribute_Port.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Port
+{
+ #keys: '3[412960.0.369930066][412960.0.369930065][412960.0.369930067]'
+ Description: 'Api浣跨敤鐨勭鍙�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl b/_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl
new file mode 100644
index 0000000..c1fe72b
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/Attribute_PostRequestBody.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PostRequestBody
+{
+ #keys: '3[412960.0.369930076][412960.0.369930075][412960.0.369930077]'
+ Description: 'Api浣跨敤鐨刾ost body'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl b/_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl
new file mode 100644
index 0000000..c10cd30
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/StaticMethod_TestForApiRequest.qbl
@@ -0,0 +1,172 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod TestForApiRequest (
+ GlobalOTDTable owner
+)
+{
+ TextBody:
+ [*
+ // Administrator Oct-26-2023 (created)
+ //info( "Sales Segment Finished, Start Get StockingPoint From Api" )
+ //bodynumber := "2";
+ //postrequestbody := JSON::Object()
+ // .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ // .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ // .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ // .Add( "ouZone", "OU_TMSH" )
+ // .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ // .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ // .Add( "dataType", "JSON" )
+ // .Add( "data", JSON::Object()
+ // .Add( "pageIndex", "1" ) ).Build();
+ //
+ //info( DateTime::Now().Format( "Y-M2-D2 H:m:s" ) );
+ //postrequestbodystring := postrequestbody.AsString();
+ //info( postrequestbodystring );
+ //
+ //parameter := select( owner, GlobalParameters, param, param.AttributeName() = "test" );
+ //body := parameter.PostRequestBody();
+ //address := parameter.Address();
+ //url := parameter.AttributeValue();
+ //port := [Number]parameter.Port();
+ //
+ //// for HTTPS requests:
+ //i := HTTPInterface::Create( address, port);
+ ////i := HTTPInterface::Create( address ,443);
+ //info( address, url, port, body );
+ //
+ //i.URL(url);
+ //i.SSL(false);
+ ////i.SSL(true);
+ ////i.SSLKeystore('MyKeystore'); // created in the Config Utility
+ //
+ //i.PostMethod(true); //it's a POST method
+ //
+ //i.Call(body); // Call's argument is for POST method's content.
+ //htmlresult := i.Result();
+ //info( htmlresult );
+ //
+ //htmlresponse := JSON::Parse( htmlresult );
+ //info( htmlresponse );
+
+ info( "Init StockingPoint For Api" )
+ existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
+ if( not isnull( existparameter ) ){
+ existparameter.Delete();
+ }
+ spparameter := owner.GlobalParameters( relnew );
+ spparameter.AttributeName( "StockingPoint" );
+ spparameter.AttributeValue( "/otdService/https/GetStockingPointsInfo" );
+ spparameter.Address( "api-uat-sgc.tianma.cn" );
+ spparameter.Port( "443" );
+ bodynumber := "2";
+ postrequestbody := JSON::Object()
+ .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ .Add( "ouZone", "OU_TMSH" )
+ .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ .Add( "dataType", "JSON" )
+ .Add( "data", JSON::Object()
+ .Add( "pageIndex", "1" ) ).Build();
+ postrequestbodystring := postrequestbody.AsString();
+ spparameter.PostRequestBody( postrequestbodystring );
+
+ info( "Init CurrencyInfo For Api" )
+ existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
+ if( not isnull( existparameter ) ){
+ existparameter.Delete();
+ }
+ ciparameter := owner.GlobalParameters( relnew );
+ ciparameter.AttributeName( "CurrencyInfo" );
+ ciparameter.AttributeValue( "/otdService/https/GetCurrenciesInfo" );
+ ciparameter.Address( "api-uat-sgc.tianma.cn" );
+ ciparameter.Port( "443" );
+ bodynumber := "1";
+ postrequestbody := JSON::Object()
+ .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ .Add( "ouZone", "OU_TMSH" )
+ .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ .Add( "dataType", "JSON" )
+ .Add( "data", JSON::Object()
+ .Add( "pageIndex", "1" ) ).Build();
+ postrequestbodystring := postrequestbody.AsString();
+ ciparameter.PostRequestBody( postrequestbodystring );
+
+ info( "Init CurrencyRates For Api" )
+ existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
+ if( not isnull( existparameter ) ){
+ existparameter.Delete();
+ }
+ crparameter := owner.GlobalParameters( relnew );
+ crparameter.AttributeName( "CurrencyRates" );
+ crparameter.AttributeValue( "/otdService/https/GetCurrencyRatesInfo" );
+ crparameter.Address( "api-uat-sgc.tianma.cn" );
+ crparameter.Port( "443" );
+ bodynumber := "5";
+ postrequestbody := JSON::Object()
+ .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ .Add( "ouZone", "OU_TMSH" )
+ .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ .Add( "dataType", "JSON" )
+ .Add( "data", JSON::Object()
+ .Add( "pageIndex", "1" ) ).Build();
+ postrequestbodystring := postrequestbody.AsString();
+ crparameter.PostRequestBody( postrequestbodystring );
+
+ info( "Init Lanes For Api" )
+ existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "Lanes" );
+ if( not isnull( existparameter ) ){
+ existparameter.Delete();
+ }
+ lparameter := owner.GlobalParameters( relnew );
+ lparameter.AttributeName( "Lanes" );
+ lparameter.AttributeValue( "/otdService/https/GetLanesInfo" );
+ lparameter.Address( "api-uat-sgc.tianma.cn" );
+ lparameter.Port( "443" );
+ bodynumber := "3";
+ postrequestbody := JSON::Object()
+ .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ .Add( "ouZone", "OU_TMSH" )
+ .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ .Add( "dataType", "JSON" )
+ .Add( "data", JSON::Object()
+ .Add( "pageIndex", "1" ) ).Build();
+ postrequestbodystring := postrequestbody.AsString();
+ lparameter.PostRequestBody( postrequestbodystring );
+
+ info( "Init LaneLegs For Api" )
+ existparameter := select( owner, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
+ if( not isnull( existparameter ) ){
+ existparameter.Delete();
+ }
+ llparameter := owner.GlobalParameters( relnew );
+ llparameter.AttributeName( "LaneLegs" );
+ llparameter.AttributeValue( "/otdService/https/GetLaneLegsInfo" );
+ llparameter.Address( "api-uat-sgc.tianma.cn" );
+ llparameter.Port( "443" );
+ bodynumber := "4";
+ postrequestbody := JSON::Object()
+ .Add( "serviceInterfaceCode", "ESBOTDH000" + bodynumber )
+ .Add( "fromSystemCode", "OTDH000" + bodynumber )
+ .Add( "toInterfaceCode", "QIDH000" + bodynumber )
+ .Add( "ouZone", "OU_TMSH" )
+ .Add( "uuid", "1617355496bb588e353e80147eea5f45" )
+ .Add( "requestTime", DateTime::Now().Format( "Y-M2-D2 H:m:s" ) )
+ .Add( "dataType", "JSON" )
+ .Add( "data", JSON::Object()
+ .Add( "pageIndex", "1" ) ).Build();
+ postrequestbodystring := postrequestbody.AsString();
+ llparameter.PostRequestBody( postrequestbodystring );
+ *]
+}
diff --git a/_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl b/_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl
new file mode 100644
index 0000000..7496bd1
--- /dev/null
+++ b/_Main/BL/Type_GlobalParameters/_ROOT_Type_GlobalParameters.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type GlobalParameters
+{
+ #keys: '5[412960.0.369930026][412960.0.369930024][0.0.0][412960.0.369930025][412960.0.369930027]'
+ BaseType: Object
+ Description: '鍏ㄥ眬鍙傛暟'
+ StructuredName: 'GlobalParameterss'
+}
diff --git a/_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl b/_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl
new file mode 100644
index 0000000..d8e681a
--- /dev/null
+++ b/_Main/BL/Type_Global_MAPISPIPCategory/Attribute_Critical.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Critical
+{
+ #keys: '3[414882.0.72610025][414882.0.72610024][414882.0.72610026]'
+ Description: '鍏抽敭鐗╂枡'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl b/_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl
new file mode 100644
index 0000000..a6a025e
--- /dev/null
+++ b/_Main/BL/Type_Global_MAPISPIPCategory/Function_CalcCritical.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcCritical
+{
+ TextBody:
+ [*
+ // hongjli Oct-24-2023 (created)
+
+ value := guard( select( this, Global_MappingProduct_MP, tempGMPMP, true ).Critical(), false );
+
+ this.Critical(value);
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
index e3b0e63..c8828b9 100644
--- a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
[*
globalOTDTable.Global_MappingCurrencyRate_MP( relflush );
- bodynumber := "5";
- postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetCurrencyRatesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
i := HTTPInterface::Create( address, port);
i.URL( url );
i.SSL( true );
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
index 2480088..cf9ba2f 100644
--- a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
[*
globalOTDTable.Global_MappingCurrency_MP( relflush );
- bodynumber := "1";
- postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetCurrenciesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
i := HTTPInterface::Create( address, port);
i.URL( url );
i.SSL( true );
diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
index e46efd6..d1f365c 100644
--- a/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
[*
globalOTDTable.Global_MappingLane( relflush );
- bodynumber := "3";
- postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetLanesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
i := HTTPInterface::Create( address, port);
i.URL( url );
i.SSL( true );
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
index 7899f6e..ad5182b 100644
--- a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
[*
globalOTDTable.Global_MappingLaneLeg( relflush );
- bodynumber := "4";
- postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetLaneLegsInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
i := HTTPInterface::Create( address, port);
i.URL( url );
i.SSL( true );
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl
new file mode 100644
index 0000000..bdc96fd
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_Critical.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Critical
+{
+ #keys: '3[414882.0.72574612][414882.0.72574611][414882.0.72574613]'
+ Description: '鍏抽敭鐗╂枡'
+ ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
index 431f730..3824133 100644
--- a/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Attribute_KeyProduct.qbl
@@ -3,5 +3,10 @@
Attribute KeyProduct
{
#keys: '3[414702.0.247711010][414702.0.247711009][414702.0.247711011]'
+ Description:
+ [*
+ 宸插純鐢�
+ 鍏抽敭鐗╂枡娌℃湁鏁版嵁鏉ユ簮锛屼互鍚庝粠鍏朵粬灞炴�ц绠楀緱鍒帮紝鏀逛负Critical
+ *]
ValueType: Boolean
}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl b/_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl
new file mode 100644
index 0000000..be05486
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/Function_CalcCritical.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcCritical
+{
+ TextBody:
+ [*
+ // renhao Oct-30-2023 (created)
+ value := this.ProductMajorType()="鎴愬搧" or this.ProductMajorType()="鍗婃垚鍝�";
+
+ this.Critical(value);
+ *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
index 4901d0a..749075f 100644
--- a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_CreateByAPI.qbl
@@ -8,11 +8,11 @@
[*
globalOTDTable.Global_MappingStockingPoint_MP( relflush );
- bodynumber := "2";
- postrequestbody := globalOTDTable.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetStockingPointsInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
i := HTTPInterface::Create( address, port);
i.URL( url );
i.SSL( true );
diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
index 4c98455..7140c64 100644
--- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingActualPISPIPData.qbl
@@ -36,10 +36,11 @@
info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
}
//product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true);
- if( /*not isnull( product*/ guard( actual.Global_MAPISPIPCategory().KeyProduct() = nuclear, false ) ){
+ //if( guard( actual.Global_MAPISPIPCategory().KeyProduct() = nuclear, false ) ){
+ if( not nuclear or (nuclear and actual.Global_MAPISPIPCategory().Critical() = nuclear) ){
if( not isnull(businessTypes)){
- for( i :=0 ;i < businessTypes.Size();i++ ){
+
//businessType := businessTypes.Element( i );
if( /*product.BusinessType() = businessType and not product.IsCommon()*/ not actual.Global_MAPISPIPCategory().IsCommon() ){
ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
@@ -49,7 +50,7 @@
actual.ActualInventoryLevelEnd(),
actual.ManufacturedDate());
}
- }
+
}else{
ActualProductInStockingPointInPeriod::CreateOrUpdate( this,
diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
index 43f35a0..b575592 100644
--- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingOperationBOMDataRouting.qbl
@@ -65,8 +65,11 @@
true, trash );
mainBOM.Quantity( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
mainBOM.MaxQuantityInGroup( firstAlterRow.UnitUsageOfComponents() / firstAlterRow.ComponentOutputRate() );
+ mainBOM.MinQuantityInGroup(0);
mainQty := mainBOM.Quantity();
Transaction::Transaction().Propagate();
+
+ altersize := alterRows.Size();
// 娣诲姞杈呮枡
traverse( alterRows, Elements, alterRow ) {
alterProd := Product_MP::FindById( this, alterRow.AlternativeMaterialCode() );
@@ -84,14 +87,23 @@
trash := construct( OperationBOMs );
if( not isnull( mainInput ) ) {
alterBom := mainInput.Operation().LinkPISP( pispAlter, true, mainInput.OperationLinkGroupID(), trash );
- alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
+ //alterBom.Quantity( mainBOM.MaxQuantityInGroup() * alterRow.AlternativeRate() );
+ //alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
+ alterBom.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
alterBom.MaxQuantityInGroup( mainBOM.MaxQuantityInGroup() );
+ alterBom.MinQuantityInGroup(0);
// info( "Quantity" + [String]alterBom.Quantity() )
// info( "MaxQuantityInGroup" + [String]alterBom.MaxQuantityInGroup() )
mainQty := mainQty - alterBom.Quantity();
}
}
- mainBOM.Quantity( mainQty );
+
+ Transaction::Transaction().Propagate( relation( OperationBOM, OperationInputGroup));
+ if( not isnull( mainBOM.OperationInputGroup())){
+ mainBOM.OperationInputGroup().InputGroupQuantity(mainBOM.MaxQuantityInGroup());
+ mainBOM.Quantity( mainBOM.MaxQuantityInGroup() / altersize );
+ }
+
}
}
}
diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
index 50f6bc7..0c397f4 100644
--- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
+++ "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl"
@@ -45,31 +45,31 @@
// 搴撳瓨鐐�-3
info( "Sales Segment Finished, Start Get StockingPoint From Api" )
- bodynumber := "2";
- postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetStockingPointsInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
macroPlan.ApiStockingPointData( data );
// 璐у竵淇℃伅-4
info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" )
- bodynumber := "1";
- postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetCurrenciesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
macroPlan.ApiCurenciesData( data );
//璐у竵姹囩巼淇℃伅-5
info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" )
- bodynumber := "5";
- postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetCurrencyRatesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
macroPlan.ApiCurencyRatesData( data );
@@ -93,21 +93,21 @@
//杞﹂亾淇℃伅-10
info( "BOM Finished, Start Get Lanes From Api" );
- bodynumber := "3";
- postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetLanesInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
macroPlan.ApiLanesData( data );
//杞﹂亾杩愯緭娈�-11
info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" );
- bodynumber := "4";
- postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber );
- address := "api-uat-sgc.tianma.cn";
- url := "/otdService/https/GetLaneLegsInfo";
- port := 443;
+ parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" );
+ postrequestbody := parameter.PostRequestBody();
+ address := parameter.Address();
+ url := parameter.AttributeValue();
+ port := [Number]parameter.Port();
data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody );
macroPlan.ApiLaneLegsData( data );
@@ -115,7 +115,7 @@
//info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" );
//macroPlan.Broker_OTD_ProductInLane().Execute();
info( "ProductInLane Data Broker Finished, Start ProductInLane Mapping" );
- macroPlan.DoASyncMappingProductInLaneData(globalOTDTable,businessTypeName);
+ macroPlan.DoASyncMappingProductInLaneData( globalOTDTable,businessTypeName );
// 鍦ㄥ簱搴撳瓨鏁版嵁-13
//info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
@@ -130,7 +130,7 @@
macroPlan.DoASyncMappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist );
// 搴撳瓨鎴愭湰-15
- InventoryValueAndCost::DoASync( macroPlan,globalOTDTable, businessTypeName );
+ InventoryValueAndCost::DoASync( macroPlan,globalOTDTable,businessTypeName );
// todo 鍒堕�犳垚鏈�-16
info( "InventoryCost Finished, Start OperationCost Mapping" );
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_DialogGlobalParameters/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlActions.def
new file mode 100644
index 0000000..aa8f552
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[412960.0.370310585]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[412960.0.370310589]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[412960.0.370310591]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlContent.def
new file mode 100644
index 0000000..8474857
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Component_pnlContent.def
@@ -0,0 +1,83 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[412960.0.370310583]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component editAttributeName
+ {
+ #keys: '[412960.0.370311392]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderGlobalParameters.Data.AttributeName'
+ Label: '鍙傛暟鍚嶇О'
+ Taborder: 1
+ ]
+ }
+ Component editAttributeValue
+ {
+ #keys: '[412960.0.370311429]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderGlobalParameters.Data.AttributeValue'
+ Label: '鍙傛暟鍊�'
+ Taborder: 2
+ ]
+ }
+ Component editAddress
+ {
+ #keys: '[412960.0.370311489]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderGlobalParameters.Data.Address'
+ Label: 'Api鍦板潃'
+ Taborder: 3
+ Visible: false
+ ]
+ }
+ Component editPort
+ {
+ #keys: '[412960.0.370311527]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderGlobalParameters.Data.Port'
+ Label: 'Api绔彛鍙�'
+ Taborder: 4
+ Visible: false
+ ]
+ }
+ Component editPostRequestBody
+ {
+ #keys: '[412960.0.370311577]'
+ BaseType: 'WebEditField'
+ Properties:
+ [
+ DataBinding: 'DataHolderGlobalParameters.Data.PostRequestBody'
+ Label: 'Api璇锋眰涓讳綋'
+ Taborder: 5
+ Visible: false
+ ]
+ }
+ Component IsApi
+ {
+ #keys: '[412960.0.370311617]'
+ BaseType: 'WebCheckbox'
+ Properties:
+ [
+ Description: '鏄惁涓篈PI鐩稿叧鍙傛暟'
+ Label: 'API閰嶇疆'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def
new file mode 100644
index 0000000..afdf6c4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_ClickBtnOk.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+Method ClickBtnOk () id:Method_DialogGlobalParameters_ClickBtnOk
+{
+ #keys: '[412960.0.370310978]'
+ Body:
+ [*
+ // Disabled button to prevent the possibility of multiple firing
+
+ btnOk.Enabled(false,'');
+
+ // OnOk
+ this.ApplyChanges();
+
+ DataHolderGlobalParameters.Data().Commit();
+
+ this.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def
new file mode 100644
index 0000000..338ca9c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_Edit.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ GlobalParameters selection
+) id:Method_DialogGlobalParameters_Edit
+{
+ #keys: '[412960.0.370310979]'
+ Body:
+ [*
+ // Edits assumption
+ data := shadow( selection );
+
+ DataHolderGlobalParameters.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def
new file mode 100644
index 0000000..047b889
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Method_New.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+ GlobalOTDTable owner
+) id:Method_DialogGlobalParameters_New
+{
+ #keys: '[412960.0.370310981]'
+ Body:
+ [*
+ data := owner.GlobalParameters(relshadow);
+ DataHolderGlobalParameters.Data( &data);
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..ee5b753
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+ #keys: '[412960.0.370310595]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..235dbb5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[412960.0.370310594]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ClickBtnOk()
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def
new file mode 100644
index 0000000..20929e5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/Response_pnlContent_IsApi_OnChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: pnlContent/IsApi
+Response OnChanged () id:Response_pnlContent_IsApi_OnChanged
+{
+ #keys: '[412960.0.370311653]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ editAddress.Visible( this.Checked() );
+ editPort.Visible( this.Checked() );
+ editPostRequestBody.Visible( this.Checked() );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def
new file mode 100644
index 0000000..a898ae5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogGlobalParameters/_ROOT_Component_DialogGlobalParameters.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogGlobalParameters
+{
+ #keys: '[412960.0.370310581]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DataHolderGlobalParameters
+ {
+ #keys: '[412960.0.370311111]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[GlobalParameters]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def
index f81f38b..7c48b5a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNew_OnClick.def
@@ -2,7 +2,7 @@
#parent: ListBusinessType
Response OnClick () id:Response_ListBusinessType_MenuNew_OnClick
{
- #keys: '[414382.0.377975353]'
+ #keys: '[412960.0.373110863]'
CanBindMultiple: false
DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick
GroupServerCalls: true
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_FormGlobalParameters/Component_ListGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_ListGlobalParameters.def
new file mode 100644
index 0000000..18364b4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_ListGlobalParameters.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListGlobalParameters
+{
+ #keys: '[412960.0.370311764]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorGlobalParameters
+ {
+ #keys: '[412960.0.370311765]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'GlobalParameters'
+ ]
+ }
+ #child: listActionBarPageGlobalParameters
+ Component DataSetLevelGlobalParameters
+ {
+ #keys: '[412960.0.370311770]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuGlobalParameters
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AttributeName","title":"AttributeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AttributeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AttributeValue","title":"AttributeValue","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AttributeValue"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Address","title":"Address","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Address"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Port","title":"Port","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Port"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PostRequestBody","title":"PostRequestBody","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PostRequestBody"}}]'
+ ContextMenu: 'listContextMenuGlobalParameters'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListGlobalParameters_WebMenu_OnClick
+ {
+ #keys: '[412960.0.373111120]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[693.0.13162755]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.def
new file mode 100644
index 0000000..dd6186c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_PanelGlobalParameters.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelGlobalParameters
+{
+ #keys: '[412960.0.370311750]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListGlobalParameters
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def
new file mode 100644
index 0000000..5d480f6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listActionBarPageGlobalParameters.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageGlobalParameters
+{
+ #keys: '[412960.0.370311767]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def
new file mode 100644
index 0000000..e031569
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Component_listContextMenuGlobalParameters.def
@@ -0,0 +1,57 @@
+Quintiq file version 2.0
+Component listContextMenuGlobalParameters
+{
+ #keys: '[412960.0.370311772]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuNew id:MenuNew_21
+ {
+ #keys: '[412960.0.370312224]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ADD2'
+ Taborder: 3
+ Title: 'New'
+ ]
+ }
+ Component MenuEdit id:MenuEdit_368
+ {
+ #keys: '[412960.0.370312277]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'PENCIL'
+ Taborder: 4
+ Title: 'Edit'
+ ]
+ }
+ Component MenuDelete id:MenuDelete_832
+ {
+ #keys: '[412960.0.370312355]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'DELETE'
+ Taborder: 5
+ Title: 'Delete'
+ ]
+ }
+ Component MenuInitial
+ {
+ #keys: '[412960.0.376011203]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'ARROW_LOOP3'
+ Taborder: 6
+ Title: 'Init Api'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def
new file mode 100644
index 0000000..f68b43c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuDelete_OnClick.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListGlobalParameters
+Response OnClick (
+ GlobalParameters selection
+) id:Response_ListGlobalParameters_MenuDelete_OnClick
+{
+ #keys: '[412960.0.373113087]'
+ CanBindMultiple: false
+ DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuDelete'
+ QuillAction
+ {
+ Body:
+ [*
+ selection.Delete();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def
new file mode 100644
index 0000000..6094065
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuEdit_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListGlobalParameters
+Response OnClick (
+ GlobalParameters selection
+) id:Response_ListGlobalParameters_MenuEdit_OnClick
+{
+ #keys: '[412960.0.373112994]'
+ CanBindMultiple: false
+ DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogGlobalParameters );
+ dlg.Edit( selection );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def
new file mode 100644
index 0000000..a222fe1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_ListGlobalParameters_MenuNew_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ListGlobalParameters
+Response OnClick () id:Response_ListGlobalParameters_MenuNew_OnClick
+{
+ #keys: '[412960.0.373111139]'
+ CanBindMultiple: false
+ DefinitionID => /ListGlobalParameters/Responsedef_ListGlobalParameters_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuNew'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogGlobalParameters );
+ dlg.New( GlobalOTDTable );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def
new file mode 100644
index 0000000..c2c4dd2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/Response_listContextMenuGlobalParameters_MenuInitial_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: listContextMenuGlobalParameters/MenuInitial
+Response OnClick () id:Response_listContextMenuGlobalParameters_MenuInitial_OnClick
+{
+ #keys: '[412960.0.376011242]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebMenu_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ GlobalParameters::TestForApiRequest( GlobalOTDTable );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def
new file mode 100644
index 0000000..a193e5c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormGlobalParameters/_ROOT_Component_FormGlobalParameters.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormGlobalParameters
+{
+ #keys: '[412960.0.367611841]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelGlobalParameters
+ ]
+ Properties:
+ [
+ Description: '瀛樻斁鍚勭被鍏ㄥ眬鍙傛暟锛岀洰鍓嶄粎鍖呭惈API鐩稿叧'
+ Image: 'EARTH2'
+ Title: 'Global Parameters'
+ ]
+}
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: '鎷嗚璁㈠崟'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\205\250\345\261\200\345\217\202\346\225\260.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\205\250\345\261\200\345\217\202\346\225\260.vw"
new file mode 100644
index 0000000..3e9b9c2
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\205\250\345\261\200\345\217\202\346\225\260.vw"
@@ -0,0 +1,351 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_legacy_1
+ {
+ title: 'Scenario manager'
+ shown: true
+ componentID: 'FormScenarioManager'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormScenarioManager_ListScenario
+ {
+ }
+ FormScenarioManager_DataSetLevelScenario
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 90
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 277
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 2
+ subtotals: ''
+ width: 106
+ }
+ column_ChangedOn
+ {
+ columnId: 'ChangedOn'
+ dataPath: 'ChangedOn'
+ dataType: 'datetime'
+ title: 'Changed on'
+ index: 3
+ subtotals: ''
+ width: 99
+ }
+ column_StorageMode
+ {
+ columnId: 'StorageMode'
+ dataPath: 'StorageMode'
+ dataType: 'string'
+ title: 'StorageMode'
+ index: 4
+ subtotals: ''
+ width: 40
+ }
+ }
+ }
+ }
+ form_legacy_2
+ {
+ title: 'Assumptions'
+ shown: true
+ componentID: 'FormAssumptions'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 9
+ rowSpan: 8
+ columnPosition: 1
+ columnSpan: 5
+ }
+ components
+ {
+ FormAssumptions_ListAssumptions
+ {
+ }
+ FormAssumptions_DataSetLevelAssumptions
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ title: '绫诲埆'
+ index: 1
+ subtotals: ''
+ width: 108
+ }
+ column_Importance
+ {
+ columnId: 'Importance'
+ dataPath: 'Importance'
+ dataType: 'string'
+ title: '閲嶈鎬�'
+ index: 2
+ subtotals: ''
+ width: 110
+ }
+ column_Title
+ {
+ columnId: 'Title'
+ dataPath: 'Title'
+ dataType: 'string'
+ title: '鏍囬'
+ index: 3
+ subtotals: ''
+ width: 150
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 4
+ subtotals: ''
+ width: 150
+ }
+ column_CreatedOn
+ {
+ columnId: 'CreatedOn'
+ dataPath: 'CreatedOn'
+ dataType: 'datetime'
+ title: 'Created on'
+ index: 5
+ subtotals: ''
+ width: 150
+ }
+ }
+ }
+ }
+ form_FormScenariosKPIsComparison
+ {
+ title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ shown: true
+ componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 16
+ columnPosition: 6
+ columnSpan: 7
+ }
+ components
+ {
+ FormScenariosKPIsComparison_MatrixEditorFinancialKPIs
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 200
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_DisplayValue
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'DisplayValue'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: ''
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'KPISetting.DisplayIndex'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormOptimizerPuzzles_ListOptimizerPuzzles
+ {
+ }
+ FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: '鎻忚堪'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: '鍚嶇О'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: 'applicationDevelopmentActionBarPageDef'
+ group: ''
+ index: 4
+ image: 'EARTH2'
+ description: ''
+ }
+ formatversion: 2
+ id: '鍏ㄥ眬鍙傛暟'
+ name: '鍏ㄥ眬鍙傛暟'
+ isglobal: false
+ isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
index cb94597..f99dc85 100644
--- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
ProjectProperties
{
ApplicationComponentName: 'ApplicationMacroPlanner'
- BuildVersion: '2022.3.0.32'
+ BuildVersion: '2022.3.0.33'
Description: 'Quintiq Macro Planner'
ProjectKind: 'WebClient'
}
--
Gitblit v1.9.3