From c425d960e4eefbe0565de33aabbdc83552580e88 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 05 六月 2024 15:29:57 +0800
Subject: [PATCH] 换型损失设置前端form建

---
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def   |   24 ++++++
 /dev/null                                                                                                         |    9 --
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def                           |   27 ++++++
 _Main/BL/InfoMessages.qbl                                                                                         |    8 ++
 _Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl                                                    |   25 ++++++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def |   21 +++++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def     |    7 +
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def                  |    3 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def                            |   20 +++++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def    |   22 +++++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def                           |   17 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def                   |   18 ++++
 12 files changed, 190 insertions(+), 11 deletions(-)

diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index a1293ed..25d5179 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -86,6 +86,14 @@
   {
     DefaultText: 'There are duplicate three digit codes present'
   }
+  InfoMessage MP_ChangeLossSetting_CheckNull
+  {
+    DefaultText: 'The required field is blank.'
+  }
+  InfoMessage MP_ChangeLossSetting_Exist
+  {
+    DefaultText: 'The same data already exists.'
+  }
   InfoMessage MP_LibCal_EventType_Exist
   {
     DefaultText: 'The ID or name is the same.'
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl
deleted file mode 100644
index 384d089..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Line.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Line
-{
-  #keys: '3[415136.0.738030059][415136.0.738030058][415136.0.738030060]'
-  Description: '浜х嚎'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl
deleted file mode 100644
index 55e4355..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Product1.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Product1
-{
-  #keys: '3[415136.0.738030069][415136.0.738030068][415136.0.738030070]'
-  Description: '浜у搧1'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl b/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl
deleted file mode 100644
index e850926..0000000
--- a/_Main/BL/Type_ChangeLossSetting/Attribute_Product2.qbl
+++ /dev/null
@@ -1,9 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Attribute Product2
-{
-  #keys: '3[415136.0.738030079][415136.0.738030078][415136.0.738030080]'
-  Description: '浜у搧2'
-  IsReadOnly: true
-  ValueType: String
-}
diff --git a/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
new file mode 100644
index 0000000..55452d1
--- /dev/null
+++ b/_Main/BL/Type_ChangeLossSetting/StaticMethod_ValidateInput.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ValidateInput (
+  MacroPlan owner,
+  ChangeLossSetting old,
+  Unit unit,
+  Product_MP product1,
+  Product_MP product2,
+  Number number
+) as Boolean
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Jun-5-2024 (created)
+    feedback := '';
+    if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or number < 1 ){
+      feedback := Translations::MP_ChangeLossSetting_CheckNull();
+    }
+    if( exists( owner, ChangeLossSetting, cls, cls <> old and cls.Unit() = unit and cls.ProductFirst() = product1 and cls.ProductSecond() = product2 ) ){
+      feedback := Translations::MP_ChangeLossSetting_Exist()
+    }
+        
+    return feedback = '';
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
index c499774..935fb73 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Component_pnlContent.def
@@ -9,6 +9,7 @@
     {
       #keys: '[415136.0.735612418]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Unit'
       Children:
       [
         Component deUnit
@@ -36,6 +37,7 @@
     {
       #keys: '[415136.0.738250065]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Product_MP'
       Children:
       [
         Component deProductFirst
@@ -62,6 +64,7 @@
     {
       #keys: '[415136.0.738250142]'
       BaseType: 'WebDropDownList'
+      Databinding: 'Product_MP'
       Children:
       [
         Component deProductSecond
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
new file mode 100644
index 0000000..fc9c24e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_Edit.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+  ChangeLossSetting selection
+) id:Method_DialogCreateEditChangeLossSetting_Edit
+{
+  #keys: '[415136.0.746200731]'
+  Body:
+  [*
+    // Edit Product(s)
+    
+    data := shadow( selection );
+    dhDialogData.Data( &data );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
new file mode 100644
index 0000000..ee307d3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_New.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+Method New (
+  FormChangeLossSetting form
+) id:Method_DialogCreateEditChangeLossSetting_New
+{
+  #keys: '[415136.0.746200358]'
+  Body:
+  [*
+    // To create a new product
+    owner := LibCal_GlobalState.dhGlobalCalendarRegistry().Data();
+    obj := MacroPlan.ChangeLossSetting( relshadow, Line := '', Product1 := '', Product2 := '' );
+    
+    dhDialogData.Data( &obj );
+    
+    dhForm.Data( form );
+    
+    ApplicationMacroPlanner.ShowFormModal( this );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
new file mode 100644
index 0000000..8135b6d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Method_OnOK.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogCreateEditChangeLossSetting_OnOK
+{
+  #keys: '[415136.0.746200837]'
+  Body:
+  [*
+    // onOK for ProductDialog
+    // When the user clicks ok,
+    // we either create or edit the data
+    this.ApplyChanges();
+    
+    data := dhDialogData.Data();
+    
+    if( isnull( data.WrappedInstance() ) ) // New
+    {
+      data.Commit();
+      dhForm.Data().ListChangeLossSetting().SelectByKey( data.WrappedInstance().Key() );
+    }
+    else
+    {
+      data.Commit();
+    }
+    
+    this.Close();
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
index a46ffc6..142ea94 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditChangeLossSetting/Response_pnlActions_btnOk_OnClick.def
@@ -5,12 +5,15 @@
   #keys: '[415136.0.735612174]'
   DefinitionID: 'Responsedef_WebButton_OnClick'
   GroupServerCalls: true
+  Precondition:
+  [*
+    return ChangeLossSetting::ValidateInput( MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), [Number]npChangeLossNr.Number() );
+  *]
   QuillAction
   {
     Body:
     [*
-      Form.ApplyChanges();
-      Form.Close();
+      Form.OnOK();
     *]
   }
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
index 69b56e8..aa58182 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Component_ListChangeLossSetting.def
@@ -38,4 +38,22 @@
   [
     Taborder: 0
   ]
+  ResponseDefinitions:
+  [
+    DelegatedResponseDefinition OnClick id:Responsedef_ListChangeLossSetting_WebMenu_OnClick
+    {
+      #keys: '[415136.0.747540770]'
+      Initiator: 'WebMenu'
+      IsInherited: false
+      ResponseType: 'OnClick'
+      Arguments:
+      [
+        ResponseDefinitionArgument selection
+        {
+          #keys: '[913.0.7765768]'
+          Binding: 'this.Selection()'
+        }
+      ]
+    }
+  ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
new file mode 100644
index 0000000..ae6d5c1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuDelete_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick (
+  structured[ChangeLossSetting] selection
+) id:Response_ListChangeLossSetting_MenuDelete_OnClick
+{
+  #keys: '[415136.0.747541132]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuDelete'
+  QuillAction
+  {
+    Body:
+    [*
+      traverse( selection, Elements, e ){
+        e.Delete();
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def
new file mode 100644
index 0000000..94565f7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuEdit_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick (
+  ChangeLossSetting selection
+) id:Response_ListChangeLossSetting_MenuEdit_OnClick
+{
+  #keys: '[415136.0.747540962]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuEdit'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeLossSetting );
+      dlg.Edit( selection );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def
new file mode 100644
index 0000000..0ad7fde
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormChangeLossSetting/Response_ListChangeLossSetting_MenuNew_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListChangeLossSetting
+Response OnClick () id:Response_ListChangeLossSetting_MenuNew_OnClick
+{
+  #keys: '[415136.0.747540787]'
+  CanBindMultiple: false
+  DefinitionID => /ListChangeLossSetting/Responsedef_ListChangeLossSetting_WebMenu_OnClick
+  Initiator: 'MenuNew'
+  Precondition:
+  [*
+    return MacroPlan::HasMacroPlan( MacroPlan, feedback );
+  *]
+  QuillAction
+  {
+    Body:
+    [*
+      dlg := construct( DialogCreateEditChangeLossSetting );
+      dlg.New( FormChangeLossSetting );
+    *]
+    GroupServerCalls: false
+  }
+}

--
Gitblit v1.9.3