<?php
namespace Modules\Fournisseur\Controller;

use Skeleton\Controller\Controller;
use Entity\Model\Articles;
use Entity\Model\Fourniss;
use Entity\Model\Grpfou;

class PopupArticleController extends Controller
{
    public function ordreArticleAction() : string
    {
        $post = $this->request->getParsedBody();
        
        $id = $this->request->getAttribute('id');
        $article = $this->request->getAttribute('article');
        $module = $this->request->getAttribute('MODULE');
        
        $ART = new \Modules\Fournisseur\Repository\Articles($this->pdo);
        $prefArticle = $ART->listePreferentiel($article);

        if (isset($post['ordre_preference'])) {
            $oldPlace=0;
            foreach ($prefArticle as $key => $pref) {
                if ($pref==$id) {
                    $oldPlace = str_replace('FOU', '', $key);
                }
            }

            for ($i=1; $i<4; $i++) {
                if ($i<$post['ordre_preference']) {
                    $array[$i]=$prefArticle['FOU'.$i];
                    if ((int)$i==(int)$oldPlace) {
                        $array[$i]=$prefArticle['FOU'.intval($i+1)];
                    }
                } elseif ($i==$post['ordre_preference']) {
                    $array[$i]=$id;
                } elseif ($id>$post['ordre_preference'] && $prefArticle['FOU'.intval($i-1)]!=$id) {
                    if ($oldPlace) {
                        if ($oldPlace>$post['ordre_preference']) {
                            $array[$i]=$prefArticle['FOU'.intval($i-1)];
                        } else {
                            $array[$i]=$prefArticle['FOU'.$i];
                        }
                    } else {
                        $array[$i]=$prefArticle['FOU'.intval($i-1)];
                    }
                }
            }
            
            $ART->updateListePreferentiel($article, $array);
        }

        return $this->renderer->render('@Fournisseur/Popup-Article/ordrePreference', [
            'listePref' => $prefArticle,
            'id' => $id,
            'article' => $article,
            'MODULE' => $module,
        ]);
    }
    
    
    public function tarifArticleAction() : string
    {
        $id = $this->request->getAttribute('id');
        $article = $this->request->getAttribute('article');
        $module = $this->request->getAttribute('MODULE');
        
        $art = new Articles($this->pdo);
        $art = $art->find($article);

        if ($module=='Fournisseur') {
            $fourniss = new Fourniss($this->pdo);
            $entity = $fourniss->find($id);
        } else {
            $groupement = new Grpfou($this->pdo);
            $entity = $groupement->find($id);
        }

        $listePrix = new \Modules\Fournisseur\Repository\Articles($this->pdo);
        $prixOrigine = $listePrix->PrixOriginArticle($id, $article, $module);
        $listePrix = $listePrix->listePrixArticle($id, $article, $module);
        
        return $this->renderer->render('@Fournisseur/Popup-Article/popup-tableau-prix', [
            'article' => $art,
            'entity' => $entity,
            'prixOrigine' => $prixOrigine,
            'listePrix' => $listePrix,
        ]);
    }
}
