From 8fcc77bd33ae72964c0e3cff47d5bb19593c3bc9 Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期三, 13 九月 2023 12:08:34 +0800
Subject: [PATCH] PRcheckbox

---
 _Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl                                                    |   27 ++++
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def                   |   27 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData#844.def                         |    3 
 _Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl                                                           |    2 
 _Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData#633.def                                    |   11 +
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged#635.def |   17 ++
 _Main/BL/Type_PRData/StaticMethod_DoCall.qbl                                                                        |    4 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def                      |   19 +++
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData#1.def                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPRA_OnClick.def   |   28 ++++
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def                                                |   10 +
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def                                       |   24 ++++
 _Main/BL/Type_PRData/StaticMethod_CanCall.qbl                                                                       |   10 +
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged#613.def                  |   17 ++
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def         |    9 +
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def                       |   11 +
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_DataHolderChecked_OnDataChanged.def                |   18 +++
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged.def     |   19 +++
 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData#844.def                                          |    3 
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged#774.def                      |   18 +++
 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def                          |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def                          |   24 ++++
 22 files changed, 293 insertions(+), 14 deletions(-)

diff --git a/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
index 9b9699c..c2aae7d 100644
--- a/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_CanCall.qbl
@@ -8,10 +8,14 @@
   TextBody:
   [*
     // yypsybs Sep-12-2023 (created)
+    info( "CanCall " + [String]toCalls.Size() + " PRs" )
     feedback_o := "";
-    traverse( toCalls, Elements, toCall ) {
-      if( toCall.SendStatus() <> "" ) {
-        feedback_o := "SendStatus must be empty!";
+    if( toCalls.Size() = 0 ) {
+      feedback_o := "No checked PR";
+    } else {
+      havaUnsent := exists( toCalls, Elements, toCall, toCall.SendStatus() = "" );
+      if( not havaUnsent ) {
+        feedback_o := "No unsent PR";
       }
     }
     return feedback_o = "";
diff --git a/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
index 999b5f6..56222b2 100644
--- a/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
+++ b/_Main/BL/Type_PRData/StaticMethod_DoCall.qbl
@@ -9,8 +9,12 @@
   TextBody:
   [*
     // yypsybs Sep-12-2023 (created)
+    info( "DoCall " + [String]toCalls.Size() + " PRs" );
+    nowNo := 1;
     traverse( toCalls, Elements, toCall, toCall.SendStatus() = "" ) {
+      info ( "DoCall " + [String]nowNo + "/" + [String]toCalls.Size() + " PR" );
       toCall.DoCall( globalData, callBy );  
+      nowNo := nowNo + 1;
     }
   *]
 }
diff --git a/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl b/_Main/BL/Type_PRData/StaticMethod_ProductIdOver14Days.qbl
index cfdfd29..07623b4 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(), 
+                                      (item.ProduceRequiredDate() - Duration::Days( 14 )).Date() > Date::Today() and item.SendStatus() = "", 
                                       item.ProductID() ); 
     productIds := selectsortedset( productIds, Elements, item, item );
     
diff --git a/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl b/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl
new file mode 100644
index 0000000..5733d45
--- /dev/null
+++ b/_Main/BL/Type_PRHistoryData/StaticMethod_ProductIdOver14Days.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ProductIdOver14Days (
+  PRHistoryDatas toChecks
+) as String
+{
+  TextBody:
+  [*
+    // yypsybs Sep-12-2023 (created)
+    result := "";
+    
+    productIds := selectuniquevalues( toChecks, Elements, item, 
+                                      (item.ProduceRequiredDate() - Duration::Days( 14 )).Date() > Date::Today() and item.SendStatus() = "", 
+                                      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/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
index dc52b44..dc4c04e 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_ListPRData\043844.def"
@@ -37,7 +37,8 @@
   ]
   Properties:
   [
-    Taborder: 0
+    SelectionCheckboxes: true
+    Taborder: 1
   ]
   ResponseDefinitions:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def
new file mode 100644
index 0000000..29e3432
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelPRDataButton
+{
+  #keys: '[414384.0.798052026]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonSendPR
+    {
+      #keys: '[414384.0.798052096]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'ARROW_RIGHT'
+        Label: 'Send checked PRs'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def"
index 9167a1d..204fe6d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def"
@@ -13,7 +13,7 @@
       [
         Image: 'MEDIA_PLAY_GREEN'
         Taborder: 3
-        Title: 'Call'
+        Title: 'Send selected PRs'
       ]
     }
   ]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged\043774.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged\043774.def"
new file mode 100644
index 0000000..2e992ec
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_DataHolderChecked_OnDataChanged\043774.def"
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderChecked_187
+Response OnDataChanged () id:Response_ListPRData_844_DataHolderChecked_OnDataChanged_774
+{
+  #keys: '[414384.0.799231412]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      //traverse ( this.Data(), Elements, e ) {
+      //  info( "閫変腑鐨勭墿鏂欏彿锛�", e.MatCode() );
+      //}
+    *]
+    GroupServerCalls: false
+  }
+}
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
index 15507d0..8411a9a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuCall_OnClick.def
@@ -18,10 +18,10 @@
     [*
       productIdsOver14Days := PRData::ProductIdOver14Days( selection );
       if( productIdsOver14Days <> "" ) {
-        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁鐜板湪閲婃斁锛�" ) = 0 ) {
+        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁鐜板湪閲婃斁锛燂紙宸查噴鏀剧殑灏嗚璺宠繃锛�" ) = 0 ) {
           PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
         }
-      } else if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵" ) = 0 ) {
+      } else if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵锛堝凡閲婃斁鐨勫皢琚烦杩囷級" ) = 0 ) {
         PRData::DoCall( GlobalOTDTable, selection, ApplicationMacroPlanner.GetUserName() );
       }
     *]
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged\043613.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged\043613.def"
new file mode 100644
index 0000000..20e3571
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged\043613.def"
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListPRData_844
+Response OnUserCheckedChanged () id:Response_ListPRData_844_OnUserCheckedChanged_613
+{
+  #keys: '[414384.0.798051611]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      info( "checked 0 PRs" );
+      DataHolderChecked.Data().Flush();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def
new file mode 100644
index 0000000..5783a47
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_OnUserCheckedChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListPRData_844
+Response OnUserCheckedChanged (
+  structured[PRData] checkeditems
+) id:Response_ListPRData_844_OnUserCheckedChanged
+{
+  #keys: '[414384.0.798051163]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      info( "checked " + [String]checkeditems.Size() + " PRs" );
+      DataHolderChecked.Data( checkeditems.Copy() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def
index 9d7aa42..f626708 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def
@@ -10,9 +10,13 @@
   {
     Body:
     [*
-      MacroPlan.PRData( relflush );
-      GlobalOTDTable.PRHistoryData( relflush );
-      PRData::TestData( MacroPlan );
+      if( not isnull( MacroPlan ) ) {
+        MacroPlan.PRData( relflush );
+        PRData::TestData( MacroPlan );
+      }
+      if( not isnull( GlobalOTDTable ) ) {
+        GlobalOTDTable.PRHistoryData( relflush );
+      }
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def
new file mode 100644
index 0000000..c885be4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonSendPR_OnClick.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: PanelPRDataButton/ButtonSendPR
+Response OnClick () id:Response_PanelPRDataButton_ButtonSendPR_OnClick
+{
+  #keys: '[414384.0.799260793]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return PRData::CanCall( DataHolderChecked.Data(), feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      productIdsOver14Days := PRData::ProductIdOver14Days( DataHolderChecked.Data() );
+      if( productIdsOver14Days <> "" ) {
+        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁鐜板湪閲婃斁锛燂紙宸查噴鏀剧殑灏嗚璺宠繃锛�" ) = 0 ) {
+          PRData::DoCall( GlobalOTDTable, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
+        }
+      } else if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵锛堝凡閲婃斁鐨勫皢琚烦杩囷級" ) = 0 ) {
+        PRData::DoCall( GlobalOTDTable, DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def"
index 6e8c243..7696374 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData\043633.def"
@@ -8,6 +8,17 @@
   Children:
   [
     #child: ListPRData_844
+    #child: PanelPRDataButton
+    Component DataHolderChecked id:DataHolderChecked_187
+    {
+      #keys: '[414384.0.799231414]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[PRData]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
index 4880c4c..1298999 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_ListPRHistoryData\043844.def"
@@ -37,7 +37,8 @@
   ]
   Properties:
   [
-    Taborder: 0
+    SelectionCheckboxes: true
+    Taborder: 1
   ]
   ResponseDefinitions:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def
new file mode 100644
index 0000000..8a0a6c7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component PanelPRHistoryButton
+{
+  #keys: '[414384.0.799483156]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonResendPRA
+    {
+      #keys: '[414384.0.799483157]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'ARROW_RIGHT'
+        Label: 'Resend checked PRs'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_DataHolderChecked_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_DataHolderChecked_OnDataChanged.def
new file mode 100644
index 0000000..06af3f1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_DataHolderChecked_OnDataChanged.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: DataHolderChecked
+Response OnDataChanged () id:Response_FormPRData_DataHolderChecked_OnDataChanged
+{
+  #keys: '[414384.0.799483137]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      //traverse ( this.Data(), Elements, e ) {
+      //  info( "閫変腑鐨勭墿鏂欏彿锛�", e.MatCode() );
+      //}
+    *]
+    GroupServerCalls: false
+  }
+}
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
index 96f99b1..e86c379 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuCall_OnClick.def
@@ -7,15 +7,20 @@
   #keys: '[414384.0.793461657]'
   CanBindMultiple: false
   DefinitionID => /ListPRHistoryData_844/Responsedef_ListPRHistoryData_844_WebMenu_OnClick
-  GroupServerCalls: true
   Initiator: 'MenuCall'
   QuillAction
   {
     Body:
     [*
-      if( WebMessageBox::Question( "鏄惁鍙戦�侀�変腑鐨勬暟鎹紵" ) = 0 ) {
+      productIdsOver14Days := PRHistoryData::ProductIdOver14Days( selection );
+      if( productIdsOver14Days <> "" ) {
+        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁閲嶆柊閲婃斁锛�" ) = 0 ) {
+          PRHistoryData::ReCall( selection, ApplicationMacroPlanner.GetUserName() );
+        }
+      } else if( WebMessageBox::Question( "鏄惁閲嶆柊閲婃斁閫変腑鐨勫唴瀹癸紵" ) = 0 ) {
         PRHistoryData::ReCall( selection, ApplicationMacroPlanner.GetUserName() );
       }
     *]
+    GroupServerCalls: false
   }
 }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged\043635.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged\043635.def"
new file mode 100644
index 0000000..a7ae6e0
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged\043635.def"
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: ListPRHistoryData_844
+Response OnUserCheckedChanged () id:Response_ListPRHistoryData_844_OnUserCheckedChanged_635
+{
+  #keys: '[414384.0.799575492]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      info( "checked 0 PRs" );
+      DataHolderChecked.Data().Flush();
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged.def
new file mode 100644
index 0000000..3e250e5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_OnUserCheckedChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: ListPRHistoryData_844
+Response OnUserCheckedChanged (
+  structured[PRHistoryData] checkeditems
+) id:Response_ListPRHistoryData_844_OnUserCheckedChanged
+{
+  #keys: '[414384.0.799483356]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      info( "checked " + [String]checkeditems.Size() + " PRs" );
+      DataHolderChecked.Data( checkeditems.Copy() );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPRA_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPRA_OnClick.def
new file mode 100644
index 0000000..52c3bd2
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPRA_OnClick.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: PanelPRHistoryButton/ButtonResendPRA
+Response OnClick () id:Response_PanelPRHistoryButton_ButtonResendPRA_OnClick
+{
+  #keys: '[414384.0.799483155]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    info( DataHolderChecked.Data().Size() );
+    return DataHolderChecked.Data().Size() > 0;
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      productIdsOver14Days := PRHistoryData::ProductIdOver14Days( DataHolderChecked.Data() );
+      if( productIdsOver14Days <> "" ) {
+        if( WebMessageBox::Question( "璇ユ壒娆′腑鐨勭墿鏂欏彿" + productIdsOver14Days + "璁㈠崟搴旇鍦�2鍛ㄥ悗閲婃斁锛岃纭鏄惁閲嶆柊閲婃斁锛�" ) = 0 ) {
+          PRHistoryData::ReCall( DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
+        }
+      } else if( WebMessageBox::Question( "鏄惁閲嶆柊閲婃斁閫変腑鐨勫唴瀹癸紵" ) = 0 ) {
+        PRHistoryData::ReCall( DataHolderChecked.Data(), ApplicationMacroPlanner.GetUserName() );
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def
index 5faca7b..379d005 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/_ROOT_Component_FormPRHistoryData.def
@@ -8,6 +8,17 @@
   Children:
   [
     #child: ListPRHistoryData_844
+    #child: PanelPRHistoryButton
+    Component DataHolderChecked
+    {
+      #keys: '[414384.0.799483139]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[PRHistoryData]*'
+      Properties:
+      [
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [

--
Gitblit v1.9.3