From 39c8ad179756d5df08020f49a582b869f6f41cac Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Tue, 22 Oct 2019 11:24:46 +0200
Subject: [PATCH] FEAT #11982 TIME 1:40 removed doctypes indexes in code

---
 .../doctype/controllers/DoctypeController.php | 64 +------------------
 .../controllers/FirstLevelController.php      |  3 +-
 .../doctypes-administration.component.html    | 41 ------------
 .../doctypes-administration.component.ts      | 18 ------
 4 files changed, 3 insertions(+), 123 deletions(-)

diff --git a/src/app/doctype/controllers/DoctypeController.php b/src/app/doctype/controllers/DoctypeController.php
index 1fc1c5293e9..7538c2b8ea4 100755
--- a/src/app/doctype/controllers/DoctypeController.php
+++ b/src/app/doctype/controllers/DoctypeController.php
@@ -15,7 +15,6 @@ use History\controllers\HistoryController;
 use Respect\Validation\Validator;
 use Doctype\models\SecondLevelModel;
 use Doctype\models\DoctypeModel;
-use Doctype\models\DoctypeIndexesModel;
 use Doctype\models\TemplateDoctypeModel;
 use Group\models\ServiceModel;
 use Template\models\TemplateModel;
@@ -59,24 +58,7 @@ class DoctypeController
             $template["is_generated"] = 'N';
         }
 
-        $indexes  = DoctypeIndexesModel::getAllIndexes();
-        $indexesSelected = DoctypeIndexesModel::getById(['id' => $obj['doctype']['type_id']]);
-        foreach ($indexes as $key => $value) {
-            foreach ($indexesSelected as $valueSelected) {
-                if ($value['column'] == $valueSelected['field_name']) {
-                    $indexes[$key]['use'] = true;
-                    if ($valueSelected['mandatory'] == 'Y') {
-                        $valueSelected['mandatory'] = true;
-                    } else {
-                        $valueSelected['mandatory'] = false;
-                    }
-                    $indexes[$key]['mandatory'] = $valueSelected['mandatory'];
-                    break;
-                }
-            }
-        }
-
-        $obj['doctype']      = array_merge($obj['doctype'], $template, ['indexes' => $indexes]);
+        $obj['doctype']      = array_merge($obj['doctype'], $template);
         $obj['secondLevel']  = SecondLevelModel::get([
             'select'    => ['doctypes_second_level_id', 'doctypes_second_level_label'],
             'where'     => ['enabled = ?'],
@@ -104,7 +86,6 @@ class DoctypeController
             $data['duration_current_use'] = null;
         }
 
-        $data = DoctypeController::manageValue($data);
         $secondLevelInfo = SecondLevelModel::getById(['select' => ['doctypes_first_level_id'], 'id' => $data['doctypes_second_level_id']]);
         
         if (empty($secondLevelInfo)) {
@@ -132,19 +113,6 @@ class DoctypeController
             "is_generated" => $data["is_generated"]
         ]);
 
