<?php
/* **
 * @application PhpMyShopping
 * @part        Admin boutique (AB)
 * @file        frais_envoi.php
 * @path        ./admin/
 * @author      Stephane DINE <stephane@phpmyshopping.org>
 * @site        http://www.phpmyshopping.org
 * @license     http://www.php.net/license/3_0.txt  PHP License 3.0
 *
 * PHP version 5
 */

if ((!isset($_SESSION['LoginOk']) or $_SESSION['LoginOk'] != 'IdentOk')) {
    header('Location: ./login.php');
}

require_once 'include/class.frais_envoi.php';
$frais = new Frais_envoi();

/**
 * Affectation de l'identifiant du transporteur par defaut si aucune valeur n'est transmise par le formulaire
 */
if (($_REQUEST['ID_Carrier']) and ($_REQUEST['ID_Carrier'] > 0)) {
    $ID_Carrier = $_REQUEST['ID_Carrier'];
} elseif (($data['ID_Carrier']) and ($data['ID_Carrier'] > 0)) {
    $ID_Carrier = $_POST['data']['ID_Carrier'];
} else {
    $ID_Carrier = 0;
}

/**
 * Affectation de l'identifiant de la zone par defaut si aucune valeur n'est transmise par le formulaire
 */
if (($_REQUEST['ID_Zone']) and ($_REQUEST['ID_Zone'] > 0)) {
    $ID_Zone = $_REQUEST['ID_Zone'];
} elseif (($data['ID_Zone']) and ($data['ID_Zone'] > 0)) {
    $ID_Zone = $data['ID_Zone'];
} else {
    $ID_Zone = 0;
}

/**
 * Affectation de l'identifiant de la formule par defaut si aucune valeur n'est transmise par le formulaire
 */
if (($_REQUEST['ID_Package']) and ($_REQUEST['ID_Package'] > 0)) {
    $ID_Package = $_REQUEST['ID_Package'];
} elseif (($data['ID_Package']) and ($data['ID_Package'] > 0)) {
    $ID_Package = $data['ID_Package'];
} else {
    $ID_Package = 0;
}

/**
 * Definition de la variable $C2
 */
if ((isset($_REQUEST['C2'])) and ($_REQUEST['C2'])) {
    $C2 = $_REQUEST['C2'];
} else {
    $C2 = 'TR';
}

/**
 * Definition de la variable $C3
 */
if ((isset($_REQUEST['C3'])) and ($_REQUEST['C3'])) {
    $C3 = $_REQUEST['C3'];
} else {
    $C3 = 'TR';
}

$p = 'C1=FE&C2='.$C2.'&';

