<?php
/****************************************************************************************
 * SMI (Services Maintenance Interventions) est une gestion libre de maintenance et de SAV
 *
 * Version 1.0.4
 *
 * Copyright (C) 2006-2016  Sylvain FATOME
 * This program is free software; you can redistribute it and/or modify it under the terms
 * of the GNU General Public License as published by the Free Software Foundation;
 * either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program
 * (in the directory docs);
 * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA  02110-1301, USA.
 *
 * Contact : galawa@free.fr
 *
 * Web : http://smi.no-ip.org
 ****************************************************************************************/


// Vérification des tentatives de hack
$pos = strpos($_SERVER['PHP_SELF'], 'inc.php');
if ($pos !== FALSE) {
    header('Location: ../index.php');
}

/****************************************************/
/* Fonctions pour les accès aux fichiers paramètres */
/* et fichiers rattachés                            */
/****************************************************/

/**
 * Lecture des constantes / paramètres
 *
 * @param bool|TRUE $open
 * @return array|null
 */
function lit_enr_cons($open = TRUE) {
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rcons = 'SELECT * FROM `' . TBCONS . '`';
    $row = $db->get_row($rcons, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row;
}

// Centre de gestion

/**
 * Vérifie si le centre de gestion a été créé
 *
 * @param bool $open
 * @return bool
 */
function existe_cdg($open = TRUE)
{
    global
    $db;

    $existe = FALSE;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech = 'SELECT COUNT(*) FROM `' . TBCG . '`';
    $nb_enr = $db->get_var($rech);
    if ($nb_enr == 1) // Uniquement UN SEUL enregistrement !
    {
        $existe = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $existe;
}

/**
 * Lecture d'un enregistrement centre de gestion
 *
 * @param bool $open
 * @return array|null
 */
function lit_enr_cdg($open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBCG . '`';
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

// Périodicités

/**
 * Lecture d'un enregistrement périodicité
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_per($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBPER . "` WHERE `per_code` = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Vérification de la présence d'une périodicité dans un barême location
 *
 * @param $code
 * @param bool|TRUE $open
 * @return bool
 */
function exist_per_in_barloc($code, $open = TRUE)
{
    global
    $db;

    $exist = FALSE;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBBARLOC . "` WHERE `barloc_codeperloc` = '" . $db->escape($code) . "'";
    $nb_enr = $db->get_var($rexist);
    if ($nb_enr <> 0) {
        $exist = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $exist;
}

/**
 * Vérification de la présence d'une périodicité dans un contrat client
 *
 * @param $code
 * @param bool $open
 * @return bool
 */
function exist_per_in_cocl($code, $open = TRUE)
{
    global
    $db;

    $exist = FALSE;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBCOCL . "` WHERE `cocl_codeper` = '" . $db->escape($code) . "'";
    $nb_enr = $db->get_var($rexist);
    if ($nb_enr <> 0) {
        $exist = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $exist;
}

/**
 * Vérification de la présence d'une périodicité dans une catégorie contrat
 *
 * @param $code
 * @param bool|TRUE $open
 * @return bool
 */
function exist_per_in_coclcat($code, $open = TRUE)
{
    global
    $db;

    $exist = FALSE;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBCOCLCAT . "` WHERE `coclcat_codeper` = '" . $db->escape($code) . "'";
    $nb_enr = $db->get_var($rexist);
    if ($nb_enr <> 0) {
        $exist = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $exist;
}

/**
 * Vérification de la présence d'une périodicité dans les constantes
 *
 * @param $code
 * @param bool|TRUE $open
 * @return bool
 */
function exist_per_in_cons($code, $open = TRUE)
{
    global
    $db;

    $exist = FALSE;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBCONS . "` WHERE `cons_coclcat_codeper` = '" . $db->escape($code) . "'";
    $nb_enr = $db->get_var($rexist);
    if ($nb_enr <> 0) {
        $exist = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $exist;
}

// Périodes de location

/**
 * Lecture d'un enregistrement période
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_perloc($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBPERLOC . "` WHERE `perloc_code` = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Vérification de la présence d'une période de location dans un barème
 *
 * @param $code
 * @param bool $open
 * @return bool
 */
function exist_perloc_in_barloc($code, $open = TRUE)
{
    global
    $db;

    $exist = FALSE;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBBARLOC . "` WHERE `barloc_codeperloc` = '" . $db->escape($code) . "'";
    $nb_enr = $db->get_var($rexist);
    if ($nb_enr <> 0) {
        $exist = TRUE;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $exist;
}

// Origines

/**
 * Lecture d'un enregistrement origine
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_orig($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBORI . "` WHERE orig_code = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Vérification du nombre d'origines
 *
 * @param bool $open
 * @return null
 */
function nb_orig($open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBORI . '`';
    $nbexist = $db->get_var($rexist);
    if ($open == TRUE) {
        close_database();
    }

    return $nbexist;
}

// Règlements

/**
 * Vérification du nombre de règlements
 *
 * @param bool $open
 * @return null
 */
function nb_reg($open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBREG . '`';
    $nbexist = $db->get_var($rexist);
    if ($open == TRUE) {
        close_database();
    }

    return $nbexist;
}


// Lieux

/**
 * Vérification du nombre de lieux
 *
 * @param bool $open
 * @return null
 */
function nb_lieux($open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rexist = 'SELECT COUNT(*) FROM `' . TBLIEU . '`';
    $nbexist = $db->get_var($rexist);
    if ($open == TRUE) {
        close_database();
    }

    return $nbexist;
}

/**
 * Lecture d'un enregistrement lieu
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_lieu($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBLIEU . "` WHERE lieu_code = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

// Règlements

/**
 * Lecture d'un enregistrement règlement
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_reg($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBREG . "` WHERE reg_code = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}


// Devises

/**
 * Renvoie les enregistrements MySQL des devises
 *
 * @return array
 */
function give_rows_devises()
{
    global
    $_SESSION,
    $db;

    $codelng = strtoupper($_SESSION['lng']);
    if ($codelng == '') {
        $codelng = 'FR';
    }

    $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    $rech = 'SELECT dev_codea,dev_nom FROM `' . TBDEV . '`';
    $rech .= " WHERE dev_lng='" . $codelng . "'";
    $rech .= ' ORDER BY dev_nom';
    $rows = $db->get_results($rech, ARRAY_A);
    close_database();

    return $rows;
}

/**
 * Lecture d'un enregistrement devise
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_dev($code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBDEV . "` WHERE dev_code = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Lecture d'un enregistrement devise (ID)
 *
 * @param $id
 * @param bool $open
 * @return array|null
 */
function lit_enr_dev_id($id, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBDEV . "` WHERE dev_id = '$id'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Retourne le code devise (alpha) par défaut
 *
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut($lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_defaut = '1' AND dev_lng = '" . $db->escape($lng) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        $code_devise = $dev_codea;
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour une agence donnée
 * Si saisi et correct, retourne le code devise de la fiche agence
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codeage
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_age($codeage, $lng, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT age_codeadev,age_codepays FROM `' . TBAGE . "` WHERE age_code = '" . $db->escape($codeage) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($age_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$age_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        } else // Pas saisi : on prend la monnaie par défaut du pays de l'agence
        {
            $rech3 = 'SELECT pays_codeadev FROM `' . TBPAYS . "` WHERE pays_code = '$age_codepays' AND pays_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                // Le pays a un code : on vérifie s'il est correct
                if (trim($pays_codeadev) <> '') {
                    $rech4 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$pays_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
                    $row4 = $db->get_row($rech4, ARRAY_A);
                    if ($row4) {
                        extract($row4);
                        $code_devise = $dev_codea;
                    } else {
                        $code_devise = give_dev_codea_defaut($lng, FALSE);
                    }
                } else {
                    $code_devise = give_dev_codea_defaut($lng, FALSE);
                }
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        }
    } else // N'existe pas (création): on prend la devise par défaut
    {
        $code_devise = give_dev_codea_defaut($lng, FALSE);
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un sous-traitant donné
 * Si saisi et correct, retourne le code devise de la fiche sous-traitant
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codest
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_st($codest, $lng, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT st_codeadev,st_codepays FROM `' . TBST . "` WHERE st_code = '" . $db->escape($codest) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($st_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$st_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        } else // Pas saisi : on prend la monnaie par défaut du pays du sous-traitant
        {
            $rech3 = 'SELECT pays_codeadev FROM `' . TBPAYS . "` WHERE pays_code = '$st_codepays' AND pays_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                // Le pays a un code : on vérifie s'il est correct
                if (trim($pays_codeadev) <> '') {
                    $rech4 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$pays_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
                    $row4 = $db->get_row($rech4, ARRAY_A);
                    if ($row4) {
                        extract($row4);
                        $code_devise = $dev_codea;
                    } else {
                        $code_devise = give_dev_codea_defaut($lng, FALSE);
                    }
                } else {
                    $code_devise = give_dev_codea_defaut($lng, FALSE);
                }
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        }
    } else // N'existe pas (création): on prend la devise par défaut
    {
        $code_devise = give_dev_codea_defaut($lng, FALSE);
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un sous-traitant donné
 * Si saisi et correct, retourne le code devise de la fiche sous-traitant
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codedo
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_do($codedo, $lng, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT do_codeadev,do_codepays FROM `' . TBDO . "` WHERE do_code = '" . $db->escape($codedo) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($do_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$do_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        } else // Pas saisi : on prend la monnaie par défaut du pays du donneur d'ordres
        {
            $rech3 = 'SELECT pays_codeadev FROM `' . TBPAYS . "` WHERE pays_code = '$do_codepays' AND pays_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                // Le pays a un code : on vérifie s'il est correct
                if (trim($pays_codeadev) <> '') {
                    $rech4 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$pays_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
                    $row4 = $db->get_row($rech4, ARRAY_A);
                    if ($row4) {
                        extract($row4);
                        $code_devise = $dev_codea;
                    } else {
                        $code_devise = give_dev_codea_defaut($lng, FALSE);
                    }
                } else {
                    $code_devise = give_dev_codea_defaut($lng, FALSE);
                }
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        }
    } else // N'existe pas (création): on prend la devise par défaut
    {
        $code_devise = give_dev_codea_defaut($lng, FALSE);
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un client donné
 * Si saisi et correct, retourne le code de la fiche agence
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codecli
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_cli($codecli, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT cli_prop,cli_codedo,cli_codeadev,cli_codepays FROM `' . TBCLI . "` WHERE cli_code = '" . $db->escape($codecli) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($cli_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$cli_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        } else // Pas saisi : il faut vérifier s'il y a un propriétaire
        {
            // Oui : on prend la devise de l'agence propriétaire
            if (trim($cli_prop) <> '') {
                $code_devise = give_dev_codea_defaut_age($cli_prop, $lng, FALSE);
            } else // Non : d�marche classique
            {
                $rech3 = 'SELECT pays_codeadev FROM `' . TBPAYS . "` WHERE pays_code = '$cli_codepays' AND pays_lng = '" . $db->escape($lng) . "'";
                $row3 = $db->get_row($rech3, ARRAY_A);
                if ($row3) {
                    extract($row3);
                    // Le pays a un code : on vérifie s'il est correct
                    if (trim($pays_codeadev) <> '') {
                        $rech4 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$pays_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
                        $row4 = $db->get_row($rech4, ARRAY_A);
                        if ($row4) {
                            extract($row4);
                            $code_devise = $dev_codea;
                        } else {
                            $code_devise = give_dev_codea_defaut($lng, FALSE);
                        }
                    } else {
                        $code_devise = give_dev_codea_defaut($lng, FALSE);
                    }
                } else {
                    $code_devise = give_dev_codea_defaut($lng, FALSE);
                }
            }
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un contrat donné
 * Si saisi et correct, retourne le code de la fiche contrat
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codecocl
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_cocl($codecocl, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT cocl_codeadev,cocl_codecli FROM `' . TBCOCL . "` WHERE cocl_code = '" . $db->escape($codecocl) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($cocl_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$cocl_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut_cli($cocl_codecli, $lng, FALSE);
            }
        } else // Pas saisi : on prend la devise du client
        {
            $code_devise = give_dev_codea_defaut_cli($cocl_codecli, $lng, FALSE);
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un contrat de location donné
 * Si saisi et correct, retourne le code de la fiche contrat
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codecoloc
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_coloc($codecoloc, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT coloc_codeadev,coloc_codecli FROM `' . TBCOLOC . "` WHERE coloc_code = '" . $db->escape($codecoloc) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($coloc_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$coloc_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut_cli($coloc_codecli, $lng, FALSE);
            }
        } else // Pas saisi : on prend la devise du client
        {
            $code_devise = give_dev_codea_defaut_cli($coloc_codecli, $lng, FALSE);
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un produit de location donné
 * Si saisi et correct, retourne le code de la fiche produit
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codepdtloc
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_pdtloc($codepdtloc, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT pdtloc_codeadev FROM `' . TBPDTLOC . "` WHERE pdtloc_code = '" . $db->escape($codepdtloc) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($pdtloc_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$pdtloc_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut($lng, FALSE);
            }
        } else // Pas saisi : on prend la devise du client
        {
            $code_devise = give_dev_codea_defaut($lng, FALSE);
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour un dossier de suivi donné
 * Si saisi et correct, retourne le code de la fiche dossier
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codedos
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_dos($codedos, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT dos_codeadev,dos_codeage FROM `' . TBDOS . "` WHERE dos_code = '" . $db->escape($codedos) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($dos_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$dos_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut_age($dos_codeage, $lng, FALSE);
            }
        } else // Pas saisi : on prend la devise de l'agence
        {
            $code_devise = give_dev_codea_defaut_age($dos_codeage, $lng, FALSE);
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le code devise (alpha) par défaut pour une intervention donnée
 * Si saisi et correct, retourne le code de la fiche intervention
 * Si pas saisi ou pas correct, retourne le code devise par défaut
 *
 * @param $codeint
 * @param $lng
 * @param bool $open
 * @return string
 */
function give_dev_codea_defaut_int($codeint, $lng, $open = TRUE)
{
    global
    $db;
    $code_devise = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT int_codeadev,int_codeage FROM `' . TBINT . "` WHERE int_code = '" . $db->escape($codeint) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        // Saisi : on vérifie si correct
        if (trim($int_codeadev) <> '') {
            $rech3 = 'SELECT dev_codea FROM `' . TBDEV . "` WHERE dev_codea = '$int_codeadev'  AND dev_lng = '" . $db->escape($lng) . "'";
            $row3 = $db->get_row($rech3, ARRAY_A);
            if ($row3) {
                extract($row3);
                $code_devise = $dev_codea;
            } else {
                $code_devise = give_dev_codea_defaut_age($int_codeage, $lng, FALSE);
            }
        } else // Pas saisi : on prend la devise de l'agence
        {
            $code_devise = give_dev_codea_defaut_age($int_codeage, $lng, FALSE);
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $code_devise;
}

/**
 * Retourne le symbole ISO d'une devise (en fonction code alpha)
 *
 * @param string $pays
 * @param bool $open
 * @return string
 */
function give_dev_ISO($pays = '', $open = TRUE)
{
    global
    $db,
    $_SESSION;


    $code_TXT = '';

    if (trim($pays) <> '') {
        $codepays = $pays;
    } else {
        $codepays = $_SESSION['codepays'];
    }

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    // On récupère le code devise du pays
    $rech = 'SELECT pays_codeadev,pays_devpos FROM `' . TBPAYS . "` WHERE `pays_code` = '" . $db->escape($codepays) . "'";
    $row = $db->get_row($rech, ARRAY_A);
    if ($row) {
        extract($row);
        // On récupère le texte devise
        if ($pays_codeadev <> 'EUR') // Si 'EUR' (Euro), il faut coder en HTML car le symbole '€' n'est pas correctement géré en UTF-8
        {
            $rech2 = 'SELECT dev_symtxt FROM `' . TBDEV . "` WHERE dev_codea = '" . $db->escape($pays_codeadev) . "'";
            $row2 = $db->get_row($rech2, ARRAY_A);
            if ($row2) {
                extract($row2);
                $code_TXT = $pays_codeadev;
                if (trim($dev_symtxt) <> '') {
                    $code_TXT = $dev_symtxt;
                }
            }
        } else {
            $code_TXT = '&euro;';
        }
    }
    if ($open == TRUE) {
        close_database();
    }
    
    /*
    if ($open == TRUE)
        $db = new ezSQL_mysqli(DBUSER, DBPASS, DBNAME, DBHOST,'utf8');

    $rech2 = "SELECT dev_symiso FROM `" . TBDEV . "` WHERE dev_codea = '" . $db->escape($codea) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        if (trim($dev_symiso) <> '')
            $code_ISO = $dev_symiso;
        else
            $code_ISO = $codea;
    }
    if ($open == TRUE)
        close_database();
    */

    return utf8_encode($code_TXT);
}

/**
 * Retourne le symbole texte d'une devise (en fonction code alpha)
 *
 * @param $codea
 * @param bool $open
 * @return string
 */
function give_dev_TXT($codea, $open = TRUE)
{
    global
    $db;
    $code_TXT = '';

    if ($codea <> 'EUR') // Si 'EUR' (Euro), il faut coder en HTML car le symbole '�' n'est pas correctement géré en UTF-8
    {
        if ($open == TRUE) {
            $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
        }
        $rech2 = 'SELECT dev_symtxt FROM `' . TBDEV . "` WHERE dev_codea = '" . $db->escape($codea) . "'";
        $row2 = $db->get_row($rech2, ARRAY_A);
        if ($row2) {
            extract($row2);
            $code_TXT = $codea;
            if (trim($dev_symtxt) <> '') {
                $code_TXT = $dev_symtxt;
            }
        }
        if ($open == TRUE) {
            close_database();
        }
    } else {
        $code_TXT = '&euro;';
    }

    return $code_TXT;
}

/**
 * Retourne le nom d'une devise (en fonction code alpha)
 *
 * @param $codea
 * @param bool $open
 * @return string
 */
function give_dev_nom($codea, $open = TRUE)
{
    global
    $db;
    $nom = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT dev_nom FROM `' . TBDEV . "` WHERE dev_codea = '" . $db->escape($codea) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        $nom = $codea;
        if (trim($dev_nom) <> '') {
            $nom = $dev_nom;
        }
    }
    if ($open == TRUE) {
        close_database();
    }

    return $nom;
}

// Niveaux d'urgence

/**
 * Lecture d'un enregistrement urgence
 *
 * @param $code
 * @param bool $open
 * @return array|null
 */
function lit_enr_urg($code, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT * FROM `' . TBURG . "` WHERE `urg_niveau` = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE) {
        close_database();
    }

    return $row2;
}

/**
 * Retourne le nom d'un enregistrement urgence
 *
 * @param $code
 * @param bool $open
 * @return string
 */
function give_nom_urg($code, $open = TRUE)
{
    global
    $db;
    $nom = '';

    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT urg_des FROM `' . TBURG . "` WHERE `urg_niveau` = '" . $db->escape($code) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        $row2 = encode_str($row2);
        $nom = $row2['urg_des'];
    }
    if ($open == TRUE) {
        close_database();
    }

    return $nom;
}

/**
 * Retourne la couleur d'un enregistrement urgence
 *
 * @param $code
 * @param bool $open
 * @return string
 */
function give_coul_urg($code, $open = TRUE)
{
    global
    $db;
    $urg_couleur = 'XX';
    if ($open == TRUE) {
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST, 'utf8');
    }
    $rech2 = 'SELECT urg_couleur FROM `' . TBURG . '` WHERE `urg_niveau` = ' . $db->escape($code);
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
    }
    if ($open == TRUE) {
        close_database();
    }

    return $urg_couleur;
}
