From d4240172a64f5582a63946c48782025c1d2f5999 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期四, 29 八月 2024 17:16:34 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev

---
 _Main/BL/InfoMessages.qbl                                                                                                    |    4 
 Calendars/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventCategories.qbl                                               |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorEndTime_OnChanged.def   |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_dsEndDate_OnChanged#478.def              |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelEvent_ddslType_OnSelectionChanged.def            |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelOperation.def                              |   14 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateAll.def                                     |   16 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDatePeriod.def                                  |   15 +
 _Main/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventTypes.qbl                                                        |   14 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnChanged#480.def        |    6 
 _Main/BL/Type_AssemblyOnlinePlanPush/Attribute_ProductFourCode.qbl                                                           |    8 
 Calendars/BL/Type_LibCal_CommonCalendar/StaticMethod_Create.qbl                                                              |    1 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_dsStartDate_OnChanged#384.def          |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnChanged#57.def     |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateEnd.def                                     |   60 ++++
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCreate_ButtonCreate_OnClick#338.def              |    8 
 _Main/BL/Type_WholeShift/Method_CapacityRounding.qbl                                                                         |   34 ++
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelEvent.def                                       |   80 +++++
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCreate.def                                      |   25 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDate.def                                        |   14 +
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate#21.def                                |   15 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateStart.def                                   |   60 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDatePeriod.def                             |   15 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def                                             |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods#368.def                            |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDescription.def                                 |   29 ++
 _Main/BL/Type_LibCal_EventEvent/StaticMethod_DEFAULT_TYPE.qbl                                                                |    2 
 _Main/BL/Type_WholeShift/Method_ProcessingTimeIntervalIsEqualToOneDay.qbl                                                    |    8 
 _Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl                                                           |    4 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCheckAll_ckbIsAllDay_OnChanged.def               |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport#957.def                             |   14 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonInitialize_OnClick.def     |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnInputIdle#529.def      |    6 
 _Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl                                                                 |   11 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def                                 |    5 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonSearch_OnClick.def         |    6 
 _Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl                                                         |    5 
 _Main/BL/Type_LibCal_CalendarRegistry/Method_OnCreate.qbl                                                                    |   14 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCheckAll.def                                    |   27 +
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader#144.def                                  |  214 --------------
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def                                   |    2 
 _Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling3.qbl                                                                 |    5 
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorStartTime_OnChanged.def |    6 
 _Main/BL/Type_LibCal_Event/StaticMethod_ValidDate.qbl                                                                        |   25 +
 _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonHeader_OnClick.def         |    6 
 _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnInputIdle#891.def  |    6 
 46 files changed, 534 insertions(+), 300 deletions(-)

diff --git a/Calendars/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventCategories.qbl b/Calendars/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventCategories.qbl
index b80a79c..a9e0223 100644
--- a/Calendars/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventCategories.qbl
+++ b/Calendars/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventCategories.qbl
@@ -10,5 +10,4 @@
     // Create additional EventCategories.
     LibCal_EventCategory::InitializeEventCategories( this );
   *]
-  InterfaceProperties { Accessibility: 'Module' }
 }
diff --git a/Calendars/BL/Type_LibCal_CommonCalendar/StaticMethod_Create.qbl b/Calendars/BL/Type_LibCal_CommonCalendar/StaticMethod_Create.qbl
index 756354e..48f4ddb 100644
--- a/Calendars/BL/Type_LibCal_CommonCalendar/StaticMethod_Create.qbl
+++ b/Calendars/BL/Type_LibCal_CommonCalendar/StaticMethod_Create.qbl
@@ -5,5 +5,4 @@
 ) as LibCal_CommonCalendar
 {
   TextBody: 'return owner_i.CommonCalendar( relnew );'
-  InterfaceProperties { Accessibility: 'Module' }
 }
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 8ea9b48..75a3a55 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -234,6 +234,10 @@
   {
     DefaultText: 'This date is not within the planned cycle!'
   }
+  InfoMessage MP_LibCal_Event_ValidDateInterval
+  {
+    DefaultText: 'The start date is more than one day away from the end date!'
+  }
   InfoMessage MP_LibCal_Event_ValidDatePeriod
   {
     DefaultText: 'The start date must be less than the end date!'
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_ProductFourCode.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_ProductFourCode.qbl
new file mode 100644
index 0000000..d4adb06
--- /dev/null
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/Attribute_ProductFourCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductFourCode
+{
+  #keys: '3[415136.0.1082964677][415136.0.1082964676][415136.0.1082964678]'
+  Description: '浜у搧4浣嶇爜code'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
index 08cd41e..a06d769 100644
--- a/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -37,14 +37,16 @@
         ordercell          := selectobject( column, AssemblyOnlinePlanCell, ocell, ocell.AssemblyOnlinePlanRow().ProductID() = quantityrow.ProductID() 
                                             and ocell.AssemblyOnlinePlanRow().ProductionLine() = quantityrow.ProductionLine() 
                                             and ocell.AssemblyOnlinePlanRow().Type() = '2' );
+        product            := selectobject( macroplan, Product_MP, product, product.ID() = quantityrow.ProductID() );
     
-        cd                  :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product           := quantityrow.ProductID()
+        cd                  :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product           := product.ID()
                                                                            , PlanningDate            := column.ColumnDate()
                                                                            , PlanningQty             := [Number]cell.Value()
                                                                            , Sequence                := ordercell.Value()
                                                                            , VersionName             := macroplan.ScenarioName()
                                                                            , InterfaceTime           := nowdate
                                                                            , VersionFlag             := versionflag
+                                                                           , ProductFourCode         := product.Notes()
                                                                            );
         loginfo.AssemblyOnlinePlanPPPSPush( relinsert, cd );
       }
diff --git a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
index cf221ac..74fc514 100644
--- a/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
+++ b/_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_ExportTemplate.qbl
@@ -8,8 +8,11 @@
   TextBody:
   [*
     // 鐢勫叞楦� Aug-22-2024 (created)
+    traverse( macroplan, ChangeLossSetting, cls ){
+      macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNr := cls.ChangeLossNr() );
+    }
     value := macroplan.MP_ExportChangeLossSettingsBroker().ExecuteToXLS( isxlsxformat ).AsBinaryValue();