switch ($C2) {
/** -------------------------------------------------------------------------------------
 * Gestion des transporteurs
 */
case 'TR':
    switch ($C3) {
    /** -------------------------------------------------------------------------------------
     * Affichage de la liste des transporteurs
     */
    case 'list':
        echo $frais->sous_menu(array(12));
        echo $frais->listCarrier();
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire d'ajout d'un transporteur
     */
    case 'insert':
        echo $frais->sous_menu(array(11));
        echo $frais->formCarrier();
        break;

    /** -------------------------------------------------------------------------------------
     * Ajout d'un transporteur dans la database
     */
    case 'insert_ok':
        echo $frais->sous_menu(array(12));
        $data['CarrierName'] = $_POST['CarrierName'];
        $data['Status']      = $_POST['Status'];
        $ID_Carrier          = $frais->insert_sql('Carrier', $data);

        if ($_GET['AddZone']) {
            echo $frais->formZone(0, $ID_Carrier, 1);
        } else {
            echo $frais->listCarrier();
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire de modification du transporteur
     */
    case 'edit':
        echo $frais->sous_menu(array(11));
        echo $frais->formCarrier($ID_Carrier);
        break;

    /** -------------------------------------------------------------------------------------
     * Prise en compte des modifications apportees aux donnees transporteur
     */
    case 'update':
        echo $frais->sous_menu(array(12));
        $data['CarrierName'] = $_POST['CarrierName'];
        $data['Status']      = $_POST['Status'];
        $frais->update_sql('Carrier', $data, $data['ID_Carrier']);
        echo $frais->listCarrier();
        break;

    /** -------------------------------------------------------------------------------------
     * Demande de confirmation avant suppression du transporteur
     */
    case 'delete':
        echo $frais->sous_menu(array(11, 12));
        echo '
        <p class="message_confirm">Souhaitez-vous vraiment effacer ce transporteur ?
          <a href="?C1=FE&C2=TR&C3=delete_ok&ID_Carrier='.$ID_Carrier.'">Oui</a>
          <a href="?C1=FE&C2=TR&C3=list">Non</a>
        </p>';
        break;

    /** -------------------------------------------------------------------------------------
     * Suppression du transporteur
     */
    case 'delete_ok':
        echo $frais->sous_menu(array(12));
        $frais->delete_tuple('Carrier', 'ID_Carrier', $_GET['ID_Carrier']);
        echo $frais->listCarrier();
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage par defaut de la liste des transporteurs
     */
    default:
        echo $frais->sous_menu(array(12));
        echo $frais->listCarrier();
    }

    break;

/** -------------------------------------------------------------------------------------
 * Gestion des zones geographiques
 */
case 'ZG':
    switch ($C3) {
    /** -------------------------------------------------------------------------------------
     * Affichage de la liste des zones
     */
    case 'list':
        echo $frais->sous_menu(array(14));
        echo $frais->listZone($ID_Carrier);
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire d'ajout d'une zone
     */
    case 'insert':
        echo $frais->sous_menu(array(13));
        echo $frais->formZone(0, $ID_Carrier, 1);
        break;

    /** -------------------------------------------------------------------------------------
     * Enregistrement de la zone geographique
     */
    case 'insert_ok':
        echo $frais->sous_menu(array(14));

        if ($_POST['ZoneName']) {
            $data['ZoneName'] = ucwords(strtolower($_POST['ZoneName']));
            $data['Status']   = $_POST['Status'];
            $ID_Zone = $frais->insert_sql('Zone', $data);

            /**
             * Ajout des pays dans la nouvelle zone
             */
            if (isset($OUT)) {
                for ($cpt = 0; $cpt < sizeof($OUT); $cpt++) {
                    $sql = 'SELECT ID_Country, CountryName FROM Country WHERE ID_Country = '.$OUT[$cpt];
                    $resultat = $frais->query($sql);
                    $enr = @mysql_fetch_array($resultat);
                    $frais->query('INSERT INTO CountryToZone VALUES ('.$enr[0].', '.$ID_Zone.')');
                }
            }

            if ($_POST['ValidZone']) {
                /**
                 * Affichage de la liste des zones de livraison
                 */
                echo $frais->listZone($data['ID_Carrier']);
            } elseif ($_POST['NewZone']) {
                /**
                 * Affichage du formulaire pour la saisie d'une nouvelle zone
                 */
                if ($_GET['cat3'] == 'new') { 
                    $viewListCarrier = 1;
                } else {
                    $viewListCarrier = 0;
                }

                echo $frais->formZone(0, $data['ID_Carrier'], $viewListCarrier);
            } else {
                /**
                 * Affichage du formulaire d'ajout de packages pour la nouvelle zone de livraison
                 */
                echo $frais->formPackage(0, $ID_Zone);
            }
        } else {
            echo '<b class="red">Le nom de la zone n\'a pas &eacute;t&eacute; saisie !</b><br /><br />';
            echo $frais->formZone(0, 0, 1);
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire de modification de la zone
     */
    case 'edit':
        echo $frais->sous_menu(array(13));

        if (($_GET['ID_Zone']) and ($_GET['ID_Zone'] > 0)) {
            if (($_GET['typeOperation'] == 'A') or ($_GET['typeOperation'] == 'D')) {
                $typeOperation = $_GET['typeOperation'];
            } else {
                $typeOperation = 'D';
            }

            echo $frais->formZone($_GET['ID_Zone'], 0, 1, $typeOperation);
        } else {
            echo $frais->formZone();
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Prise en compte des modifications apportees aux donnees de la zone
     */
    case 'update':
        echo $frais->sous_menu(array(14));

        $data['ZoneName'] = ucwords(strtolower($_POST['ZoneName']));
        $data['Status']   = $_POST['Status'];
        $frais->update_sql('Zone', $data, $data['ID_Zone']);
    
        /**
         * Ajout ou suppresion de pays de la zone de livraison modifiee
         * => Mise a jour de la table CountryToZone
         */
        if (isset($OUT)) {
            for ($cpt = 0; $cpt < sizeof($OUT); $cpt++) {
                if ($_POST['typeOperation'] == 'A') {
                    /**
                     * Ajout de pays dans la zone
                     */
                    $frais->query('INSERT INTO CountryToZone VALUES ('.$OUT[$cpt].', '.$data['ID_Zone'].')');
                } else {
                    /**
                     * Suppresion de pays de la zone
                     */
                    $frais->query('DELETE FROM CountryToZone WHERE ID_Country = '.$OUT[$cpt].' AND ID_Zone = '.$data['ID_Zone']);
                }
            }
        }

        echo $frais->listZone($ID_Carrier);
        break;

    /** -------------------------------------------------------------------------------------
     * Demande de confirmation avant suppression de la zone
     */
    case 'delete':
        echo $frais->sous_menu(array(13, 14));
        echo '
        <p class="message_confirm">Souhaitez-vous vraiment effacer cette zone ?
          <a href="?C1=FE&C2=ZG&C3=delete_ok&ID_Zone='.$ID_Zone.'&ID_Carrier='.$ID_Carrier.'">Oui</a>
          <a href="?C1=FE&C2=ZG&C3=list&ID_Carrier='.$ID_Carrier.'">Non</a>
        </p>';
        break;

    /** -------------------------------------------------------------------------------------
     * Suppression de la zone
     */
    case 'delete_ok':
        echo $frais->sous_menu(array(14));
        $frais->delete_tuple('Zone', 'ID_Zone', $_GET['ID_Zone'], 'ID_Carrier', $ID_Carrier);
        echo $frais->listZone($ID_Carrier);

        break;

    /** -------------------------------------------------------------------------------------
     * Affichage par defaut de la liste des zones
     */
    default:
        echo $frais->sous_menu(array(14));
        echo $frais->listZone($ID_Carrier);
    }

    break;

/** -------------------------------------------------------------------------------------
 * Gestion des formules
 */
case 'FO':
    switch ($C3) {
    /** -------------------------------------------------------------------------------------
     * Affichage de la liste des formules
     */
    case 'list':
        echo $frais->sous_menu(array(16));
        echo $frais->listPackage($ID_Zone);
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire d'ajout d'une formule
     */
    case 'insert':
        echo $frais->sous_menu(array(15));
        echo $frais->formPackage(0, $ID_Zone, 1);
        break;

    /** -------------------------------------------------------------------------------------
     * Enregistrement de la formule
     */
    case 'insert_ok':
        echo $frais->sous_menu(array(16));
        $data['PackageName'] = ucwords(strtolower($_POST['PackageName']));
        $data['Status']      = $_POST['Status'];
        $ID_Package = $frais->insert_sql('Package', $data);
    
        if ($_POST['ValidPackage']) {
            /**
             * Affichage de la liste des formules
             */
            echo $frais->listPackage($data['ID_Zone']);
        } elseif ($_POST['NewPackage']) {
            /**
             * Affichage du formulaire pour la saisie d'une nouvelle formule
             */
            if ($_GET['cat3'] == 'new') { 
                $viewListZone = 1;
            } else {
                $viewListZone = 0;
            }
        
            echo $frais->formPackage(0, $data['ID_Zone'], $viewListZone);
        } else {
            /**
             * Affichage du formulaire d'ajout de prix
             */
            echo $frais->formCost(0, $ID_Package);
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire de modification de la formule
     */
    case 'edit':
        echo $frais->sous_menu(array(15));;

        if (($_GET['ID_Package']) and ($_GET['ID_Package'] > 0)) {
             echo $frais->formPackage($_GET['ID_Package']);
        } else {
             echo $frais->formPackage();
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Prise en compte des modifications apportees aux donnees de la formule
     */
    case 'update':
        echo $frais->sous_menu(array(16));
        $data['PackageName'] = ucwords(strtolower($_POST['PackageName']));
        $data['Status']      = $_POST['Status'];
        $frais->update_sql('Package', $data, $data['ID_Package']);
        echo $frais->listPackage($ID_Zone);
        break;

    /** -------------------------------------------------------------------------------------
     * Demande de confirmation avant suppression de la formule
     */
    case 'delete':
        echo $frais->sous_menu(array(15, 16));
        echo '
        <p class="message_confirm">Souhaitez-vous vraiment effacer cette formule ?
          <a href="?C1=FE&C2=FO&C3=delete_ok&ID_Package='.$ID_Package.'&ID_Zone='.$ID_Zone.'">Oui</a>
          <a href="?C1=FE&C2=FO&C3=list&ID_Zone='.$ID_Zone.'">Non</a>
        </p>';
        break;

    /** -------------------------------------------------------------------------------------
     * Suppression de la formule
     */
    case 'delete_ok':
        echo $frais->sous_menu(array(16));
        $frais->delete_tuple('Package', 'ID_Package', $_GET['ID_Package'], 'ID_Zone', $ID_Zone);
        echo '<b class="red">La formule a &eacute;t&eacute; effac&eacute;es</b><br /><br />';
        echo $frais->listPackage($ID_Zone);
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage par defaut de la liste des formules
     */
    default:
        echo $frais->sous_menu(array(16));
        echo $frais->listPackage($ID_Zone);
    }

    break;

/** -------------------------------------------------------------------------------------
 * Gestion des tarifs/poids
 */
case 'PT':
    switch ($C3) {
    /** -------------------------------------------------------------------------------------
     * Affichage de la liste des prix
     */
    case 'list':
        echo $frais->sous_menu(array(18));
        echo $frais->listCost($ID_Package);
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire d'ajout d'un prix 
     */
    case 'insert':
        echo $frais->sous_menu(array(17));
        echo $frais->formCost(0, $ID_Package, 1);
        break;

    /** -------------------------------------------------------------------------------------
     * Enregistrement du prix
     */
    case 'insert_ok':
        echo $frais->sous_menu(array(18));

        if (($_POST['Weight'] < 1) or (!$_POST['Weight'])) {
            $data['Weight'] = '4000000000';
        } else {
            $data['Weight'] = $_POST['Weight'];
        }

        $data['Cost']   = str_replace(',', '.', $_POST['Cost']);
        $data['Status'] = $_POST['Status'];
        $ID_Cost = $frais->insert_sql('Cost', $data);

        if ($_POST['ValidCost']) {
            /**
             * Affichage de la liste des prix et poids
             */
            echo $frais->listCost($_POST['data']['ID_Package']);
        } elseif ($_POST['NewCost']) {
            /**
             * Affichage du formulaire pour la saisie d'un prix
             */
            if ($_REQUEST['cat3'] == 'new') { 
                $viewListPackage = 1;
            } else {
                $viewListPackage = 0;
            }

            echo $frais->formCost(0, $_POST['data']['ID_Package'], $viewListPackage);
        } else {
            /**
             * Affichage du formulaire d'ajout de prix et poids
             */
            echo $frais->formCost(0, $ID_Package);
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Affichage du formulaire de modification du prix
     */
    case 'edit':
        echo $frais->sous_menu(array(17));

        if (($_GET['ID_Cost']) and ($_GET['ID_Cost'] > 0)) {
             echo $frais->formCost($_GET['ID_Cost']);
        } else {
             echo $frais->formCost();
        }

        break;

    /** -------------------------------------------------------------------------------------
     * Prise en compte des modifications apportees aux donnees du prix
     */
    case 'update':
        echo $frais->sous_menu(array(18));

        if (($_POST['Weight'] < 1) or (!$_POST['Weight'])) {
            $data['Weight'] = '4000000000';
        } else {
            $data['Weight'] = $_POST['Weight'];
        }

        $data['Cost']       = str_replace(',', '.', $_POST['Cost']);
        $data['Status']     = $_POST['Status'];
        $data['ID_Package'] = $_POST['data']['ID_Package'];
        $frais->update_sql('Cost', $data, $_POST['data']['ID_Cost']);
        echo $frais->listCost($ID_Package);
        break;

    /** -------------------------------------------------------------------------------------
     * Demande de confirmation avant suppression du prix
     */
    case 'delete':
        echo $frais->sous_menu(array(17, 18));
        echo '
        <p class="message_confirm">Souhaitez-vous vraiment effacer ce tarif ?
          <a href="?C1=FE&C2=PT&C3=delete_ok&ID_Package='.$ID_Package.'&ID_Cost='.$_GET['ID_Cost'].'">Oui</a>
          <a href="?C1=FE&C2=PT&C3=list&ID_Package='.$ID_Package.'">Non</a>
        </p>';
        break;

    /** -------------------------------------------------------------------------------------
     * Suppression du prix
     */
    case 'delete_ok':
        echo $frais->sous_menu(array(18));
        $frais->delete_tuple('Cost', 'ID_Cost', $_GET['ID_Cost']);
        echo $frais->listCost($ID_Package);
        break;

    /** -------------------------------------------------------------------------------------
     * Affichage par defaut des prix
     */
    default:
        echo $frais->sous_menu(array(18));
        echo $frais->listCost($ID_Package);
    }
}
?>
