diff --git a/htdocs/compta/bank/account.php b/htdocs/compta/bank/account.php index 4913321216e..961a4c44e8e 100644 --- a/htdocs/compta/bank/account.php +++ b/htdocs/compta/bank/account.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Jean-Louis Bergamo - * Copyright (C) 2004-2010 Laurent Destailleur + * Copyright (C) 2004-2011 Laurent Destailleur * Copytight (C) 2004 Christophe Combelles * Copytight (C) 2005-2010 Regis Houssin * Copytight (C) 2010-2011 Juanjo Menent @@ -651,7 +651,7 @@ if ($account || $_GET["ref"]) } // Transaction reconciliated or edit link - if ($objp->rappro && $acct->type != 2) // Si non compte cash + if ($objp->rappro && $acct->canBeConciliated() > 0) // If line not conciliated and account can be conciliated { print ""; print ''; @@ -676,7 +676,7 @@ if ($account || $_GET["ref"]) print img_view(); print ''; } - if ($acct->rappro && empty($objp->rappro)) + if ($acct->canBeConciliated() > 0 && empty($objp->rappro)) { if ($db->jdate($objp->dv) < ($now - $conf->bank->rappro->warning_delay)) { diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 85715000374..0a630bf0c48 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -44,11 +44,13 @@ class Account extends CommonObject var $rowid; var $ref; var $label; - var $type; // 'payment', 'company', 'member', 'banktransfert', 'payment_supplier', 'sc', 'payment_vat', ... + //! 1=Compte courant/check/carte, 2=Compte liquide, 0=Compte épargne + var $courant; + var $type; // same as courant //! Name var $bank; var $clos; - var $rappro; + var $rappro; // If bank need to be conciliated var $url; //! BBAN field for French Code banque var $code_banque; @@ -65,8 +67,6 @@ class Account extends CommonObject var $proprio; var $adresse_proprio; - //! 1=Compte courant/check/carte, 2=Compte liquide, 0=Compte épargne - var $courant; var $fk_departement; var $departement_code; @@ -109,6 +109,19 @@ class Account extends CommonObject } + /** + * Return if a bank account need to be conciliated + * @return int 1 if need to be concialiated, < 0 otherwise. + */ + function canBeConciliated() + { + if (empty($this->rappro)) return -1; + if ($this->courant == 2) return -2; + if ($this->clos) return -3; + return 1; + } + + /** * Add a link between bank line record and its source * @param line_id Id ecriture bancaire @@ -539,12 +552,12 @@ class Account extends CommonObject { global $conf; - if (empty($id) && empty($ref) && empty($ref_ext)) + if (empty($id) && empty($ref) && empty($ref_ext)) { $this->error="ErrorBadParameters"; return -1; } - + $sql = "SELECT ba.rowid, ba.ref, ba.label, ba.bank, ba.number, ba.courant, ba.clos, ba.rappro, ba.url,"; $sql.= " ba.code_banque, ba.code_guichet, ba.cle_rib, ba.bic, ba.iban_prefix as iban,"; $sql.= " ba.domiciliation, ba.proprio, ba.adresse_proprio, ba.fk_departement, ba.fk_pays,"; @@ -1002,9 +1015,10 @@ class AccountLine extends CommonObject var $note; var $fk_user_author; var $fk_user_rappro; + var $fk_type; var $num_releve; var $num_chq; - var $rappro; + var $rappro; // Is it conciliated ? var $bank_account_label; diff --git a/htdocs/compta/bank/fiche.php b/htdocs/compta/bank/fiche.php index ce62402ad0a..26ca15da2d3 100644 --- a/htdocs/compta/bank/fiche.php +++ b/htdocs/compta/bank/fiche.php @@ -283,14 +283,6 @@ if ($action == 'create') } print ''; - // Conciliable - /*print ''.$langs->trans("Conciliable").''; - print ''; - if ($account->type == 0 || $account->type == 1) print 'rappro?'':'checked="true"').'"> '.$langs->trans("DisableConciliation"); - if ($account->type == 2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; - print ''; - */ - // Accountancy code if ($conf->global->MAIN_BANK_ACCOUNTANCY_CODE_ALWAYS_REQUIRED) { @@ -420,8 +412,10 @@ else // Conciliate print ''.$langs->trans("Conciliable").''; print ''; - if ($account->type == 0 || $account->type == 1) print ($account->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')')); - if ($account->type == 2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; + $conciliate=$account->canBeConciliated(); + if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; + else if ($conciliate == -3) print $langs->trans("No").' ('.$langs->trans("Closed").')'; + else print ($account->rappro==1 ? $langs->trans("Yes") : ($langs->trans("No").' ('.$langs->trans("ConciliationDisabled").')')); print ''; // Accountancy code @@ -561,8 +555,10 @@ else // Conciliable print ''.$langs->trans("Conciliable").''; print ''; - if ($account->type == 0 || $account->type == 1) print 'rappro?'':' checked="true"').'"> '.$langs->trans("DisableConciliation"); - if ($account->type == 2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; + $conciliate=$account->canBeConciliated(); + if ($conciliate == -2) print $langs->trans("No").' ('.$langs->trans("CashAccount").')'; + else if ($conciliate == -3) print $langs->trans("No").' ('.$langs->trans("Closed").')'; + else print 'rappro?'':' checked="true"').'"> '.$langs->trans("DisableConciliation"); print ''; // Accountancy code diff --git a/htdocs/compta/bank/ligne.php b/htdocs/compta/bank/ligne.php index c449861aa3c..1fa3362123a 100644 --- a/htdocs/compta/bank/ligne.php +++ b/htdocs/compta/bank/ligne.php @@ -486,7 +486,7 @@ if ($result) print ""; // Releve rappro - if ($acct->rappro) // Si compte rapprochable + if ($acct->canBeConciliated() > 0) // Si compte rapprochable { print '
'."\n"; print_fiche_titre($langs->trans("Reconciliation"),'',''); diff --git a/htdocs/compta/bank/pre.inc.php b/htdocs/compta/bank/pre.inc.php index 07df9a64320..a0387aa950a 100644 --- a/htdocs/compta/bank/pre.inc.php +++ b/htdocs/compta/bank/pre.inc.php @@ -74,7 +74,7 @@ function llxHeader($head = '', $title='', $help_url='', $target='', $disablejs=0 { $objp = $db->fetch_object($resql); $menu->add_submenu('/compta/bank/fiche.php?id='.$objp->rowid,$objp->label,1,$user->rights->banque->lire); - if ($objp->rappro && $objp->courant != 2) // If not cash account and can be reconciliate + if ($objp->rappro && $objp->courant != 2 && ! $objp->clos) // If not cash account and not closed and can be reconciliate { $menu->add_submenu('/compta/bank/rappro.php?account='.$objp->rowid,$langs->trans("Conciliate"),2,$user->rights->banque->consolidate); }