<?php
namespace App\Traitement;
use App\Constants\NotificationActionConstant;
use App\Entity\NotificationAction;
use App\Manager\Notifications\NotificationActionListingManager;
use Doctrine\ORM\EntityManager;
class NotificationActionTraitement
{
/**
* Undocumented function
*
* @param EntityManager $em
* @param integer $idDossier
* @param integer $idCentre
* @param integer $optionAction
* @param string $dataTransfertAppel
* @return void
*/
public static function generateDataListeAction(EntityManager $em, int $idDossier, int $idCentre, int $optionAction, string $dataTransfertAppel = null)
{
$typeNotif = NotificationActionConstant::TYPE_APPEL;
$typeNotifAutre = NotificationActionConstant::TYPE_APPEL_AUTRE;
$typePhrase = NotificationActionConstant::ACTION_PHRASE_GENERIQUE;
$listeActionAppel = NotificationActionListingManager::getListeNotificationActionByCentre($em, $idCentre, $typeNotif, $typePhrase);
if($optionAction == NotificationActionConstant::ACTION_PHRASE_SPECIFIQUE && !is_null($idDossier)) {
$typeOptionAutre = NotificationActionConstant::ACTION_PHRASE_SPECIFIQUE;
$listeActionAppelAutre = NotificationActionListingManager::getListeNotificationActionByDossier($em, $idCentre, $idDossier, $typeNotifAutre, $typeOptionAutre);
} else {
$listeActionAppelAutre = NotificationActionListingManager::getListeNotificationActionByCentre($em, $idCentre, $typeNotifAutre, $typePhrase);
}
$dataListeAppel = [];
$dataListeAppelAutre = [];
$checkTelVideFiche = [];
if(!is_null($dataTransfertAppel)){
$checkTelVideFiche = explode('|', $dataTransfertAppel);
//Ajout bouton PRENDRE MESSAGE et AUTRE après reucpération bouton action transférer
$checkTelVideFiche[] = 'ACT_PRD_MSG';
$checkTelVideFiche[] = 'ACT_AUTRES';
}
foreach($listeActionAppel as $l) {
$bOk = true;
if(!empty($checkTelVideFiche)){
if(!in_array($l->getCodeAction(), $checkTelVideFiche)){
$bOk = false;
}
}
if($bOk) {
$d = self::getDataAction($l);
if(!empty($d)) {
$dataListeAppel[] = $d;
}
}
}
foreach($listeActionAppelAutre as $l) {
$d = self::getDataAction($l);
if(!empty($d)) {
$dataListeAppelAutre[] = $d;
}
}
$res = array('action_appel' => $dataListeAppel, 'action_autre' => $dataListeAppelAutre);
return $res;
}
/**
* Undocumented function
*
* @param NotificationAction $action
* @return array
*/
public static function getDataAction(NotificationAction $action)
{
$result = [];
if($action->getIdNotifAction()){
$result = array(
'id' => intval($action->getIdNotifAction()),
'libelle' => $action->getLibelle(),
'icon' => $action->getIcon()
);
}
return $result;
}
}