From 13a0b7440abd1cd84eba2b3c6d26e53b5eb86daa Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 26 七月 2024 15:25:35 +0800
Subject: [PATCH] 批量不可用事件删除逻辑修改

---
 Calendars/BL/Relations/Relation_LibCal_ExplicitTimeInterval_LeadingETI_LibCal_ExplicitTimeInterval_.qbl |    1 -
 _Main/BL/Type_LibCal_ExplicitTimeInterval/_ROOT_Type_LibCal_ExplicitTimeInterval.qbl                    |    6 ++++++
 _Main/BL/Type_LibCal_ExplicitTimeInterval/StaticMethod_Delete.qbl                                       |   26 ++++++++++++++++++++++++++
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def  |    2 +-
 4 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/Calendars/BL/Relations/Relation_LibCal_ExplicitTimeInterval_LeadingETI_LibCal_ExplicitTimeInterval_.qbl b/Calendars/BL/Relations/Relation_LibCal_ExplicitTimeInterval_LeadingETI_LibCal_ExplicitTimeInterval_.qbl
index d8bde91..a4b389d 100644
--- a/Calendars/BL/Relations/Relation_LibCal_ExplicitTimeInterval_LeadingETI_LibCal_ExplicitTimeInterval_.qbl
+++ b/Calendars/BL/Relations/Relation_LibCal_ExplicitTimeInterval_LeadingETI_LibCal_ExplicitTimeInterval_.qbl
@@ -19,6 +19,5 @@
     Cardinality: '1toN'
     ObjectDefinition: LibCal_ExplicitTimeInterval
     OwningSide: 'Reference'
-    InterfaceProperties { Accessibility: 'Module' }
   }
 }
diff --git a/_Main/BL/Type_LibCal_ExplicitTimeInterval/StaticMethod_Delete.qbl b/_Main/BL/Type_LibCal_ExplicitTimeInterval/StaticMethod_Delete.qbl
new file mode 100644
index 0000000..b90eafb
--- /dev/null
+++ b/_Main/BL/Type_LibCal_ExplicitTimeInterval/StaticMethod_Delete.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Delete (
+  LibCal_ExplicitTimeIntervals timeIntervals_i
+)
+{
+  TextBody:
+  [*
+    traverse( timeIntervals_i, Elements, eti ){
+      leadingeti := eti.LeadingETI();
+      if( leadingeti.SubscribingETI( relsize ) = 1 ){
+        part     := leadingeti.Participation();
+        if( part.ExplicitTimeInterval( relsize ) = 1 ){
+          part.Event().Delete();
+        }
+        if( not isnull( leadingeti ) ){
+          leadingeti.Delete();
+        }
+      }
+      if( not isnull( leadingeti ) ){
+        eti.Delete();
+      }
+    
+    }
+  *]
+}
diff --git a/_Main/BL/Type_LibCal_ExplicitTimeInterval/_ROOT_Type_LibCal_ExplicitTimeInterval.qbl b/_Main/BL/Type_LibCal_ExplicitTimeInterval/_ROOT_Type_LibCal_ExplicitTimeInterval.qbl
new file mode 100644
index 0000000..4dbbf96
--- /dev/null
+++ b/_Main/BL/Type_LibCal_ExplicitTimeInterval/_ROOT_Type_LibCal_ExplicitTimeInterval.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type LibCal_ExplicitTimeInterval #extension
+{
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def
index d11f369..d401e21 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_ListList_MenuDelete_OnClick.def
@@ -12,7 +12,7 @@
   {
     Body:
     [*
-      LibCal_ExplicitTimeInterval::Delete( selection, true );
+      LibCal_ExplicitTimeInterval::Delete( selection );
     *]
     GroupServerCalls: false
   }

--
Gitblit v1.9.3