-        if (!empty($data['indexes'])) {
-            foreach ($data['indexes'] as $value) {
-                if (!empty($value['use'])) {
-                    DoctypeIndexesModel::create([
-                        "type_id"    => $doctypeId,
-                        "coll_id"    => 'letterbox_coll',
-                        "field_name" => $value['column'],
-                        "mandatory"  => $value['mandatory']
-                    ]);
-                }
-            }
-        }
-
         HistoryController::add([
             'tableName' => 'doctypes',
             'recordId'  => $doctypeId,
@@ -177,7 +145,7 @@ class DoctypeController
         if (empty($data['duration_current_use'])) {
             $data['duration_current_use'] = null;
         }
-        $data = DoctypeController::manageValue($data);
+
         $secondLevelInfo                 = SecondLevelModel::getById(['select' => ['doctypes_first_level_id'], 'id' => $data['doctypes_second_level_id']]);
         if (empty($secondLevelInfo)) {
             return $response->withStatus(500)->withJson(['errors' => 'doctypes_second_level_id does not exists']);
@@ -204,21 +172,6 @@ class DoctypeController
             "is_generated" => $data["is_generated"]
         ]);
 
-        DoctypeIndexesModel::delete(["type_id" => $data['type_id']]);
-
-        if (!empty($data['indexes'])) {
-            foreach ($data['indexes'] as $value) {
-                if (!empty($value['use'])) {
-                    DoctypeIndexesModel::create([
-                        "type_id"    => $data['type_id'],
-                        "coll_id"    => 'letterbox_coll',
-                        "field_name" => $value['column'],
-                        "mandatory"  => $value['mandatory']
-                    ]);
-                }
-            }
-        }
-
         HistoryController::add([
             'tableName' => 'doctypes',
             'recordId'  => $data['type_id'],
@@ -328,7 +281,6 @@ class DoctypeController
         $doctypeInfo = DoctypeModel::getById(['id' => $aArgs['type_id']]);
         DoctypeModel::delete(['type_id' => $aArgs['type_id']]);
         TemplateDoctypeModel::delete(["type_id" => $aArgs['type_id']]);
-        DoctypeIndexesModel::delete(["type_id" => $aArgs['type_id']]);
 
         HistoryController::add([
             'tableName' => 'doctypes',
@@ -384,16 +336,4 @@ class DoctypeController
 
         return $errors;
     }
-
-    protected static function manageValue($request)
-    {
-        foreach ($request['indexes'] as $key => $value) {
-            if (!empty($value['mandatory'])) {
-                $request['indexes'][$key]['mandatory'] = 'Y';
-            } else {
-                $request['indexes'][$key]['mandatory'] = 'N';
-            }
-        }
-        return $request;
-    }
 }
diff --git a/src/app/doctype/controllers/FirstLevelController.php b/src/app/doctype/controllers/FirstLevelController.php
index 431cabf60bd..bb8ecad4c52 100755
--- a/src/app/doctype/controllers/FirstLevelController.php
+++ b/src/app/doctype/controllers/FirstLevelController.php
@@ -22,7 +22,6 @@ use Group\models\ServiceModel;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Template\models\TemplateModel;
-use Doctype\models\DoctypeIndexesModel;
 
 class FirstLevelController
 {
@@ -116,7 +115,7 @@ class FirstLevelController
             'order_by'  => ['doctypes_second_level_label asc']
         ]);
         $obj['models'] = TemplateModel::getByTarget(['select' => ['template_id', 'template_label', 'template_comment'], 'template_target' => 'doctypes']);
-        $obj['indexes'] = DoctypeIndexesModel::getAllIndexes();
+        $obj['indexes'] = [];
 
         return $response->withJson($obj);
     }
diff --git a/src/frontend/app/administration/doctype/doctypes-administration.component.html b/src/frontend/app/administration/doctype/doctypes-administration.component.html
index 4cbec9c2e1b..4a14b7597b4 100755
--- a/src/frontend/app/administration/doctype/doctypes-administration.component.html
+++ b/src/frontend/app/administration/doctype/doctypes-administration.component.html
@@ -257,47 +257,6 @@
                                     </div>
                                 </mat-expansion-panel>
                             </mat-accordion>
-                            <mat-accordion>
-                                <mat-expansion-panel>
-                                    <mat-expansion-panel-header>
-                                        <mat-panel-title>
-                                            {{lang.complementaryFields}}
-                                        </mat-panel-title>
-                                    </mat-expansion-panel-header>
-                                    <mat-table #table [dataSource]="dataSource">
-                                        <ng-container matColumnDef="label">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.field}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element"> {{element.label}} </mat-cell>
-                                        </ng-container>
-                                        <ng-container matColumnDef="use">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.used}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element;let i = index">
-                                                <mat-checkbox color="primary" [checked]="element.use" (change)="selectIndexesUse($event, i)"></mat-checkbox>
-                                            </mat-cell>
-                                        </ng-container>
-                                        <ng-container matColumnDef="mandatory">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.mandatory}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element;let i = index">
-                                                <mat-checkbox color="primary" [checked]="element.mandatory" (change)="selectIndexesMandatory($event, i)"></mat-checkbox>
-                                            </mat-cell>
-                                        </ng-container>
-                                        <ng-container matColumnDef="type">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.fieldType}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element"> {{element.type}} </mat-cell>
-                                        </ng-container>                                        
-                                        <ng-container matColumnDef="type_field">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.fieldNature}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element"> {{element.type_field}} </mat-cell>
-                                        </ng-container>
-                                        <ng-container matColumnDef="column">
-                                            <mat-header-cell *matHeaderCellDef>{{lang.databaseColumn}}</mat-header-cell>
-                                            <mat-cell *matCellDef="let element"> {{element.column}} </mat-cell>
-                                        </ng-container>
-                                        <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
-                                        <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
-                                    </mat-table>
-                                </mat-expansion-panel>
-                            </mat-accordion>
                             
                             <div class="form-group">
                                 <div class="col-md-12 text-center" style="padding:10px;">
diff --git a/src/frontend/app/administration/doctype/doctypes-administration.component.ts b/src/frontend/app/administration/doctype/doctypes-administration.component.ts
index a57a8b1c2c7..4b5fc80156f 100755
--- a/src/frontend/app/administration/doctype/doctypes-administration.component.ts
+++ b/src/frontend/app/administration/doctype/doctypes-administration.component.ts
@@ -43,7 +43,6 @@ export class DoctypesAdministrationComponent implements OnInit {
     newFirstLevel: any = false;
 
     displayedColumns = ['label','use', 'mandatory', 'column'];
-    dataSource = new MatTableDataSource(this.currentType.indexes);
     @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;
     @ViewChild(MatSort, { static: false }) sort: MatSort;
 
@@ -162,7 +161,6 @@ export class DoctypesAdministrationComponent implements OnInit {
                     this.secondLevels = dataValue['secondLevel'];
                     this.processModes = ['NORMAL', 'SVA', 'SVR'];
                     this.models       = dataValue['models'];
-                    this.loadIndexesTable();
 
                     if(move){
                         if(this.currentType){
@@ -228,12 +226,6 @@ export class DoctypesAdministrationComponent implements OnInit {
                 });
         }
     }
-
-    loadIndexesTable() {
-        this.dataSource = new MatTableDataSource(this.currentType.indexes);
-        this.dataSource.paginator = this.paginator;
-        this.dataSource.sort = this.sort;
-    }
     
     resetDatas() {
         this.currentFirstLevel  = false;
@@ -429,23 +421,13 @@ export class DoctypesAdministrationComponent implements OnInit {
                 this.processModes = ['NORMAL', 'SVA', 'SVR'];
                 this.models       = data['models'];
                 if(mode == 'doctype'){
-                    this.currentType.indexes = data['indexes'];
                     this.currentType.is_generated = 'N';
-                    this.loadIndexesTable();
                 }
             }, (err) => {
                 this.notify.error(err.error.errors);
             });
         this.creationMode = mode;
     }
-
-    selectIndexesUse(e: any, index: any) {
-        this.currentType.indexes[index].use = e.checked;
-    }
-    selectIndexesMandatory(e: any, index: any) {
-        this.currentType.indexes[index].mandatory = e.checked;
-    }
-
 }
 @Component({
     templateUrl: "doctypes-administration-redirect-modal.component.html"
-- 
GitLab