Commit 8d2ed8a3 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Filtre jalon (ajout des dates)

Todo : Réaffichage des date au rechargement
parent 09a89136
Loading
Loading
Loading
Loading
Loading
+51 −33
Original line number Diff line number Diff line
@@ -2332,6 +2332,7 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                $error = "";

                switch ($type) {
                    ///////////////////////////////////////////// ANNEE d'ACTIVITE
                    case 'da':
                        $key = $type;
                        $min = "$value1-01-01";
@@ -2341,8 +2342,9 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                        }
                        $filterES['da'][] = ['range' => [ 'dateStart' => ['lte' => $max] ]];
                        $filterES['da'][] = ['range' => [ 'dateEnd' => ['gte' => $min] ]];

                        break;

                    ///////////////////////////////////////////// LES DATES
                    case 'adc':
                    case 'adf':
                    case 'ads':
@@ -2375,6 +2377,8 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                        }

                        break;

                    ///////////////////////////////////////////// STATUS
                    case 'as':
                        if( !$value1 ){
                            $error = "Aucun status selectionné";
@@ -2399,6 +2403,7 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi

                        break;

                    ///////////////////////////////////////////// TYPES
                    case 'at':
                        if (!array_key_exists('at', $filterES)) {
                            $filterES['at'] = [
@@ -2416,6 +2421,7 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                        }
                        break;

                    ///////////////////////////////////////////// PERSONNES
                    case 'ap':
                        if (!array_key_exists('ap', $filterES)) {
                            $filterES['ap'] = [];
@@ -2470,6 +2476,7 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                        }
                        break;

                    ///////////////////////////////////////////// ORGANISATION
                    case 'ao':
                        if (!array_key_exists('ao', $filterES)) {
                            $filterES['ao'] = [];
@@ -2524,52 +2531,63 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                        }
                        break;

                    ///////////////////////////////////////////// JALONS
                    case 'ml':
                        if (!array_key_exists('ml', $filterES)) {
                            $filterES['ml'] = [];
                        }

                        if ($value1) {


                        $criteria = false;
                        $currentFilter = [
                            "nested" => [
                                "path" => "jalons",
                                "query" => [
                                    "bool" => [
                                        "filter" => [
                                                ["term" => ["jalons.type_id" => $value1]]
                                            ]

                                        ]
                                    ]
                                ]
                            ];
                            if ($value2 !== '') {
                                $currentFilter['nested']['query']['bool']['filter'][] = [
                                    "terms" => [
                                        "jalons.progression" => explode(',',$value2),
                            ]
                        ];


                        if ($value1) {
                            $currentFilter['nested']['query']['bool']['filter'][] =   ["term" => ["jalons.type_id" => $value1]];
                            $criteria = true;
                        }
                            $filterES['ml'][] = $currentFilter;
                        } else if($value2) {

                            $currentFilter = [
                                "nested" => [
                                    "path" => "jalons",
                                    "query" => [
                                        "bool" => [
                                            "filter" => [
                                                ["terms" => [ "jalons.progression" => explode(',',$value2),]]
                                            ]
                                        ]
                                    ]
                                ]
                            ];
                        if($value2 != "" && $value2 !== null) {
                            $currentFilter['nested']['query']['bool']['filter'][] = ["terms" => ["jalons.progression" => explode(',', $value2)]];
                            $criteria = true;
                        }

                        if( $value3 ){
                            $criteria = true;
                            $date = explode(',', $value3);
                            $date1 = $date[0] ?? "";
                            $date2 = $date[1] ?? "";
                            $range = [];
                            if( $date1 ){
                                $range['gte'] = $date1;
                            }
                            if( $date2 ){
                                $range['lte'] = $date2;
                            }

                            if( $range ){
                                $currentFilter['nested']['query']['bool']['filter'][] =
                                    ["range" => ["jalons.date" => $range ]];
                            }
                        }


                        if( $criteria ){
                            $filterES['ml'][] = $currentFilter;
                        } else {
                            $error = "Aucun critère";
                            $error = "Aucun critère selectionné";
                        }

                        break;

                    case 'orp':
+31 −26
Original line number Diff line number Diff line
@@ -14,14 +14,13 @@
          </option>
        </select>
      </span>
      <!--<span style="flex: 1">
        <datepicker @change="handlerChangeDate1" v-model="filter.value1" />
      </span>
      <strong> &lt; DATE &lt; </strong>
      <span style="flex: 1">
        <datepicker  @change="handlerChangeDate2" v-model="filter.value2" />
        <span style="display: flex;">
          <datepicker @change="handlerChangeDate" v-model="date1" />
          <strong> &lt; DATE &lt; </strong>
          <datepicker  @change="handlerChangeDate" v-model="date2" />
        </span>
      </span>
      -->
      <span v-if="finishable">
        <div class="options">
            <SelectAdvanced :options="states" v-model="selectedState"
@@ -41,7 +40,6 @@

</template>
<script>

import Datepicker from "../Datepicker.vue";
import SelectAdvanced from "../SelectAdvanced.vue";

@@ -63,7 +61,9 @@ export default {
        { id: 100, label: "Validé", descrition: '' },
        { id: 200, label: "Sans suite", descrition: '' },
        { id: 400, label: "Refusé", descrition: '' },
      ]
      ],
      date1: "",
      date2: "",
    }
  },

@@ -142,8 +142,17 @@ export default {
    },

    updateFromFilter() {
      let splited = this.filter.raw.split(";");
      this.selected = splited[1];
      // console.log(UpdateFrom
      console.log("Update From Filter", this.filter.value3);
      let value3 = this.filter.value3 ? this.filter.value3.split(",") : null;
      console.log("Update From Filter", value3);
      if (value3) {
        this.date1 = value3[0];
        this.date2 = value3[1];
      } else {
        this.date1 = null;
        this.date2 = null;
      }
    },

    handlerRemoveValue(value) {
@@ -160,15 +169,11 @@ export default {

    },

    handlerChangeDate1(datevalue) {
      //let emited = {value1: datevalue, reload: true};
      //this.$emit('filter-update', emited );
    handlerChangeDate() {
      let emited = {value3: this.date1 + ',' + this.date2, reload: true};
      this.$emit('filter-update', emited);
    },

    handlerChangeDate2(datevalue) {
      //let emited = {value2: datevalue, reload: true};
      //this.$emit('filter-update', emited );
    },
  },

  mounted() {
+0 −1
Original line number Diff line number Diff line
@@ -160,7 +160,6 @@
            @filter-update="handlerUpdateFilter(filter, $event)"
            @remove="handlerRemoveFilter(filter)"
        />
        {{ Object.keys(filtersOptions) }}
      </div>
    </section>
  </form>
+5 −2
Original line number Diff line number Diff line
<template>
  <h1>Main title</h1>
  <h2>UI composantes  </h2>
  <Datepicker v-model="dateexemple" />
  <hr>
  selection: {{  selectedAdvancedItem }}
  <SelectAdvanced 
        :sort="label"
@@ -287,14 +289,15 @@
import OrganizationAutoComplete from "../components/OrganizationAutoComplete.vue";
import PersonAutoCompleter from "../components/PersonAutoCompleter.vue";
import SelectAdvanced from "../components/SelectAdvanced.vue";
import Datepicker from "../components/Datepicker.vue";

export default {
  components: {OrganizationAutoComplete, PersonAutoCompleter, SelectAdvanced},
  components: {Datepicker, OrganizationAutoComplete, PersonAutoCompleter, SelectAdvanced},
  data(){
    return {
      selectedOrganization: null,
      selectedPerson: null,

      dateexemple: '2024-07-04',
      selectedAdvancedOptions: [
        { id: 1, label: "Option A", description: "Première option" },
        { id: 2, label: "Option B", description: "Deuxième option" },