From b54140be560648427acd27bec5ea57dc96c6d3fd Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期三, 13 九月 2023 09:53:52 +0800
Subject: [PATCH] Merge branch 'dev_yx_pr' into dev_yx

---
 _Main/BL/Type_PRHistoryData/Attribute_OrganCode.qbl                                                         |    8 
 _Main/BL/Type_PRHistoryData/Attribute_SendTime.qbl                                                          |    8 
 _Main/BL/Type_MappingProduct/Attribute_OrgCode.qbl                                                          |    7 
 _Main/BL/Type_PRHistoryData/Attribute_ProviderCode.qbl                                                      |    8 
 _Main/BL/Type_PRData/Attribute_PreparerId.qbl                                                               |    7 
 _Main/BL/Type_PRData/Attribute_SendTIme.qbl                                                                 |    8 
 _Main/BL/Type_PRData/Attribute_OrgId.qbl                                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData#844.def                                  |  105 ++++
 _Main/BL/Type_PRHistoryData/Attribute_PRDataReleaseDate.qbl                                                 |    8 
 _Main/BL/Type_PRData/Attribute_DestinationOrganizationId.qbl                                                |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData#844.def                 |  105 ++++
 _Main/BL/Type_PRData/StaticMethod_DoCall.qbl                                                                |   16 
 _Main/BL/Relations/Relation_PRData_MacroPlan_MacroPlan_PRData.qbl                                           |   23 
 _Main/BL/Type_PRHistoryData/Attribute_ReleaseBy.qbl                                                         |    8 
 _Main/BL/Type_PRHistoryData/Attribute_LineType.qbl                                                          |    7 
 _Main/BL/Type_PRHistoryData/Attribute_LineTypeId.qbl                                                        |    7 
 _Main/BL/Type_PRData/Attribute_LineType.qbl                                                                 |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_OrganCode.qbl                                                        |    7 
 _Main/BL/Type_PRData/Attribute_DestinationTypeCode.qbl                                                      |    7 
 _Main/BL/Type_ERPResponseOfPR/Attribute_Status.qbl                                                          |    7 
 _Main/BL/Type_PRData/Attribute_InterfaceSourceCode.qbl                                                      |    7 
 _Main/BL/Type_PRData/Attribute_DeliverToRequestorId.qbl                                                     |    7 
 _Main/BL/Type_PRData/Attribute_ProviderCode.qbl                                                             |    8 
 _Main/BL/Type_PRData/Attribute_UnitPrice.qbl                                                                |    7 
 _Main/BL/Type_PRHistoryData/Attribute_OrgId.qbl                                                             |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_MRPCalverNo.qbl                                                      |    7 
 _Main/BL/Type_PRHistoryData/Attribute_PreparerId#603.qbl                                                    |    7 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData#1.def                         |   24 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def                                        |   18 
 _Main/BL/Type_ERPRequestOfPR/Attribute_ProductID.qbl                                                        |    7 
 _Main/BL/Type_PRData/StaticMethod_TestData.qbl                                                              |   28 +
 _Main/BL/Type_PRHistoryData/Attribute_DestinationTypeCode.qbl                                               |    7 
 _Main/BL/Type_PRData/Attribute_MRPCalverNo.qbl                                                              |    8 
 _Main/BL/Type_PRData/Attribute_UnitOfMeasure.qbl                                                            |    8 
 _Main/BL/Type_PRHistoryData/Attribute_ReceiveTime.qbl                                                       |    8 
 _Main/BL/Type_PRHistoryData/DefaultValue_BusinessType.qbl                                                   |    6 
 _Main/BL/Type_PRData/_ROOT_Type_PRData.qbl                                                                  |   10 
 _Main/BL/Type_PRData/Attribute_StockingPointID.qbl                                                          |    8 
 _Main/BL/Type_PRData/Attribute_PlannerCode.qbl                                                              |    8 
 _Main/BL/Type_PRData/Attribute_LineAttribute1.qbl                                                           |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_Quantity.qbl                                                         |    7 
 _Main/BL/Type_PRData/Attribute_BusinessType.qbl                                                             |    8 
 _Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl                                                   |   27 +
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_listActionBarPagePRData#1.def                       |   10 
 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl                                                |   75 ++
 _Main/BL/Type_ERPRequestOfPR/Method_DoCall.qbl                                                              |   58 ++
 _Main/BL/Type_PRData/StaticMethod_CanCall.qbl                                                               |   19 
 _Main/BL/Type_PRHistoryData/_ROOT_Type_PRHistoryData.qbl                                                    |   10 
 _Main/BL/Type_ERPRequestOfPR/Attribute_ProductName.qbl                                                      |    7 
 _Main/BL/Type_PRData/Attribute_DataID.qbl                                                                   |    7 
 _Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate#168.qbl                                           |    8 
 _Main/BL/Type_PRHistoryData/Attribute_ProviderName.qbl                                                      |    8 
 _Main/BL/Type_PRData/Attribute_ProviderName.qbl                                                             |    8 
 _Main/BL/Type_PRHistoryData/Attribute_Quantity.qbl                                                          |    8 
 _Main/BL/Type_PRData/Attribute_Quantity.qbl                                                                 |    8 
 _Main/BL/Type_PRHistoryData/Attribute_BusinessType.qbl                                                      |    8 
 _Main/BL/Type_PRData/Attribute_OrganCode.qbl                                                                |    8 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def                  |   30 +
 _Main/BL/Type_PRHistoryData/Attribute_HeaderDescription#16.qbl                                              |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_ProviderName.qbl                                                     |    7 
 _Main/BL/Type_PRHistoryData/Attribute_ProductID.qbl                                                         |    8 
 _Main/BL/Type_PRData/Attribute_ProductName.qbl                                                              |    8 
 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl                                                    |   27 +
 _Main/BL/Type_PRHistoryData/Method_Recall.qbl                                                               |   29 +
 _Main/BL/Type_PRData/Attribute_ProductID.qbl                                                                |    8 
 _Main/BL/Type_MappingProduct/StaticMethod_GetByProductId.qbl                                                |   17 
 _Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl                              |   17 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def |   21 
 _Main/BL/Type_PRHistoryData/Attribute_DataID.qbl                                                            |    7 
 _Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl                                                      |    8 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listActionBarPagePRHistoryData#1.def      |   10 
 _Main/BL/Type_PRHistoryData/Attribute_LineAttribute6.qbl                                                    |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_UnitOfMeasure.qbl                                                    |    7 
 _Main/BL/Type_PRData/Attribute_LineAttribute6.qbl                                                           |    7 
 _Main/BL/Type_PRData/Attribute_RequisitionType.qbl                                                          |    8 
 _Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData#633.def                            |   16 
 _Main/BL/Type_PRData/Attribute_SendStatus.qbl                                                               |    8 
 _Main/BL/Type_PRHistoryData/Attribute_UnitOfMeasure.qbl                                                     |    8 
 _Main/BL/Type_ERPRequestOfPR/Attribute_ProviderCode.qbl                                                     |    7 
 _Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl                                                        |   27 +
 _Main/BL/Type_ProductInStockingPointInPeriod/Attribute_mrpCalverNo.qbl                                      |    8 
 _Main/BL/Type_PRHistoryData/Attribute_ReceiveError.qbl                                                      |    8 
 _Main/BL/Type_PRHistoryData/Attribute_DeliverToRequestorId.qbl                                              |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_BusinessType.qbl                                                     |    7 
 _Main/BL/Type_ERPRequestOfPR/Attribute_StockingPointID.qbl                                                  |    7 
 _Main/BL/Type_PRHistoryData/Attribute_ReceiveStatus.qbl                                                     |   12 
 _Main/BL/Type_PRData/Attribute_LineTypeId.qbl                                                               |    7 
 _Main/BL/Type_PRHistoryData/StaticMethod_ReCall.qbl                                                         |   15 
 _Main/BL/Type_ERPResponseOfPR/Attribute_ErrorDescription.qbl                                                |    7 
 _Main/BL/Type_PRData/Attribute_SendBy.qbl                                                                   |    8 
 _Main/BL/Type_ERPResponseOfPR/_ROOT_Type_ERPResponseOfPR.qbl                                                |   10 
 _Main/BL/Type_PRHistoryData/Attribute_ProductName.qbl                                                       |    8 
 _Main/BL/Type_ERPRequestOfPR/Attribute_DeliveryDate.qbl                                                     |    7 
 _Main/BL/Type_ERPResponseOfPR/Attribute_DataID.qbl                                                          |    7 
 _Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl                                                        |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def               |   16 
 _Main/BL/Type_ERPRequestOfPR/_ROOT_Type_ERPRequestOfPR.qbl                                                  |    9 
 _Main/BL/Type_PRData/Attribute_PRSuggestionDate.qbl                                                         |    8 
 _Main/BL/Relations/Relation_ERPResponseOfPR_ERPRequestOfPR_ERPRequestOfPR_ERPResponseOfPR.qbl               |   23 
 _Main/BL/Type_ProductInStockingPointInPeriod/_ROOT_Type_ProductInStockingPointInPeriod.qbl                  |    6 
 _Main/BL/Relations/Relation_ERPRequestOfPR_PRHistoryData_PRHistoryData_ERPRequestOfPR.qbl                   |   23 
 _Main/BL/Type_PRHistoryData/Attribute_LineAttribute1.qbl                                                    |    7 
 _Main/BL/Type_PRHistoryData/Attribute_PlannerCode.qbl                                                       |    8 
 _Main/BL/Type_PRHistoryData/Attribute_StockingPointID.qbl                                                   |    8 
 _Main/BL/Type_PRData/Attribute_HeaderDescription.qbl                                                        |    7 
 _Main/BL/Type_PRHistoryData/Attribute_DestinationOrganizationID.qbl                                         |    7 
 _Main/BL/Type_PRData/Attribute_AuthorizationStatus.qbl                                                      |    7 
 _Main/BL/Type_PRHistoryData/Attribute_MRPCalverNo.qbl                                                       |    8 
 _Main/BL/Type_ERPRequestOfPR/Attribute_DataID.qbl                                                           |    7 
 _Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl                   |   23 
 _Main/BL/Type_PRHistoryData/Attribute_SendStatus.qbl                                                        |    8 
 _Main/BL/Type_PRHistoryData/Attribute_AuthorizationStatus.qbl                                               |    7 
 _Main/BL/Type_PRHistoryData/Attribute_RequisitionType.qbl                                                   |    7 
 _Main/BL/Type_PRHistoryData/Attribute_UnitPrice.qbl                                                         |    7 
 _Main/BL/Type_PRData/Method_DoCall.qbl                                                                      |   61 ++
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData#1.def        |   24 
 116 files changed, 1,553 insertions(+), 0 deletions(-)

