<?php
require_once 'application/class/class_ManageSession.php';
/*
 *
 * Affichage de la liste des secteurs d'imputation
 *
 */
global $connecteur;
$flg_popup = true;

// si on est en mode HTML, on charge l'entête.
$isHttp = (GetValue('THROUGH') == 'TRUE');
if (! isset($flg_popup))
    $flg_popup == false;

$fichier_xsl = 'application/xsl/duplication_ligne.xsl';
$obj_xml = new GenXslt(true);

$array['fenetre'] = array(
    '!form' => 'frm_popup',
    '!form_parent' => getValue('form_parent'),
    '!prg_appel' => getValue('prg_appel'),
    '!champ' => getValue('champ'),
	'!titre' => trad('Duplication ligne panier'),
    '!num_lig' => getValue('num_lig'),
    '!num_block' => getValue('num_block'),
    '!object_base' => getValue('impact'),
    '!onclick' => "Traite('" . NomFile(__FILE__) . '?num_block=' . getValue('num_bloc') . "',document.frm_recherche.save)"
);

$result_art = TrouveLignePanier($_SESSION['id_panier'], getValue('num_lig'));

if ($isHttp) {
    switch (GetValue('MODE')) {
        // Mode appserveur
        case 'httpreq': // mode reponse sur les updates
            $object = GetValue('OBJECT');
            $form_parent = GetValue("form_parent");
            $champ = GetValue('champ');
            $prg_appel = GetValue('prg_appel');
            
            switch ($object) {
                case 'save':
                    $ok = false;
                    $repjs = '';
                    $valeur = getValue('nb_ligne');
                    $element = getValue('object_base');
                    
                    if (is_numeric($valeur) && $valeur != 0) 
                    {
                        for($i=$valeur; $i>0; $i--)
                        {
                            SqlPanier::rqMajDuplicationLigne(getValue('num_lig'))->ExecuteSql();

                            $result = SqlPanier::rqGetLastLigneCreated($_SESSION['id_panier'])->Trouve1();
                            SqlCs::rqDuplicateCsLigne($_SESSION['id_user'], $_SESSION['id_panier'], getValue('num_lig'), $result['LAST_LIGNE'])->ExecuteSql();
                            
                            /*** SPEC 4241 Caractéristiques complémentaires : Ajout des CC sur la nouvelle ligne obtenu à partir du split ***/
                            SqlCaracteristiquesCompl::rqDuplicateCCLigne(['DOC_TYPE'=> 'PAN', 'DOC_NUM' => $_SESSION['id_panier'], 'DOC_LINE_NUM' => getValue('num_lig'), 'ID_USER_BASKET' => $_SESSION['id_user']], ['DOC_TYPE'=> 'PAN', 'DOC_NUM' => $_SESSION['id_panier'], 'DOC_LINE_NUM' => $result['LAST_LIGNE'], 'ID_USER_BASKET' => $_SESSION['id_user']])->ExecuteSql();

                            $ok = true;
                        }
                    } 
                    else 
                    {
                        $repjs .= 'alert(\'' . cnv_to_javascript(Trad("Valeur non correcte")) . '\');';
                    }
                    
                    if ($ok) {
                        
                        $info_ligne = PanierLigne::getOneLigneByPanierUser($_SESSION['id_panier'], getValue('num_lig'));
                        
                        $nblignepanierPositif = Panier::NbLigneQtePositivePanier($_SESSION['id_user'], $_SESSION['id_panier']);
                        $repjs .= "me().opener.getObj('panier_txt_{$_SESSION['id_panier']}').innerHTML = {$nblignepanierPositif};";
                        
                        if (CLT_CHAMPC == $_SESSION['Session_NumClient']) {
                            $repjs .= "  CallUrl('panier_ong_3_input_client_56.php','action=afficherInputation&code_frs={$info_ligne['COD_FOURN']}&indexBloc=" . getValue('num_block') . '\');';
                            $repjs .= "  masquePopup(); ";
                        } else {
                            $repjs .= "me().opener.document.{$form_parent}.{$element}.value = {$valeur};" . "me().opener.Traite('{$prg_appel}',me().opener.document.{$form_parent}.{$element}); " . "masquePopup();";
                        }
                    }
                    
                    echo $repjs;
                    break;
            }
            break;
        default:
            break;
    }
} else {
    $array['article'] = array(
        "!des_art" => $result_art['DES_ART'],
        "!onfocus" => "SelObj(this);",
        "!nb_ligne" => "0.000"
    );
    
    echo $obj_xml->XslHtml($fichier_xsl, $array);
}

$connecteur->disconnect();
exit();