-    
+    macroplan.ChangeLossSettingExcel( relflush );
     return value;
   *]
 }
diff --git a/_Main/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventTypes.qbl b/_Main/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventTypes.qbl
new file mode 100644
index 0000000..09529ad
--- /dev/null
+++ b/_Main/BL/Type_LibCal_CalendarRegistry/Method_InitializeEventTypes.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method InitializeEventTypes
+{
+  TextBody:
+  [*
+    // Always create a general EventCategory.
+    //LibCal_EventCategory::Create( this, LibCal_EventType::DEFAULT_TYPE() );
+    this.EventType( relnew,ID := "blank", Name := LibCal_EventType::DEFAULT_TYPE() );
+    
+    // Create additional EventCategories.
+    //LibCal_EventCategory::InitializeEventCategories( this );
+  *]
+}
diff --git a/_Main/BL/Type_LibCal_CalendarRegistry/Method_OnCreate.qbl b/_Main/BL/Type_LibCal_CalendarRegistry/Method_OnCreate.qbl
new file mode 100644
index 0000000..03114d0
--- /dev/null
+++ b/_Main/BL/Type_LibCal_CalendarRegistry/Method_OnCreate.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnCreate #extension
+{
+  TextBody:
+  [*
+    this.SetTimeZoneID();
+    this.InitializeEventCategories();
+    this.InitializeEventTypes();
+    
+    // Create the CommonCalendar.
+    LibCal_CommonCalendar::Create( this );
+  *]
+}
diff --git a/_Main/BL/Type_LibCal_Event/StaticMethod_ValidDate.qbl b/_Main/BL/Type_LibCal_Event/StaticMethod_ValidDate.qbl
index b96238b..b146f83 100644
--- a/_Main/BL/Type_LibCal_Event/StaticMethod_ValidDate.qbl
+++ b/_Main/BL/Type_LibCal_Event/StaticMethod_ValidDate.qbl
@@ -11,17 +11,24 @@
   [*
     // 鐢勫叞楦� Jul-26-2024 (created)
     feedback_o := '';
-    if( startdate > endtime ){
-      feedback_o := Translations::MP_LibCal_Event_ValidDatePeriod();
-    }
+    if( startdate.IsFinite() and endtime.IsFinite() ){
+      if( startdate > endtime ){
+        feedback_o := Translations::MP_LibCal_Event_ValidDatePeriod();
+      }
+      mindate      := owner.StartOfPlanning().Date();
+      maxdate      := maxobject( owner, Period_MP, period, not period.IsHistorical() and period.TimeUnit() = Translations::MP_GlobalParameters_Day() , period.StartDate() );
     
-    if( not exists( owner, Period_MP, period, not period.IsHistorical() 
-                and period.TimeUnit() = Translations::MP_GlobalParameters_Day() 
-                and period.StartDate() = startdate.Date() 
-                and ( period.EndDate() = endtime.Date() or period.StartDate() = endtime.Date() ) ) ){
-      feedback_o := Translations::MP_LibCal_Event_ValidDate();
+      if( startdate.Date() < mindate or endtime.Date() > maxdate.StartDate() ){
+        feedback_o := Translations::MP_LibCal_Event_ValidDate();
+      }
+    
+      if( ( endtime - startdate ).Days() > 1 ){
+        feedback_o := Translations::MP_LibCal_Event_ValidDateInterval();
+      }
+    
+    }else{
+      feedback_o := "鏃ユ湡闈炴硶";
     }
     return feedback_o = '';
-    //return true;
   *]
 }
diff --git a/_Main/BL/Type_LibCal_EventEvent/StaticMethod_DEFAULT_TYPE.qbl b/_Main/BL/Type_LibCal_EventEvent/StaticMethod_DEFAULT_TYPE.qbl
index 0135391..b832a4a 100644
--- a/_Main/BL/Type_LibCal_EventEvent/StaticMethod_DEFAULT_TYPE.qbl
+++ b/_Main/BL/Type_LibCal_EventEvent/StaticMethod_DEFAULT_TYPE.qbl
@@ -3,5 +3,5 @@
 StaticMethod DEFAULT_TYPE () const declarative remote as String
 {
   Description: 'Can be extended to define the name of the general EventCategory, which will always be created.'
-  TextBody: 'return "绔崍鑺�";'
+  TextBody: 'return "   ";'
 }
diff --git a/_Main/BL/Type_WholeShift/Method_CapacityRounding.qbl b/_Main/BL/Type_WholeShift/Method_CapacityRounding.qbl
index b00c88e..d2cfd98 100644
--- a/_Main/BL/Type_WholeShift/Method_CapacityRounding.qbl
+++ b/_Main/BL/Type_WholeShift/Method_CapacityRounding.qbl
@@ -90,8 +90,34 @@
     //  }
     //  debuginfo( "銆傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘��" );
     //}
