index.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  3. * Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
  4. * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
  5. * Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 3 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. /**
  21. * \file htdocs/compta/bank/index.php
  22. * \ingroup banque
  23. * \brief Home page of bank module
  24. */
  25. require('../../main.inc.php');
  26. require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
  27. require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
  28. require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
  29. require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
  30. $langs->load("banks");
  31. $langs->load("categories");
  32. // Security check
  33. if ($user->societe_id) $socid=$user->societe_id;
  34. $result=restrictedArea($user,'banque');
  35. $statut=GETPOST('statut');
  36. /*
  37. * View
  38. */
  39. $title=$langs->trans('BankAccounts');
  40. // Load array of financial accounts (opened by default)
  41. $accounts = array();
  42. $sql = "SELECT rowid, courant, rappro";
  43. $sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
  44. $sql.= " WHERE entity IN (".getEntity('bank_account', 1).")";
  45. if ($statut != 'all') $sql.= " AND clos = 0";
  46. $sql.= $db->order('label', 'ASC');
  47. $resql = $db->query($sql);
  48. if ($resql)
  49. {
  50. $num = $db->num_rows($resql);
  51. $i = 0;
  52. while ($i < $num)
  53. {
  54. $objp = $db->fetch_object($resql);
  55. $accounts[$objp->rowid] = $objp->courant;
  56. $i++;
  57. }
  58. $db->free($resql);
  59. }
  60. $nbtotalofrecords = $num;
  61. $help_url='EN:Module_Banks_and_Cash|FR:Module_Banques_et_Caisses|ES:M&oacute;dulo_Bancos_y_Cajas';
  62. llxHeader('',$title,$help_url);
  63. $link='';
  64. if ($statut == '') $link='<a href="'.$_SERVER["PHP_SELF"].'?statut=all">'.$langs->trans("IncludeClosedAccount").'</a>';
  65. if ($statut == 'all') $link='<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("OnlyOpenedAccount").'</a>';
  66. print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$link,$num,$nbtotalofrecords,'title_bank.png',0,'','',$limit, 1);
  67. /*
  68. * Comptes courants (courant = 1)
  69. */
  70. print '<table class="liste" width="100%">';
  71. print '<tr class="liste_titre"><td width="30%">'.$langs->trans("CurrentAccounts").'</td>';
  72. print '<td width="20%">'.$langs->trans("Bank").'</td>';
  73. print '<td align="left">'.$langs->trans("AccountIdShort").'</td>';
  74. print '<td align="center">'.$langs->trans("TransactionsToConciliate").'</td>';
  75. print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
  76. print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
  77. print "</tr>\n";
  78. $total = array(); $found = 0;
  79. $var=true;
  80. foreach ($accounts as $key=>$type)
  81. {
  82. if ($type == 1)
  83. {
  84. $found++;
  85. $acc = new Account($db);
  86. $acc->fetch($key);
  87. $var = !$var;
  88. $solde = $acc->solde(1);
  89. print '<tr '.$bc[$var].'>';
  90. print '<td class="titlefield">'.$acc->getNomUrl(1).'</td>';
  91. print '<td>'.$acc->bank.'</td>';
  92. print '<td>'.$acc->number.'</td>';
  93. print '<td align="center">';
  94. if ($acc->rappro)
  95. {
  96. $result=$acc->load_board($user,$acc->id);
  97. if ($result<0) {
  98. setEventMessages($acc->error, $acc->errors, 'errors');
  99. } else {
  100. print $result->nbtodo;
  101. if ($result->nbtodolate) print ' &nbsp; ('.$result->nbtodolate.img_warning($langs->trans("Late")).')';
  102. }
  103. }
  104. else print $langs->trans("FeatureDisabled");
  105. print '</td>';
  106. print '<td align="center">'.$acc->getLibStatut(2).'</td>';
  107. print '<td align="right">';
  108. print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
  109. print '</td>';
  110. print '</tr>';
  111. $total[$acc->currency_code] += $solde;
  112. }
  113. }
  114. if (! $found) print '<tr '.$bc[$var].'><td colspan="6" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
  115. // Total
  116. foreach ($total as $key=>$solde)
  117. {
  118. print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").' '.$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
  119. }
  120. print '</table>';
  121. print '<br>';
  122. /*
  123. * Comptes caisse/liquide (courant = 2)
  124. */
  125. print '<table class="liste" width="100%">';
  126. print '<tr class="liste_titre"><td width="30%">'.$langs->trans("CashAccounts").'</td><td width="20%">&nbsp;</td>';
  127. print '<td align="left">&nbsp;</td>';
  128. print '<td align="left" width="100">&nbsp;</td>';
  129. print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
  130. print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
  131. print "</tr>\n";
  132. $total = array(); $found = 0;
  133. $var=true;
  134. foreach ($accounts as $key=>$type)
  135. {
  136. if ($type == 2)
  137. {
  138. $found++;
  139. $acc = new Account($db);
  140. $acc->fetch($key);
  141. $var = !$var;
  142. $solde = $acc->solde(1);
  143. print "<tr ".$bc[$var].">";
  144. print '<td width="30%">'.$acc->getNomUrl(1).'</td>';
  145. print '<td>'.$acc->bank.'</td>';
  146. print '<td>&nbsp;</td>';
  147. print '<td>&nbsp;</td>';
  148. print '<td align="center">'.$acc->getLibStatut(2).'</td>';
  149. print '<td align="right">';
  150. print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
  151. print '</td>';
  152. print '</tr>';
  153. $total[$acc->currency_code] += $solde;
  154. }
  155. }
  156. if (! $found)
  157. {
  158. $var = !$var;
  159. print '<tr '.$bc[false].'><td colspan="6" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
  160. }
  161. // Total
  162. foreach ($total as $key=>$solde)
  163. {
  164. print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").' '.$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
  165. }
  166. print '</table>';
  167. print '<br>';
  168. /*
  169. * Comptes placements (courant = 0)
  170. */
  171. print '<table class="liste" width="100%">';
  172. print '<tr class="liste_titre">';
  173. print '<td width="30%">'.$langs->trans("SavingAccounts").'</td>';
  174. print '<td width="20%">'.$langs->trans("Bank").'</td>';
  175. print '<td align="left">'.$langs->trans("Numero").'</td>';
  176. print '<td align="center">'.$langs->trans("TransactionsToConciliate").'</td>';
  177. print '<td align="center" width="70">'.$langs->trans("Status").'</td>';
  178. print '<td align="right" width="100">'.$langs->trans("BankBalance").'</td>';
  179. print "</tr>\n";
  180. $total = array(); $found = 0;
  181. $var=true;
  182. foreach ($accounts as $key=>$type)
  183. {
  184. if ($type == 0)
  185. {
  186. $found++;
  187. $acc = new Account($db);
  188. $acc->fetch($key);
  189. $var = !$var;
  190. $solde = $acc->solde(1);
  191. print "<tr ".$bc[$var].">";
  192. print '<td width="30%">'.$acc->getNomUrl(1).'</td>';
  193. print '<td>'.$acc->bank.'</td>';
  194. print '<td>'.$acc->number.'</td>';
  195. print '<td align="center">';
  196. if ($acc->rappro)
  197. {
  198. $result=$acc->load_board($user,$acc->id);
  199. if ($result<0) {
  200. setEventMessages($acc->error, $acc->errors, 'errors');
  201. } else {
  202. print $result->nbtodo;
  203. if ($result->nbtodolate) print ' ('.$result->nbtodolate.img_warning($langs->trans("Late")).')';
  204. }
  205. }
  206. else print $langs->trans("FeatureDisabled");
  207. print '</td>';
  208. print '<td align="center">'.$acc->getLibStatut(2).'</td>';
  209. print '<td align="right">';
  210. print '<a href="account.php?account='.$acc->id.'">'.price($solde, 0, $langs, 0, 0, -1, $acc->currency_code).'</a>';
  211. print '</td>';
  212. print '</tr>';
  213. $total[$acc->currency_code] += $solde;
  214. }
  215. }
  216. if (! $found)
  217. {
  218. $var = !$var;
  219. print '<tr '.$bc[$var].'><td colspan="6" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
  220. }
  221. // Total
  222. foreach ($total as $key=>$solde)
  223. {
  224. print '<tr class="liste_total"><td colspan="5" class="liste_total">'.$langs->trans("Total").' '.$key.'</td><td align="right" class="liste_total">'.price($solde, 0, $langs, 0, 0, -1, $key).'</td></tr>';
  225. }
  226. print "</table>";
  227. /*
  228. * Boutons d'actions
  229. */
  230. print '<div class="tabsAction">'."\n";
  231. if ($user->rights->banque->configurer)
  232. {
  233. print '<a class="butAction" href="card.php?action=create">'.$langs->trans("NewFinancialAccount").'</a>';
  234. }
  235. print '</div>';
  236. llxFooter();
  237. $db->close();