From 07dbcb334664a123b4857e8363b575869bcd5be2 Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville Date: Thu, 9 Sep 2004 15:51:36 +0000 Subject: [PATCH] Nouveau fichier --- htdocs/companybankaccount.class.php | 201 ++++++++++++++++++++++++ htdocs/societe/rib.php | 227 ++++++++++++++++++++++++++++ 2 files changed, 428 insertions(+) create mode 100644 htdocs/companybankaccount.class.php create mode 100644 htdocs/societe/rib.php diff --git a/htdocs/companybankaccount.class.php b/htdocs/companybankaccount.class.php new file mode 100644 index 00000000000..b0b4f14c14e --- /dev/null +++ b/htdocs/companybankaccount.class.php @@ -0,0 +1,201 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004 Laurent Destailleur + * + * 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; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ + +class CompanyBankAccount +{ + var $rowid; + + var $bank; + var $courant; + var $clos; + var $code_banque; + var $code_guichet; + var $number; + var $cle_rib; + var $bic; + var $iban_prefix; + var $proprio; + var $adresse_proprio; + + function CompanyBankAccount($DB, $soc_id) + { + global $config; + + $this->db = $DB; + $this->soc_id = $soc_id; + + $this->clos = 0; + $this->solde = 0; + return 1; + } + + + /* + * Creation du compte bancaire + * + */ + function create() + { + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe_rib (fk_soc, datec) values ($this->soc_id, now());"; + if ($this->db->query($sql)) + { + if ($this->db->affected_rows()) + { + return 1; + } + } + else + { + print $this->db->error(); + return 0; + + } + } + /* + * + * + */ + function update($user='') + { + + $sql = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."societe_rib "; + $sql .= " WHERE fk_soc = ".$this->soc_id; + + $result = $this->db->query($sql); + + if ($result) + { + if ($this->db->num_rows() == 0) + { + $this->create(); + } + } + else + { + print $this->db->error(); + return 0; + } + + if (strlen(trim($this->iban_prefix)) == 0) + { + // Indispensable de la positionner pour vérifier le RIB + $this->iban_prefix = 'FR'; + } + + + $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET "; + + $sql .= " bank = '" .$this->bank ."'"; + $sql .= ",code_banque='".$this->code_banque."'"; + $sql .= ",code_guichet='".$this->code_guichet."'"; + $sql .= ",number='".$this->number."'"; + $sql .= ",cle_rib='".$this->cle_rib."'"; + $sql .= ",bic='".$this->bic."'"; + $sql .= ",iban_prefix = '".$this->iban_prefix."'"; + $sql .= ",domiciliation='".$this->domiciliation."'"; + $sql .= ",proprio = '".$this->proprio."'"; + $sql .= ",adresse_proprio = '".$this->adresse_proprio."'"; + + $sql .= " WHERE fk_soc = ".$this->soc_id; + + $result = $this->db->query($sql); + + if ($result) + { + return 1; + } + else + { + dolibarr_print_error($this->db); + return 0; + } + } + + /* + * + * + */ + function fetch() + { + + $sql = "SELECT rowid, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix, domiciliation, proprio, adresse_proprio FROM ".MAIN_DB_PREFIX."societe_rib"; + $sql .= " WHERE fk_soc = ".$this->soc_id; + + $result = $this->db->query($sql); + + if ($result) + { + if ($this->db->num_rows()) + { + $obj = $this->db->fetch_object($result , 0); + + $this->bank = $obj->bank; + $this->courant = $obj->courant; + $this->clos = $obj->clos; + $this->code_banque = $obj->code_banque; + $this->code_guichet = $obj->code_guichet; + $this->number = $obj->number; + $this->cle_rib = $obj->cle_rib; + $this->bic = $obj->bic; + $this->iban_prefix = $obj->iban_prefix; + $this->domiciliation = $obj->domiciliation; + $this->proprio = $obj->proprio; + $this->adresse_proprio = $obj->adresse_proprio; + } + $this->db->free(); + } + else + { + dolibarr_print_error($this->db); + } + } + + /* + * + * + */ + function error() + { + return $this->error; + } + + /* + * + * + */ + function verif() + { + require_once DOL_DOCUMENT_ROOT . '/compta/bank/bank.lib.php'; + if (! verif_rib($this->code_banque,$this->code_guichet,$this->number,$this->cle_rib,$this->iban_prefix)) + { + return 0; + } + else + { + return 1; + } + } +} + +?> diff --git a/htdocs/societe/rib.php b/htdocs/societe/rib.php new file mode 100644 index 00000000000..b2bdc6e4b8d --- /dev/null +++ b/htdocs/societe/rib.php @@ -0,0 +1,227 @@ + + * Copyright (C) 2003 Jean-Louis Bergamo + * Copyright (C) 2004 Laurent Destailleur + * + * 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; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Id$ + * $Source$ + */ +require("./pre.inc.php"); +require_once DOL_DOCUMENT_ROOT . "/companybankaccount.class.php"; + +$user->getrights('societe'); + +if ( !$user->rights->societe->creer) + accessforbidden(); + + +llxHeader(); + +$soc = new Societe($db); +$soc->id = $_GET["socid"]; +$soc->fetch($_GET["socid"]); + +if ($_POST["action"] == 'update' && ! $_POST["cancel"]) +{ + // Modification + $account = new CompanyBankAccount($db, $soc->id); + + $account->bank = $_POST["bank"]; + $account->label = $_POST["label"]; + $account->courant = $_POST["courant"]; + $account->clos = $_POST["clos"]; + $account->code_banque = $_POST["code_banque"]; + $account->code_guichet = $_POST["code_guichet"]; + $account->number = $_POST["number"]; + $account->cle_rib = $_POST["cle_rib"]; + $account->bic = $_POST["bic"]; + $account->iban_prefix = $_POST["iban_prefix"]; + $account->domiciliation = $_POST["domiciliation"]; + $account->proprio = $_POST["proprio"]; + $account->adresse_proprio = $_POST["adresse_proprio"]; + + $result = $account->update($user); + if (! $result) + { + $message=$account->error(); + $_GET["action"]='edit'; // Force chargement page edition + } + else + { + $_GET["id"]=$_POST["id"]; // Force chargement page en mode visu + } +} + + +/* + * Affichage onglets + */ +$h = 0; + +$head[0][0] = DOL_URL_ROOT .'/soc.php?socid='.$soc->id; +$head[0][1] = "Fiche société"; +$h = 1; + +$head[$h][0] = "fiche.php?id=$account->id"; +$head[$h][1] = "Compte bancaire $account->number"; +$h++; + +dolibarr_fiche_head($head, 1); + +$account = new CompanyBankAccount($db, $soc->id); +$account->fetch(); + + +/* ************************************************************************** */ +/* */ +/* Visu et edition */ +/* */ +/* ************************************************************************** */ + + if ($_GET["socid"] && $_GET["action"] != 'edit') + { + + if (!$account->verif()) + { + print "Le contrôle de la clé indique que les informations de votre compte bancaire sont incorrectes."; + } + + + + print ''; + + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + + print ''; + print ''; + + print '\n"; + + print '\n"; + + print '\n"; + + print '
Banque'.$account->bank.'
Code BanqueCode GuichetNuméroClé RIB
'.$account->code_banque.''.$account->code_guichet.''.$account->number.''.$account->cle_rib.'
Clé IBAN'.$account->iban_prefix.'
Identifiant BIC'.$account->bic.'
Domiciliation'; + print $account->domiciliation; + print "
Nom propriétaire du compte'; + print $account->proprio; + print "
Adresse propriétaire du compte'; + print $account->adresse_proprio; + print "
'; + print '
'; + + print ''; + + + + + + + /* + * Barre d'actions + * + */ + print '
'; + + if ($user->rights->societe->creer) + { + print ''.$langs->trans("Edit").''; + } + + print '
'; + + } + + /* ************************************************************************** */ + /* */ + /* Edition */ + /* */ + /* ************************************************************************** */ + + if ($_GET["socid"] && $_GET["action"] == 'edit' && $user->rights->societe->creer) + { + + $form = new Form($db); + + print_titre("Edition compte bancaire"); + print "
"; + + if ($message) { print "$message

\n"; } + + print '
'; + print ''; + print ''; + + print ''; + + print ''; + print ''; + + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + + print ''; + print ''; + + print '"; + + print ''; + print ''; + print "\n"; + + print '"; + + print ''; + print ''; + print '
Banque
'.$langs->trans("Label").'
Code BanqueCode GuichetNuméroClé RIB
Clé IBAN
Identifiant BIC
Domiciliation'; + print "
Nom propriétaire du compte
Adresse propriétaire du compte'; + print "
'; + print '   '; + print '
'; + } + + + + + +$db->close(); + +llxFooter("Dernière modification $Date$ révision $Revision$"); +?>