+    
+    sourceChangeover := uptb.ChangeoverDuration();
+    targetChangeover := Duration::Zero();
+    
+    debuginfo( "闇�瑕佸渾鏁寸殑鏃堕棿锛堝崟浣嶏細灏忔椂锛�", timeDifference, "    鑰冭檻ChangeOver鏉′欢鍦嗘暣浣垮叾杈惧埌鏁寸彮" );
+    nextUnitPeriodTimeBase := ifexpr( isnull( uptb.Next().astype( UnitPeriodTimeBase ) ), select( uptbs, Elements, tempUPTB, tempUPTB.Start() = uptb.End() ), uptb.Next().astype( UnitPeriodTimeBase ) );
+    while ( timeDifference > 0 and not isnull( nextUnitPeriodTimeBase ) ) {
+      debuginfo( "寮�濮嬪悜鏃堕棿涓猴細", nextUnitPeriodTimeBase.StartDate().Format( "Y-M2-D2" ), "鐨勪骇鑳藉懆鏈熷��" );
+      traverse ( nextUnitPeriodTimeBase, PeriodTaskOperation, pto, guard( pto.Operation().RoutingStep().Routing().Start(), uptb.StartDate() ) <= uptb.StartDate() and
+                                                                   guard( pto.Operation().RoutingStep().Routing().End(), uptb.End().Date() ) >= uptb.End().Date() and
+                                                                   exists( uptb, PeriodTaskOperation.Operation, tempO, tempO = pto.Operation() )                  and
+                                                                   timeDifference > 0 ) {
+        minimumCapacityThatCanBeBorrowed := pto.Quantity() / pto.Operation().Throughput();
+        unifiedProcessingTimeOfRounding := minvalue( timeDifference, minimumCapacityThatCanBeBorrowed ); 
+        debuginfo( "鍓╀綑鍦嗘暣鐨勪骇鑳斤細", timeDifference, "    nextUnitPeriodTimeBase鐨勫綋鍓嶅懆鏈熶换鍔′緵搴旀暟閲忥細", pto.Quantity(), "    鑳藉�熺殑浜ц兘锛�", minimumCapacityThatCanBeBorrowed, " 缁熶竴鍊熺殑浜ц兘锛�", unifiedProcessingTimeOfRounding, "    鍊熶箣鍓峜hangeover鏃堕棿锛�", uptb.ChangeoverDuration() ); 
+        this.UnifiedProcessingOfRoundingLogic( unifiedProcessingTimeOfRounding, uptb, pto, macroPlan ); 
+        targetChangeover := uptb.ChangeoverDuration();
+        timeDifference   := timeDifference - unifiedProcessingTimeOfRounding;                                                 
+      }
+         
+      if ( isnull( nextUnitPeriodTimeBase.Next() ) ) {
+        nextUnitPeriodTimeBase := select( uptbs, Elements, tempUPTB, tempUPTB.Start() = nextUnitPeriodTimeBase.End() );
+      } else {
+        nextUnitPeriodTimeBase := nextUnitPeriodTimeBase.Next().astype( UnitPeriodTimeBase );
+      }
+    }
         
-    debuginfo( "涓嶈�冭檻浠讳綍鏉′欢鍦嗘暣浣垮叾鍒拌揪鏁寸彮" );
+    debuginfo( "闇�瑕佸渾鏁寸殑鏃堕棿锛堝崟浣嶏細灏忔椂锛�", timeDifference, "    涓嶈�冭檻浠讳綍鏉′欢鍦嗘暣浣垮叾鍒拌揪鏁寸彮" );
     nextUnitPeriodTimeBase := ifexpr( isnull( uptb.Next().astype( UnitPeriodTimeBase ) ), select( uptbs, Elements, tempUPTB, tempUPTB.Start() = uptb.End() ), uptb.Next().astype( UnitPeriodTimeBase ) );
     while ( timeDifference > 0 and not isnull( nextUnitPeriodTimeBase ) ) {
       debuginfo( "寮�濮嬪悜鏃堕棿涓猴細", nextUnitPeriodTimeBase.StartDate().Format( "Y-M2-D2" ), "鐨勪骇鑳藉懆鏈熷��" );
@@ -100,7 +126,7 @@
                                                                    timeDifference > 0 ) {
         minimumCapacityThatCanBeBorrowed := pto.Quantity() / pto.Operation().Throughput();
         unifiedProcessingTimeOfRounding := minvalue( timeDifference, minimumCapacityThatCanBeBorrowed ); 
-        debuginfo( "鍓╀綑鍦嗘暣鐨勪骇鑳斤細", timeDifference, "    nextUnitPeriodTimeBase鐨勫綋鍓嶅懆鏈熶换鍔′緵搴旀暟閲忥細", pto.Quantity(), "    鑳藉�熺殑浜ц兘锛�", minimumCapacityThatCanBeBorrowed, " 缁熶竴鍊熺殑浜ц兘锛�", unifiedProcessingTimeOfRounding ); 
+        debuginfo( "鍓╀綑鍦嗘暣鐨勪骇鑳斤細", timeDifference, "    nextUnitPeriodTimeBase鐨勫綋鍓嶅懆鏈熶换鍔′緵搴旀暟閲忥細", pto.Quantity(), "    鑳藉�熺殑浜ц兘锛�", minimumCapacityThatCanBeBorrowed, " 缁熶竴鍊熺殑浜ц兘锛�", unifiedProcessingTimeOfRounding, "    褰撳墠changeover鏃堕棿锛�", uptb.ChangeoverDuration().HoursAsReal() ); 
         this.UnifiedProcessingOfRoundingLogic( unifiedProcessingTimeOfRounding, uptb, pto, macroPlan );  
         timeDifference := timeDifference - unifiedProcessingTimeOfRounding;                                                 
       }
@@ -111,5 +137,9 @@
         nextUnitPeriodTimeBase := nextUnitPeriodTimeBase.Next().astype( UnitPeriodTimeBase );
       }
     }
+    
+    if ( ( targetChangeover - sourceChangeover ).HoursAsReal() > 0.0 ) {
+      this.ZeroCapacityReplenishment( macroPlan, ( targetChangeover - sourceChangeover ).HoursAsReal(), uptb, uptbs );
+    }
   *]
 }
