<?php
namespace Modules\Fournisseur\Outil;

use Helpers\Session\Session;

class DroitModification
{
    
    public function __construct()
    {
    }
    /**
     * Fonction permettent de vérifie si l'utilisateur a le droit de modifier le champs (verification effectué via les droits & le XML),
     * si c'est le cas, alors retourne la valeur du post, sinon la valeur du XML.
     *
     *
     * @param string $valeurPost
     * @param mixed $valeurXML
     * @param string|bool $droit
     * @param string $type
     * @return string
     *
     *
     */
    // phpcs:ignore
    public function modifFourniss($valeurXML = '', &$valeurPost = '', $droit = true, $date = false, $type ='Fournisseur')
    {
        if ($valeurXML) {
            $modifiable = $valeurXML->attributes()->Modifiable;
        } else {
            $modifiable = '1';
        }
        
        $modif_session = $_SESSION[$type]['mode']??'';
        if ($modif_session=='Creation') {
            $modifiable = '1';
        }
        
        if ($modifiable=='1' && $droit) {
            if (isset($valeurPost)) {
                $valeurPost = $valeurPost;
            } else {
                $valeurPost = '';
            }
        } else {
            $valeurPost = (string) $valeurXML;
        }
    }
    
    /**
     * Fonction permettant de vérifié que l'utilisateurs a le droit de modifier un champs de la fiche fournisseur
     * Si il n'a pas le droit, on vas récuperé la valeur dans le XML $valeurXML, sinon on prend la valeur du post $valeurPost
     * le droit bien du XML $droit
     *
     * @param string $valeurXML
     * @param string $valeurPost
     * @param boolean $droit
     */
    // phpcs:ignore
    public function modifSansDroitXml($valeurXML = '', &$valeurPost, $droit = true)
    {
        if ($droit) {
            if (isset($valeurPost)) {
                $valeurPost = $valeurPost;
            } else {
                $valeurPost = '';
            }
        } else {
            $valeurPost = (string) $valeurXML;
        }
    }
    
    /**
     * Fonction permettant comme modifSansDroitXml mais pour les bloc ListAdresses, ListContacts, ListChiffreAffaire
     *
     * @param string $droitXML
     * @param string $droit
     * @return boolean
     */
    public static function droitModifBloqueXML($droitXML, $droit)
    {
        if ($droitXML=='1') {
            return true;
        } else {
            $session = new Session('Fournisseur');
            $modif_session = $session->getMode();
            if ($modif_session=='Creation') {
                return true;
            }
            
            return false;
        }
    }
}
