From 550ebcf02217f8a0c6fe9001fcfa8e42e9cd6b83 Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期二, 10 十月 2023 15:00:25 +0800
Subject: [PATCH] PR释放

---
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_UnitOfMeasureName.qbl                        |    8 
 _Main/BL/Type_PRData/Attribute_LineAttribute3.qbl                                                   |    7 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsPartRecognition.qbl                        |    8 
 _Main/BL/Type_PRData/Attribute_PRReleaseStatus.qbl                                                  |    2 
 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl                                            |   12 
 _Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl                      |    8 
 _Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl                                    |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData#844.def                          |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def     |    6 
 _Main/BL/Type_PRData/Function_CalcSendTimeString.qbl                                                |    6 
 _Main/BL/Type_PRData/Attribute_CreateBy.qbl                                                         |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData#844.def         |    2 
 _Main/BL/Relations/Relation_Global_MappingProviderCapacity_GlobalOTDTable_GlobalOTDTable_Global.qbl |   23 +
 _Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl                        |   13 
 _Main/BL/Type_PRData/StaticMethod_DoCall.qbl                                                        |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_ActualCapacity.qbl                           |    8 
 _Main/BL/Type_PRData/Attribute_CreateTime.qbl                                                       |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_LotSize.qbl                                  |    8 
 _Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl                                                |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSpecialDisplay.qbl                         |    8 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductID.qbl                                |    8 
 _Main/BL/Type_PRData/Method_PrintCall.qbl                                                           |    5 
 _Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl                                    |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductName.qbl                              |    8 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_MinimumQuantity.qbl                          |    8 
 _Main/BL/Type_Global_MappingProviderCapacity/_ROOT_Type_Global_MappingProviderCapacity.qbl          |   10 
 _Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw                                          |   16 +
 _Main/BL/Type_PRHistoryData/Attribute_PreparerId#603.qbl                                            |    2 
 _Main/BL/Type_PRData/Attribute_CreateTimeString.qbl                                                 |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSecondSource.qbl                           |    8 
 _Main/BL/Type_PRData/StaticMethod_TestData.qbl                                                      |   36 +-
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_Rate.qbl                                     |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_DestinationOrganizationId.qbl                       |    8 
 _var/_Main/ProjSettings/MacroPlannerWebApp/Views/PR_DATA.vw                                         |  428 ++++++++++++++++++++++++++++
 _Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl                              |   15 +
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProviderName.qbl                             |    8 
 _Main/BL/Type_Global_MappingOperation/Attribute_OrganId.qbl                                         |    7 
 _var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw                           |    2 
 _Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl                               |   13 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_StockingPointID.qbl                          |    8 
 _Main/BL/Type_PRData/Attribute_DeliveryDate.qbl                                                     |    8 
 _Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl                                           |    2 
 _Main/BL/Type_PRData/Attribute_OrganName.qbl                                                        |    8 
 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl                                        |   86 +++--
 _Main/BL/Type_PRData/StaticMethod_CanCall.qbl                                                       |    2 
 /dev/null                                                                                           |    7 
 _Main/BL/Type_PRHistoryData/Attribute_DeliveryDate#168.qbl                                          |    2 
 _Main/BL/Type_Global_MappingProviderCapacity/Attribute_LeadTime.qbl                                 |    8 
 _Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl                                           |    8 
 _Main/BL/Type_PRData/Method_DoCall.qbl                                                              |   12 
 51 files changed, 777 insertions(+), 101 deletions(-)