diff --git a/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling3.qbl b/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling3.qbl
index 24624c5..ca698ed 100644
--- a/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling3.qbl
+++ b/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling3.qbl
@@ -7,7 +7,10 @@
 {
   TextBody:
   [*
-    traverse ( uptbs, Elements, uptb, true/*uptb.StartDate() <= Date::Construct( 2024, 4, 23 )*/ ) {
+    traverse ( uptbs, Elements, uptb, 
+               true
+    //           uptb.StartDate() <= Date::Construct( 2024, 5, 8 ) 
+               ) {
       if ( ( uptb.End().Date() - uptb.StartDate() ) > 1 ) {  
     //    debuginfo( "寮�濮嬫椂闂达細", uptb.StartDate().Format( "Y-M2-D2" ), "    缁撴潫鏃堕棿锛�", uptb.End().Date().Format( "Y-M2-D2" ), "    鏃堕棿鍖洪棿锛�", ( uptb.End().Date() - uptb.StartDate() ) );
     //    this.ProcessingTimeIntervalIsGreaterThanOneDay( macroPlan, uptb, uptbs );
diff --git a/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl b/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl
index f1ba88f..2155752 100644
--- a/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl
+++ b/_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl
@@ -10,17 +10,18 @@
   [*
     traverse ( unit, Lane.LaneLeg.Trip, t ) {
       traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 ) {
+        info( pit.Product_MP().ParentID() );
         // 鑾峰彇浜у搧lotsize鍊嶆暟
         lotsize := 1;
-        if ( pit.Product_MP().ParentID().Regex( "缂镐綋" ) ) {
+        if ( pit.Product_MP().ParentID().Regex( "ZKG" ) ) {
           lotsize := macroPlan.CylinderBlock();
-        } else if ( pit.Product_MP().ParentID().Regex( "缂哥洊" ) ) {
+        } else if ( pit.Product_MP().ParentID().Regex( "ZKM" ) ) {
           lotsize := macroPlan.CylinderHead();
-        } else if ( pit.Product_MP().ParentID().Regex( "杩炴潌" ) ) {
+        } else if ( pit.Product_MP().ParentID().Regex( "PL" ) ) {
           lotsize := macroPlan.ConnectingRod();
-        } else if ( pit.Product_MP().ParentID().Regex( "鏇茶酱" ) ) {
+        } else if ( pit.Product_MP().ParentID().Regex( "KW" ) ) {
           lotsize := macroPlan.Crankshaft();
-        } else if ( pit.Product_MP().ParentID().Regex( "鏇茶酱" ) ) {
+        } else if ( pit.Product_MP().ParentID().Regex( "AGW" ) ) {
           lotsize := macroPlan.BalanceAxis();
         }
         
diff --git a/_Main/BL/Type_WholeShift/Method_ProcessingTimeIntervalIsEqualToOneDay.qbl b/_Main/BL/Type_WholeShift/Method_ProcessingTimeIntervalIsEqualToOneDay.qbl
index 1bd90a5..5c3470d 100644
--- a/_Main/BL/Type_WholeShift/Method_ProcessingTimeIntervalIsEqualToOneDay.qbl
+++ b/_Main/BL/Type_WholeShift/Method_ProcessingTimeIntervalIsEqualToOneDay.qbl
@@ -9,7 +9,7 @@
   Description: '澶勭悊鏃堕棿鍖洪棿绛変簬1澶�'
   TextBody:
   [*
-    if ( uptb.UsedCapacity() = uptb.TotalAvailableCapacity() or ( uptb.UtilizationPercentage() * uptb.MaximumLoadPercentage() / 100 ) = 100 or uptb.FreeCapacity().HoursAsReal() = 0 ) { 
+    if ( uptb.UsedCapacity() = uptb.TotalAvailableCapacity() or [Number]( uptb.UtilizationPercentage() * uptb.MaximumLoadPercentage() / 100 ) = 100 or uptb.FreeCapacity().HoursAsReal() = 0 ) { 
       debuginfo( "澶╁凡缁忔槸鏁寸彮锛屾棤闇�澶勭悊锛堜娇鐢ㄤ骇鑳界瓑浜庡彲鐢ㄤ骇鑳斤級" );
     } else if ( uptb.UsedCapacity().HoursAsReal() = 0 ) {
       debuginfo( "澶╁凡缁忔槸鏁寸彮锛屾棤闇�澶勭悊锛堜娇鐢ㄤ骇鑳界瓑浜�0锛�" );
@@ -27,12 +27,12 @@
         }
         debuginfo( ".........." );             
       }
-      //  whetherToFillInZero := false;
+      whetherToFillInZero := false;
       if ( whetherToFillInZero ) {
-        debuginfo( "鎵ц琛ラ浂" );
+        debuginfo( "寮�濮嬫墽琛岃ˉ闆�------------" );
         this.ZeroCapacityReplenishment( macroPlan, uptb.UsedCapacity().HoursAsReal(), uptb, uptbs ); 
       } else {
-        debuginfo( "鎵ц鍦嗘暣" );
+        debuginfo( "寮�濮嬫墽琛屽渾鏁�------------" );
         this.CapacityRounding( macroPlan, uptb.TotalAvailableCapacity().HoursAsReal() - ( uptb.UsedCapacity() + uptb.ChangeoverDuration() ).HoursAsReal(), uptb, uptbs );
       }
     } else {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate.def "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate\04321.def"
similarity index 65%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate\04321.def"
index 4f9ef52..c958c47 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDate\04321.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component PanelDate
+Component PanelDate id:PanelDate_21
 {
-  #keys: '[415136.0.668311160]'
+  #keys: '[415136.0.1066488447]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component DateSelectorStartTime id:DateSelectorStartTime_806
+    Component DateSelectorStartTime
     {
-      #keys: '[415136.0.668311203]'
+      #keys: '[415136.0.1066488448]'
       BaseType: 'WebDateSelector'
       Properties:
       [
@@ -15,9 +15,9 @@
         Taborder: 0
       ]
     }
-    Component DateSelectorEndTime id:DateSelectorEndTime_819
+    Component DateSelectorEndTime
     {
-      #keys: '[415136.0.668311223]'
+      #keys: '[415136.0.1066488449]'
       BaseType: 'WebDateSelector'
       Properties:
       [
@@ -28,7 +28,7 @@
     }
     Component dhDate
     {
-      #keys: '[415136.0.701820404]'
+      #keys: '[415136.0.1066488450]'
       BaseType: 'WebDataHolder'
       Databinding: 'LibCal_SubscriberEventSearch'
       Properties:
@@ -39,7 +39,6 @@
   ]
   Properties:
   [
-    FixedSize: true
     Orientation: 'horizontal'
     Taborder: 0
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDatePeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDatePeriod.def
new file mode 100644
index 0000000..f707a83
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelDatePeriod.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelDatePeriod
+{
+  #keys: '[415136.0.1066488401]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelDate_21
+    #child: PanelPeriods_368
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport\043957.def"
similarity index 71%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport\043957.def"
index 4178267..049a15a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelExport\043957.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component PanelExport
+Component PanelExport id:PanelExport_957
 {
-  #keys: '[415136.0.668311240]'
+  #keys: '[415136.0.1066488539]'
   BaseType: 'WebPanel'
   Children:
   [
-    Component ButtonHeader id:ButtonHeader_763
+    Component ButtonHeader
     {
-      #keys: '[415136.0.668311275]'
+      #keys: '[415136.0.1066488540]'
       BaseType: 'WebButton'
       Properties:
       [
@@ -17,7 +17,7 @@
     }
     Component ButtonInitialize
     {
-      #keys: '[415136.0.670072471]'
+      #keys: '[415136.0.1066488541]'
       BaseType: 'WebButton'
       Properties:
       [
@@ -27,7 +27,7 @@
     }
     Component ButtonSearch
     {
-      #keys: '[415136.0.922435407]'
+      #keys: '[415136.0.1066488542]'
       BaseType: 'WebButton'
       Properties:
       [
@@ -40,6 +40,6 @@
   [
     FixedSize: true
     Orientation: 'horizontal'
-    Taborder: 2
+    Taborder: 0
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def
index 8e47e62..f04ee6a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelHeader.def
@@ -5,9 +5,8 @@
   BaseType: 'WebPanel'
   Children:
   [
-    #child: PanelPeriods
-    #child: PanelDate
-    #child: PanelExport
+    #child: PanelOperation
+    #child: PanelDatePeriod
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelOperation.def
new file mode 100644
index 0000000..42555ef
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelOperation.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelOperation
+{
+  #keys: '[415136.0.1066488485]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelExport_957
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods.def "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods\043368.def"
similarity index 79%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods\043368.def"
index 8e8390c..9ff7f26 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Component_PanelPeriods\043368.def"
@@ -1,13 +1,13 @@
 Quintiq file version 2.0
-Component PanelPeriods
+Component PanelPeriods id:PanelPeriods_368
 {
-  #keys: '[415136.0.667550798]'
+  #keys: '[415136.0.1066488470]'
   BaseType: 'WebPanel'
   Children:
   [
     Component RadioButtonGroupUseForPlanning
     {
-      #keys: '[415136.0.667550833]'
+      #keys: '[415136.0.1066488471]'
       BaseType: 'WebRadioButtonGroup'
       Properties:
       [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorEndTime_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorEndTime_OnChanged.def
similarity index 65%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorEndTime_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorEndTime_OnChanged.def
index eed1c2b..019cd10 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorEndTime_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorEndTime_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelDate/DateSelectorEndTime_819
-Response OnChanged () id:Response_PanelDate_DateSelectorEndTime_OnChanged
+#parent: PanelDate_21/DateSelectorEndTime
+Response OnChanged () id:Response_PanelDate_21_DateSelectorEndTime_OnChanged
 {
-  #keys: '[415136.0.701820524]'
+  #keys: '[415136.0.1066488445]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorStartTime_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorStartTime_OnChanged.def
similarity index 64%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorStartTime_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorStartTime_OnChanged.def
index 5a47dfa..83c68c3 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_DateSelectorStartTime_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelDate_21_DateSelectorStartTime_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelDate/DateSelectorStartTime_806
-Response OnChanged () id:Response_PanelDate_DateSelectorStartTime_OnChanged
+#parent: PanelDate_21/DateSelectorStartTime
+Response OnChanged () id:Response_PanelDate_21_DateSelectorStartTime_OnChanged
 {
-  #keys: '[415136.0.701820445]'
+  #keys: '[415136.0.1066488446]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonHeader_OnClick.def
similarity index 73%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonHeader_OnClick.def
index 63682a2..190a721 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonHeader_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonHeader_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelExport/ButtonHeader_763
-Response OnClick () id:Response_PanelExport_ButtonHeader_OnClick
+#parent: PanelExport_957/ButtonHeader
+Response OnClick () id:Response_PanelExport_957_ButtonHeader_OnClick
 {
-  #keys: '[415136.0.676930317]'
+  #keys: '[415136.0.1066488538]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonInitialize_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonInitialize_OnClick.def
similarity index 67%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonInitialize_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonInitialize_OnClick.def
index 49d35f4..802e479 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonInitialize_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonInitialize_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelExport/ButtonInitialize
-Response OnClick () id:Response_PanelExport_ButtonInitialize_OnClick
+#parent: PanelExport_957/ButtonInitialize
+Response OnClick () id:Response_PanelExport_957_ButtonInitialize_OnClick
 {
-  #keys: '[415136.0.670072520]'
+  #keys: '[415136.0.1066488537]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonSearch_OnClick.def
similarity index 86%
rename from _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def
rename to _Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonSearch_OnClick.def
index 5fc08f4..7542c3f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_ButtonSearch_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCalendarUnavailableEvent/Response_PanelExport_957_ButtonSearch_OnClick.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelExport/ButtonSearch
-Response OnClick () id:Response_PanelExport_ButtonSearch_OnClick
+#parent: PanelExport_957/ButtonSearch
+Response OnClick () id:Response_PanelExport_957_ButtonSearch_OnClick
 {
-  #keys: '[415136.0.922435443]'
+  #keys: '[415136.0.1066488536]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def
index 6568406..f484174 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgEvent/Component_pnlEventType.def
@@ -48,7 +48,6 @@
       ]
       Properties:
       [
-        AllowEmpty: true
         Description: 'dhEvent.Data.EventType'
         DisplayField: 'Name'
         NumberOfColumns: 15
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCheckAll.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCheckAll.def
new file mode 100644
index 0000000..ce2531e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCheckAll.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+Component PanelCheckAll
+{
+  #keys: '[415136.0.1066371294]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ckbIsAllDay
+    {
+      #keys: '[415136.0.1066371441]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        CheckboxType: 'toggle'
+        Label: 'All day'
+        NumberOfColumns: 0
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    MinimumColumns: 5
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCreate.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCreate.def
new file mode 100644
index 0000000..4b66f3f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelCreate.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+Component PanelCreate
+{
+  #keys: '[415136.0.1066371797]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ButtonCreate id:ButtonCreate_71
+    {
+      #keys: '[415136.0.1066371837]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Label: '鏂板'
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    MinimumColumns: 3
+    Taborder: 5
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDate.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDate.def
new file mode 100644
index 0000000..5229ca1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDate.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelDate
+{
+  #keys: '[415136.0.1066371216]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelDateAll
+  ]
+  Properties:
+  [
+    Taborder: 3
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateAll.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateAll.def
new file mode 100644
index 0000000..14302ad
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateAll.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+Component PanelDateAll
+{
+  #keys: '[415136.0.1066371244]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelCheckAll
+    #child: PanelDatePeriod
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateEnd.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateEnd.def
new file mode 100644
index 0000000..4657f4c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateEnd.def
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+Component PanelDateEnd
+{
+  #keys: '[415136.0.1066371591]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dsEndDate id:dsEndDate_384
+    {
+      #keys: '[415136.0.1066371629]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DateFormat: 'DMMY'
+        Label: '缁撴潫鏃ユ湡'
+        Taborder: 0
+      ]
+    }
+    Component dhEndDate id:dhEndDate_791
+    {
+      #keys: '[415136.0.1066371658]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+    Component durEndTimeOfDay id:durEndTimeOfDay_812
+    {
+      #keys: '[415136.0.1066371684]'
+      BaseType: 'WebDurationSelector'
+      Properties:
+      [
+        CanBeNegative: false
+        DurationFormat: 'h:m'
+        Label: '缁撴潫鏃ユ湡'
+        MaxDuration: P0DT23H59M0S
+        MinDuration: P0DT0H0M0S
+        ShowLabel: false
+        Taborder: 2
+      ]
+    }
+    Component dhEndTimeOfDay id:dhEndTimeOfDay_568
+    {
+      #keys: '[415136.0.1066371713]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Duration'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDatePeriod.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDatePeriod.def
new file mode 100644
index 0000000..dac0bfb
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDatePeriod.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelDatePeriod
+{
+  #keys: '[415136.0.1066371451]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: PanelDateStart
+    #child: PanelDateEnd
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateStart.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateStart.def
new file mode 100644
index 0000000..abb683c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDateStart.def
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+Component PanelDateStart
+{
+  #keys: '[415136.0.1066371470]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component dsStartDate id:dsStartDate_646
+    {
+      #keys: '[415136.0.1066371508]'
+      BaseType: 'WebDateSelector'
+      Properties:
+      [
+        DateFormat: 'DMMY'
+        Label: '寮�濮嬫棩鏈�'
+        Taborder: 0
+      ]
+    }
+    Component dhStartDate id:dhStartDate_438
+    {
+      #keys: '[415136.0.1066371532]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Date'
+      Properties:
+      [
+        Taborder: 1
+      ]
+    }
+    Component durStartTimeOfDay id:durStartTimeOfDay_298
+    {
+      #keys: '[415136.0.1066371558]'
+      BaseType: 'WebDurationSelector'
+      Properties:
+      [
+        CanBeNegative: false
+        DurationFormat: 'h:m'
+        Label: '寮�濮嬫棩鏈�'
+        MaxDuration: P0DT23H59M0S
+        MinDuration: P0DT0H0M0S
+        ShowLabel: false
+        Taborder: 2
+      ]
+    }
+    Component dhStartTimeOfDay id:dhStartTimeOfDay_963
+    {
+      #keys: '[415136.0.1066371582]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'Duration'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    Orientation: 'horizontal'
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDescription.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDescription.def
new file mode 100644
index 0000000..6c2b8b6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelDescription.def
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+Component PanelDescription
+{
+  #keys: '[415136.0.1066371732]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component edtDescription id:edtDescription_925
+    {
+      #keys: '[415136.0.1066371769]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'dhEvent.Data.Description'
+        Label: '澶囨敞'
+        MaxRows: 3
+        Multiline: true
+        NumberOfColumns: 15
+        Taborder: 0
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    MinimumColumns: 10
+    Taborder: 4
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelEvent.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelEvent.def
new file mode 100644
index 0000000..7e80a64
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelEvent.def
@@ -0,0 +1,80 @@
+Quintiq file version 2.0
+Component PanelEvent
+{
+  #keys: '[415136.0.1066371130]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    Component ddslType
+    {
+      #keys: '[415136.0.1066371167]'
+      BaseType: 'WebDropDownStringList'
+      Properties:
+      [
+        InitialValue: 'Unavailable'
+        NumberOfColumns: 15
+        ShowLabel: false
+        Sorting: 'none'
+        Strings: 'Available;Unavailable'
+        Taborder: 1
+        Visible: false
+      ]
+    }
+    Component edtName id:edtName_593
+    {
+      #keys: '[415136.0.1066371192]'
+      BaseType: 'WebEditField'
+      Properties:
+      [
+        DataBinding: 'dhEvent.Data.Subject'
+        Label: '浜嬩欢'
+        PlaceHolder: '<Enter a name>'
+        Taborder: 0
+      ]
+    }
+    Component ddlEventType
+    {
+      #keys: '[415136.0.1066371393]'
+      BaseType: 'WebDropDownList'
+      Databinding: 'LibCal_EventType'
+      Children:
+      [
+        Component deEventType
+        {
+          #keys: '[415136.0.1066371394]'
+          BaseType: 'WebDataExtractor'
+          Properties:
+          [
+            DataType: 'structured[LibCal_EventType]'
+            Source: 'dhEventTypes'
+            Taborder: 0
+            Transformation: 'Elements'
+          ]
+        }
+      ]
+      Properties:
+      [
+        DisplayField: 'Name'
+        Label: '浜嬩欢绫诲瀷'
+        NumberOfColumns: 15
+        Taborder: 2
+      ]
+    }
+    Component dhEventTypes
+    {
+      #keys: '[415136.0.1066371418]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[LibCal_EventType]*'
+      Properties:
+      [
+        Taborder: 3
+      ]
+    }
+  ]
+  Properties:
+  [
+    FixedSize: true
+    MinimumColumns: 10
+    Taborder: 2
+  ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader\043144.def" "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader\043144.def"
index 56e3225..85c044e 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader\043144.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_PanelHeader\043144.def"
@@ -5,140 +5,6 @@
   BaseType: 'WebPanel'
   Children:
   [
-    Component edtName
-    {
-      #keys: '[415136.0.647401496]'
-      BaseType: 'WebEditField'
-      Properties:
-      [
-        DataBinding: 'dhEvent.Data.Subject'
-        Label: '浜嬩欢'
-        PlaceHolder: '<Enter a name>'
-        Taborder: 0
-      ]
-    }
-    Component durStartTimeOfDay
-    {
-      #keys: '[415136.0.647401500]'
-      BaseType: 'WebDurationSelector'
-      Properties:
-      [
-        CanBeNegative: false
-        DurationFormat: 'h:m'
-        Label: '寮�濮嬫棩鏈�'
-        MaxDuration: P0DT23H59M0S
-        MinDuration: P0DT0H0M0S
-        ShowLabel: false
-        Taborder: 9
-      ]
-    }
-    Component dhStartTimeOfDay
-    {
-      #keys: '[415136.0.647401501]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Duration'
-      Properties:
-      [
-        Taborder: 10
-      ]
-    }
-    Component durEndTimeOfDay
-    {
-      #keys: '[415136.0.647401506]'
-      BaseType: 'WebDurationSelector'
-      Properties:
-      [
-        CanBeNegative: false
-        DurationFormat: 'h:m'
-        Label: '缁撴潫鏃ユ湡'
-        MaxDuration: P0DT23H59M0S
-        MinDuration: P0DT0H0M0S
-        ShowLabel: false
-        Taborder: 13
-      ]
-    }
-    Component dhEndTimeOfDay
-    {
-      #keys: '[415136.0.647401507]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Duration'
-      Properties:
-      [
-        Taborder: 14
-      ]
-    }
-    Component edtDescription
-    {
-      #keys: '[415136.0.647401509]'
-      BaseType: 'WebEditField'
-      Properties:
-      [
-        DataBinding: 'dhEvent.Data.Description'
-        Label: 'Description'
-        MaxRows: 1
-        Multiline: true
-        NumberOfColumns: 29
-        ShowLabel: false
-        Taborder: 16
-      ]
-    }
-    Component dsStartDate
-    {
-      #keys: '[415136.0.647401510]'
-      BaseType: 'WebDateSelector'
-      Properties:
-      [
-        DateFormat: 'DMMY'
-        Label: '寮�濮嬫棩鏈�'
-        Taborder: 7
-      ]
-    }
-    Component dhStartDate
-    {
-      #keys: '[415136.0.647401511]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Date'
-      Properties:
-      [
-        Taborder: 8
-      ]
-    }
-    Component lblDescription id:lblDescription_456
-    {
-      #keys: '[415136.0.647492310]'
-      BaseType: 'WebLabel'
-      Properties:
-      [
-        Label: '澶囨敞'
-        NumberOfColumns: 0
-        Taborder: 15
-      ]
-    }
-    Component ButtonCreate
-    {
-      #keys: '[415136.0.647262469]'
-      BaseType: 'WebButton'
-      Properties:
-      [
-        Label: '鏂板'
-        Taborder: 17
-      ]
-    }
-    Component ddslType id:ddslType_360
-    {
-      #keys: '[415136.0.646711730]'
-      BaseType: 'WebDropDownStringList'
-      Properties:
-      [
-        InitialValue: 'Unavailable'
-        NumberOfColumns: 15
-        ShowLabel: false
-        Sorting: 'none'
-        Strings: 'Available;Unavailable'
-        Taborder: 1
-        Visible: false
-      ]
-    }
     Component ckbApplyToNewResources id:ckbApplyToNewResources_667
     {
       #keys: '[415136.0.646712077]'
@@ -148,7 +14,7 @@
         DataBinding: 'dhEvent.Data.IsDefault'
         Label: 'Apply to new resources'
         NumberOfColumns: 0
-        Taborder: 4
+        Taborder: 0
         Tooltip: 'If checked, calendars of new resources will automatically subscribe to the event.'
         Visible: false
       ]
@@ -163,83 +29,15 @@
         NumberOfColumns: 0
         ShowLabel: false
         SizeRatio: 0
-        Taborder: 5
+        Taborder: 1
         Text: '<Timezone>'
         Visible: false
       ]
     }
-    Component dhEventTypes id:dhEventTypes_836
-    {
-      #keys: '[415136.0.706740648]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'structured[LibCal_EventType]*'
-      Properties:
-      [
-        Taborder: 2
-      ]
-    }
-    Component ddlEventType id:ddlEventType_568
-    {
-      #keys: '[415136.0.706740548]'
-      BaseType: 'WebDropDownList'
-      Databinding: 'LibCal_EventType'
-      Children:
-      [
-        Component deEventType id:deEventType_393
-        {
-          #keys: '[415136.0.706740549]'
-          BaseType: 'WebDataExtractor'
-          Properties:
-          [
-            DataType: 'structured[LibCal_EventType]'
-            Source: 'dhEventTypes'
-            Taborder: 0
-            Transformation: 'Elements'
-          ]
-        }
-      ]
-      Properties:
-      [
-        AllowEmpty: true
-        DisplayField: 'Name'
-        Label: '浜嬩欢绫诲瀷'
-        NumberOfColumns: 15
-        Taborder: 3
-      ]
-    }
-    Component dsEndDate
-    {
-      #keys: '[415136.0.923680588]'
-      BaseType: 'WebDateSelector'
-      Properties:
-      [
-        DateFormat: 'DMMY'
-        Label: '缁撴潫鏃ユ湡'
-        Taborder: 11
-      ]
-    }
-    Component dhEndDate
-    {
-      #keys: '[415136.0.923671132]'
-      BaseType: 'WebDataHolder'
-      Databinding: 'Date'
-      Properties:
-      [
-        Taborder: 12
-      ]
-    }
-    Component ckbIsAllDay id:ckbIsAllDay_812
-    {
-      #keys: '[415136.0.926885762]'
-      BaseType: 'WebCheckbox'
-      Properties:
-      [
-        CheckboxType: 'toggle'
-        Label: 'All day'
-        NumberOfColumns: 0
-        Taborder: 6
-      ]
-    }
+    #child: PanelCreate
+    #child: PanelDate
+    #child: PanelEvent
+    #child: PanelDescription
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def
index 2b76272..018da76 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Component_pnlSubscribers.def
@@ -53,7 +53,7 @@
   [
     Border: true
     FixedSize: true
-    MinimumColumns: 49
+    MinimumColumns: 40
     Taborder: 1
     Title: 'Subscribers'
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ckbIsAllDay_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCheckAll_ckbIsAllDay_OnChanged.def
similarity index 60%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ckbIsAllDay_OnChanged.def
rename to _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCheckAll_ckbIsAllDay_OnChanged.def
index 2f86201..05c0f6f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ckbIsAllDay_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCheckAll_ckbIsAllDay_OnChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/ckbIsAllDay_812
-Response OnChanged () id:Response_MacroPlanner_pnlStartTime_ckbIsAllDay_OnChanged
+#parent: PanelCheckAll/ckbIsAllDay
+Response OnChanged () id:Response_PanelHeader_144_ckbIsAllDay_OnChanged
 {
-  #keys: '[415136.0.926885761]'
+  #keys: '[415136.0.1066371440]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ButtonCreate_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCreate_ButtonCreate_OnClick\043338.def"
similarity index 79%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ButtonCreate_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCreate_ButtonCreate_OnClick\043338.def"
index 910c38b..1c0872b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ButtonCreate_OnClick.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelCreate_ButtonCreate_OnClick\043338.def"
@@ -1,11 +1,10 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/ButtonCreate
-Response OnClick () id:Response_PanelHeader_144_ButtonCreate_OnClick
+#parent: PanelCreate/ButtonCreate_71
+Response OnClick () id:Response_PanelHeader_144_ButtonCreate_OnClick_338
 {
-  #keys: '[415136.0.654000146]'
+  #keys: '[415136.0.1066371836]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
-  GroupServerCalls: true
   Precondition:
   [*
     return LibCal_Event::ValidDate( feedback, MacroPlan, dhStartDate.Data() + durStartTimeOfDay.Duration(), dhEndDate.Data() + durEndTimeOfDay.Duration() );
@@ -16,5 +15,6 @@
     [*
       Form.OnOK();
     *]
+    GroupServerCalls: false
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsEndDate_OnChanged.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_dsEndDate_OnChanged\043478.def"
similarity index 92%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsEndDate_OnChanged.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_dsEndDate_OnChanged\043478.def"
index 626e3ed..60a636a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsEndDate_OnChanged.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_dsEndDate_OnChanged\043478.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/dsEndDate
-Response OnChanged () id:Response_PanelHeader_144_dsEndDate_OnChanged
+#parent: PanelDateEnd/dsEndDate_384
+Response OnChanged () id:Response_PanelHeader_144_dsEndDate_OnChanged_478
 {
-  #keys: '[415136.0.923680587]'
+  #keys: '[415136.0.1066371628]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnChanged.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnChanged\043480.def"
similarity index 85%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnChanged.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnChanged\043480.def"
index 76755aa..287835f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnChanged.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnChanged\043480.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/durEndTimeOfDay
-Response OnChanged () id:Response_PanelHeader_144_durEndTimeOfDay_OnChanged
+#parent: PanelDateEnd/durEndTimeOfDay_812
+Response OnChanged () id:Response_PanelHeader_144_durEndTimeOfDay_OnChanged_480
 {
-  #keys: '[415136.0.647401489]'
+  #keys: '[415136.0.1066371682]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnInputIdle\043529.def"
similarity index 83%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnInputIdle\043529.def"
index 41f118d..35cce8f 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateEnd_durEndTimeOfDay_OnInputIdle\043529.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/durEndTimeOfDay
-Response OnInputIdle () id:Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle
+#parent: PanelDateEnd/durEndTimeOfDay_812
+Response OnInputIdle () id:Response_PanelHeader_144_durEndTimeOfDay_OnInputIdle_529
 {
-  #keys: '[415136.0.647401488]'
+  #keys: '[415136.0.1066371683]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnInputIdle'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsStartDate_OnChanged.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_dsStartDate_OnChanged\043384.def"
similarity index 91%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsStartDate_OnChanged.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_dsStartDate_OnChanged\043384.def"
index 203f73c..b0b855d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_dsStartDate_OnChanged.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_dsStartDate_OnChanged\043384.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/dsStartDate
-Response OnChanged () id:Response_PanelHeader_144_dsStartDate_OnChanged
+#parent: PanelDateStart/dsStartDate_646
+Response OnChanged () id:Response_PanelHeader_144_dsStartDate_OnChanged_384
 {
-  #keys: '[415136.0.647401487]'
+  #keys: '[415136.0.1066371507]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnChanged.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnChanged\04357.def"
similarity index 92%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnChanged.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnChanged\04357.def"
index c8a664b..fbeccf9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnChanged.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnChanged\04357.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/durStartTimeOfDay
-Response OnChanged () id:Response_PanelHeader_144_durStartTimeOfDay_OnChanged
+#parent: PanelDateStart/durStartTimeOfDay_298
+Response OnChanged () id:Response_PanelHeader_144_durStartTimeOfDay_OnChanged_57
 {
-  #keys: '[415136.0.647401492]'
+  #keys: '[415136.0.1066371556]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle.def "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnInputIdle\043891.def"
similarity index 90%
rename from _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle.def
rename to "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnInputIdle\043891.def"
index d47285d..0b75a7c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle.def
+++ "b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelDateStart_durStartTimeOfDay_OnInputIdle\043891.def"
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/durStartTimeOfDay
-Response OnInputIdle () id:Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle
+#parent: PanelDateStart/durStartTimeOfDay_298
+Response OnInputIdle () id:Response_PanelHeader_144_durStartTimeOfDay_OnInputIdle_891
 {
-  #keys: '[415136.0.647401491]'
+  #keys: '[415136.0.1066371557]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnInputIdle'
   QuillAction
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ddslType_OnSelectionChanged\043613.def" b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelEvent_ddslType_OnSelectionChanged.def
similarity index 68%
rename from "_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ddslType_OnSelectionChanged\043613.def"
rename to _Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelEvent_ddslType_OnSelectionChanged.def
index 9e077dd..0483538 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelHeader_144_ddslType_OnSelectionChanged\043613.def"
+++ b/_Main/UI/MacroPlannerWebApp/Component_LibCal_dlgMultipleEvent/Response_PanelEvent_ddslType_OnSelectionChanged.def
@@ -1,8 +1,8 @@
 Quintiq file version 2.0
-#parent: PanelHeader_144/ddslType_360
-Response OnSelectionChanged () id:Response_pnlType_ddslType_OnSelectionChanged_613
+#parent: PanelEvent/ddslType
+Response OnSelectionChanged () id:Response_PanelHeader_144_ddslType_OnSelectionChanged
 {
-  #keys: '[415136.0.646711729]'
+  #keys: '[415136.0.1066371166]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
   QuillAction

--
Gitblit v1.9.3