// ajout de dates de début et de fin dans le data de la requête
public loadData(a_dateDebut:string, a_dateFin:string) {
  if ((a_dateDebut !== undefined) && (a_dateFin !== undefined)) {
    let l_apiParams:ApiParams = new ApiParams();
    l_apiParams.addDateParam('datedeb', a_dateDebut);
    l_apiParams.addDateParam('datefin', a_dateFin);
    this.syntheseOperationVisiteService.getListFor({champsRList:[], nbElemPerPage:undefined, numeroPage:1},
      this.coreServicesProvider.routerGlobals.params.idBeneficiaire, l_apiParams).subscribe(
        result => {
          this.data = result.data;
          this.actions = result.action;
          this.metas = result.meta;
          this.droits = result.droits;
        }
      );
  }
}
// ajout d'apiParams à une config select
public doAfterLoadData(a_result: HttpPostResult<InterventionCreation>): void {
  this.configPeC= {
    id:"idBeneficiaire_VuePersonneR",
    lib:"lib_VuePersonneR",
    api: this,
    apiParam: (a_result.data?.idTournee_InterventionR !== null) ? this.viewParams.dataParams.apiParam : null,
    needsApiParam:true
  };

  if (a_result.data?.idTournee_InterventionR === null) {
    let l_apiParams: ApiParams = new ApiParams;
    l_apiParams.addDateParam('date', a_result.data.date_InterventionR);
    l_apiParams.addNumberParam('idProfil', a_result.data.idProfil_InterventionR);
    l_apiParams.addNumberParam('idMoment', a_result.data.idMoment_InterventionR);
    this.configPeC.apiParams = l_apiParams;
  }
}

/**
 * @name getListFor - getListTuteurPossible
 * @param a_paramList filtres etc.
 * @param a_avecMeta récupération des metas, ou pas
 * @param a_param paramètre de l'api - idPersPhysique
 * @param a_httpParams paramètres supplémentaires
 */
public getListFor(a_paramList : ParametresList,a_param : number|string, a_apiParams?:ApiParams, a_postMetas?:PostMeta,a_httpParams :MsHttpParams ={noTimeOut:false,forcePost:false,doToastSuccess:false}) : Observable<HttpPostResult<Array<BeneficiaireAdminPersStructure>>> {
  let ldata : HttpPostGetList = {meta:a_postMetas,parametresList:a_paramList,httpParams:this.getDefaultHttpParams(a_httpParams,MsTypeApi.GETLISTFOR)};
  if (a_paramList.numeroPage > 1) {
    return of({data:null});
  } else {
    if (ClassUtils.isDefined(a_apiParams)) {
      ldata.data=a_apiParams.params;
    }
    this.addVueCourante(ldata.parametresList);
    return this.doPost<HttpPostResult<Array<BeneficiaireAdminPersStructure>>>(this.getConstants().getServer()+this.getServiceConfig().baseApi+'getListTuteurPossible/'+a_param, ldata);
  }
}

/**
 * Surcharge - Récupération des metas create
 * @param a_postMetas
 * @param a_httpParams
 */
public getMetaCreate(a_postMetas?:PostMeta,a_httpParams :MsHttpParams ={noTimeOut:false,forcePost:false,doToastSuccess:false}) : Observable<HttpPostResult<BeneficiaireEvaluationCreate>> {
  let l_apiParams = new ApiParams();
  // passage de l'idBeneficiaire si écran bénéficiaire
  if ((this.refBeneficiaire!==null) && (this.refBeneficiaire!==undefined)) {
    l_apiParams.addNumberParam('refBenef', this.refBeneficiaire);
  } else {
    l_apiParams = null;
  }
  let l_object: any = (l_apiParams!==null) ? l_apiParams.params : null;
  let ldata : HttpPostBody<any> = {data: l_object, meta:a_postMetas,httpParams:this.getDefaultHttpParams(a_httpParams,MsTypeApi.METACREATE)};
  return this.doPost<HttpPostResult<BeneficiaireEvaluationCreate>>(this.getConstants().getServer()+this.getServiceConfig().baseApi+BaseHttpService.META_CREATE_API,ldata);
};

/**
 * MetaCreate pour paramMesure
 * Dans le cas ou l'idMesure est null, on récupère tout le data
 * pour récupérer la référence du type de mesure et celle du bénéficiaire
 * @param a_id
 * @param a_postMetas
 * @param a_httpParams
 */
public getMetaCreateForParamMesure(a_id : number, a_data: MesureDataForNull, a_postMetas?:PostMeta,a_httpParams :MsHttpParams ={noTimeOut:false,forcePost:false,doToastSuccess:false}) : Observable<HttpPostResult<Mesure>> {
  // dans le cas où l'id de la mesure est nul
  let l_apiParams: ApiParams =new ApiParams();
  if (a_id===null && ClassUtils.isDefined(a_data)) {
    // on passe des datas à la requête
    l_apiParams.addNumberParam("refParamMesure_MesureBenefR", a_data.refParamMesure_MesureBenefR);
    l_apiParams.addNumberParam("refBenef_MesureBenefR", a_data.refBenef_MesureBenefR);
  } else {
    l_apiParams = null;
  }
  let ldata : HttpPostBody<any> = {data: ((l_apiParams!==null) ?  l_apiParams.params : null), meta:a_postMetas,httpParams:a_httpParams};
  return this.doPost<HttpPostResult<Mesure>>(this.getConstants().getServer()+this.getServiceConfig().baseApi+BaseHttpService.META_CREATE_API+'For/'+a_id,ldata);
}

/**
 * Récupère les actions possibles pour un regroupement
 * Dans le cas ou l'idMesure est null, on récupère tout le data
 * pour récupérer la référence du type de mesure et celle du bénéficiaire
 * @param a_idMesure
 * @param a_data
 * @param a_postMetas
 * @param a_httpParams
 */
public getActionsSupervisionRegroupement(a_idMesure: number, a_data: MesureDataForNull, a_postMetas?: PostMeta, a_httpParams: MsHttpParams = {noTimeOut: false, forcePost: false, doToastSuccess: false}): Observable<HttpPostResult<MsAction[]>> {
  let l_data: HttpPostGetList = {meta: a_postMetas, httpParams: a_httpParams};
  // dans le cas où l'idMesure est nul
  if (a_idMesure===null && ClassUtils.isDefined(a_data)) {
    // on passe des datas à la requête
    let l_apiParams: ApiParams = new ApiParams();
    l_apiParams.addNumberParam("refParamMesure_MesureBenefR", a_data.refParamMesure_MesureBenefR);
    l_apiParams.addNumberParam("refBenef_MesureBenefR", a_data.refBenef_MesureBenefR);
    l_data.data = l_apiParams.params;
  }
  return this.doPost<HttpPostResult<MsAction[]>>(this.getConstants().getServer()+this.getServiceConfig().baseApi+"getActionsSupervisionRegroupement/"+a_idMesure, l_data);
}