<?php

namespace Modules\Consultation\Repository;

use Helpers\QueryBuilder\AbsRepository;

class ConsultationPanier extends AbsRepository
{
    /**
     * @param string $noAo
     * @return array<mixed>
     */
    public function getLigneWithSligne(string $noAo)
    {
        $req = "SELECT
                AO_RETPARLIGNE.CODE_FOU,AO_RETPARLIGNE.TYPE_FG,
                l.SSFAMILLE,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.CODE_ART else r.CODE_ART end CODE_ART,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.DES_ART else r.DES_ART end DES_ART,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.DCOMP else MEMOS.CONTMEMO end DES_COMP,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.QTE_PROP * r.QTE else r.QTE end QTE_PROP,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.UNITE else r.UNITE end UNITE,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.PU else r.PU end PU,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.DES_FOUR else r.DES_FOUR end DES_FOUR,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.REF_FOUR else r.REF_FOUR end REF_FOUR,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.COD_FAB else r.COD_FAB end COD_FAB,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.COD_GAM else r.COD_GAM end COD_GAM,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.REF_FAB else r.REF_FAB end REF_FAB,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.PAY_ORI else r.PAY_ORI end PAY_ORI,
                case when ISNULL(s.NO_SSLIG,0)<>0 then s.PAY_PROV else r.PAY_PROV end PAY_PROV,
                r.DELAI, r.DELAIJ, FOURNISS.DEVISE
                FROM AO_RETPARLIGNE with (nolock)
                left join AO_REP r with (nolock) on r.NO_AO = AO_RETPARLIGNE.NO_AO 
                                                and r.NO_PO_AO = AO_RETPARLIGNE.NO_PO 
                                                and r.CODE_FOU = AO_RETPARLIGNE.CODE_FOU 
                                                and r.TYPE_FG = AO_RETPARLIGNE.TYPE_FG 
                                                and r.C_V = AO_RETPARLIGNE.RET_CV 
                left outer join AO_REPSL s with (nolock) on s.NO_AO = AO_RETPARLIGNE.NO_AO 
                                                and s.NO_PO_AO = AO_RETPARLIGNE.NO_PO 
                                                and s.CODE_FOU = AO_RETPARLIGNE.CODE_FOU 
                                                and s.TYPE_FG = AO_RETPARLIGNE.TYPE_FG 
                                                and s.C_V = AO_RETPARLIGNE.RET_CV 

                left join AO_LIGNE l with (nolock) on l.NO_AO = AO_RETPARLIGNE.NO_AO and l.NO_PO = AO_RETPARLIGNE.NO_PO 
                left join MEMOS with (nolock) on MEMOS.NODEMEMO = l.NM_DCOMP
                left join FOURNISS with (nolock) on FOURNISS.CODE = AO_RETPARLIGNE.CODE_FOU
                where AO_RETPARLIGNE.NO_AO = :noAo";

        $arrayReq = [':noAo' => $noAo];

        return $this->fetchAssocAll($req, $arrayReq);
    }
}