diff --git a/_Main/BL/Relations/Relation_Global_MappingProviderCapacity_GlobalOTDTable_GlobalOTDTable_Global.qbl b/_Main/BL/Relations/Relation_Global_MappingProviderCapacity_GlobalOTDTable_GlobalOTDTable_Global.qbl
new file mode 100644
index 0000000..4b3c927
--- /dev/null
+++ b/_Main/BL/Relations/Relation_Global_MappingProviderCapacity_GlobalOTDTable_GlobalOTDTable_Global.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation Global_MappingProviderCapacity_GlobalOTDTable_GlobalOTDTable_Global_MappingProviderCapacity
+{
+  #keys: '1[414384.0.953290006]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414384.0.953290008][414384.0.953290007][414384.0.953290009]'
+    Cardinality: '0to1'
+    ObjectDefinition: Global_MappingProviderCapacity
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide Global_MappingProviderCapacity
+  {
+    #keys: '3[414384.0.953290011][414384.0.953290010][414384.0.953290012]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl b/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl
index 1c4c527..585f285 100644
--- a/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl
+++ b/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl
@@ -11,7 +11,7 @@
     
     request.BusinessType( history.BusinessType() );
     request.DataID( history.DataID() );
-    request.DeliveryDate( history.ProduceRequiredDate() );
+    request.DeliveryDate( history.DeliveryDate() );
     request.MRPCalverNo( history.MRPCalverNo() );
     request.OrganCode( history.OrganCode() );
     request.ProductID( history.ProductID() );
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_DestinationOrganizationId.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_DestinationOrganizationId.qbl
new file mode 100644
index 0000000..2dcfbf8
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_DestinationOrganizationId.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationOrganizationId
+{
+  #keys: '3[414384.0.953284686][414384.0.953284685][414384.0.953284687]'
+  Description: '鐩殑鍦扮粍缁噄d'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/Attribute_OrganId.qbl b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganId.qbl
new file mode 100644
index 0000000..f710d48
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/Attribute_OrganId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganId
+{
+  #keys: '3[414384.0.953284696][414384.0.953284695][414384.0.953284697]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl b/_Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl
new file mode 100644
index 0000000..314d139
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingOperation/StaticMethod_GetByProductId.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetByProductId (
+  GlobalOTDTable otdTable,
+  String productId
+) as Global_MappingOperation
+{
+  TextBody:
+  [*
+    // yypsybs Oct-9-2023 (created)
+    return select( otdTable, Global_MappingOperation, item, item.ProductID() = productId );
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl
new file mode 100644
index 0000000..ef81738
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_GetByProductId.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetByProductId (
+  GlobalOTDTable parent,
+  String productId
+) as Global_MappingProduct_MP
+{
+  Description: '鏍规嵁鏂欏彿鏌ヨ褰�'
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    value := select( parent, Global_MappingProduct_MP, item, item.ID() = productId );
+    return value;
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ActualCapacity.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ActualCapacity.qbl
new file mode 100644
index 0000000..2d0d27b
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ActualCapacity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ActualCapacity
+{
+  #keys: '3[414384.0.957354916][414384.0.957354915][414384.0.957354917]'
+  Description: '鏃ヤ氦璐ц兘鍔�'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsPartRecognition.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsPartRecognition.qbl
new file mode 100644
index 0000000..db54713
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsPartRecognition.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsPartRecognition
+{
+  #keys: '3[414384.0.957354904][414384.0.957354903][414384.0.957354905]'
+  Description: '闆朵欢鎵胯'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSecondSource.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSecondSource.qbl
new file mode 100644
index 0000000..3215bb4
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSecondSource.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsSecondSource
+{
+  #keys: '3[414384.0.957354907][414384.0.957354906][414384.0.957354908]'
+  Description: '鏄惁浜屼緵'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSpecialDisplay.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSpecialDisplay.qbl
new file mode 100644
index 0000000..38e0080
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_IsSpecialDisplay.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsSpecialDisplay
+{
+  #keys: '3[414384.0.957354901][414384.0.957354900][414384.0.957354902]'
+  Description: '鏄惁涓撴樉'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LeadTime.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LeadTime.qbl
new file mode 100644
index 0000000..7784107
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LeadTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LeadTime
+{
+  #keys: '3[414384.0.957354919][414384.0.957354918][414384.0.957354920]'
+  Description: 'L/T'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LotSize.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LotSize.qbl
new file mode 100644
index 0000000..a007802
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_LotSize.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LotSize
+{
+  #keys: '3[414384.0.957354925][414384.0.957354924][414384.0.957354926]'
+  Description: '鏈�灏忓寘瑁呴噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_MinimumQuantity.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_MinimumQuantity.qbl
new file mode 100644
index 0000000..5f092a2
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_MinimumQuantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MinimumQuantity
+{
+  #keys: '3[414384.0.957354922][414384.0.957354921][414384.0.957354923]'
+  Description: '鏈�灏忚璐ч噺'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductID.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductID.qbl
new file mode 100644
index 0000000..b7f9c73
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414384.0.957354895][414384.0.957354894][414384.0.957354896]'
+  Description: '鐗╂枡缂栫爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductName.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductName.qbl
new file mode 100644
index 0000000..f958e30
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProductName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductName
+{
+  #keys: '3[414384.0.957354892][414384.0.957354891][414384.0.957354893]'
+  Description: '鐗╂枡璇存槑'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProviderName.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProviderName.qbl
new file mode 100644
index 0000000..5cc6c05
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_ProviderName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderName
+{
+  #keys: '3[414384.0.957354910][414384.0.957354909][414384.0.957354911]'
+  Description: '渚涘簲鍟嗗悕绉�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_Rate.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_Rate.qbl
new file mode 100644
index 0000000..43aff94
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_Rate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Rate
+{
+  #keys: '3[414384.0.957354928][414384.0.957354927][414384.0.957354929]'
+  Description: '姣斾緥'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_StockingPointID.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..660a929
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_StockingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414384.0.957354913][414384.0.957354912][414384.0.957354914]'
+  Description: '搴撳瓨鐐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..bc0760a
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+  #keys: '3[414384.0.957354898][414384.0.957354897][414384.0.957354899]'
+  Description: '鍗曚綅'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl
new file mode 100644
index 0000000..9038655
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/StaticMethod_GetByProductId.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetByProductId (
+  GlobalOTDTable parent,
+  String productId
+) as Global_MappingProviderCapacity
+{
+  TextBody:
+  [*
+    // yypsybs Oct-10-2023 (created)
+    return select( parent, Global_MappingProviderCapacity, item, item.ProductID() = productId );
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingProviderCapacity/_ROOT_Type_Global_MappingProviderCapacity.qbl b/_Main/BL/Type_Global_MappingProviderCapacity/_ROOT_Type_Global_MappingProviderCapacity.qbl
new file mode 100644
index 0000000..262d3df
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingProviderCapacity/_ROOT_Type_Global_MappingProviderCapacity.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type Global_MappingProviderCapacity
+{
+  #keys: '5[414384.0.957354887][414384.0.957354885][0.0.0][414384.0.957354886][414384.0.957354888]'
+  BaseType: Object
+  Description: '渚涘簲鍟嗚兘鍔�'
+  StructuredName: 'Global_MappingProviderCapacitys'
+}
diff --git a/_Main/BL/Type_PRData/Attribute_SendBy.qbl b/_Main/BL/Type_PRData/Attribute_CreateBy.qbl
similarity index 89%
rename from _Main/BL/Type_PRData/Attribute_SendBy.qbl
rename to _Main/BL/Type_PRData/Attribute_CreateBy.qbl
index 71a556e..79e0921 100644
--- a/_Main/BL/Type_PRData/Attribute_SendBy.qbl
+++ b/_Main/BL/Type_PRData/Attribute_CreateBy.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute SendBy
+Attribute CreateBy
 {
   #keys: '3[414384.0.789498519][414384.0.789498518][414384.0.789498520]'
   Description: '鍙戦�佷汉'
diff --git a/_Main/BL/Type_PRData/Attribute_SendTIme.qbl b/_Main/BL/Type_PRData/Attribute_CreateTime.qbl
similarity index 88%
rename from _Main/BL/Type_PRData/Attribute_SendTIme.qbl
rename to _Main/BL/Type_PRData/Attribute_CreateTime.qbl
index 767d0b3..b25c6e9 100644
--- a/_Main/BL/Type_PRData/Attribute_SendTIme.qbl
+++ b/_Main/BL/Type_PRData/Attribute_CreateTime.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute SendTime
+Attribute CreateTime
 {
   #keys: '3[414384.0.789498516][414384.0.789498515][414384.0.789498517]'
   Description: '鍙戦�佹椂闂�'
diff --git a/_Main/BL/Type_PRData/Attribute_SendTimeString.qbl b/_Main/BL/Type_PRData/Attribute_CreateTimeString.qbl
similarity index 83%
rename from _Main/BL/Type_PRData/Attribute_SendTimeString.qbl
rename to _Main/BL/Type_PRData/Attribute_CreateTimeString.qbl
index 248a63f..96b5c1d 100644
--- a/_Main/BL/Type_PRData/Attribute_SendTimeString.qbl
+++ b/_Main/BL/Type_PRData/Attribute_CreateTimeString.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute SendTimeString
+Attribute CreateTimeString
 {
   #keys: '3[414384.0.847354596][414384.0.847354595][414384.0.847354597]'
   ValueType: String
diff --git a/_Main/BL/Type_PRData/Attribute_DeliveryDate.qbl b/_Main/BL/Type_PRData/Attribute_DeliveryDate.qbl
new file mode 100644
index 0000000..ccfb81a
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_DeliveryDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DeliveryDate
+{
+  #keys: '3[414384.0.957354843][414384.0.957354842][414384.0.957354844]'
+  Description: '浜よ揣鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_PRData/Attribute_LineAttribute3.qbl b/_Main/BL/Type_PRData/Attribute_LineAttribute3.qbl
new file mode 100644
index 0000000..f2d524b
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_LineAttribute3.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineAttribute3
+{
+  #keys: '3[414384.0.953290077][414384.0.953290076][414384.0.953290078]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_OrganName.qbl b/_Main/BL/Type_PRData/Attribute_OrganName.qbl
new file mode 100644
index 0000000..e9aa5c1
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_OrganName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganName
+{
+  #keys: '3[414384.0.953290043][414384.0.953290042][414384.0.953290044]'
+  Description: '缁勭粐鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_SendStatus.qbl b/_Main/BL/Type_PRData/Attribute_PRReleaseStatus.qbl
similarity index 86%
rename from _Main/BL/Type_PRData/Attribute_SendStatus.qbl
rename to _Main/BL/Type_PRData/Attribute_PRReleaseStatus.qbl
index 7df5d57..3c6c4a5 100644
--- a/_Main/BL/Type_PRData/Attribute_SendStatus.qbl
+++ b/_Main/BL/Type_PRData/Attribute_PRReleaseStatus.qbl
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute SendStatus
+Attribute PRReleaseStatus
 {
   #keys: '3[414384.0.789498513][414384.0.789498512][414384.0.789498514]'
   Description: 'PR鏁版嵁鍙戦�佺姸鎬�'
diff --git a/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl b/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl
deleted file mode 100644
index 44030b3..0000000
--- a/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute PlannerCode
-{
-  #keys: '3[414384.0.789498510][414384.0.789498509][414384.0.789498511]'
-  Description: '鐗╂枡璁″垝鍛�'
-  ValueType: String
-}
diff --git a/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl b/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl
deleted file mode 100644
index 20ef1b2..0000000
--- a/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl
+++ /dev/null
@@ -1,8 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute ProduceRequiredDate
-{
-  #keys: '3[414384.0.789498480][414384.0.789498479][414384.0.789498481]'
-  Description: '闇�姹傛棩鏈�'
-  ValueType: Date
-}
diff --git a/_Main/BL/Type_PRData/Function_CalcSendTimeString.qbl b/_Main/BL/Type_PRData/Function_CalcSendTimeString.qbl
index 4705c8f..aae89da 100644
--- a/_Main/BL/Type_PRData/Function_CalcSendTimeString.qbl
+++ b/_Main/BL/Type_PRData/Function_CalcSendTimeString.qbl
@@ -6,13 +6,13 @@
   [*
     // yypsybs Sep-19-2023 (created)
     value := "";
-    if( this.SendStatus() <> "" ) {
+    if( this.PRReleaseStatus() <> "" ) {
       cnv := DateTimeToString::StandardConverter();
       cnv.SetCustomConversion();
       cnv.CustomFormatString( "yyyy/MM/dd H:mm:ss" );
       
-      value := guard( cnv.Convert( this.SendTime() ), "" );
+      value := guard( cnv.Convert( this.CreateTime() ), "" );
     }
-    this.SendTimeString( value );
+    this.CreateTimeString( value );
   *]
 }
diff --git a/_Main/BL/Type_PRData/Method_DoCall.qbl b/_Main/BL/Type_PRData/Method_DoCall.qbl
index 7a3a433..3e8d9b5 100644
--- a/_Main/BL/Type_PRData/Method_DoCall.qbl
+++ b/_Main/BL/Type_PRData/Method_DoCall.qbl
@@ -13,6 +13,7 @@
     
     // 鐓ф惉閮ㄥ垎
     result.AuthorizationStatus( this.AuthorizationStatus() );
+    
     result.BusinessType( this.BusinessType() );
     result.DataID( this.DataID() );
     result.DeliverToRequestorId( this.DeliverToRequestorId() );
@@ -26,9 +27,8 @@
     result.MRPCalverNo( this.MRPCalverNo() );
     result.OrganCode( this.OrganCode() );
     result.OrgId( this.OrgId() );
-    result.PlannerCode( this.PlannerCode() );
-    result.PreparerId( this.PreparerId() );
-    result.ProduceRequiredDate( this.ProduceRequiredDate() );
+    result.PreparerID( this.PreparerId() );
+    result.DeliveryDate( this.DeliveryDate() );
     result.ProductID( this.ProductID() );
     result.ProductName( this.ProductName() );
     result.ProviderCode( this.ProviderCode() );
@@ -52,9 +52,9 @@
     result.SendStatus( "宸插彂閫�" );
     result.ReleaseBy( callBy );
     result.SendTime( DateTime::Now() );
-    this.SendStatus( "宸插彂閫�" );
-    this.SendTime( DateTime::Now() );
-    this.SendBy( callBy );
+    this.PRReleaseStatus( "宸插彂閫�" );
+    this.CreateTime( DateTime::Now() );
+    this.CreateBy( callBy );
     
     return result;
   *]
diff --git a/_Main/BL/Type_PRData/Method_PrintCall.qbl b/_Main/BL/Type_PRData/Method_PrintCall.qbl
index f82b310..180f056 100644
--- a/_Main/BL/Type_PRData/Method_PrintCall.qbl
+++ b/_Main/BL/Type_PRData/Method_PrintCall.qbl
@@ -25,9 +25,8 @@
     result.MRPCalverNo( this.MRPCalverNo() );
     result.OrganCode( this.OrganCode() );
     result.OrgId( this.OrgId() );
-    result.PlannerCode( this.PlannerCode() );
-    result.PreparerId( this.PreparerId() );
-    result.ProduceRequiredDate( this.ProduceRequiredDate() );
+    result.PreparerID( this.PreparerId() );
+    result.DeliveryDate( this.DeliveryDate() );
     result.ProductID( this.ProductID() );
     result.ProductName( this.ProductName() );
     result.ProviderCode( this.ProviderCode() );
diff --git a/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
index c2aae7d..a051fa6 100644
--- a/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
@@ -13,7 +13,7 @@
     if( toCalls.Size() = 0 ) {
       feedback_o := "No checked PR";
     } else {
-      havaUnsent := exists( toCalls, Elements, toCall, toCall.SendStatus() = "" );
+      havaUnsent := exists( toCalls, Elements, toCall, toCall.PRReleaseStatus() = "" );
       if( not havaUnsent ) {
         feedback_o := "No unsent PR";
       }
diff --git a/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
index 56222b2..6de8c17 100644
--- a/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
@@ -11,7 +11,7 @@
     // yypsybs Sep-12-2023 (created)
     info( "DoCall " + [String]toCalls.Size() + " PRs" );
     nowNo := 1;
-    traverse( toCalls, Elements, toCall, toCall.SendStatus() = "" ) {
+    traverse( toCalls, Elements, toCall, toCall.PRReleaseStatus() = "" ) {
       info ( "DoCall " + [String]nowNo + "/" + [String]toCalls.Size() + " PR" );
       toCall.DoCall( globalData, callBy );  
       nowNo := nowNo + 1;
diff --git a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
index cf729ec..1b706e0 100644
--- a/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
@@ -46,7 +46,7 @@
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "鐗╂枡缂栫爜" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "鐗╂枡鍚嶇О" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsPanelMaterial(), "闈㈡澘鐗╂枡鏍囪瘑" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "浜よ揣鏃ユ湡" );
+      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.DeliveryDate() = Date::MinDate(), "", dateToString.Convert( toExport.DeliveryDate() ) ), "浜よ揣鏃ユ湡" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.PRSuggestionDate() = Date::MinDate(), "", dateToString.Convert( toExport.PRSuggestionDate() ) ), "PR寤鸿鏃ユ湡" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "浜よ揣鏁伴噺" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP璁$畻鐗堟湰鍙�" );
@@ -60,9 +60,9 @@
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "渚涘簲鍟嗗悕绉�" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "鏀惰揣搴撳瓨鐐�" );
       PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "璁¢噺鍗曚綅" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR鏁版嵁鍙戦�佺姸鎬�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "鍙戦�佹椂闂�" );
-      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendBy(), "鍙戦�佷汉" );
+      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PRReleaseStatus(), "PR鏁版嵁鍙戦�佺姸鎬�" );
+      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CreateTimeString(), "鍙戦�佹椂闂�" );
+      PRData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CreateBy(), "鍙戦�佷汉" );
     }
     
     xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
diff --git "a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl"
index 2b88918..1b30f35 100644
--- "a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl"
+++ "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl"
@@ -3,25 +3,26 @@
 StaticMethod FromSupplyPlanning (
   GlobalOTDTable otdTable,
   MacroPlan macroPlan,
-  MacroPlan mappingRoot,
-  ProductInStockingPointInPeriod pispip
+  ProductInStockingPointInPeriod pispip,
+  String userId
 ) as PRData
 {
   TextBody:
   [*
     // yypsybs Sep-12-2023 (created)
     result := macroPlan.PRData( relnew );
-    result.InterfaceSourceCode( "Quintiq" );
     
     pisp := pispip.ProductInStockingPoint_MP();
     product := pisp.Product_MP();
     stockingPoint := pisp.StockingPoint_MP();
     period := pispip.Period_MP();
-    mappingProduct := MappingProduct::GetByProductId( mappingRoot, product.ID() );
+    // QID7
+    mappingProduct := Global_MappingProduct_MP::GetByProductId( otdTable, product.ID() );
+    // QID12
+    mappingOperation := Global_MappingOperation::GetByProductId( otdTable, product.ID() );
+    // QID15
+    mappingProviderCapacity := Global_MappingProviderCapacity::GetByProductId( otdTable, product.ID() );
     matAttrSetting := MatAttrSettingAndPlanStrategy::GetExistByMatCode( otdTable, product.ID() );
-    // 鎺ュ彛/涓棿琛ㄦ殏鏃�
-    mappingProviderCapacity := "鏆傛棤";
-    erpData := "鏆傛棤";
     
     // 鏍规嵁pispip
     result.MRPCalverNo( ifexpr( pispip.MRPCalverNo() = "", "鏆傛棤", pispip.MRPCalverNo() ) );
@@ -35,9 +36,9 @@
     result.StockingPointID( stockingPoint.ID() );
     
     // 鏍规嵁period
-    result.ProduceRequiredDate( period.StartDate() );
-    result.PRSuggestionDate( ifexpr( (result.ProduceRequiredDate() - Duration::Days( 7 )).Date() >= Date::Today(),
-                                     Date::Today(), (result.ProduceRequiredDate() - Duration::Days( 7 )).Date() ) );
+    result.DeliveryDate( period.StartDate() );
+    result.PRSuggestionDate( ifexpr( (result.DeliveryDate() - Duration::Days( 7 )).Date() >= Date::Today(),
+                                     Date::Today(), (result.DeliveryDate() - Duration::Days( 7 )).Date() ) );
     
     // 鏍规嵁 鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐
     result.IsPanelMaterial( "鏆傛棤" );
@@ -51,22 +52,39 @@
       result.MaterialMRPType( ifexpr( matAttrSetting.PlanningStrategyCustom() <> "", matAttrSetting.PlanningStrategyCustom(), matAttrSetting.PlanningStrategyAuto() ) );
     }
     
-    
     // 鏍规嵁product涓棿琛�
     if( isnull( mappingProduct ) ) {
-      result.BusinessType( "鏆傛棤" );
-      result.OrganCode( "鏆傛棤" );
-      result.UnitOfMeasure( "鏆傛棤" );
+      result.BusinessType( "鏆傛棤" );  
     } else {
-      result.BusinessType( mappingProduct.BusinessType() );
-      result.OrganCode( mappingProduct.OrgCode() );
-      result.UnitOfMeasure( mappingProduct.UnitOfMeasureName() );
+      result.BusinessType( mappingProduct.BusinessType() );   
+    }
+    result.InterfaceSourceCode( "Quintiq_" + result.BusinessType() );
+    
+    // 鏍规嵁operation涓棿琛�
+    if( isnull( mappingOperation ) ) {
+      result.OrgId( "鏆傛棤" );
+      result.OrganCode( "鏆傛棤" );
+      result.OrganName( "鏆傛棤" );
+      result.DestinationOrganizationID( "鏆傛棤" );
+    } else {
+      result.OrgId( mappingOperation.OrganId() );
+      result.OrganCode( mappingOperation.OrganCode() );
+      result.OrganName( mappingOperation.OrganName() );
+      result.DestinationOrganizationID( mappingOperation.DestinationOrganizationId() );
     }
     
     // 鏍规嵁渚涘簲鍟嗚兘鍔涗腑闂磋〃
-    result.ProviderCode( mappingProviderCapacity );
-    result.ProductName( mappingProviderCapacity );
-    result.LeadTime( 0.0 );
+    if( isnull( mappingProviderCapacity ) ) {
+      result.ProviderCode( "鏆傛棤" );
+      result.ProviderName( "鏆傛棤" );
+      result.LeadTime( 0.0 );
+      result.UnitOfMeasure( "鏆傛棤" );
+    } else {
+      result.ProviderCode( "鏆傛棤" );
+      result.ProviderName( mappingProviderCapacity.ProviderName() );
+      result.LeadTime( mappingProviderCapacity.LeadTime() );
+      result.UnitOfMeasure( mappingProviderCapacity.UnitOfMeasureName() );
+    }
     
     // 鏍规嵁erp鎺ュ彛 鍥哄畾鍊�
     result.RequisitionType( "PURCHASE" );
@@ -76,21 +94,25 @@
     result.LineTypeId( "1" );
     result.LineType( "璐х墿" );
     // 鏍规嵁erp鎺ュ彛 todo
-    result.PreparerId( erpData );
-    result.HeaderDescription( erpData );
-    result.DestinationOrganizationID( erpData );
-    result.DeliverToRequestorId( erpData );
-    result.LineAttribute1( erpData );
-    result.LineAttribute6( erpData );
-    result.OrgId( erpData );
+    result.LineAttribute1( "" );
+    result.LineAttribute3( "" );
+    result.LineAttribute6( "" );
     
-    // 鐢熸垚id todo
-    result.DataID( [String]Number::Random( Number::MinNumber(), Number::MaxNumber() ) );
+    // 鐢ㄦ埛id/name
+    result.PreparerId( userId );
+    result.HeaderDescription( userId );
+    result.DeliverToRequestorId( result.PreparerId() );
+    
+    // 鐢熸垚id
+    cnv := DateTimeToString::StandardConverter();
+    cnv.SetCustomConversion();
+    cnv.CustomFormatString( "yyyyMMdd_H:mm:ss" );
+    result.DataID( cnv.Convert( DateTime::ActualTime() ) + "_" + [String]Number::Random( Number::MinNumber(), Number::MaxNumber() ) );
     
     // 鍙戦�佷俊鎭�
-    result.SendStatus( "" );
-    result.SendBy( "" );
-    result.SendTime( DateTime::MinDateTime() );
+    result.PRReleaseStatus( "" );
+    result.CreateBy( "" );
+    result.CreateTime( DateTime::MinDateTime() );
     
     return result;
   *]
diff --git a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
index f011f1d..7c5d308 100644
--- a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
@@ -3,15 +3,11 @@
 StaticMethod FromSupplyPlanning (
   GlobalOTDTable otdTable,
   MacroPlan macroPlan,
-  MacroPlan mappingRoot,
-  String mrpCalverNo
+  String mrpCalverNo,
+  String userId
 )
 {
-  Description:
-  [*
-    SupplyPlanning杞琍RData
-    todo 淇敼mappingRoot涓篗PSync
-  *]
+  Description: 'SupplyPlanning杞琍RData'
   TextBody:
   [*
     // yypsybs Sep-12-2023 (created)
@@ -21,7 +17,7 @@
     if( isnull( oldRecords ) or oldRecords.Size() = 0 ) {
       pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo );
       traverse( pispips, Elements, item, item.NewSupplyQuantity() > 0 ) {
-        PRData::FromSupplyPlanning( otdTable, macroPlan, mappingRoot, item );
+        PRData::FromSupplyPlanning( otdTable, macroPlan, item, userId );
       }
     }
   *]
diff --git a/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl b/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
index 07623b4..4480363 100644
--- a/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
@@ -10,7 +10,7 @@
     result := "";
     
     productIds := selectuniquevalues( toChecks, Elements, item, 
-                                      (item.ProduceRequiredDate() - Duration::Days( 14 )).Date() > Date::Today() and item.SendStatus() = "", 
+                                      (item.DeliveryDate() - Duration::Days( 14 )).Date() > Date::Today() and item.PRReleaseStatus() = "", 
                                       item.ProductID() ); 
     productIds := selectsortedset( productIds, Elements, item, item );
     
diff --git a/_Main/BL/Type_PRData/StaticMethod_TestData.qbl b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl
index 0cbffa7..9a07ba5 100644
--- a/_Main/BL/Type_PRData/StaticMethod_TestData.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl
@@ -6,23 +6,23 @@
 {
   TextBody:
   [*
-    // yypsybs Sep-12-2023 (created)
-    if( selectset( macroPlan, PRData, item, true ).Size() = 0 ) {
-      info( "======== Create PR Test Data ========" );
-      for( i := 0; i < 100; i := i + 1 ) {
-        macroPlan.PRData( relnew,
-                          MRPCalverNo := [String]Number::Random( 1, Number::MaxNumber() ),
-                          BusinessType := [String]Number::Random( 1, Number::MaxNumber() ),
-                          OrganCode := [String]Number::Random( 1, Number::MaxNumber() ),
-                          ProductID := [String]Number::Random( 1, Number::MaxNumber() ),
-                          StockingPointID := [String]Number::Random( 1, Number::MaxNumber() ),
-                          Quantity := Number::Random( 1, Number::MaxNumber() ),
-                          ProduceRequiredDate := Date::Construct( 2023,
-                                                                  Number::Random( 9, 12 ),
-                                                                  Number::Random( 13, 28 ) ),
-                          DataID := [String]Number::Random( 1, Number::MaxNumber() ), 
-                          SendStatus := ifexpr( Number::Random( 1, 5 ) = 1, "宸插彂閫�", "" ) );     
-      }
-    }
+    //// yypsybs Sep-12-2023 (created)
+    //if( selectset( macroPlan, PRData, item, true ).Size() = 0 ) {
+    //  info( "======== Create PR Test Data ========" );
+    //  for( i := 0; i < 100; i := i + 1 ) {
+    //    macroPlan.PRData( relnew,
+    //                      MRPCalverNo := [String]Number::Random( 1, Number::MaxNumber() ),
+    //                      BusinessType := [String]Number::Random( 1, Number::MaxNumber() ),
+    //                      OrganCode := [String]Number::Random( 1, Number::MaxNumber() ),
+    //                      ProductID := [String]Number::Random( 1, Number::MaxNumber() ),
+    //                      StockingPointID := [String]Number::Random( 1, Number::MaxNumber() ),
+    //                      Quantity := Number::Random( 1, Number::MaxNumber() ),
+    //                      DeliveryDate := Date::Construct( 2023,
+    //                                                              Number::Random( 9, 12 ),
+    //                                                              Number::Random( 13, 28 ) ),
+    //                      DataID := [String]Number::Random( 1, Number::MaxNumber() ), 
+    //                      PRReleaseStatus := ifexpr( Number::Random( 1, 5 ) = 1, "宸插彂閫�", "" ) );     
+    //  }
+    //}
   *]
 }
diff --git "a/_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl" "b/_Main/BL/Type_PRHistoryData/Attribute_DeliveryDate\043168.qbl"
similarity index 85%
rename from "_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl"
rename to "_Main/BL/Type_PRHistoryData/Attribute_DeliveryDate\043168.qbl"
index 56336a7..0df18fa 100644
--- "a/_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl"
+++ "b/_Main/BL/Type_PRHistoryData/Attribute_DeliveryDate\043168.qbl"
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute ProduceRequiredDate
+Attribute DeliveryDate
 {
   #keys: '3[414384.0.795671764][414384.0.795671763][414384.0.795671765]'
   Description: '闇�姹傛棩鏈�/浜よ揣鏃ユ湡'
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl
deleted file mode 100644
index 02d0158..0000000
--- a/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl
+++ /dev/null
@@ -1,7 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute PreparerID
-{
-  #keys: '3[414384.0.789498615][414384.0.789498614][414384.0.789498616]'
-  ValueType: String
-}
diff --git "a/_Main/BL/Type_PRHistoryData/Attribute_PreparerId\043603.qbl" "b/_Main/BL/Type_PRHistoryData/Attribute_PreparerId\043603.qbl"
index f668e7c..b106955 100644
--- "a/_Main/BL/Type_PRHistoryData/Attribute_PreparerId\043603.qbl"
+++ "b/_Main/BL/Type_PRHistoryData/Attribute_PreparerId\043603.qbl"
@@ -1,6 +1,6 @@
 Quintiq file version 2.0
 #parent: #root
-Attribute PreparerId
+Attribute PreparerID
 {
   #keys: '3[414384.0.795671570][414384.0.795671569][414384.0.795671571]'
   ValueType: String
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
index dea5e41..edd753d 100644
--- a/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
+++ b/_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
@@ -42,7 +42,7 @@
     traverse ( toExportList, Elements, toExport ) {
       PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "闆朵欢鍙�" );
       PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "闆朵欢鍚嶇О" );
-      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "浜よ揣鏃ユ湡" );
+      PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.DeliveryDate() = Date::MinDate(), "", dateToString.Convert( toExport.DeliveryDate() ) ), "浜よ揣鏃ユ湡" );
       PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "闇�姹傛暟閲�" );
       PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP璁$畻鐗堟湰鍙�" );
       PRHistoryData::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "浜嬩笟閮�" );
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl
index 5733d45..c732ec7 100644
--- a/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl
+++ b/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl
@@ -10,7 +10,7 @@
     result := "";
     
     productIds := selectuniquevalues( toChecks, Elements, item, 
-                                      (item.ProduceRequiredDate() - Duration::Days( 14 )).Date() > Date::Today() and item.SendStatus() = "", 
+                                      (item.DeliveryDate() - Duration::Days( 14 )).Date() > Date::Today() and item.SendStatus() = "", 
                                       item.ProductID() ); 
     productIds := selectsortedset( productIds, Elements, item, item );
     
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl
index 482800c..9969b74 100644
--- a/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl
+++ b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl
@@ -12,14 +12,16 @@
     result := construct( ProductInStockingPointInPeriods );
     if( mrpCalverNo <> "" ) {
       result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip,
-                         pispip.ProductInStockingPoint_MP().Product_MP().ID().StartsWith( "E" )
-                         and pispip.MRPCalverNo() = mrpCalverNo 
+                           pispip.ProductInStockingPoint_MP().Product_MP().ID().StartsWith( "E" )
+                           and pispip.MRPCalverNo() = mrpCalverNo 
                            );
     } else {
+      // 娴嬭瘯鐢ㄩ�昏緫锛屾甯镐笉搴旇璧�
       result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip,
-                         true
+                           true
                            );
     }
+    info( "GetByMRPCalverNo : " + [String]result.Size() );
     return &result;
   *]
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
index 532ab58..71d7cf7 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
@@ -27,7 +27,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductName","title":"ProductName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsPannelMaterial","title":"IsPannelMaterial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsPannelMaterial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProduceRequiredDate","title":"ProduceRequiredDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProduceRequiredDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PRSuggestionDate","title":"PRSuggestionDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PRSuggestionDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLongLeadItem","title":"IsLongLeadItem","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLongLeadItem"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsGenericMaterial","title":"IsGenericMaterial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsGenericMaterial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialMRPType","title":"MaterialMRPType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialMRPType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LeadTime","title":"LeadTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LeadTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderCode","title":"ProviderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderName","title":"ProviderName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure","title":"UnitOfMeasure","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasure"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendStatus","title":"SendStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendTimeString","title":"SendTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SendTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendBy","title":"SendBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendBy"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductName","title":"ProductName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DeliveryDate","title":"DeliveryDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DeliveryDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PRSuggestionDate","title":"PRSuggestionDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PRSuggestionDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLongLeadItem","title":"IsLongLeadItem","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLongLeadItem"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsGenericMaterial","title":"IsGenericMaterial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsGenericMaterial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialMRPType","title":"MaterialMRPType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialMRPType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LeadTime","title":"LeadTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LeadTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderCode","title":"ProviderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderName","title":"ProviderName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure","title":"UnitOfMeasure","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasure"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PRReleaseStatus","title":"PRReleaseStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PRReleaseStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CreateTimeString","title":"CreateTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"CreateTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CreateBy","title":"CreateBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CreateBy"}}]'
         ContextMenu: 'listContextMenuPRData'
         SortCriteria: 'BusinessType;MRPCalverNo'
         Taborder: 1
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
index db7b6a3..69a46cd 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
@@ -7,7 +7,7 @@
   DefinitionID: 'Responsedef_WebButton_OnClick'
   Precondition:
   [*
-    return not isnull( GlobalOTDTable );
+    return not isnull( GlobalOTDTable ) and not isnull( MacroPlan );
   *]
   QuillAction
   {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def
index 0c4edde..7962175 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def
@@ -5,12 +5,16 @@
   #keys: '[414384.0.859141084]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
   QuillAction
   {
     Body:
     [*
       MacroPlan.PRData( relflush );
-      PRData::FromSupplyPlanning( GlobalOTDTable, MacroPlan, MacroPlan, "" );
+      PRData::FromSupplyPlanning( GlobalOTDTable, MacroPlan, "", ApplicationMacroPlanner.GetUserName() );
     *]
     GroupServerCalls: false
   }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
index 3c6f90b..fe57fb1 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
@@ -27,7 +27,7 @@
       ]
       Properties:
       [
-        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductName","title":"ProductName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProduceRequiredDate","title":"ProduceRequiredDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProduceRequiredDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderCode","title":"ProviderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderName","title":"ProviderName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure","title":"UnitOfMeasure","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasure"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendStatus","title":"SendStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendTimeString","title":"SendTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReleaseBy","title":"ReleaseBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReleaseBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveTimeString","title":"ReceiveTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveStatus","title":"ReceiveStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveError","title":"ReceiveError","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveError"}}]'
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DataID","title":"DataID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DataID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductName","title":"ProductName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DeliveryDate","title":"DeliveryDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DeliveryDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderCode","title":"ProviderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProviderName","title":"ProviderName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProviderName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure","title":"UnitOfMeasure","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasure"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PreparerID","title":"PreparerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PreparerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendStatus","title":"SendStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendTimeString","title":"SendTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SendTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReleaseBy","title":"ReleaseBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReleaseBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveStatus","title":"ReceiveStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveTimeString","title":"ReceiveTimeString","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ReceiveTimeString"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveError","title":"ReceiveError","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveError"}}]'
         ContextMenu: 'listContextMenuPRHistoryData'
         SortCriteria: 'BusinessType;MRPCalverNo'
         Taborder: 1
diff --git a/_Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw b/_Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
new file mode 100644
index 0000000..901e27f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+{
+  viewcontents
+  {
+    image: 'CHART_HI_LO'
+    page: 'ActionBarPageScenarioComparison'
+    group: ''
+    index: 0
+    description: ''
+  }
+  formatversion: 2
+  id: 'Capacity___sale_budge'
+  name: 'Capacity & sale budge'
+  isglobal: false
+  isroot: true
+}
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
index c31c665..780f9e5 100644
--- a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
+++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/Capacity___sale_budge.vw
@@ -191,10 +191,10 @@
     userconfigurableinformation
     {
     }
+    index: 0
     image: 'CHART_HI_LO'
     page: 'ActionBarPageScenarioComparison'
     group: ''
-    index: 0
     description: ''
   }
   formatversion: 2
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/PR_DATA.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/PR_DATA.vw
new file mode 100644
index 0000000..daa8c14
--- /dev/null
+++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/PR_DATA.vw
@@ -0,0 +1,428 @@
+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: 100
+            }
+            column_Name
+            {
+              columnId: 'Name'
+              dataPath: 'Name'
+              dataType: 'string'
+              title: '鍚嶇О'
+              index: 1
+              subtotals: ''
+              width: 233
+            }
+            column_ChangedBy
+            {
+              columnId: 'ChangedBy'
+              dataPath: 'ChangedBy'
+              dataType: 'string'
+              title: 'Changed by'
+              index: 2
+              subtotals: ''
+              width: 86
+            }
+            column_ChangedOn
+            {
+              columnId: 'ChangedOn'
+              dataPath: 'ChangedOn'
+              dataType: 'datetime'
+              title: 'Changed on'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            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: 162
+            }
+            column_Importance
+            {
+              columnId: 'Importance'
+              dataPath: 'Importance'
+              dataType: 'string'
+              title: '閲嶈鎬�'
+              index: 2
+              subtotals: ''
+              width: 104
+            }
+            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: 92
+            }
+            column_CreatedOn
+            {
+              columnId: 'CreatedOn'
+              dataPath: 'CreatedOn'
+              dataType: 'datetime'
+              title: 'Created on'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_legacy_4
+      {
+        title: 'Supply chain overview'
+        shown: true
+        componentID: 'FormSupplyChainOverview'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 1
+          rowSpan: 16
+          columnPosition: 6
+          columnSpan: 7
+        }
+        components
+        {
+          FormSupplyChainOverview_PanelToolbar
+          {
+            sizeRatio: 1
+          }
+          FormSupplyChainOverview_PanelSCO
+          {
+            sizeRatio: 1
+          }
+          FormSupplyChainOverview_CustomDrawSCO
+          {
+            forceFitY: false
+            zoomX: 1
+            zoomY: 1
+            forceFitX: false
+            backendState
+            {
+              componentId: 'QLibMacroPlannerWebUI::FormSupplyChainOverview.CustomDrawSCO'
+              state
+              {
+              }
+            }
+          }
+        }
+      }
+      form_FormPRHistoryData
+      {
+        title: 'QTIANMA_JITUAN::FormPRHistoryData'
+        shown: true
+        componentID: 'QTIANMA_JITUAN::FormPRHistoryData'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 17
+          rowSpan: 6
+          columnPosition: 5
+          columnSpan: 7
+        }
+        components
+        {
+          FormPRHistoryData_PanelPRHistoryButton
+          {
+            sizeRatio: 1
+          }
+          FormPRHistoryData_ListPRHistoryData
+          {
+          }
+          FormPRHistoryData_DataSetLevelPRHistoryData
+          {
+            groupDepth: -1
+            column_BusinessType
+            {
+              columnId: 'BusinessType'
+              dataPath: 'BusinessType'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_MRPCalverNo
+            {
+              columnId: 'MRPCalverNo'
+              dataPath: 'MRPCalverNo'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_OrganCode
+            {
+              columnId: 'OrganCode'
+              dataPath: 'OrganCode'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_ProductID
+            {
+              columnId: 'ProductID'
+              dataPath: 'ProductID'
+              dataType: 'string'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_StockingPointID
+            {
+              columnId: 'StockingPointID'
+              dataPath: 'StockingPointID'
+              dataType: 'string'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_SendStatus
+            {
+              columnId: 'SendStatus'
+              dataPath: 'SendStatus'
+              dataType: 'string'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+            column_ReleaseBy
+            {
+              columnId: 'ReleaseBy'
+              dataPath: 'ReleaseBy'
+              dataType: 'string'
+              index: 7
+              subtotals: ''
+              width: 150
+            }
+            column_ReceiveStatus
+            {
+              columnId: 'ReceiveStatus'
+              dataPath: 'ReceiveStatus'
+              dataType: 'string'
+              index: 8
+              subtotals: ''
+              width: 150
+            }
+            column_ReceiveError
+            {
+              columnId: 'ReceiveError'
+              dataPath: 'ReceiveError'
+              dataType: 'string'
+              index: 9
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+      form_FormPRData
+      {
+        title: 'QTIANMA_JITUAN::FormPRData'
+        shown: true
+        componentID: 'QTIANMA_JITUAN::FormPRData'
+        layout
+        {
+          mode: 'open'
+          rowPosition: 17
+          rowSpan: 6
+          columnPosition: 1
+          columnSpan: 4
+        }
+        components
+        {
+          FormPRData_PanelPRDataButton
+          {
+            sizeRatio: 1
+          }
+          FormPRData_ListPRData
+          {
+          }
+          FormPRData_DataSetLevelPRData
+          {
+            groupDepth: -1
+            column_MRPCalverNo
+            {
+              columnId: 'MRPCalverNo'
+              dataPath: 'MRPCalverNo'
+              dataType: 'string'
+              index: 0
+              subtotals: ''
+              width: 150
+            }
+            column_ProductID
+            {
+              columnId: 'ProductID'
+              dataPath: 'ProductID'
+              dataType: 'string'
+              index: 1
+              subtotals: ''
+              width: 150
+            }
+            column_StockingPointID
+            {
+              columnId: 'StockingPointID'
+              dataPath: 'StockingPointID'
+              dataType: 'string'
+              index: 2
+              subtotals: ''
+              width: 150
+            }
+            column_ProduceRequiredDate
+            {
+              columnId: 'ProduceRequiredDate'
+              dataPath: 'ProduceRequiredDate'
+              dataType: 'date'
+              index: 3
+              subtotals: ''
+              width: 150
+            }
+            column_Quantity
+            {
+              columnId: 'Quantity'
+              dataPath: 'Quantity'
+              dataType: 'real'
+              index: 4
+              subtotals: ''
+              width: 150
+            }
+            column_SendStatus
+            {
+              columnId: 'SendStatus'
+              dataPath: 'SendStatus'
+              dataType: 'string'
+              index: 5
+              subtotals: ''
+              width: 150
+            }
+            column_SendBy
+            {
+              columnId: 'SendBy'
+              dataPath: 'SendBy'
+              dataType: 'string'
+              index: 6
+              subtotals: ''
+              width: 150
+            }
+          }
+        }
+      }
+    }
+    userconfigurableinformation
+    {
+    }
+    image: 'WORM'
+    page: 'ActionBarPageData'
+    group: ''
+    index: 0
+    description: 'PR鐢宠'
+  }
+  formatversion: 2
+  id: 'PR_DATA'
+  name: 'PR_DATA'
+  isglobal: false
+  isroot: true
+}

--
Gitblit v1.9.3