diff --git a/_Main/BL/Relations/Relation_ERPRequestOfPR_PRHistoryData_PRHistoryData_ERPRequestOfPR.qbl b/_Main/BL/Relations/Relation_ERPRequestOfPR_PRHistoryData_PRHistoryData_ERPRequestOfPR.qbl
new file mode 100644
index 0000000..a08b50e
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ERPRequestOfPR_PRHistoryData_PRHistoryData_ERPRequestOfPR.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ERPRequestOfPR_PRHistoryData_PRHistoryData_ERPRequestOfPR
+{
+  #keys: '1[414384.0.795671693]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide PRHistoryData
+  {
+    #keys: '3[414384.0.795671695][414384.0.795671694][414384.0.795671696]'
+    Cardinality: '0to1'
+    ObjectDefinition: ERPRequestOfPR
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ERPRequestOfPR
+  {
+    #keys: '3[414384.0.795671698][414384.0.795671697][414384.0.795671699]'
+    Cardinality: '0to1'
+    ObjectDefinition: PRHistoryData
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ERPResponseOfPR_ERPRequestOfPR_ERPRequestOfPR_ERPResponseOfPR.qbl b/_Main/BL/Relations/Relation_ERPResponseOfPR_ERPRequestOfPR_ERPRequestOfPR_ERPResponseOfPR.qbl
new file mode 100644
index 0000000..b8c4fe6
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ERPResponseOfPR_ERPRequestOfPR_ERPRequestOfPR_ERPResponseOfPR.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ERPResponseOfPR_ERPRequestOfPR_ERPRequestOfPR_ERPResponseOfPR
+{
+  #keys: '1[414384.0.789498681]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide ERPRequestOfPR
+  {
+    #keys: '3[414384.0.789498683][414384.0.789498682][414384.0.789498684]'
+    Cardinality: '0to1'
+    ObjectDefinition: ERPResponseOfPR
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ERPResponseOfPR
+  {
+    #keys: '3[414384.0.789498686][414384.0.789498685][414384.0.789498687]'
+    Cardinality: '0to1'
+    ObjectDefinition: ERPRequestOfPR
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_PRData_MacroPlan_MacroPlan_PRData.qbl b/_Main/BL/Relations/Relation_PRData_MacroPlan_MacroPlan_PRData.qbl
new file mode 100644
index 0000000..edbf9d7
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PRData_MacroPlan_MacroPlan_PRData.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PRData_MacroPlan_MacroPlan_PRData
+{
+  #keys: '1[414384.0.796031632]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414384.0.796031634][414384.0.796031633][414384.0.796031635]'
+    Cardinality: '0to1'
+    ObjectDefinition: PRData
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide PRData
+  {
+    #keys: '3[414384.0.796031637][414384.0.796031636][414384.0.796031638]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl b/_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl
new file mode 100644
index 0000000..f5e24f8
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PRHistoryData_GlobalOTDTable_GlobalOTDTable_PRHistoryData
+{
+  #keys: '1[414384.0.789498541]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide GlobalOTDTable
+  {
+    #keys: '3[414384.0.789498543][414384.0.789498542][414384.0.789498544]'
+    Cardinality: '0to1'
+    ObjectDefinition: PRHistoryData
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide PRHistoryData
+  {
+    #keys: '3[414384.0.789498546][414384.0.789498545][414384.0.789498547]'
+    Cardinality: '1toN'
+    ObjectDefinition: GlobalOTDTable
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_BusinessType.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..725bf18
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_BusinessType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414384.0.795671721][414384.0.795671720][414384.0.795671722]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_DataID.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_DataID.qbl
new file mode 100644
index 0000000..b65a474
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_DataID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataID
+{
+  #keys: '3[414384.0.795671715][414384.0.795671714][414384.0.795671716]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_DeliveryDate.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_DeliveryDate.qbl
new file mode 100644
index 0000000..eebe4cb
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_DeliveryDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DeliveryDate
+{
+  #keys: '3[414384.0.796031591][414384.0.796031590][414384.0.796031592]'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_MRPCalverNo.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_MRPCalverNo.qbl
new file mode 100644
index 0000000..1c4a6e5
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_MRPCalverNo.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MRPCalverNo
+{
+  #keys: '3[414384.0.795671718][414384.0.795671717][414384.0.795671719]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_OrganCode.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..786259e
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_OrganCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+  #keys: '3[414384.0.795671724][414384.0.795671723][414384.0.795671725]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductID.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductID.qbl
new file mode 100644
index 0000000..ee74e2d
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414384.0.795671727][414384.0.795671726][414384.0.795671728]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductName.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductName.qbl
new file mode 100644
index 0000000..1b0cc8f
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProductName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductName
+{
+  #keys: '3[414384.0.795671730][414384.0.795671729][414384.0.795671731]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderCode.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderCode.qbl
new file mode 100644
index 0000000..765dd3a
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderCode
+{
+  #keys: '3[414384.0.795671733][414384.0.795671732][414384.0.795671734]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderName.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderName.qbl
new file mode 100644
index 0000000..cd62538
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_ProviderName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderName
+{
+  #keys: '3[414384.0.795671736][414384.0.795671735][414384.0.795671737]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_Quantity.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_Quantity.qbl
new file mode 100644
index 0000000..a4f8814
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414384.0.795671742][414384.0.795671741][414384.0.795671743]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_StockingPointID.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..3ccfd33
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414384.0.795671745][414384.0.795671744][414384.0.795671746]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Attribute_UnitOfMeasure.qbl b/_Main/BL/Type_ERPRequestOfPR/Attribute_UnitOfMeasure.qbl
new file mode 100644
index 0000000..bd5f6d8
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Attribute_UnitOfMeasure.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasure
+{
+  #keys: '3[414384.0.795671748][414384.0.795671747][414384.0.795671749]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/Method_DoCall.qbl b/_Main/BL/Type_ERPRequestOfPR/Method_DoCall.qbl
new file mode 100644
index 0000000..516cb90
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/Method_DoCall.qbl
@@ -0,0 +1,58 @@
+Quintiq file version 2.0
+#parent: #root
+Method DoCall () as ERPResponseOfPR
+{
+  TextBody:
+  [*
+    // yypsybs Sep-11-2023 (created)
+    conv := DateTimeToString::StandardConverter();
+    conv.SetCustomConversion();
+    conv.CustomFormatString( 'yyyyMMdd' );
+    
+    requestJSON := JSON::Object();
+    requestJSON.Add( "BusinessType", this.BusinessType() );
+    requestJSON.Add( "DataID", this.DataID() );
+    requestJSON.Add( "DeliveryDate", conv.Convert( this.DeliveryDate().DateTime() ) );
+    requestJSON.Add( "MRPCalverNo", this.MRPCalverNo() );
+    requestJSON.Add( "OrganCode", this.OrganCode() );
+    requestJSON.Add( "ProductID", this.ProductID() );
+    requestJSON.Add( "ProductName", this.ProductName() );
+    requestJSON.Add( "ProvideCode", this.ProviderCode() );
+    requestJSON.Add( "ProviderName", this.ProviderName() );
+    requestJSON.Add( "Quantity", this.Quantity() );
+    requestJSON.Add( "StockingPointID", this.StockingPointID() );
+    requestJSON.Add( "UnitOfMeasure", this.UnitOfMeasure() );
+    
+    requestString := requestJSON.AsString();
+    
+    // 鏋勯�爃ttp璇锋眰 todo
+    httpInterface := HTTPInterface::Create( "127.0.0.1", 443 );
+    httpInterface.URL( "/url" );
+    httpInterface.PostMethod( true );
+    httpInterface.AddHeader( "content-type", "application/json" );
+    
+    // 鍙戦�佽姹�
+    result := null( ERPResponseOfPR );
+    try {
+      httpInterface.Call( requestString );
+      responseString := httpInterface.Result();
+      
+      responseJSON := JSON::Parse( responseString );
+      dataID := responseJSON.Get( "DataID" ).GetString();
+      status := responseJSON.Get( "Status" ).GetString();
+      errorDescription := responseJSON.Get( "ErrorDescription" ).GetString();
+      
+      result := this.ERPResponseOfPR( relnew, 
+                                      DataID := dataID,
+                                      Status := status, 
+                                      ErrorDescription := errorDescription );
+    } onerror {
+      result := this.ERPResponseOfPR( relnew, 
+                                      DataID := this.DataID(),
+                                      Status := "E", 
+                                      ErrorDescription := e.GeneralInformation() );
+    }
+    
+    return result;
+  *]
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl b/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl
new file mode 100644
index 0000000..1c4c527
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/StaticMethod_Create.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Create (
+  PRHistoryData history
+) as ERPRequestOfPR
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    request := history.ERPRequestOfPR( relnew );
+    
+    request.BusinessType( history.BusinessType() );
+    request.DataID( history.DataID() );
+    request.DeliveryDate( history.ProduceRequiredDate() );
+    request.MRPCalverNo( history.MRPCalverNo() );
+    request.OrganCode( history.OrganCode() );
+    request.ProductID( history.ProductID() );
+    request.ProductName( history.ProductName() );
+    request.ProviderCode( history.ProviderCode() );
+    request.ProviderName( history.ProviderName() );
+    request.Quantity( history.Quantity() );
+    request.StockingPointID( history.StockingPointID() );
+    request.UnitOfMeasure( history.UnitOfMeasure() );
+    
+    return request;
+  *]
+}
diff --git a/_Main/BL/Type_ERPRequestOfPR/_ROOT_Type_ERPRequestOfPR.qbl b/_Main/BL/Type_ERPRequestOfPR/_ROOT_Type_ERPRequestOfPR.qbl
new file mode 100644
index 0000000..870620e
--- /dev/null
+++ b/_Main/BL/Type_ERPRequestOfPR/_ROOT_Type_ERPRequestOfPR.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ERPRequestOfPR
+{
+  #keys: '5[414384.0.789498661][414384.0.789498659][0.0.0][414384.0.789498660][414384.0.789498662]'
+  BaseType: Object
+  StructuredName: 'ERPRequestOfPRs'
+}
diff --git a/_Main/BL/Type_ERPResponseOfPR/Attribute_DataID.qbl b/_Main/BL/Type_ERPResponseOfPR/Attribute_DataID.qbl
new file mode 100644
index 0000000..59d1d13
--- /dev/null
+++ b/_Main/BL/Type_ERPResponseOfPR/Attribute_DataID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataID
+{
+  #keys: '3[414384.0.789526160][414384.0.789526159][414384.0.789526161]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPResponseOfPR/Attribute_ErrorDescription.qbl b/_Main/BL/Type_ERPResponseOfPR/Attribute_ErrorDescription.qbl
new file mode 100644
index 0000000..467cf81
--- /dev/null
+++ b/_Main/BL/Type_ERPResponseOfPR/Attribute_ErrorDescription.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ErrorDescription
+{
+  #keys: '3[414384.0.789526180][414384.0.789526179][414384.0.789526181]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPResponseOfPR/Attribute_Status.qbl b/_Main/BL/Type_ERPResponseOfPR/Attribute_Status.qbl
new file mode 100644
index 0000000..b4b5d92
--- /dev/null
+++ b/_Main/BL/Type_ERPResponseOfPR/Attribute_Status.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Status
+{
+  #keys: '3[414384.0.789526170][414384.0.789526169][414384.0.789526171]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ERPResponseOfPR/_ROOT_Type_ERPResponseOfPR.qbl b/_Main/BL/Type_ERPResponseOfPR/_ROOT_Type_ERPResponseOfPR.qbl
new file mode 100644
index 0000000..46d8566
--- /dev/null
+++ b/_Main/BL/Type_ERPResponseOfPR/_ROOT_Type_ERPResponseOfPR.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ERPResponseOfPR
+{
+  #keys: '5[414384.0.787890255][414384.0.787890253][0.0.0][414384.0.787890254][414384.0.787890256]'
+  BaseType: Object
+  Description: 'ERP鍝嶅簲'
+  StructuredName: 'ERPResponseOfPRs'
+}
diff --git a/_Main/BL/Type_MappingProduct/Attribute_OrgCode.qbl b/_Main/BL/Type_MappingProduct/Attribute_OrgCode.qbl
new file mode 100644
index 0000000..6569df8
--- /dev/null
+++ b/_Main/BL/Type_MappingProduct/Attribute_OrgCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrgCode
+{
+  #keys: '3[414384.0.795680117][414384.0.795680116][414384.0.795680118]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_MappingProduct/StaticMethod_GetByProductId.qbl b/_Main/BL/Type_MappingProduct/StaticMethod_GetByProductId.qbl
new file mode 100644
index 0000000..c8ac218
--- /dev/null
+++ b/_Main/BL/Type_MappingProduct/StaticMethod_GetByProductId.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetByProductId (
+  MacroPlan parent,
+  String productId
+) as MappingProduct
+{
+  Description: '鏍规嵁鏂欏彿鏌ヨ褰�'
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    
+    // todo 淇敼parent绫诲瀷
+    value := select( parent, MappingProduct, item, item.ID() = productId );
+    return value;
+  *]
+}
diff --git a/_Main/BL/Type_PRData/Attribute_AuthorizationStatus.qbl b/_Main/BL/Type_PRData/Attribute_AuthorizationStatus.qbl
new file mode 100644
index 0000000..a1befa1
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_AuthorizationStatus.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AuthorizationStatus
+{
+  #keys: '3[414384.0.795671423][414384.0.795671422][414384.0.795671424]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_BusinessType.qbl b/_Main/BL/Type_PRData/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..c1509bf
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414384.0.789498492][414384.0.789498491][414384.0.789498493]'
+  Description: '浜嬩笟閮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_DataID.qbl b/_Main/BL/Type_PRData/Attribute_DataID.qbl
new file mode 100644
index 0000000..0de934b
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_DataID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataID
+{
+  #keys: '3[414384.0.795671476][414384.0.795671475][414384.0.795671477]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_DeliverToRequestorId.qbl b/_Main/BL/Type_PRData/Attribute_DeliverToRequestorId.qbl
new file mode 100644
index 0000000..c527860
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_DeliverToRequestorId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DeliverToRequestorId
+{
+  #keys: '3[414384.0.795671441][414384.0.795671440][414384.0.795671442]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_DestinationOrganizationId.qbl b/_Main/BL/Type_PRData/Attribute_DestinationOrganizationId.qbl
new file mode 100644
index 0000000..7dcd205
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_DestinationOrganizationId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationOrganizationID
+{
+  #keys: '3[414384.0.795671438][414384.0.795671437][414384.0.795671439]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_DestinationTypeCode.qbl b/_Main/BL/Type_PRData/Attribute_DestinationTypeCode.qbl
new file mode 100644
index 0000000..757b0fc
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_DestinationTypeCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationTypeCode
+{
+  #keys: '3[414384.0.795671417][414384.0.795671416][414384.0.795671418]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_HeaderDescription.qbl b/_Main/BL/Type_PRData/Attribute_HeaderDescription.qbl
new file mode 100644
index 0000000..f8359f5
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_HeaderDescription.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute HeaderDescription
+{
+  #keys: '3[414384.0.795671429][414384.0.795671428][414384.0.795671430]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_InterfaceSourceCode.qbl b/_Main/BL/Type_PRData/Attribute_InterfaceSourceCode.qbl
new file mode 100644
index 0000000..1eed5aa
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_InterfaceSourceCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InterfaceSourceCode
+{
+  #keys: '3[414384.0.795671486][414384.0.795671485][414384.0.795671487]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_LineAttribute1.qbl b/_Main/BL/Type_PRData/Attribute_LineAttribute1.qbl
new file mode 100644
index 0000000..cedff75
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_LineAttribute1.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineAttribute1
+{
+  #keys: '3[414384.0.795671444][414384.0.795671443][414384.0.795671445]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_LineAttribute6.qbl b/_Main/BL/Type_PRData/Attribute_LineAttribute6.qbl
new file mode 100644
index 0000000..aafdd40
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_LineAttribute6.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineAttribute6
+{
+  #keys: '3[414384.0.795671447][414384.0.795671446][414384.0.795671448]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_LineType.qbl b/_Main/BL/Type_PRData/Attribute_LineType.qbl
new file mode 100644
index 0000000..4eda40a
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_LineType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineType
+{
+  #keys: '3[414384.0.795671435][414384.0.795671434][414384.0.795671436]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_LineTypeId.qbl b/_Main/BL/Type_PRData/Attribute_LineTypeId.qbl
new file mode 100644
index 0000000..3711238
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_LineTypeId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineTypeId
+{
+  #keys: '3[414384.0.795671432][414384.0.795671431][414384.0.795671433]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_MRPCalverNo.qbl b/_Main/BL/Type_PRData/Attribute_MRPCalverNo.qbl
new file mode 100644
index 0000000..290c6c0
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_MRPCalverNo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MRPCalverNo
+{
+  #keys: '3[414384.0.789498489][414384.0.789498488][414384.0.789498490]'
+  Description: 'MRP璁$畻鐗堟湰鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_OrgId.qbl b/_Main/BL/Type_PRData/Attribute_OrgId.qbl
new file mode 100644
index 0000000..6df4f12
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_OrgId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrgId
+{
+  #keys: '3[414384.0.795671450][414384.0.795671449][414384.0.795671451]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_OrganCode.qbl b/_Main/BL/Type_PRData/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..53ee057
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_OrganCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+  #keys: '3[414384.0.789498495][414384.0.789498494][414384.0.789498496]'
+  Description: '缁勭粐缂栫爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_PRSuggestionDate.qbl b/_Main/BL/Type_PRData/Attribute_PRSuggestionDate.qbl
new file mode 100644
index 0000000..2400d4d
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_PRSuggestionDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PRSuggestionDate
+{
+  #keys: '3[414384.0.789498483][414384.0.789498482][414384.0.789498484]'
+  Description: 'PR寤鸿鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl b/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl
new file mode 100644
index 0000000..44030b3
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_PlannerCode.qbl
@@ -0,0 +1,8 @@
+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_PreparerId.qbl b/_Main/BL/Type_PRData/Attribute_PreparerId.qbl
new file mode 100644
index 0000000..603c300
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_PreparerId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PreparerId
+{
+  #keys: '3[414384.0.795671426][414384.0.795671425][414384.0.795671427]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl b/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl
new file mode 100644
index 0000000..20ef1b2
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_ProduceRequiredDate.qbl
@@ -0,0 +1,8 @@
+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/Attribute_ProductID.qbl b/_Main/BL/Type_PRData/Attribute_ProductID.qbl
new file mode 100644
index 0000000..ebd491e
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414384.0.789498474][414384.0.789498473][414384.0.789498475]'
+  Description: '闆朵欢鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_ProductName.qbl b/_Main/BL/Type_PRData/Attribute_ProductName.qbl
new file mode 100644
index 0000000..d9a9673
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_ProductName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductName
+{
+  #keys: '3[414384.0.789498477][414384.0.789498476][414384.0.789498478]'
+  Description: '闆朵欢鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_ProviderCode.qbl b/_Main/BL/Type_PRData/Attribute_ProviderCode.qbl
new file mode 100644
index 0000000..c4a960b
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_ProviderCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderCode
+{
+  #keys: '3[414384.0.789498498][414384.0.789498497][414384.0.789498499]'
+  Description: '渚涘簲鍟嗕唬鐮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_ProviderName.qbl b/_Main/BL/Type_PRData/Attribute_ProviderName.qbl
new file mode 100644
index 0000000..a96e4e8
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_ProviderName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderName
+{
+  #keys: '3[414384.0.789498501][414384.0.789498500][414384.0.789498502]'
+  Description: '渚涘簲鍟嗗悕绉�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_Quantity.qbl b/_Main/BL/Type_PRData/Attribute_Quantity.qbl
new file mode 100644
index 0000000..93b2a40
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_Quantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414384.0.789498486][414384.0.789498485][414384.0.789498487]'
+  Description: '闇�姹傛暟閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_PRData/Attribute_RequisitionType.qbl b/_Main/BL/Type_PRData/Attribute_RequisitionType.qbl
new file mode 100644
index 0000000..f4b12e0
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_RequisitionType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RequisitionType
+{
+  #keys: '3[414384.0.796031490][414384.0.796031489][414384.0.796031491]'
+  Description: '璋冩帴鍙g敤'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_SendBy.qbl b/_Main/BL/Type_PRData/Attribute_SendBy.qbl
new file mode 100644
index 0000000..71a556e
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_SendBy.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SendBy
+{
+  #keys: '3[414384.0.789498519][414384.0.789498518][414384.0.789498520]'
+  Description: '鍙戦�佷汉'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_SendStatus.qbl b/_Main/BL/Type_PRData/Attribute_SendStatus.qbl
new file mode 100644
index 0000000..7df5d57
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_SendStatus.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SendStatus
+{
+  #keys: '3[414384.0.789498513][414384.0.789498512][414384.0.789498514]'
+  Description: 'PR鏁版嵁鍙戦�佺姸鎬�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_SendTIme.qbl b/_Main/BL/Type_PRData/Attribute_SendTIme.qbl
new file mode 100644
index 0000000..5a26118
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_SendTIme.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SendTIme
+{
+  #keys: '3[414384.0.789498516][414384.0.789498515][414384.0.789498517]'
+  Description: '鍙戦�佹椂闂�'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_PRData/Attribute_StockingPointID.qbl b/_Main/BL/Type_PRData/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..7f33933
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_StockingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414384.0.789498504][414384.0.789498503][414384.0.789498505]'
+  Description: '鏀惰揣搴撳瓨鐐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_UnitOfMeasure.qbl b/_Main/BL/Type_PRData/Attribute_UnitOfMeasure.qbl
new file mode 100644
index 0000000..8f3b3c1
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_UnitOfMeasure.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasure
+{
+  #keys: '3[414384.0.789498507][414384.0.789498506][414384.0.789498508]'
+  Description: '璁¢噺鍗曚綅'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRData/Attribute_UnitPrice.qbl b/_Main/BL/Type_PRData/Attribute_UnitPrice.qbl
new file mode 100644
index 0000000..b22e13d
--- /dev/null
+++ b/_Main/BL/Type_PRData/Attribute_UnitPrice.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitPrice
+{
+  #keys: '3[414384.0.795671420][414384.0.795671419][414384.0.795671421]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_PRData/Method_DoCall.qbl b/_Main/BL/Type_PRData/Method_DoCall.qbl
new file mode 100644
index 0000000..9866803
--- /dev/null
+++ b/_Main/BL/Type_PRData/Method_DoCall.qbl
@@ -0,0 +1,61 @@
+Quintiq file version 2.0
+#parent: #root
+Method DoCall (
+  GlobalOTDTable globalData,
+  String callBy
+) as PRHistoryData
+{
+  Description: '璋冪敤'
+  TextBody:
+  [*
+    // yypsybs Sep-11-2023 (created)
+    result := globalData.PRHistoryData( relnew );
+    
+    // 鐓ф惉閮ㄥ垎
+    result.AuthorizationStatus( this.AuthorizationStatus() );
+    result.BusinessType( this.BusinessType() );
+    result.DataID( this.DataID() );
+    result.DeliverToRequestorId( this.DeliverToRequestorId() );
+    result.DestinationOrganizationID( this.DestinationOrganizationID() );
+    result.DestinationTypeCode( this.DestinationTypeCode() );
+    result.HeaderDescription( this.HeaderDescription() );
+    result.LineAttribute1( this.LineAttribute1() );
+    result.LineAttribute6( this.LineAttribute6() );
+    result.LineType( this.LineType() );
+    result.LineTypeId( this.LineTypeId() );
+    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.ProductID( this.ProductID() );
+    result.ProductName( this.ProductName() );
+    result.ProviderCode( this.ProviderCode() );
+    result.ProviderName( this.ProviderName() );
+    result.Quantity( this.Quantity() );
+    result.RequisitionType( this.RequisitionType() );
+    result.StockingPointID( this.StockingPointID() );
+    result.UnitOfMeasure( this.UnitOfMeasure() );
+    result.UnitPrice( this.UnitPrice() );
+    
+    // 璇锋眰閮ㄥ垎
+    request := ERPRequestOfPR::Create( result );
+    response := request.DoCall();
+    
+    // 鍝嶅簲閮ㄥ垎
+    result.ReceiveError( response.ErrorDescription() );
+    result.ReceiveStatus( response.Status() );
+    result.ReceiveTime( DateTime::Now() );
+    
+    // 涓昏褰曚慨鏀�
+    result.SendStatus( "T" );
+    result.ReleaseBy( callBy );
+    result.SendTime( DateTime::Now() );
+    this.SendStatus( "T" );
+    this.SendTIme( DateTime::Now() );
+    this.SendBy( callBy );
+    
+    return result;
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
new file mode 100644
index 0000000..9b9699c
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CanCall (
+  PRDatas toCalls,
+  output String feedback_o
+) as Boolean
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    feedback_o := "";
+    traverse( toCalls, Elements, toCall ) {
+      if( toCall.SendStatus() <> "" ) {
+        feedback_o := "SendStatus must be empty!";
+      }
+    }
+    return feedback_o = "";
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
new file mode 100644
index 0000000..999b5f6
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod DoCall (
+  GlobalOTDTable globalData,
+  PRDatas toCalls,
+  String callBy
+)
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    traverse( toCalls, Elements, toCall, toCall.SendStatus() = "" ) {
+      toCall.DoCall( globalData, callBy );  
+    }
+  *]
+}
diff --git "a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl"
new file mode 100644
index 0000000..a8478db
--- /dev/null
+++ "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl"
@@ -0,0 +1,75 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FromSupplyPlanning (
+  MacroPlan macroPlan,
+  MacroPlan mappingRoot,
+  ProductInStockingPointInPeriod pispip
+) 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() );
+    // 鎺ュ彛/涓棿琛ㄦ殏鏃�
+    mappingProviderCapacity := "鏆傛棤";
+    erpData := "鏆傛棤";
+    
+    // 鏍规嵁pispip
+    result.MRPCalverNo( pispip.MRPCalverNo() );
+    result.Quantity( pispip.NewSupplyQuantity() );
+    
+    // 鏍规嵁product
+    result.ProductID( product.ID() );
+    result.ProductName( product.Name() );
+    
+    // 鏍规嵁stockingPoint
+    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() ) );
+    
+    // 鏍规嵁product涓棿琛�
+    result.BusinessType( mappingProduct.BusinessType() );
+    result.OrganCode( mappingProduct.OrgCode() );
+    result.UnitOfMeasure( mappingProduct.UnitOfMeasureName() );
+    
+    // 鏍规嵁渚涘簲鍟嗚兘鍔涗腑闂磋〃
+    result.ProviderCode( mappingProviderCapacity );
+    result.ProductName( mappingProviderCapacity );
+    
+    // 鏍规嵁erp鎺ュ彛 鍥哄畾鍊�
+    result.RequisitionType( "PURCHASE" );
+    result.DestinationTypeCode( "INVENTORY" );
+    result.UnitPrice( 1.0 );
+    result.AuthorizationStatus( "INCOMPLETE" );
+    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 );
+    
+    // 鐢熸垚id todo
+    result.DataID( [String]Number::Random( Number::MinNumber(), Number::MaxNumber() ) );
+    
+    // 鍙戦�佷俊鎭�
+    result.SendStatus( "" );
+    result.SendBy( "" );
+    result.SendTIme( DateTime::MinDateTime() );
+    
+    return result;
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
new file mode 100644
index 0000000..356fd18
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod FromSupplyPlanning (
+  MacroPlan macroPlan,
+  MacroPlan mappingRoot,
+  String mrpCalverNo
+)
+{
+  Description:
+  [*
+    SupplyPlanning杞琍RData
+    todo 淇敼mappingRoot涓篗PSync
+  *]
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    // 鎸塎RPCalverNo鏌ワ紝宸叉湁鏃ц褰曟椂涓嶅鐞�
+    oldRecords := selectset( macroPlan, PRData, item,
+                             item.MRPCalverNo() = mrpCalverNo );
+    if( isnull( oldRecords ) or oldRecords.Size() = 0 ) {
+      pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo );
+      traverse( pispips, Elements, item ) {
+        PRData::FromSupplyPlanning( macroPlan, mappingRoot, item );
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl b/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
new file mode 100644
index 0000000..cfdfd29
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ProductIdOver14Days (
+  PRDatas toChecks
+) as String
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    result := "";
+    
+    productIds := selectuniquevalues( toChecks, Elements, item, 
+                                      (item.ProduceRequiredDate() - Duration::Days( 14 )).Date() > Date::Today(), 
+                                      item.ProductID() ); 
+    productIds := selectsortedset( productIds, Elements, item, item );
+    
+    if( productIds.Size() > 0 ) {
+      result := result + productIds.Element( 0 );
+      for( i := 1; i < productIds.Size(); i := i + 1 ) {
+        result := result + ",";
+        result := result + productIds.Element( 0 );
+      }
+    }
+    
+    return result;
+  *]
+}
diff --git a/_Main/BL/Type_PRData/StaticMethod_TestData.qbl b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl
new file mode 100644
index 0000000..c70fa0d
--- /dev/null
+++ b/_Main/BL/Type_PRData/StaticMethod_TestData.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod TestData (
+  MacroPlan macroPlan
+)
+{
+  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, "T", "" ) );     
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PRData/_ROOT_Type_PRData.qbl b/_Main/BL/Type_PRData/_ROOT_Type_PRData.qbl
new file mode 100644
index 0000000..0604c1c
--- /dev/null
+++ b/_Main/BL/Type_PRData/_ROOT_Type_PRData.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type PRData
+{
+  #keys: '5[414384.0.787890167][414384.0.787890165][0.0.0][414384.0.787890166][414384.0.787890168]'
+  BaseType: Object
+  Description: 'PR鏁版嵁'
+  StructuredName: 'PRDatas'
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_AuthorizationStatus.qbl b/_Main/BL/Type_PRHistoryData/Attribute_AuthorizationStatus.qbl
new file mode 100644
index 0000000..46f1680
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_AuthorizationStatus.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute AuthorizationStatus
+{
+  #keys: '3[414384.0.796031550][414384.0.796031549][414384.0.796031551]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_BusinessType.qbl b/_Main/BL/Type_PRHistoryData/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..467ca3b
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_BusinessType.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+  #keys: '3[414384.0.789498626][414384.0.789498625][414384.0.789498627]'
+  Description: '浜嬩笟閮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_DataID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_DataID.qbl
new file mode 100644
index 0000000..29cc2c1
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_DataID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DataID
+{
+  #keys: '3[414384.0.795671680][414384.0.795671679][414384.0.795671681]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_DeliverToRequestorId.qbl b/_Main/BL/Type_PRHistoryData/Attribute_DeliverToRequestorId.qbl
new file mode 100644
index 0000000..cb6715a
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_DeliverToRequestorId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DeliverToRequestorId
+{
+  #keys: '3[414384.0.795671590][414384.0.795671589][414384.0.795671591]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_DestinationOrganizationID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_DestinationOrganizationID.qbl
new file mode 100644
index 0000000..59de4d5
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_DestinationOrganizationID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationOrganizationID
+{
+  #keys: '3[414384.0.795671654][414384.0.795671653][414384.0.795671655]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_DestinationTypeCode.qbl b/_Main/BL/Type_PRHistoryData/Attribute_DestinationTypeCode.qbl
new file mode 100644
index 0000000..8164d21
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_DestinationTypeCode.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DestinationTypeCode
+{
+  #keys: '3[414384.0.795671530][414384.0.795671529][414384.0.795671531]'
+  ValueType: String
+}
diff --git "a/_Main/BL/Type_PRHistoryData/Attribute_HeaderDescription\04316.qbl" "b/_Main/BL/Type_PRHistoryData/Attribute_HeaderDescription\04316.qbl"
new file mode 100644
index 0000000..bb64aa6
--- /dev/null
+++ "b/_Main/BL/Type_PRHistoryData/Attribute_HeaderDescription\04316.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute HeaderDescription
+{
+  #keys: '3[414384.0.796031566][414384.0.796031565][414384.0.796031567]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute1.qbl b/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute1.qbl
new file mode 100644
index 0000000..507ffef
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute1.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineAttribute1
+{
+  #keys: '3[414384.0.795671611][414384.0.795671610][414384.0.795671612]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute6.qbl b/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute6.qbl
new file mode 100644
index 0000000..27ce9eb
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_LineAttribute6.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineAttribute6
+{
+  #keys: '3[414384.0.795671621][414384.0.795671620][414384.0.795671622]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_LineType.qbl b/_Main/BL/Type_PRHistoryData/Attribute_LineType.qbl
new file mode 100644
index 0000000..e70d6d4
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_LineType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineType
+{
+  #keys: '3[414384.0.795671560][414384.0.795671559][414384.0.795671561]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_LineTypeId.qbl b/_Main/BL/Type_PRHistoryData/Attribute_LineTypeId.qbl
new file mode 100644
index 0000000..32f83d7
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_LineTypeId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute LineTypeId
+{
+  #keys: '3[414384.0.795671550][414384.0.795671549][414384.0.795671551]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_MRPCalverNo.qbl b/_Main/BL/Type_PRHistoryData/Attribute_MRPCalverNo.qbl
new file mode 100644
index 0000000..561232d
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_MRPCalverNo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MRPCalverNo
+{
+  #keys: '3[414384.0.787890315][414384.0.787890314][414384.0.787890316]'
+  Description: 'MRP璁$畻鐗堟湰鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_OrgId.qbl b/_Main/BL/Type_PRHistoryData/Attribute_OrgId.qbl
new file mode 100644
index 0000000..fe8ebbd
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_OrgId.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrgId
+{
+  #keys: '3[414384.0.795671631][414384.0.795671630][414384.0.795671632]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_OrganCode.qbl b/_Main/BL/Type_PRHistoryData/Attribute_OrganCode.qbl
new file mode 100644
index 0000000..0e79f9a
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_OrganCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrganCode
+{
+  #keys: '3[414384.0.787890338][414384.0.787890337][414384.0.787890339]'
+  Description: '缁勭粐缂栫爜'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_PRDataReleaseDate.qbl b/_Main/BL/Type_PRHistoryData/Attribute_PRDataReleaseDate.qbl
new file mode 100644
index 0000000..38c2d63
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_PRDataReleaseDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PRDataReleaseDate
+{
+  #keys: '3[414384.0.789526135][414384.0.789526134][414384.0.789526136]'
+  Description: 'PR鏁版嵁鎺ㄩ�佹棩鏈�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_PlannerCode.qbl b/_Main/BL/Type_PRHistoryData/Attribute_PlannerCode.qbl
new file mode 100644
index 0000000..9d920b3
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_PlannerCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PlannerCode
+{
+  #keys: '3[414384.0.787890388][414384.0.787890387][414384.0.787890389]'
+  Description: '鐗╂枡璁″垝鍛�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl
new file mode 100644
index 0000000..02d0158
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_PreparerID.qbl
@@ -0,0 +1,7 @@
+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"
new file mode 100644
index 0000000..f668e7c
--- /dev/null
+++ "b/_Main/BL/Type_PRHistoryData/Attribute_PreparerId\043603.qbl"
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PreparerId
+{
+  #keys: '3[414384.0.795671570][414384.0.795671569][414384.0.795671571]'
+  ValueType: String
+}
diff --git "a/_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl" "b/_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl"
new file mode 100644
index 0000000..606d8a6
--- /dev/null
+++ "b/_Main/BL/Type_PRHistoryData/Attribute_ProduceRequiredDate\043168.qbl"
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProduceRequiredDate
+{
+  #keys: '3[414384.0.795671764][414384.0.795671763][414384.0.795671765]'
+  Description: '闇�姹傛棩鏈�'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ProductID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ProductID.qbl
new file mode 100644
index 0000000..96da3cd
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414384.0.787890275][414384.0.787890274][414384.0.787890276]'
+  Description: '闆朵欢鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ProductName.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ProductName.qbl
new file mode 100644
index 0000000..d522a2b
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ProductName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductName
+{
+  #keys: '3[414384.0.787890295][414384.0.787890294][414384.0.787890296]'
+  Description: '闆朵欢鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ProviderCode.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ProviderCode.qbl
new file mode 100644
index 0000000..e862168
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ProviderCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderCode
+{
+  #keys: '3[414384.0.787890348][414384.0.787890347][414384.0.787890349]'
+  Description: '渚涘簲鍟嗕唬鐮�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ProviderName.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ProviderName.qbl
new file mode 100644
index 0000000..13a8746
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ProviderName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProviderName
+{
+  #keys: '3[414384.0.787890358][414384.0.787890357][414384.0.787890359]'
+  Description: '渚涘簲鍟嗗悕绉�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_Quantity.qbl b/_Main/BL/Type_PRHistoryData/Attribute_Quantity.qbl
new file mode 100644
index 0000000..7684ede
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_Quantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+  #keys: '3[414384.0.787890305][414384.0.787890304][414384.0.787890306]'
+  Description: '闇�姹傛暟閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ReceiveError.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveError.qbl
new file mode 100644
index 0000000..810ac04
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveError.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReceiveError
+{
+  #keys: '3[414384.0.787890454][414384.0.787890453][414384.0.787890455]'
+  Description: '閿欒鎻忚堪'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ReceiveStatus.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveStatus.qbl
new file mode 100644
index 0000000..85ef635
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveStatus.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReceiveStatus
+{
+  #keys: '3[414384.0.787890428][414384.0.787890427][414384.0.787890429]'
+  Description:
+  [*
+    ERP鎺ユ敹鐘舵��
+    S鎴愬姛锛孍澶辫触
+  *]
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ReceiveTime.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveTime.qbl
new file mode 100644
index 0000000..d820c53
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ReceiveTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReceiveTime
+{
+  #keys: '3[414384.0.787890438][414384.0.787890437][414384.0.787890439]'
+  Description: '鎺ユ敹鏃堕棿'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_ReleaseBy.qbl b/_Main/BL/Type_PRHistoryData/Attribute_ReleaseBy.qbl
new file mode 100644
index 0000000..d4f768d
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_ReleaseBy.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ReleaseBy
+{
+  #keys: '3[414384.0.787890418][414384.0.787890417][414384.0.787890419]'
+  Description: '閲婃斁浜�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_RequisitionType.qbl b/_Main/BL/Type_PRHistoryData/Attribute_RequisitionType.qbl
new file mode 100644
index 0000000..02e9c30
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_RequisitionType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RequisitionType
+{
+  #keys: '3[414384.0.795671520][414384.0.795671519][414384.0.795671521]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_SendStatus.qbl b/_Main/BL/Type_PRHistoryData/Attribute_SendStatus.qbl
new file mode 100644
index 0000000..79e1a3f
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_SendStatus.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SendStatus
+{
+  #keys: '3[414384.0.787890398][414384.0.787890397][414384.0.787890399]'
+  Description: '鍙戦�佺姸鎬�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_SendTime.qbl b/_Main/BL/Type_PRHistoryData/Attribute_SendTime.qbl
new file mode 100644
index 0000000..b6c92d6
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_SendTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SendTime
+{
+  #keys: '3[414384.0.787890408][414384.0.787890407][414384.0.787890409]'
+  Description: '鍙戦�佹椂闂�'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_StockingPointID.qbl b/_Main/BL/Type_PRHistoryData/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..6008681
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_StockingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+  #keys: '3[414384.0.787890368][414384.0.787890367][414384.0.787890369]'
+  Description: '鏀惰揣搴撳瓨鐐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_UnitOfMeasure.qbl b/_Main/BL/Type_PRHistoryData/Attribute_UnitOfMeasure.qbl
new file mode 100644
index 0000000..57d63d8
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_UnitOfMeasure.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasure
+{
+  #keys: '3[414384.0.787890378][414384.0.787890377][414384.0.787890379]'
+  Description: '璁¢噺鍗曚綅'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_PRHistoryData/Attribute_UnitPrice.qbl b/_Main/BL/Type_PRHistoryData/Attribute_UnitPrice.qbl
new file mode 100644
index 0000000..06961cf
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Attribute_UnitPrice.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitPrice
+{
+  #keys: '3[414384.0.795671540][414384.0.795671539][414384.0.795671541]'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_PRHistoryData/DefaultValue_BusinessType.qbl b/_Main/BL/Type_PRHistoryData/DefaultValue_BusinessType.qbl
new file mode 100644
index 0000000..1672b03
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/DefaultValue_BusinessType.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: BusinessType
+}
diff --git a/_Main/BL/Type_PRHistoryData/Method_Recall.qbl b/_Main/BL/Type_PRHistoryData/Method_Recall.qbl
new file mode 100644
index 0000000..065fdb0
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/Method_Recall.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+Method ReCall (
+  String callBy
+) as PRHistoryData
+{
+  Description: '閲嶈皟'
+  TextBody:
+  [*
+    // yypsybs Sep-11-2023 (created)
+    result := this.GlobalOTDTable().PRHistoryData( relcopy, this );
+    
+    // 鏇存柊閮ㄥ垎
+    result.PRDataReleaseDate( Date::Today() );
+    result.ReleaseBy( callBy );
+    result.SendTime( DateTime::Now() );
+    
+    // 璇锋眰
+    request := ERPRequestOfPR::Create( result );
+    response := request.DoCall();
+    
+    // 鍝嶅簲閮ㄥ垎
+    result.ReceiveError( response.ErrorDescription() );
+    result.ReceiveStatus( response.Status() );
+    result.ReceiveTime( DateTime::Now() );
+    
+    return result;
+  *]
+}
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_ReCall.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_ReCall.qbl
new file mode 100644
index 0000000..6a89dcc
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/StaticMethod_ReCall.qbl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ReCall (
+  PRHistoryDatas toCalls,
+  String callBy
+)
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    traverse( toCalls, Elements, toCall ) {
+      toCall.ReCall( callBy );  
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PRHistoryData/_ROOT_Type_PRHistoryData.qbl b/_Main/BL/Type_PRHistoryData/_ROOT_Type_PRHistoryData.qbl
new file mode 100644
index 0000000..c1e9e83
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/_ROOT_Type_PRHistoryData.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type PRHistoryData
+{
+  #keys: '5[414384.0.787890172][414384.0.787890170][0.0.0][414384.0.787890171][414384.0.787890173]'
+  BaseType: Object
+  Description: '鍘嗗彶PR鏁版嵁'
+  StructuredName: 'PRHistoryDatas'
+}
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriod/Attribute_mrpCalverNo.qbl b/_Main/BL/Type_ProductInStockingPointInPeriod/Attribute_mrpCalverNo.qbl
new file mode 100644
index 0000000..772e248
--- /dev/null
+++ b/_Main/BL/Type_ProductInStockingPointInPeriod/Attribute_mrpCalverNo.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MRPCalverNo
+{
+  #keys: '3[414384.0.796031432][414384.0.796031431][414384.0.796031433]'
+  Description: 'MRP璁$畻鐗堟湰鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl
new file mode 100644
index 0000000..10c1f0c
--- /dev/null
+++ b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetByMRPCalverNo (
+  MacroPlan parent,
+  String mrpCalverNo
+) as owning ProductInStockingPointInPeriods
+{
+  Description: '鏍规嵁MRP璁$畻鐗堟湰鍙疯幏鍙栧緟澶勭悊鏁版嵁'
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip,
+                         pispip.ProductInStockingPoint_MP().Product_MP().ID().StartsWith( "E" )
+                         and pispip.MRPCalverNo() = mrpCalverNo );
+    return &result;
+  *]
+}
diff --git a/_Main/BL/Type_ProductInStockingPointInPeriod/_ROOT_Type_ProductInStockingPointInPeriod.qbl b/_Main/BL/Type_ProductInStockingPointInPeriod/_ROOT_Type_ProductInStockingPointInPeriod.qbl
new file mode 100644
index 0000000..48d9cd9
--- /dev/null
+++ b/_Main/BL/Type_ProductInStockingPointInPeriod/_ROOT_Type_ProductInStockingPointInPeriod.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ProductInStockingPointInPeriod #extension
+{
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
new file mode 100644
index 0000000..dc52b44
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
@@ -0,0 +1,105 @@
+Quintiq file version 2.0
+Component ListPRData id:ListPRData_844
+{
+  #keys: '[414384.0.789711874]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPRData
+    {
+      #keys: '[414384.0.789711875]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'PRData'
+      ]
+    }
+    Component DataSetLevelPRData
+    {
+      #keys: '[414384.0.789711876]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPRData_1
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"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":"SendStatus","title":"SendStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendBy","title":"SendBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendTIme","title":"SendTIme","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendTIme"}}]'
+        ContextMenu: 'listContextMenuPRData'
+        SortCriteria: 'BusinessType;MRPCalverNo'
+        Taborder: 1
+      ]
+    }
+    #child: listActionBarPagePRData_1
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRData_844_WebMenu_OnClick
+    {
+      #keys: '[414384.0.789711869]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[2651.0.25404553]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRData_844_WebButton_OnClick
+    {
+      #keys: '[414384.0.789711868]'
+      Initiator: 'WebButton'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[6763.0.7953347]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRData_844_WebMenu_OnClick_870
+    {
+      #keys: '[414384.0.789711867]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument checked
+        {
+          #keys: '[6763.0.7953392]'
+          Binding: 'this.Checked()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRData_844_WebButton_OnClick_870
+    {
+      #keys: '[414384.0.789711866]'
+      Initiator: 'WebButton'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument checked
+        {
+          #keys: '[6763.0.7953437]'
+          Binding: 'this.Checked()'
+        }
+      ]
+    }
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listActionBarPagePRData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listActionBarPagePRData\0431.def"
new file mode 100644
index 0000000..166e7ca
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listActionBarPagePRData\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePRData id:listActionBarPagePRData_1
+{
+  #keys: '[414384.0.789711881]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def"
new file mode 100644
index 0000000..9167a1d
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def"
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component listContextMenuPRData id:listContextMenuPRData_1
+{
+  #keys: '[414384.0.789711877]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuCall
+    {
+      #keys: '[414384.0.796101349]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'MEDIA_PLAY_GREEN'
+        Taborder: 3
+        Title: 'Call'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def
new file mode 100644
index 0000000..15507d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: ListPRData_844
+Response OnClick (
+  structured[PRData] selection
+) id:Response_ListPRData_844_MenuCall_OnClick
+{
+  #keys: '[414384.0.793461398]'
+  CanBindMultiple: false
+  DefinitionID => /ListPRData_844/Responsedef_ListPRData_844_WebMenu_OnClick
+  Initiator: 'MenuCall'
+  Precondition:
+  [*
+    return PRData::CanCall( selection, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      productIdsOver14Days := PRData::ProductIdOver14Days( selection );
+      if( productIdsOver14Days <> "" ) {
+        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁鐜板湪閲婃斁锛�" ) = 0 ) {
+          PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
+        }
+      } else if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵" ) = 0 ) {
+        PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def
new file mode 100644
index 0000000..9d7aa42
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+Response OnCreated () id:Response_FormPRData_OnCreated
+{
+  #keys: '[414384.0.793421050]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      MacroPlan.PRData( relflush );
+      GlobalOTDTable.PRHistoryData( relflush );
+      PRData::TestData( MacroPlan );
+    *]
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def"
new file mode 100644
index 0000000..6e8c243
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def"
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPRData
+{
+  #keys: '[414384.0.789711717]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPRData_844
+  ]
+  Properties:
+  [
+    Title: 'PR'
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
new file mode 100644
index 0000000..4880c4c
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
@@ -0,0 +1,105 @@
+Quintiq file version 2.0
+Component ListPRHistoryData id:ListPRHistoryData_844
+{
+  #keys: '[414384.0.789711912]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorPRHistoryData
+    {
+      #keys: '[414384.0.789711913]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'GlobalOTDTable'
+        Source: 'GlobalOTDTable'
+        Taborder: 0
+        Transformation: 'PRHistoryData'
+      ]
+    }
+    Component DataSetLevelPRHistoryData
+    {
+      #keys: '[414384.0.789711914]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuPRHistoryData_1
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MRPCalverNo","title":"MRPCalverNo","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MRPCalverNo"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCode","title":"OrganCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendStatus","title":"SendStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReleaseBy","title":"ReleaseBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReleaseBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SendDate","title":"SendDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SendDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveStatus","title":"ReceiveStatus","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveStatus"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveTime","title":"ReceiveTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReceiveError","title":"ReceiveError","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReceiveError"}}]'
+        ContextMenu: 'listContextMenuPRHistoryData'
+        SortCriteria: 'BusinessType;MRPCalverNo'
+        Taborder: 1
+      ]
+    }
+    #child: listActionBarPagePRHistoryData_1
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRHistoryData_844_WebMenu_OnClick
+    {
+      #keys: '[414384.0.789711907]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[2651.0.25404553]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRHistoryData_844_WebButton_OnClick
+    {
+      #keys: '[414384.0.789711906]'
+      Initiator: 'WebButton'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[6763.0.7953347]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRHistoryData_844_WebMenu_OnClick_799
+    {
+      #keys: '[414384.0.789711905]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument checked
+        {
+          #keys: '[6763.0.7953392]'
+          Binding: 'this.Checked()'
+        }
+      ]
+    }
+    DelegatedResponseDefinition OnClick id:Responsedef_ListPRHistoryData_844_WebButton_OnClick_801
+    {
+      #keys: '[414384.0.789711904]'
+      Initiator: 'WebButton'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument checked
+        {
+          #keys: '[6763.0.7953437]'
+          Binding: 'this.Checked()'
+        }
+      ]
+    }
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listActionBarPagePRHistoryData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listActionBarPagePRHistoryData\0431.def"
new file mode 100644
index 0000000..d27e02c
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listActionBarPagePRHistoryData\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePRHistoryData id:listActionBarPagePRHistoryData_1
+{
+  #keys: '[414384.0.789711919]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 2
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def"
new file mode 100644
index 0000000..fd4d7de
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def"
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component listContextMenuPRHistoryData id:listContextMenuPRHistoryData_1
+{
+  #keys: '[414384.0.789711915]'
+  BaseType: 'listContextMenu'
+  Children:
+  [
+    Component MenuCall id:MenuCall_94
+    {
+      #keys: '[414384.0.793461623]'
+      BaseType: 'WebMenu'
+      Properties:
+      [
+        Image: 'MEDIA_PLAY_GREEN'
+        Taborder: 3
+        Title: 'Call'
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def
new file mode 100644
index 0000000..96f99b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListPRHistoryData_844
+Response OnClick (
+  structured[PRHistoryData] selection
+) id:Response_ListPRHistoryData_844_MenuCall_OnClick
+{
+  #keys: '[414384.0.793461657]'
+  CanBindMultiple: false
+  DefinitionID => /ListPRHistoryData_844/Responsedef_ListPRHistoryData_844_WebMenu_OnClick
+  GroupServerCalls: true
+  Initiator: 'MenuCall'
+  QuillAction
+  {
+    Body:
+    [*
+      if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵" ) = 0 ) {
+        PRHistoryData::ReCall( selection, ApplicationMacroPlanner.GetUserName() );
+      }
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def
new file mode 100644
index 0000000..5faca7b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPRHistoryData
+{
+  #keys: '[414384.0.789711755]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: ListPRHistoryData_844
+  ]
+  Properties:
+  [
+    Title: 'PR History'
+  ]
+}

--
Gitblit v1.9.3