svn+ssh://danydb@svn/svn/phpcompta/tags/rel650 ........ r5056 | danydb | 2012-06-30 14:39:28 +0200 (Sat, 30 Jun 2012) | 2 lines 0000666: Limiter dans le tableau accueil, le calendrier à exercice courant 0000667: DASHBOAD : agrandir les éléments ........ r5058 | danydb | 2012-06-30 18:43:34 +0200 (Sat, 30 Jun 2012) | 6 lines ------------------------------------------------------------------------ r5057 | danydb | 2012-06-30 18:40:12 +0200 (Sat, 30 Jun 2012) | 1 line bug follow_up::get_late ------------------------------------------------------------------------ ........ r5059 | danydb | 2012-06-30 18:57:18 +0200 (Sat, 30 Jun 2012) | 1 line bug follow_up::get_late ........ r5060 | danydb | 2012-06-30 18:58:55 +0200 (Sat, 30 Jun 2012) | 1 line bug follow_up::get_late ........ r5061 | danydb | 2012-06-30 19:03:29 +0200 (Sat, 30 Jun 2012) | 1 line bug follow_up::get_late ........ r5062 | danydb | 2012-06-30 19:36:51 +0200 (Sat, 30 Jun 2012) | 1 line bug follow_up::get_late ........ r5063 | danydb | 2012-07-01 17:42:31 +0200 (Sun, 01 Jul 2012) | 1 line correct check_formula ........ r5064 | danydb | 2012-07-03 00:56:38 +0200 (Tue, 03 Jul 2012) | 1 line Due to rewrite of parse formula, formula are not evaluated properly ........ r5065 | danydb | 2012-07-08 20:58:45 +0200 (Sun, 08 Jul 2012) | 1 line Bug cannot create a new profile due a javascript error ........ r5066 | danydb | 2012-07-09 18:43:20 +0200 (Mon, 09 Jul 2012) | 1 line 0000674: Deux actions-gestion ne peuvent avoir le même numéro de pièce ........ r5067 | danydb | 2012-07-10 12:34:55 +0200 (Tue, 10 Jul 2012) | 1 line duplicate Ref ........ r5068 | danydb | 2012-07-15 11:14:27 +0200 (Sun, 15 Jul 2012) | 2 lines New function : select exercice with end & start date ........ r5069 | danydb | 2012-07-15 11:15:05 +0200 (Sun, 15 Jul 2012) | 2 lines Javascript var ask_global to reload window if it is <> 0 ........ r5070 | danydb | 2012-07-16 01:10:32 +0200 (Mon, 16 Jul 2012) | 1 line Fix bug in tool_uos ........ r5071 | danydb | 2012-07-19 02:22:15 +0200 (Thu, 19 Jul 2012) | 1 line Improve printing of action - gestion ........ r5072 | danydb | 2012-07-19 12:50:48 +0200 (Thu, 19 Jul 2012) | 2 lines 0000672: Amélioration apparence ........ r5073 | danydb | 2012-07-19 12:51:27 +0200 (Thu, 19 Jul 2012) | 2 lines Enlève background blanc pour les notices ........ r5074 | danydb | 2012-07-19 13:49:10 +0200 (Thu, 19 Jul 2012) | 1 line Improve printing of action - gestion ........ r5075 | danydb | 2012-07-19 16:31:11 +0200 (Thu, 19 Jul 2012) | 1 line Add script for Javascript sort of table ........ r5076 | danydb | 2012-07-19 17:52:24 +0200 (Thu, 19 Jul 2012) | 1 line Add script for Javascript sort of table ........ r5077 | danydb | 2012-07-19 18:13:18 +0200 (Thu, 19 Jul 2012) | 1 line Add script for Javascript sort of table for reconciliation bank ........ r5078 | danydb | 2012-07-20 14:55:50 +0200 (Fri, 20 Jul 2012) | 1 line Show default sorted column ........ r5079 | danydb | 2012-07-20 14:57:16 +0200 (Fri, 20 Jul 2012) | 1 line add documentation ........ r5080 | danydb | 2012-07-26 17:31:54 +0200 (Thu, 26 Jul 2012) | 1 line Add ID ........ r5081 | danydb | 2012-07-29 13:56:59 +0200 (Sun, 29 Jul 2012) | 4 lines add new function default_value_get default_value_post default_value_request ........ r5082 | danydb | 2012-07-29 14:14:51 +0200 (Sun, 29 Jul 2012) | 1 line improve documentation ........ r5083 | danydb | 2012-07-29 14:50:29 +0200 (Sun, 29 Jul 2012) | 1 line Add constant for year ........ r5084 | danydb | 2012-07-29 15:08:11 +0200 (Sun, 29 Jul 2012) | 1 line Message for exercice ........ r5085 | danydb | 2012-07-29 15:08:56 +0200 (Sun, 29 Jul 2012) | 1 line New constant for date range ........ r5086 | danydb | 2012-07-30 20:13:30 +0200 (Mon, 30 Jul 2012) | 1 line cosmetic ........ r5087 | danydb | 2012-07-30 20:38:17 +0200 (Mon, 30 Jul 2012) | 1 line cosmetic ........ r5088 | danydb | 2012-07-30 21:28:46 +0200 (Mon, 30 Jul 2012) | 1 line define max_card_search ........ r5089 | danydb | 2012-07-30 21:36:55 +0200 (Mon, 30 Jul 2012) | 1 line 0000695: ajout d'un bouton pour chercher une fiche ........ r5090 | danydb | 2012-07-30 21:42:06 +0200 (Mon, 30 Jul 2012) | 1 line Amélioration recherche ........ r5091 | danydb | 2012-07-30 21:44:23 +0200 (Mon, 30 Jul 2012) | 1 line Amélioration recherche ........ r5092 | danydb | 2012-08-23 20:29:52 +0200 (Thu, 23 Aug 2012) | 1 line add a field hidden ........ r5093 | danydb | 2012-08-23 22:52:06 +0200 (Thu, 23 Aug 2012) | 2 lines 0000705: Perte info lettrage lors de l'export .csv Nom de fichier comprennent la date et le poste comptable ........ r5094 | danydb | 2012-08-23 23:00:58 +0200 (Thu, 23 Aug 2012) | 1 line 0000700: CARD : historique, Dans le PDF, il manque le quick code et dans le CSV, il manque le nom ........ r5095 | danydb | 2012-08-23 23:06:00 +0200 (Thu, 23 Aug 2012) | 1 line recherche aussi sur quick-code ........ r5096 | danydb | 2012-08-23 23:20:32 +0200 (Thu, 23 Aug 2012) | 1 line #699 CARD : liste des fiches ........ r5097 | danydb | 2012-08-24 22:27:20 +0200 (Fri, 24 Aug 2012) | 1 line replace ob_clean by ob_end_clean ........ r5098 | danydb | 2012-09-04 19:55:56 +0200 (Tue, 04 Sep 2012) | 1 line ajout ag_ref dans action aujourd'hui et action en retard ........ r5099 | danydb | 2012-09-06 18:47:29 +0200 (Thu, 06 Sep 2012) | 1 line 0000721: Nouveaux tag pour les stocks dans génération de documents ........ r5100 | danydb | 2012-09-12 23:05:12 +0200 (Wed, 12 Sep 2012) | 1 line fix bug : when a value is empty then value is n ull ........ r5101 | danydb | 2012-09-15 00:30:02 +0200 (Sat, 15 Sep 2012) | 1 line fix : missing closing tag </a> ........ r5102 | danydb | 2012-09-15 15:22:08 +0200 (Sat, 15 Sep 2012) | 1 line Show type of menu ........ r5103 | danydb | 2012-09-15 17:39:55 +0200 (Sat, 15 Sep 2012) | 1 line Improve add menu printing ........ r5104 | danydb | 2012-09-15 17:48:42 +0200 (Sat, 15 Sep 2012) | 1 line Improve the profile configuration ........ r5105 | danydb | 2012-09-16 03:01:44 +0200 (Sun, 16 Sep 2012) | 1 line Improve the style sheet with hx.title ........ r5106 | danydb | 2012-09-16 18:40:59 +0200 (Sun, 16 Sep 2012) | 1 line bug : Impossible d'avoir impression GRAND LIVRE Pour compte non soldé ........ r5107 | danydb | 2012-09-16 18:53:59 +0200 (Sun, 16 Sep 2012) | 1 line Améliore apparence calculatrice ........ r5108 | danydb | 2012-09-17 20:28:04 +0200 (Mon, 17 Sep 2012) | 1 line When adding a menu it cannot depend on itself ........ r5109 | danydb | 2012-09-17 20:29:23 +0200 (Mon, 17 Sep 2012) | 1 line When adding a menu it cannot depend on itself (update) ........ r5110 | danydb | 2012-09-17 20:46:17 +0200 (Mon, 17 Sep 2012) | 1 line Show default menu ........ r5111 | danydb | 2012-09-17 20:55:13 +0200 (Mon, 17 Sep 2012) | 1 line bug : show default module ........ r5112 | danydb | 2012-09-17 20:57:00 +0200 (Mon, 17 Sep 2012) | 1 line bug : show default module, otherwise menu ........ r5113 | danydb | 2012-09-17 21:07:25 +0200 (Mon, 17 Sep 2012) | 1 line Default module otherwise try to find default menu if several results then returns the first one ........ r5114 | danydb | 2012-09-17 21:13:43 +0200 (Mon, 17 Sep 2012) | 1 line Fix bug when clicking several times on search_poste ........ r5115 | danydb | 2012-09-18 23:37:02 +0200 (Tue, 18 Sep 2012) | 1 line problème quand utilisateur est administrateur global, impossible de voir les postes comptables ........ r5116 | danydb | 2012-09-18 23:46:37 +0200 (Tue, 18 Sep 2012) | 1 line Improve the style sheet with hx.title ........ r5117 | danydb | 2012-09-18 23:47:27 +0200 (Tue, 18 Sep 2012) | 1 line improve html widget with un ID ........ r5118 | danydb | 2012-09-19 22:55:43 +0200 (Wed, 19 Sep 2012) | 1 line Bug locale must be in uppercase ........ r5119 | danydb | 2012-09-29 23:28:46 +0200 (Sat, 29 Sep 2012) | 1 line add the javascript function check_date and check_date_id ........ r5120 | danydb | 2012-09-30 00:04:17 +0200 (Sun, 30 Sep 2012) | 1 line correct javascript function check_date_id ........ r5121 | danydb | 2012-10-01 19:57:15 +0200 (Mon, 01 Oct 2012) | 1 line 0000736: Totaux dans écran ........ r5122 | danydb | 2012-10-01 20:47:26 +0200 (Mon, 01 Oct 2012) | 1 line 0000733: Impression opération depuis POP ME OUT ........ r5123 | danydb | 2012-10-01 20:47:56 +0200 (Mon, 01 Oct 2012) | 1 line Bug : id inconnu dans irelated_action ........ r5124 | danydb | 2012-10-01 20:56:07 +0200 (Mon, 01 Oct 2012) | 1 line 0000733: Impression opération depuis POP ME OUT ........ r5125 | danydb | 2012-10-01 20:58:53 +0200 (Mon, 01 Oct 2012) | 1 line bug css for select ........ r5126 | danydb | 2012-10-01 21:07:00 +0200 (Mon, 01 Oct 2012) | 1 line 0000732: Pouvoir imprimer les opérations avant confirmation ........ r5127 | danydb | 2012-10-01 21:16:04 +0200 (Mon, 01 Oct 2012) | 1 line bug financier le nom de la banque n'est pas mis à jour ........ r5128 | danydb | 2012-10-01 21:23:16 +0200 (Mon, 01 Oct 2012) | 1 line CSS cosmetic nom de journal en h2.title ........ r5129 | danydb | 2012-10-01 21:30:20 +0200 (Mon, 01 Oct 2012) | 1 line Grand Livre : surligné ligne paire ........ r5130 | danydb | 2012-10-01 22:03:42 +0200 (Mon, 01 Oct 2012) | 1 line CSS présentation, remplace fieldset ........ r5131 | danydb | 2012-10-01 22:04:03 +0200 (Mon, 01 Oct 2012) | 1 line Ne surligne pas les actions cloturées ........ r5132 | danydb | 2012-10-01 22:04:19 +0200 (Mon, 01 Oct 2012) | 1 line Les readonly sont en bleus ........ r5133 | danydb | 2012-10-01 22:16:55 +0200 (Mon, 01 Oct 2012) | 1 line Bug in the search button if id was not set ........ r5134 | danydb | 2012-10-02 18:49:40 +0200 (Tue, 02 Oct 2012) | 1 line underline properly ........ r5135 | danydb | 2012-10-02 18:58:09 +0200 (Tue, 02 Oct 2012) | 3 lines Fix several some bugs : * PRINTJRN column name for ledget ACH, simple without VAT * PRINTPOSTE show everything even when unlettered is choosen ........ r5136 | danydb | 2012-10-02 18:58:34 +0200 (Tue, 02 Oct 2012) | 1 line Improve documentation ........ r5137 | danydb | 2012-10-02 23:01:27 +0200 (Tue, 02 Oct 2012) | 1 line Fix problem with date suggest ........ r5138 | danydb | 2012-10-03 11:27:52 +0200 (Wed, 03 Oct 2012) | 1 line Bug auto compute for action ........ r5139 | danydb | 2012-10-16 00:58:52 +0200 (Tue, 16 Oct 2012) | 1 line Suggérer la date = oui ne met plus la date à jour dans les achats ........ r5140 | danydb | 2012-10-16 01:13:30 +0200 (Tue, 16 Oct 2012) | 1 line Suggérer la date = oui ne met plus la date à jour dans les achats ........ r5141 | danydb | 2012-10-16 01:14:01 +0200 (Tue, 16 Oct 2012) | 1 line Suggérer la date = oui ne met plus la date à jour dans les achats ........ r5142 | danydb | 2012-10-17 17:54:22 +0200 (Wed, 17 Oct 2012) | 1 line 0000749: poste alphanumérique (fournisseur 44xxx) ........ r5143 | danydb | 2012-10-20 19:13:04 +0200 (Sat, 20 Oct 2012) | 2 lines #754 Les totaux dans Prévisions #753 Les totaux dans FOURNISSEUR, CLIENT et ADMINISTRATION incorrectes ........ r5144 | danydb | 2012-10-30 20:41:29 +0100 (Tue, 30 Oct 2012) | 1 line #372 système de nouvelles ........ r5145 | danydb | 2012-10-30 20:42:45 +0100 (Tue, 30 Oct 2012) | 1 line add id to submit button ........ r5146 | danydb | 2012-10-30 20:43:04 +0100 (Tue, 30 Oct 2012) | 1 line add a label to ibutton ........ r5147 | danydb | 2012-10-30 20:43:43 +0100 (Tue, 30 Oct 2012) | 1 line add niceEdit.js ........ r5148 | danydb | 2012-10-30 20:44:20 +0100 (Tue, 30 Oct 2012) | 1 line get_folder_access must also test global admin ........ r5149 | danydb | 2012-10-30 22:14:26 +0100 (Tue, 30 Oct 2012) | 1 line 0000755: Erreur en création de fiche avec un compte (455) déjà utilisé. ........ r5150 | danydb | 2012-10-30 22:20:07 +0100 (Tue, 30 Oct 2012) | 2 lines 0000744: (classe) 5Actif 0000746: ajouter un espace là où il faut ........ r5151 | danydb | 2012-10-30 22:25:19 +0100 (Tue, 30 Oct 2012) | 1 line 0000743: le pointeur se trouve sur 'effacer' ........ r5152 | danydb | 2012-11-11 20:47:20 +0100 (Sun, 11 Nov 2012) | 1 line 0000756: Achat ou vente pour rembourser de la TVA, marchandise ou quant. = 0 ........ r5153 | danydb | 2012-11-11 20:51:40 +0100 (Sun, 11 Nov 2012) | 1 line 0000750: place de nouvelle fiche et effacer ........ r5154 | danydb | 2012-11-11 20:55:08 +0100 (Sun, 11 Nov 2012) | 1 line 0000742: remplacer le mot 'classe ' par le mot ' poste (comptable)' ........ r5155 | danydb | 2012-11-22 21:50:27 +0100 (Thu, 22 Nov 2012) | 1 line fix problem with french accounting ........ r5156 | danydb | 2012-11-29 23:17:33 +0100 (Thu, 29 Nov 2012) | 1 line #738: Attribut en pourcent doit être compris entre 0 et 100 au lieu de 0 et 1 ........ r5157 | danydb | 2012-12-05 21:08:07 +0100 (Wed, 05 Dec 2012) | 2 lines 0000766: Utilisation des moyens de paiements : libellé différent pour l'opération de paiement et d'achat/vente. 0000765: affichage des colonnes Prix HTVA quand la société n'est pas assujettie à la TVA ........ r5158 | danydb | 2012-12-06 21:42:51 +0100 (Thu, 06 Dec 2012) | 1 line 0000762: TVA intracommunautaire ........ r5159 | danydb | 2012-12-06 21:43:22 +0100 (Thu, 06 Dec 2012) | 1 line Bug : the history doesn't show the first_name for VEN ........ r5160 | danydb | 2012-12-06 21:51:09 +0100 (Thu, 06 Dec 2012) | 1 line 0000762: TVA intracommunautaire typo ........ r5161 | danydb | 2012-12-06 22:56:36 +0100 (Thu, 06 Dec 2012) | 1 line 0000762: TVA intracommunautaire : montant facture au lieu montant opération ........ r5162 | danydb | 2012-12-06 23:09:20 +0100 (Thu, 06 Dec 2012) | 1 line 0000745: en bas de page il apparaît un pop up ........ r5163 | danydb | 2012-12-08 19:10:52 +0100 (Sat, 08 Dec 2012) | 1 line patch version 104 ........ r5164 | danydb | 2012-12-08 20:48:57 +0100 (Sat, 08 Dec 2012) | 1 line patch version 104 ........ r5165 | danydb | 2012-12-08 21:12:14 +0100 (Sat, 08 Dec 2012) | 1 line cosmetique ........ r5166 | danydb | 2012-12-08 21:30:44 +0100 (Sat, 08 Dec 2012) | 1 line rewriting ........ r5167 | danydb | 2012-12-08 23:48:30 +0100 (Sat, 08 Dec 2012) | 1 line Ajout IMPJRN, détail opération ........ r5168 | danydb | 2012-12-14 19:35:46 +0100 (Fri, 14 Dec 2012) | 1 line add personal expense ........ r5169 | danydb | 2012-12-14 19:58:23 +0100 (Fri, 14 Dec 2012) | 1 line remove "choississez votre exercice" ........ r5170 | danydb | 2013-01-03 21:15:40 +0100 (Thu, 03 Jan 2013) | 1 line 0000773: Bug sur fiches avec double postes comptables ........ r5171 | danydb | 2013-01-19 00:28:52 +0100 (Sat, 19 Jan 2013) | 1 line 0000778: Si dossier n'existe pas alors il y a une erreur dans administration > dossier ........ r5172 | danydb | 2013-01-20 15:57:40 +0100 (Sun, 20 Jan 2013) | 1 line 0000778: Si dossier n'existe pas alors il y a une erreur dans administration > dossier ........ r5173 | danydb | 2013-01-23 22:38:28 +0100 (Wed, 23 Jan 2013) | 2 lines #780 & #776 forbids some character in the quickcode ........ r5174 | danydb | 2013-01-23 22:58:53 +0100 (Wed, 23 Jan 2013) | 1 line Improve format_name ........ r5175 | danydb | 2013-01-23 22:59:52 +0100 (Wed, 23 Jan 2013) | 1 line #778 skip the unexisting folder ........ r5176 | danydb | 2013-02-06 19:34:25 +0100 (Wed, 06 Feb 2013) | 1 line 0000783: Apparence dans HISTO des notes ........ r5177 | danydb | 2013-02-06 19:53:39 +0100 (Wed, 06 Feb 2013) | 1 line 0000783: Apparence dans HISTO des notes ........ r5178 | danydb | 2013-02-13 18:05:32 +0100 (Wed, 13 Feb 2013) | 1 line 0000788: Lettrage : date invalide, bloque ........ r5179 | danydb | 2013-02-13 18:15:46 +0100 (Wed, 13 Feb 2013) | 1 line 0000788: Lettrage : date invalide, bloque ........ r5180 | danydb | 2013-02-13 18:25:43 +0100 (Wed, 13 Feb 2013) | 1 line 0000787: Rapprochement bancaire ........ r5181 | danydb | 2013-02-13 19:13:10 +0100 (Wed, 13 Feb 2013) | 1 line Erreur si db inexistante alors echec ........ r5182 | danydb | 2013-02-28 14:04:44 +0100 (Thu, 28 Feb 2013) | 1 line small bugs in javascript : typo ........ r5183 | danydb | 2013-03-05 15:40:08 +0100 (Tue, 05 Mar 2013) | 2 lines 0000791: Afficher dans la vue Paramètres / Divers / TVA le code TVA ........ r5184 | danydb | 2013-03-13 16:23:22 +0100 (Wed, 13 Mar 2013) | 2 lines 0000795: Orthographe : dans le calendrier : tâche suivi ........ r5185 | danydb | 2013-03-13 16:30:37 +0100 (Wed, 13 Mar 2013) | 2 lines 0000796: Lettrage : en code Hexadécimal ou en base 36 (A à Z + 0 à 10) ........ r5186 | danydb | 2013-03-13 22:10:15 +0100 (Wed, 13 Mar 2013) | 2 lines 0000796: Lettrage : en code Hexadécimal ou en base 36 (A à Z + 0 à 10) ........ r5187 | danydb | 2013-03-14 00:04:53 +0100 (Thu, 14 Mar 2013) | 2 lines esthétique ........ r5188 | danydb | 2013-03-17 01:24:05 +0100 (Sun, 17 Mar 2013) | 3 lines 0000797: Amélioration du workflow : statut des documents / actions ........ r5189 | danydb | 2013-03-20 13:57:01 +0100 (Wed, 20 Mar 2013) | 1 line code cleaning : remove function Acc_Payment::row ........ r5190 | danydb | 2013-03-20 14:02:36 +0100 (Wed, 20 Mar 2013) | 1 line Code cleaning ........ r5191 | danydb | 2013-03-25 23:42:49 +0100 (Mon, 25 Mar 2013) | 1 line Documentation : doxygen tag misplaced due to netbeans ........ r5192 | danydb | 2013-03-27 19:54:37 +0100 (Wed, 27 Mar 2013) | 1 line cosmetic : width div for operation detail ........ r5193 | danydb | 2013-03-27 20:08:09 +0100 (Wed, 27 Mar 2013) | 1 line cosmetic : orthographe profile -> profil ........ r5194 | danydb | 2013-03-27 20:17:51 +0100 (Wed, 27 Mar 2013) | 1 line cosmetic : ajout bouton fermeture si détail non disponible ........ r5195 | danydb | 2013-03-27 20:20:33 +0100 (Wed, 27 Mar 2013) | 1 line 0000802: Bug : visibilité des actions ........ r5196 | danydb | 2013-03-27 20:22:53 +0100 (Wed, 27 Mar 2013) | 1 line 0000802: Bug : visibilité des actions ........ r5197 | danydb | 2013-03-27 23:25:34 +0100 (Wed, 27 Mar 2013) | 1 line 0000801: Ajouter un lien vers l'action ........ r5198 | danydb | 2013-03-27 23:26:17 +0100 (Wed, 27 Mar 2013) | 1 line typo profile -> profil ........ r5199 | danydb | 2013-03-28 00:12:02 +0100 (Thu, 28 Mar 2013) | 1 line javascript bug ........ r5200 | danydb | 2013-03-28 00:12:25 +0100 (Thu, 28 Mar 2013) | 1 line bug last_operation <> late_operation ........ r5201 | danydb | 2013-03-28 00:14:27 +0100 (Thu, 28 Mar 2013) | 1 line cosmetic ........ r5202 | danydb | 2013-03-28 18:05:08 +0100 (Thu, 28 Mar 2013) | 1 line Add patch upgrade105 ........ r5203 | danydb | 2013-03-28 18:13:22 +0100 (Thu, 28 Mar 2013) | 1 line 0000799: Pouvoir augmenter le nombre de lignes proposées pour un rapprochement ........ r5204 | danydb | 2013-03-28 18:54:15 +0100 (Thu, 28 Mar 2013) | 1 line voir les heures dans commentaire ........ r5205 | danydb | 2013-03-28 22:58:34 +0100 (Thu, 28 Mar 2013) | 1 line Cannot save a detail operation ........ r5206 | danydb | 2013-03-28 23:23:50 +0100 (Thu, 28 Mar 2013) | 1 line Cannot save financial ........ r5209 | danydb | 2013-04-04 20:53:49 +0200 (Thu, 04 Apr 2013) | 1 line 0000807: Legend n'est pas agrandi ........ r5210 | danydb | 2013-04-14 23:46:39 +0200 (Sun, 14 Apr 2013) | 1 line 0000819: Note de débit et de crédit négative avec TVA autoliquidation ........ r5211 | danydb | 2013-04-15 18:57:05 +0200 (Mon, 15 Apr 2013) | 1 line Impossible de sauver dans journaux financiers dans certains cas ........ r5212 | danydb | 2013-04-15 19:56:50 +0200 (Mon, 15 Apr 2013) | 1 line 0000819: Note de débit et de crédit négative avec TVA autoliquidation ........ r5213 | danydb | 2013-04-24 23:28:32 +0200 (Wed, 24 Apr 2013) | 1 line 0000824: Impossible de rechercher une action pour les actions liées ........ r5214 | danydb | 2013-05-02 22:54:28 +0200 (Thu, 02 May 2013) | 1 line improve doc ........ r5215 | danydb | 2013-05-03 23:56:40 +0200 (Fri, 03 May 2013) | 3 lines #0000822: Génération document : changer le type de cellule Attention problème si on a utiliser = devant le tag pour forcer le type numérique ........
1715 lines
No EOL
42 KiB
JavaScript
1715 lines
No EOL
42 KiB
JavaScript
/*
|
|
* This file is part of PhpCompta.
|
|
*
|
|
* PhpCompta 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.
|
|
*
|
|
* PhpCompta 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 PhpCompta; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
/* $Revision$ */
|
|
|
|
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
|
|
|
|
/*!\file
|
|
* \brief javascript script, always added to every page
|
|
*
|
|
*/
|
|
|
|
var ask_reload=0;
|
|
/**
|
|
* callback function when we just need to update a hidden div with an info
|
|
* message
|
|
*/
|
|
function infodiv(req,json)
|
|
{
|
|
try
|
|
{
|
|
remove_waiting_box();
|
|
var answer=req.responseXML;
|
|
var a=answer.getElementsByTagName('ctl');
|
|
var html=answer.getElementsByTagName('code');
|
|
if ( a.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
var name_ctl=a[0].firstChild.nodeValue;
|
|
var code_html=getNodeText(html[0]);
|
|
|
|
code_html=unescape_xml(code_html);
|
|
g(name_ctl+"info").innerHTML=code_html;
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("success_box"+e.message);
|
|
}
|
|
try
|
|
{
|
|
code_html.evalScripts();
|
|
}
|
|
catch(e)
|
|
{
|
|
alert("answer_box Impossible executer script de la reponse\n"+e.message);
|
|
}
|
|
|
|
}
|
|
/**
|
|
*@brief delete a row from a table (tb) the input button send the this
|
|
as second parameter
|
|
*/
|
|
function deleteRow(tb,obj)
|
|
{
|
|
if (confirm('Confirmez effacement'))
|
|
{
|
|
var td=obj.parentNode;
|
|
var tr=td.parentNode;
|
|
var lidx=tr.rowIndex;
|
|
g(tb).deleteRow(lidx);
|
|
}
|
|
}
|
|
function deleteRowRec(tb,obj)
|
|
{
|
|
var td=obj.parentNode;
|
|
var tr=td.parentNode;
|
|
var lidx=tr.rowIndex;
|
|
g(tb).deleteRow(lidx);
|
|
}
|
|
/*!\brief remove trailing and heading space
|
|
* \param the string to modify
|
|
* \return string without heading and trailing space
|
|
*/
|
|
function trim(s)
|
|
{
|
|
return s.replace(/^\s+/, '').replace(/\s+$/, '');
|
|
}
|
|
|
|
/**
|
|
* @brief retrieve an element thanks its ID
|
|
* @param ID is a string
|
|
* @return the found object of undefined if not found
|
|
*/
|
|
function g(ID)
|
|
{
|
|
if (document.getElementById)
|
|
{
|
|
return this.document.getElementById(ID);
|
|
}
|
|
else if (document.all)
|
|
{
|
|
return document.all[ID];
|
|
}
|
|
else
|
|
{
|
|
return undefined;
|
|
}
|
|
}
|
|
/**
|
|
*@brief enable the type of periode
|
|
*/
|
|
function enable_type_periode()
|
|
{
|
|
if ( g('type_periode').value == 1 )
|
|
{
|
|
g('from_periode').disabled=true;
|
|
g('to_periode').disabled=true;
|
|
g('from_date').disabled=false;
|
|
g('to_date').disabled=false;
|
|
g('p_step').disabled=true;
|
|
}
|
|
else
|
|
{
|
|
g('from_periode').disabled=false;
|
|
g('to_periode').disabled=false;
|
|
g('from_date').disabled=true;
|
|
g('to_date').disabled=true;
|
|
g('p_step').disabled=false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
*@brief will reload the window but it is dangerous if we have submitted
|
|
* a form with POST
|
|
*/
|
|
function refresh_window()
|
|
{
|
|
window.location.reload();
|
|
}
|
|
|
|
/**
|
|
*@fn encodeJSON(obj)
|
|
*@brief we receive a json object as parameter and the function returns the string
|
|
* with the format variable=value&var2=val2...
|
|
*/
|
|
function encodeJSON(obj)
|
|
{
|
|
if (typeof obj != 'object')
|
|
{
|
|
alert('encodeParameter obj n\'est pas un objet');
|
|
}
|
|
try
|
|
{
|
|
var str='';
|
|
var e=0;
|
|
for (i in obj)
|
|
{
|
|
if (e != 0 )
|
|
{
|
|
str+='&';
|
|
}
|
|
else
|
|
{
|
|
e=1;
|
|
}
|
|
str+=i;
|
|
str+='='+encodeURI(obj[i]);
|
|
}
|
|
return str;
|
|
}
|
|
catch(e)
|
|
{
|
|
alert('encodeParameter '+e.message);
|
|
}
|
|
}
|
|
function hide(p_param)
|
|
{
|
|
g(p_param).style.display='none';
|
|
}
|
|
function show(p_param)
|
|
{
|
|
g(p_param).style.display='block';
|
|
}
|
|
|
|
/**
|
|
*@brief set the focus on the selected field
|
|
*@param Field id of the control
|
|
*@param selectIt : the value selected in case of Field is a object select, numeric
|
|
*/
|
|
function SetFocus(Field,SelectIt)
|
|
{
|
|
var elem = g(Field);
|
|
if (elem)
|
|
{
|
|
elem.focus();
|
|
}
|
|
return true;
|
|
}
|
|
/**
|
|
* @brief set a DOM id with a value in the parent window (the caller),
|
|
@param p_ctl is the name of the control
|
|
@param p_value is the value to set in
|
|
@param p_add if we don't replace the current value but we add something
|
|
*/
|
|
function set_inparent(p_ctl,p_value,p_add)
|
|
{
|
|
self.opener.set_value(p_ctl,p_value,p_add);
|
|
}
|
|
|
|
/**
|
|
* @brief set a DOM id with a value, it will consider if it the attribute
|
|
value or innerHTML has be used
|
|
@param p_ctl is the name of the control
|
|
@param p_value is the value to set in
|
|
@param p_add if we don't replace the current value but we add something
|
|
*/
|
|
function set_value(p_ctl,p_value,p_add)
|
|
{
|
|
if ( g(p_ctl))
|
|
{
|
|
var g_ctrl=g(p_ctl);
|
|
if ( p_add != undefined && p_add==1 )
|
|
{
|
|
if ( g_ctrl.value )
|
|
{
|
|
p_value=g_ctrl.value+','+p_value;
|
|
}
|
|
}
|
|
if ( g_ctrl.tagName=='INPUT' )
|
|
{
|
|
g(p_ctl).value=p_value;
|
|
}
|
|
if ( g_ctrl.tagName=='SPAN' )
|
|
{
|
|
g(p_ctl).innerHTML=p_value;
|
|
}
|
|
if ( g_ctrl.tagName=='SELECT' )
|
|
{
|
|
g(p_ctl).value=p_value;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
*@brief format the number change comma to point
|
|
*@param HTML obj
|
|
*/
|
|
function format_number(obj,p_prec)
|
|
{
|
|
var precision=2;
|
|
if ( p_prec == undefined)
|
|
{
|
|
precision=2;
|
|
} else {
|
|
precision=p_prec;
|
|
}
|
|
var value=obj.value;
|
|
value=value.replace(/,/,'.');
|
|
value=parseFloat(value);
|
|
if ( isNaN(value) )
|
|
{
|
|
value=0;
|
|
}
|
|
var arrondi=Math.pow(10,precision);
|
|
|
|
value=Math.round(value*arrondi)/arrondi;
|
|
|
|
$(obj).value=value;
|
|
}
|
|
/**
|
|
*@brief check if the object is hidden or show and perform the opposite,
|
|
* show the hidden obj or hide the shown one
|
|
*@param name of the object
|
|
*/
|
|
function toggleHideShow(p_obj,p_button)
|
|
{
|
|
var stat=g(p_obj).style.display;
|
|
var str=g(p_button).value;
|
|
if ( stat == 'none' )
|
|
{
|
|
show(p_obj);
|
|
str=str.replace(/Afficher/,'Cacher');
|
|
g(p_button).value=str;
|
|
}
|
|
else
|
|
{
|
|
hide(p_obj);
|
|
str=str.replace(/Cacher/,'Afficher');
|
|
g(p_button).value=str;
|
|
}
|
|
}
|
|
/**
|
|
*@brief open popup with the search windows
|
|
*@param p_dossier the dossier where to search
|
|
*@param p_style style of the detail value are E for expert or S for simple
|
|
*/
|
|
function popup_recherche()
|
|
{
|
|
p_dossier=$('gDossier').value;
|
|
var w=window.open("recherche.php?gDossier="+p_dossier+"&ac=SEARCH",'','statusbar=no,scrollbars=yes,toolbar=no');
|
|
w.focus();
|
|
}
|
|
/**
|
|
*@brief replace the special characters (><'") by their HTML representation
|
|
*@return a string without the offending char.
|
|
*/
|
|
function unescape_xml(code_html)
|
|
{
|
|
code_html=code_html.replace(/\</,'<');
|
|
code_html=code_html.replace(/\>/,'>');
|
|
code_html=code_html.replace(/\"/,'"');
|
|
code_html=code_html.replace(/\'/,"'");
|
|
code_html=code_html.replace(/\&/,'&');
|
|
return code_html;
|
|
}
|
|
/**
|
|
*@brief Firefox splits the XML into 4K chunk, so to retrieve everything we need
|
|
* to get the different parts thanks textContent
|
|
*@param xmlNode a node (result of var data = =answer.getElementsByTagName('code'))
|
|
*@return all the content of the XML node
|
|
*/
|
|
function getNodeText(xmlNode)
|
|
{
|
|
if(!xmlNode) return '';
|
|
if(typeof(xmlNode.textContent) != "undefined")
|
|
{
|
|
return xmlNode.textContent;
|
|
}
|
|
if ( xmlNode.firstChild && xmlNode.firstChild.nodeValue ) return xmlNode.firstChild.nodeValue;
|
|
return "";
|
|
}
|
|
/**
|
|
*@brief change the periode in the calendar of the dashboard
|
|
*@param object select
|
|
*/
|
|
function change_month(obj)
|
|
{
|
|
var queryString="gDossier="+obj.gDossier+"&op=cal"+"&per="+obj.value;
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" , {method:'get', parameters:queryString,onFailure:ajax_misc_failure,onSuccess:success_misc}
|
|
);
|
|
|
|
}
|
|
/**
|
|
*@brief basic answer to ajax on success, it will fill the DOMID code with
|
|
* the code. In that case, you need to create the object before the Ajax.Request
|
|
*The difference with success box is that
|
|
*@see add_div removeDiv success_box is that the width and height are not changed ajax_misc.php
|
|
*@parameter code is the ID of the object containing the html (div, button...)
|
|
*@parameter value is the html code, with it you fill the ctl element
|
|
*/
|
|
|
|
function success_misc(req)
|
|
{
|
|
try
|
|
{
|
|
var answer=req.responseXML;
|
|
var html=answer.getElementsByTagName('code');
|
|
if ( html.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
var nodeXml=html[0];
|
|
var code_html=getNodeText(nodeXml);
|
|
code_html=unescape_xml(code_html);
|
|
$("user_cal").innerHTML=code_html;
|
|
}
|
|
catch (e)
|
|
{
|
|
alert(e.message);
|
|
}
|
|
try
|
|
{
|
|
code_html.evalScripts();
|
|
}
|
|
catch(e)
|
|
{
|
|
alert("Impossible executer script de la reponse\n"+e.message);
|
|
}
|
|
|
|
|
|
}
|
|
function loading()
|
|
{
|
|
var str = '<h2> Un instant ...</h2>';
|
|
str = str + '<image src="image/loading.gif" alt="chargement"></image>';
|
|
return str;
|
|
}
|
|
|
|
function ajax_misc_failure()
|
|
{
|
|
alert('Ajax Misc failed');
|
|
}
|
|
/**
|
|
*@brief remove a document_modele
|
|
*/
|
|
function cat_doc_remove(p_dt_id,p_dossier)
|
|
{
|
|
var queryString="gDossier="+p_dossier+"&op=rem_cat_doc"+"&dt_id="+p_dt_id;
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" , {method:'get', parameters:queryString,onFailure:ajax_misc_failure,onSuccess:success_cat_doc_remove}
|
|
);
|
|
}
|
|
/**
|
|
*@brief change a document_modele
|
|
*/
|
|
function cat_doc_change(p_dt_id,p_dossier)
|
|
{
|
|
var queryString="gDossier="+p_dossier+"&op=mod_cat_doc"+"&dt_id="+p_dt_id;
|
|
var nTop=calcy(posY);
|
|
var nLeft="200px";
|
|
var str_style="top:"+nTop+"px;left:"+nLeft+";width:50em;height:auto";
|
|
|
|
removeDiv('change_doc_div');
|
|
waiting_box();
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{
|
|
method:'get', parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:function(req){
|
|
remove_waiting_box();
|
|
add_div({id:'change_doc_div',style:str_style,cssclass:'inner_box',drag:"1"});
|
|
$('change_doc_div').innerHTML=req.responseText;
|
|
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function success_cat_doc_remove(req)
|
|
{
|
|
try
|
|
{
|
|
var answer=req.responseXML;
|
|
var html=answer.getElementsByTagName('dtid');
|
|
if ( html.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
nodeXML=html[0];
|
|
row_id=getNodeText(nodeXML);
|
|
if ( row_id == 'nok')
|
|
{
|
|
alert('Error');
|
|
return;
|
|
}
|
|
$('row'+row_id).style.textDecoration="line-through";
|
|
$('X'+row_id).style.display='none';
|
|
}
|
|
catch (e)
|
|
{
|
|
alert(e.message);
|
|
}
|
|
}
|
|
/**
|
|
*@brief display the popup with vat and explanation
|
|
*@param obj with 4 attributes gdossier, ctl,popup
|
|
*/
|
|
function popup_select_tva(obj)
|
|
{
|
|
try
|
|
{
|
|
if ( $('tva_select')) {
|
|
removeDiv('tva_select');
|
|
}
|
|
|
|
|
|
var nTop=posY-50;
|
|
var nLeft="35%";
|
|
var str_style="top:"+nTop+";left:"+nLeft+";width:55em;height:auto";
|
|
|
|
var popup={'id': 'tva_select','cssclass':'inner_box','style':str_style,'html':loading(),'drag':true};
|
|
add_div(popup);
|
|
var queryString="gDossier="+obj.gDossier+"&op=dsp_tva"+"&ctl="+obj.ctl+'&popup='+'tva_select';
|
|
if ( obj.jcode )
|
|
queryString+='&code='+obj.jcode;
|
|
if (obj.compute)
|
|
queryString+='&compute='+obj.compute;
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{method:'get',
|
|
parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:success_popup_select_tva
|
|
}
|
|
);
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("popup_select_tva "+e.message);
|
|
}
|
|
}
|
|
/**
|
|
*@brief display the popup with vat and explanations
|
|
*/
|
|
function success_popup_select_tva(req)
|
|
{
|
|
try
|
|
{
|
|
var answer=req.responseXML;
|
|
var popup=answer.getElementsByTagName('popup');
|
|
if ( popup.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
var html=answer.getElementsByTagName('code');
|
|
|
|
var name_ctl=popup[0].firstChild.nodeValue;
|
|
var nodeXml=html[0];
|
|
var code_html=getNodeText(nodeXml);
|
|
code_html=unescape_xml(code_html);
|
|
$(name_ctl).innerHTML=code_html;
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("success_popup_select_tva "+e.message);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
*@brief display the popup with vat and explanation
|
|
*@param obj with 4 attributes gdossier, ctl,popup
|
|
*/
|
|
function set_tva_label(obj)
|
|
{
|
|
try
|
|
{
|
|
var queryString="gDossier="+obj.gDossier+"&op=label_tva"+"&id="+obj.value;
|
|
if ( obj.jcode )
|
|
queryString+='&code='+obj.jcode;
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{method:'get',
|
|
parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:success_set_tva_label
|
|
}
|
|
);
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("set_tva_label "+e.message);
|
|
}
|
|
}
|
|
/**
|
|
*@brief display the popup with vat and explanations
|
|
*/
|
|
function success_set_tva_label(req)
|
|
{
|
|
try
|
|
{
|
|
var answer=req.responseXML;
|
|
var code=answer.getElementsByTagName('code');
|
|
var value=answer.getElementsByTagName('value');
|
|
|
|
if ( code.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
|
|
var label_code=code[0].firstChild.nodeValue;
|
|
var label_value=value[0].firstChild.nodeValue;
|
|
set_value(label_code,label_value);
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("success_set_tva_label "+e.message);
|
|
}
|
|
|
|
}
|
|
/**
|
|
*@brief set loading for waiting
|
|
*@param name of ipopup
|
|
*@see showIPopup
|
|
*/
|
|
function set_wait(name)
|
|
{
|
|
var content=name+"_content";
|
|
$(content).innerHTML= 'Un instant...<image src="image/loading.gif" border="0" alt="Chargement...">';
|
|
}
|
|
/**
|
|
*@brief add dynamically a object for AJAX
|
|
*@param obj.
|
|
* the attributes are
|
|
* - style to add style
|
|
* - id to add an id
|
|
* - class to add a class
|
|
* - html is the content
|
|
*/
|
|
function add_div(obj)
|
|
{
|
|
try
|
|
{
|
|
var top=document;
|
|
var elt=top.createElement('div');
|
|
if (obj.id )
|
|
{
|
|
elt.setAttribute('id',obj.id);
|
|
}
|
|
if (obj.style)
|
|
{
|
|
if (elt.style.setAttribute)
|
|
{ /* IE7 bug */
|
|
elt.style.setAttribute('cssText',obj.style);
|
|
}
|
|
else
|
|
{ /* good Browser */
|
|
elt.setAttribute('style',obj.style);
|
|
}
|
|
}
|
|
if (obj.cssclass )
|
|
{
|
|
elt.setAttribute('class',obj.cssclass);/* FF */
|
|
elt.setAttribute('className',obj.cssclass); /* IE */
|
|
}
|
|
if (obj.html)
|
|
{
|
|
elt.innerHTML=obj.html;
|
|
}
|
|
|
|
var bottom_div=document.body;
|
|
bottom_div.appendChild(elt);
|
|
if ( obj.drag )
|
|
{
|
|
new Draggable(obj.id,{starteffect:function()
|
|
{
|
|
new Effect.Highlight(obj.id,{scroll:window,queue:'end'});
|
|
}}
|
|
);
|
|
}
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("add_div"+e.message);
|
|
}
|
|
}
|
|
/**
|
|
* remove a object created with add_div
|
|
* @param elt id of the elt
|
|
*/
|
|
function removeDiv(elt)
|
|
{
|
|
if (g(elt) )
|
|
{
|
|
document.body.removeChild(g(elt));
|
|
}
|
|
// if reloaded if asked the window will be reloaded when
|
|
// the box is closed
|
|
if ( ask_reload == 1)
|
|
{
|
|
// avoid POST window.location = window.location.href;
|
|
window.location.reload();
|
|
}
|
|
}
|
|
/**
|
|
*show a box while loading
|
|
*must be remove when ajax is successfull
|
|
* the id is wait_box
|
|
*/
|
|
function waiting_box()
|
|
{
|
|
obj={
|
|
id:'wait_box',html:loading()
|
|
};
|
|
obj.style=fixed_position(350,200)+";width:200px";
|
|
if ($('wait_box')){
|
|
removeDiv('wait_box');
|
|
}
|
|
add_div(obj);
|
|
|
|
}
|
|
/**
|
|
*@brief call add_div to add a DIV and after call the ajax
|
|
* the queryString, the callback for function for success and error management
|
|
* the method is always GET
|
|
*@param obj, the mandatory attributes are
|
|
* - obj.qs querystring
|
|
* - obj.js_success callback function in javascript for handling the xml answer
|
|
* - obj.js_error callback function for error
|
|
* - obj.callback the php file to call
|
|
* - obj.fixed optional let you determine the position, otherwise works like IPopup
|
|
*@see add_div IBox
|
|
*/
|
|
function show_box(obj)
|
|
{
|
|
add_div(obj) ;
|
|
if ( ! obj.fixed )
|
|
{
|
|
var sx=0;
|
|
if ( window.scrollY)
|
|
{
|
|
sx=window.scrollY+40;
|
|
}
|
|
else
|
|
{
|
|
sx=document.body.scrollTop+40;
|
|
}
|
|
g(obj.id).style.top=sx;
|
|
show(obj.id);
|
|
}
|
|
else
|
|
{
|
|
show(obj.id);
|
|
}
|
|
|
|
var action=new Ajax.Request (
|
|
obj.callback,
|
|
{
|
|
method:'GET',
|
|
parameters:obj.qs,
|
|
onFailure:eval(obj.js_error),
|
|
onSuccess:eval(obj.js_success)
|
|
});
|
|
}
|
|
/**
|
|
*@brief receive answer from ajax and just display it into the IBox
|
|
* XML must contains at least 2 fields : ctl is the ID of the IBOX and
|
|
* code is the HTML to put in it
|
|
*@see fill_box
|
|
*/
|
|
function success_box(req,json)
|
|
{
|
|
try
|
|
{
|
|
var answer=req.responseXML;
|
|
var a=answer.getElementsByTagName('ctl');
|
|
var html=answer.getElementsByTagName('code');
|
|
if ( a.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
var name_ctl=a[0].firstChild.nodeValue;
|
|
var code_html=getNodeText(html[0]);
|
|
|
|
code_html=unescape_xml(code_html);
|
|
g(name_ctl).innerHTML=code_html;
|
|
g(name_ctl).style.height='auto';
|
|
|
|
if(name_ctl != 'popup')
|
|
g(name_ctl).style.width='60%';
|
|
else
|
|
g(name_ctl).style.width='auto';
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("success_box"+e.message);
|
|
}
|
|
try
|
|
{
|
|
code_html.evalScripts();
|
|
}
|
|
catch(e)
|
|
{
|
|
alert("answer_box Impossible executer script de la reponse\n"+e.message);
|
|
}
|
|
}
|
|
|
|
function error_box ()
|
|
{
|
|
alert('IBOX : error_box ajax not implemented');
|
|
}
|
|
/**
|
|
* show the ledger choice
|
|
*/
|
|
function show_ledger_choice()
|
|
{
|
|
if ($('div_jrn')) g('div_jrn').style.visibility='visible';
|
|
if ($('div_jrnsearch_op')) $('div_jrnsearch_op').style.display='block';
|
|
}
|
|
/**
|
|
* hide the ledger choice
|
|
*/
|
|
function hide_ledger_choice()
|
|
{
|
|
if ($('div_jrn')) g('div_jrn').style.visibility='hidden';
|
|
if ($('div_jrnsearch_op')) $('div_jrnsearch_op').style.display='none';
|
|
}
|
|
/**
|
|
* show the cat of ledger choice
|
|
*/
|
|
function show_cat_choice()
|
|
{
|
|
g('div_cat').style.visibility='visible';
|
|
}
|
|
/**
|
|
* hide the cat of ledger choice
|
|
*/
|
|
function hide_cat_choice()
|
|
{
|
|
g('div_cat').style.visibility='hidden';
|
|
}
|
|
/**
|
|
* add a row for the forecast item
|
|
*/
|
|
function for_add_row(tableid)
|
|
{
|
|
style='class="input_text"';
|
|
var mytable=g(tableid).tBodies[0];
|
|
var nNumberRow=mytable.rows.length;
|
|
var oRow=mytable.insertRow(nNumberRow);
|
|
var rowToCopy=mytable.rows[1];
|
|
var nNumberCell=rowToCopy.cells.length;
|
|
var nb=g("nbrow");
|
|
var oNewRow = mytable.insertRow(nNumberRow);
|
|
for ( var e=0;e < nNumberCell;e++)
|
|
{
|
|
var newCell=oRow.insertCell(e);
|
|
var tt=rowToCopy.cells[e].innerHTML;
|
|
new_tt=tt.replace(/an_cat0/g,"an_cat"+nb.value);
|
|
new_tt=new_tt.replace(/an_cat_acc0/g,"an_cat_acc"+nb.value);
|
|
new_tt=new_tt.replace(/an_qc0/g,"an_qc"+nb.value);
|
|
new_tt=new_tt.replace(/an_label0/g,"an_label"+nb.value);
|
|
new_tt=new_tt.replace(/month0/g,"month"+nb.value);
|
|
new_tt=new_tt.replace(/an_cat_amount0/g,"an_cat_amount"+nb.value);
|
|
new_tt=new_tt.replace(/an_deb0/g,"an_deb"+nb.value);
|
|
newCell.innerHTML=new_tt;
|
|
new_tt.evalScripts();
|
|
}
|
|
$("an_cat_acc"+nb.value).value="";
|
|
$("an_qc"+nb.value).value="";
|
|
$("an_label"+nb.value).value="";
|
|
$("an_cat_amount"+nb.value).value="0";
|
|
nb.value++;
|
|
}
|
|
/**
|
|
* toggle all the checkbox in a given form
|
|
* @param form_id id of the form
|
|
*/
|
|
function toggle_checkbox(form_id)
|
|
{
|
|
var form=g(form_id);
|
|
for (var i=0;i<form.length;i++)
|
|
{
|
|
var e=form.elements[i];
|
|
if ( e.type=='checkbox')
|
|
{
|
|
if ( e.checked==true)
|
|
{
|
|
e.checked=false;
|
|
}
|
|
else
|
|
{
|
|
e.checked=true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* select all the checkbox in a given form
|
|
* @param form_id id of the form
|
|
*/
|
|
function select_checkbox(form_id)
|
|
{
|
|
var form=$(form_id);
|
|
for (var i=0;i<form.length;i++)
|
|
{
|
|
var e=form.elements[i];
|
|
if ( e.type=='checkbox')
|
|
{
|
|
e.checked=true;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* unselect all the checkbox in a given form
|
|
* @param form_id id of the form
|
|
*/
|
|
function unselect_checkbox(form_id)
|
|
{
|
|
var form=$(form_id);
|
|
for (var i=0;i<form.length;i++)
|
|
{
|
|
var e=form.elements[i];
|
|
if ( e.type=='checkbox')
|
|
{
|
|
e.checked=false;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* show the calculator
|
|
*/
|
|
function show_calc()
|
|
{
|
|
if ( g('calc1'))
|
|
{
|
|
this.document.getElementById('inp').value="";
|
|
this.document.getElementById('inp').focus();
|
|
return;
|
|
}
|
|
var sid='calc1';
|
|
var shtml='';
|
|
shtml+='<div style="float:right;height:10px;display:block;margin-top:2px;margin-right:2px"> <a onclick="removeDiv(\'calc1\');" href="javascript:void(0)" id="close_div">Fermer</a></div>';
|
|
shtml+='<div> <h2 class="info">Calculatrice</h2></div>';
|
|
shtml+='<form name="calc_line" method="GET" onSubmit="cal();return false;" >Calculatrice simplifiée: écrivez simplement les opérations que vous voulez puis la touche retour. exemple : 1+2+3*(1/5) <input class="input_text" type="text" size="30" id="inp" name="calculator"> <input type="button" value="Efface tout" class="button" onClick="Clean();return false;" > <input type="button" class="button" value="Fermer" onClick="removeDiv(\'calc1\')" >';
|
|
shtml+='</form><span id="result"> </span><br><span id="sub_total"> Taper une formule (ex 20*5.1) puis enter </span><br><span id="listing"> </span>';
|
|
|
|
var obj={id:sid,html:shtml,
|
|
drag:true,style:''
|
|
};
|
|
add_div(obj);
|
|
this.document.getElementById('inp').focus();
|
|
}
|
|
function display_periode(p_dossier,p_id)
|
|
{
|
|
|
|
try
|
|
{
|
|
var queryString="gDossier="+p_dossier+"&op=input_per"+"&p_id="+p_id;
|
|
var popup={'id': 'mod_periode','cssclass':'inner_box','html':loading(),'style':'width:30em','drag':true};
|
|
if ( ! $('mod_periode') ) {
|
|
add_div(popup);
|
|
}
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{method:'get',
|
|
parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:success_display_periode
|
|
}
|
|
);
|
|
$('mod_periode').style.top=posY-70;
|
|
$('mod_periode').style.left=posX-70;
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("display_periode "+e.message);
|
|
}
|
|
|
|
}
|
|
function success_display_periode(req)
|
|
{try
|
|
{
|
|
|
|
var answer=req.responseXML;
|
|
var html=answer.getElementsByTagName('data');
|
|
|
|
if ( html.length == 0 )
|
|
{
|
|
var rec=req.responseText;
|
|
alert ('erreur :'+rec);
|
|
}
|
|
|
|
var code_html=getNodeText(html[0]);
|
|
code_html=unescape_xml(code_html);
|
|
|
|
$('mod_periode').innerHTML=code_html;
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("success_display_periode".e.message);
|
|
}
|
|
try
|
|
{
|
|
code_html.evalScripts();
|
|
}
|
|
catch(e)
|
|
{
|
|
alert("success_display_periode Impossible executer script de la reponse\n"+e.message);
|
|
}
|
|
|
|
}
|
|
function save_periode(obj)
|
|
{
|
|
try
|
|
{
|
|
var queryString=$(obj).serialize()+"&op=save_per";
|
|
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{method:'post',
|
|
parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:success_display_periode
|
|
}
|
|
);
|
|
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("display_periode "+e.message);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
/**
|
|
*@brief basic answer to ajax on success, it will fill the ctl with
|
|
* the code. In that case, you need to create the object before the Ajax.Request
|
|
*The difference with success box is that
|
|
*@see add_div removeDiv success_box is that the width and height are not changed
|
|
*@parameter ctl is the ID of the object containing the html (div, button...)
|
|
*@parameter code is the html code, with it you fill the ctl element
|
|
*/
|
|
function fill_box(req)
|
|
{
|
|
try{
|
|
|
|
remove_waiting_box();
|
|
|
|
var answer=req.responseXML;
|
|
var a=answer.getElementsByTagName('ctl');
|
|
var html=answer.getElementsByTagName('code');
|
|
if ( a.length == 0 ) {var rec=req.responseText;alert ('erreur :'+rec);}
|
|
var name_ctl=a[0].firstChild.nodeValue;
|
|
var code_html=getNodeText(html[0]); // Firefox ne prend que les 4096 car.
|
|
code_html=unescape_xml(code_html);
|
|
$(name_ctl).innerHTML=code_html;
|
|
}
|
|
catch (e) {
|
|
alert(e.message);}
|
|
try{
|
|
code_html.evalScripts();}
|
|
catch(e){
|
|
alert("Impossible executer script de la reponse\n"+e.message);}
|
|
|
|
|
|
}
|
|
/**
|
|
*display a popin to let you modified a predefined operation
|
|
*@param dossier_id
|
|
*@param od_id from table op_predef
|
|
*/
|
|
function mod_predf_op(dossier_id,od_id)
|
|
{
|
|
var target="mod_predf_op";
|
|
removeDiv(target);
|
|
var sx=posY;
|
|
var sy=posX;
|
|
var str_style="top:"+sx+";left:"+sy;
|
|
|
|
var div={id:target, cssclass:'inner_box',style:str_style,html:loading(),drag:1};
|
|
|
|
add_div(div);
|
|
|
|
var qs="gDossier="+dossier_id+'&op=mod_predf&id='+od_id;
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:fill_box
|
|
}
|
|
);
|
|
|
|
}
|
|
|
|
function save_predf_op(obj)
|
|
{
|
|
var querystring=$(obj).serialize()+'&op=save_predf';
|
|
// Create a ajax request to get all the person
|
|
var action = new Ajax.Request ('ajax_misc.php',
|
|
{
|
|
method: 'get',
|
|
parameters: querystring,
|
|
onFailure: null,
|
|
onSuccess: refresh_window
|
|
}
|
|
);
|
|
|
|
return false;
|
|
}
|
|
/**
|
|
*ctl_concern is the widget to update
|
|
*amount_id is either a html obj. or an amount
|
|
*/
|
|
function search_reconcile(dossier,ctl_concern,amount_id,ledger)
|
|
{
|
|
var dossier=g('gDossier').value;
|
|
if ( amount_id == undefined )
|
|
{amount_id=0;}
|
|
else if ($(amount_id))
|
|
{
|
|
if ($(amount_id).value)
|
|
{amount_id=$(amount_id).value;}
|
|
else if
|
|
($(amount_id).innerHTML) {amount_id=$(amount_id).innerHTML;}
|
|
}
|
|
|
|
var target="search_op";
|
|
removeDiv(target);
|
|
var str_style=fixed_position(77, 99);
|
|
str_style+=";width:92%;overflow:auto;";
|
|
|
|
var div={id:target, cssclass:'inner_box',style:str_style,html:loading(),drag:1};
|
|
|
|
add_div(div);
|
|
var target={gDossier:dossier,
|
|
ctlc:ctl_concern,
|
|
op:'search_op',
|
|
ctl:target,
|
|
ac:'JSSEARCH',
|
|
amount_id:amount_id,
|
|
ledger:ledger};
|
|
|
|
var qs=encodeJSON(target);
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function (req){
|
|
remove_waiting_box();
|
|
$('search_op').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
/**
|
|
* search in a popin obj if the object form
|
|
*/
|
|
function search_operation(obj)
|
|
{
|
|
try{
|
|
var dossier=g('gDossier').value;
|
|
waiting_box();
|
|
var target="search_op";
|
|
var qs=Form.serialize('search_form_ajx')+"&op=search_op&ctl=search_op";
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function (req){
|
|
remove_waiting_box();
|
|
$('search_op').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
}
|
|
}
|
|
);
|
|
} catch (e)
|
|
{
|
|
remove_waiting_box();
|
|
alert(e.message);
|
|
}
|
|
}
|
|
|
|
function set_reconcile(obj)
|
|
{
|
|
|
|
try
|
|
{
|
|
var ctlc=obj.elements['ctlc'];
|
|
|
|
for (var e=0;e<obj.elements.length;e++)
|
|
{
|
|
|
|
var elmt=obj.elements[e];
|
|
if ( elmt.type == "checkbox")
|
|
{
|
|
if (elmt.checked==true )
|
|
{
|
|
var str_name=elmt.name;
|
|
var nValue=str_name.replace("jr_concerned","");
|
|
if ( $(ctlc.value).value != '') {$(ctlc.value).value+=',';}
|
|
$(ctlc.value).value+=nValue;
|
|
}
|
|
}
|
|
}
|
|
removeDiv('search_op');
|
|
}
|
|
catch(e)
|
|
{
|
|
alert(e.message)
|
|
}
|
|
}
|
|
function remove_waiting_box()
|
|
{
|
|
removeDiv('wait_box');
|
|
}
|
|
function get_profile_detail(gDossier,profile_id)
|
|
{
|
|
waiting_box();
|
|
var qs="op=display_profile&gDossier="+gDossier+"&p_id="+profile_id+"&ctl=detail_profile";
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
remove_waiting_box();
|
|
$('detail_profile').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
$('detail_profile').show();
|
|
if ( profile_id != "-1" ) profile_show('profile_gen_div');
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function get_profile_detail_success(xml)
|
|
{
|
|
remove_waiting_box();
|
|
|
|
}
|
|
/**
|
|
* @brief compute the string to position a div in a fixed way
|
|
* @return string
|
|
*/
|
|
function fixed_position(p_sx,p_sy)
|
|
{
|
|
var sx=p_sx;
|
|
var sy=calcy(p_sy);
|
|
|
|
var str_style="top:"+sy+";left:"+sx+";position:absolute";
|
|
return str_style;
|
|
|
|
}
|
|
/**
|
|
*@brief compute Y even if the windows has scrolled down or up
|
|
*@return the correct Y position
|
|
*/
|
|
function calcy(p_sy)
|
|
{
|
|
var sy=p_sy;
|
|
if ( window.scrollY)
|
|
{
|
|
sy=window.scrollY+p_sy;
|
|
}
|
|
else
|
|
{
|
|
sy=document.body.scrollTop+p_sy;
|
|
}
|
|
return sy;
|
|
|
|
}
|
|
function mod_menu(gdossier,pm_id)
|
|
{
|
|
waiting_box();
|
|
removeDiv('divdm'+pm_id);
|
|
var qs="op=det_menu&gDossier="+gdossier+"&pm_id="+pm_id+"&ctl=divdm"+pm_id;
|
|
var pos=fixed_position(250,150);
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
add_div({id:"divdm"+pm_id,drag:1,cssclass:"inner_box",style:pos});
|
|
$('divdm'+pm_id).innerHTML=req.responseText;
|
|
} catch(e){alert(e.message);}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function add_menu(obj)
|
|
{
|
|
var pdossier=obj.dossier;
|
|
var p_id=obj.p_id;
|
|
var p_type=obj.type;
|
|
waiting_box();
|
|
removeDiv('divdm'+p_id);
|
|
var qs="op=add_menu&gDossier="+pdossier+"&p_id="+p_id+"&ctl=divdm"+p_id+"&type="+p_type;
|
|
var pos=fixed_position(250,150);
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
add_div({id:"divdm"+p_id,drag:1,cssclass:"inner_box",style:pos});
|
|
$('divdm'+p_id).innerHTML=req.responseText;
|
|
} catch(e){alert(e.message);}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function add_plugin(p_dossier)
|
|
{
|
|
waiting_box();
|
|
removeDiv('divplugin');
|
|
var qs="op=add_plugin&gDossier="+p_dossier+"&ctl=divplugin";
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
var pos=fixed_position(250,150)+";width:30%";
|
|
add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos});
|
|
$('divplugin').innerHTML=req.responseText;
|
|
} catch(e){alert(e.message);}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function mod_plugin(p_dossier,me_code)
|
|
{
|
|
waiting_box();
|
|
removeDiv('divplugin');
|
|
var qs="op=mod_plugin&gDossier="+p_dossier+"&ctl=divplugin&me_code="+me_code;
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
var pos=fixed_position(250,150)+";width:30%";
|
|
add_div({id:"divplugin",drag:1,cssclass:"inner_box",style:pos});
|
|
$('divplugin').innerHTML=req.responseText;
|
|
|
|
} catch(e){alert(e.message);}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function create_menu(p_dossier)
|
|
{
|
|
waiting_box();
|
|
removeDiv('divmenu');
|
|
var qs="op=create_menu&gDossier="+p_dossier+"&ctl=divmenu";
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
var pos=fixed_position(250,150)+";width:30%";
|
|
add_div({
|
|
id:"divmenu",
|
|
drag:1,
|
|
cssclass:"inner_box",
|
|
style:pos
|
|
});
|
|
$('divmenu').innerHTML=req.responseText;
|
|
} catch(e){
|
|
alert(e.message);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function modify_menu(p_dossier,me_code)
|
|
{
|
|
waiting_box();
|
|
removeDiv('divmenu');
|
|
var qs="op=modify_menu&gDossier="+p_dossier+"&ctl=divmenu&me_code="+me_code;
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function(req){
|
|
try{
|
|
remove_waiting_box();
|
|
var pos=fixed_position(250,150)+";width:30%";
|
|
add_div({
|
|
id:"divmenu",
|
|
drag:1,
|
|
cssclass:"inner_box",
|
|
style:pos
|
|
});
|
|
$('divmenu').innerHTML=req.responseText;
|
|
|
|
} catch(e){
|
|
alert(e.message);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function get_properties(obj)
|
|
{
|
|
var a_array=[];
|
|
var s_type="["+typeof obj+"]";
|
|
for (var m in obj)
|
|
{
|
|
a_array.push(m);
|
|
}
|
|
alert(s_type+a_array.join(","));
|
|
}
|
|
/**
|
|
* @brief add a line in the form for the report
|
|
* @param p_dossier dossier id to connect
|
|
*/
|
|
function rapport_add_row(p_dossier)
|
|
{
|
|
style='style="border: 1px solid blue;"';
|
|
var table=$("rap1");
|
|
var line=table.rows.length;
|
|
|
|
var row=table.insertRow(line);
|
|
// left cell
|
|
var cellPos = row.insertCell(0);
|
|
cellPos.innerHTML='<input type="text" '+style+' size="3" id="pos'+line+'" name="pos'+line+'" value="'+line+'">';
|
|
|
|
// right cell
|
|
var cellName = row.insertCell(1);
|
|
cellName.innerHTML='<input type="text" '+style+' size="40" id="text'+line+'" name="text'+line+'">';
|
|
|
|
// button + formula
|
|
var cellbutton = row.insertCell(2);
|
|
var but_html=table.rows[1].cells[2].innerHTML;
|
|
but_html=but_html.replace(/form0/g,"form"+line);
|
|
cellbutton.innerHTML=but_html;
|
|
but_html.evalScripts();
|
|
|
|
g('form'+line).value='';
|
|
}
|
|
/**
|
|
* Search an action in an inner box
|
|
*/
|
|
function search_action(dossier,ctl_concern)
|
|
{
|
|
try
|
|
{
|
|
var dossier=g('gDossier').value;
|
|
|
|
var target="search_action_div";
|
|
removeDiv(target);
|
|
var str_style=fixed_position(77, 99);
|
|
str_style+=";width:80%";
|
|
|
|
var div={id:target, cssclass:'inner_box',style:str_style,html:loading(),drag:1};
|
|
|
|
add_div(div);
|
|
var target={gDossier:dossier,
|
|
ctlc:ctl_concern,
|
|
op:'search_action',
|
|
ctl:target
|
|
};
|
|
|
|
var qs=encodeJSON(target);
|
|
|
|
var action=new Ajax.Request ( 'ajax_misc.php',
|
|
{
|
|
method:'get',
|
|
parameters:qs,
|
|
onFailure:null,
|
|
onSuccess:function (req){
|
|
try {
|
|
remove_waiting_box();
|
|
$('search_action_div').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
}catch( e){alert(e.message);}
|
|
}
|
|
}
|
|
);
|
|
}catch( e){alert(e.message);}
|
|
}
|
|
|
|
function result_search_action(obj)
|
|
{
|
|
try
|
|
{
|
|
var queryString=$(obj).serialize()+"&op=search_action";
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{method:'get',
|
|
parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:function (req){
|
|
try {
|
|
remove_waiting_box();
|
|
$('search_action_div').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
}catch( e){alert(e.message);}
|
|
}
|
|
}
|
|
)
|
|
|
|
}
|
|
catch (e)
|
|
{
|
|
alert("display_periode "+e.message);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function set_action_related(p_obj)
|
|
{
|
|
|
|
try
|
|
{
|
|
var obj=$(p_obj);
|
|
var ctlc=obj.elements['ctlc'];
|
|
|
|
for (var e=0;e<obj.elements.length;e++)
|
|
{
|
|
|
|
var elmt=obj.elements[e];
|
|
if ( elmt.type == "checkbox")
|
|
{
|
|
if (elmt.checked==true )
|
|
{
|
|
var str_name=elmt.name;
|
|
var nValue=elmt.value;
|
|
if ( $(ctlc.value).value != '') {$(ctlc.value).value+=',';}
|
|
$(ctlc.value).value+=nValue;
|
|
}
|
|
}
|
|
}
|
|
removeDiv('search_action_div');
|
|
return false;
|
|
}
|
|
catch(e)
|
|
{
|
|
alert(e.message);
|
|
return false;
|
|
}
|
|
}
|
|
/**
|
|
*@brief change a document_modele
|
|
*/
|
|
function stock_repo_change(p_dossier,r_id)
|
|
{
|
|
var queryString="gDossier="+p_dossier+"&op=mod_stock_repo"+"&r_id="+r_id;
|
|
var nTop=calcy(posY);
|
|
var nLeft="200px";
|
|
var str_style="top:"+nTop+"px;left:"+nLeft+";width:50em;height:auto";
|
|
|
|
removeDiv('change_stock_repo_div');
|
|
waiting_box();
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{
|
|
method:'get', parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:function(req){
|
|
remove_waiting_box();
|
|
add_div({id:'change_stock_repo_div',style:str_style,cssclass:'inner_box',drag:"1"});
|
|
$('change_stock_repo_div').innerHTML=req.responseText;
|
|
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function stock_inv_detail(p_dossier,p_id)
|
|
{
|
|
var queryString="gDossier="+p_dossier+"&op=view_mod_stock"+"&c_id="+p_id+"&ctl=view_mod_stock_div";
|
|
var nTop=calcy(posY);
|
|
var nLeft="200px";
|
|
var str_style="top:"+nTop+"px;left:"+nLeft+";width:75%;";
|
|
|
|
removeDiv('view_mod_stock_div');
|
|
waiting_box();
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{
|
|
method:'get', parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:function(req){
|
|
remove_waiting_box();
|
|
add_div({id:'view_mod_stock_div',style:str_style,cssclass:'inner_box',drag:"1"});
|
|
$('view_mod_stock_div').innerHTML=req.responseText;
|
|
req.responseText.evalScripts();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function show_fin_chdate(obj_id)
|
|
{
|
|
try
|
|
{
|
|
var ch=$(obj_id).options[$(obj_id).selectedIndex].value;
|
|
if (ch == 2 ) {
|
|
$('chdate_ext').hide();
|
|
$('thdate').show();
|
|
}
|
|
if (ch == 1 ) {
|
|
$('chdate_ext').show();
|
|
$('thdate').hide();
|
|
}
|
|
var nb=$('nb_item').value;
|
|
for (i=0;i<nb;i++) {
|
|
if ( $('tdchdate'+i)) {
|
|
if (ch == 2) {
|
|
$('tdchdate'+i).show();
|
|
}
|
|
if (ch == 1 ) {
|
|
$('tdchdate'+i).hide();
|
|
|
|
}
|
|
}
|
|
}
|
|
}catch (e) {
|
|
alert(e.message);
|
|
}
|
|
}
|
|
/**
|
|
* tab menu for the profile parameter
|
|
*/
|
|
function profile_show(p_div)
|
|
{
|
|
try{
|
|
var div=['profile_gen_div','profile_menu_div','profile_print_div','profile_gestion_div','profile_repo_div'];
|
|
for (var r =0;r<div.length;r++ ) {$(div[r]).hide();}
|
|
$(p_div).show();
|
|
} catch(e)
|
|
{
|
|
alert(e.message)
|
|
}
|
|
}
|
|
function detail_category_show(p_div,p_dossier,p_id)
|
|
{
|
|
$(p_div).show();
|
|
waiting_box();
|
|
$('detail_category_div').innerHTML="";
|
|
var queryString="gDossier="+p_dossier+"&id="+p_id+"&op=fddetail";
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php" ,
|
|
{
|
|
method:'get', parameters:queryString,
|
|
onFailure:ajax_misc_failure,
|
|
onSuccess:function(req){
|
|
remove_waiting_box();
|
|
$('list_cat_div').hide();
|
|
$('detail_category_div').innerHTML=req.responseText;
|
|
$('detail_category_div').show();
|
|
req.responseText.evalScripts();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
/**
|
|
* @brief check if the parameter is a valid a valid date or not, returns true if it is valid otherwise
|
|
* false
|
|
* @parameter p_str_date the string of the date (format DD.MM.YYYY)
|
|
*/
|
|
function check_date(p_str_date)
|
|
{
|
|
var format = /^\d{2}\.\d{2}\.\d{4}$/;
|
|
if(!format.test(p_str_date)){
|
|
return false;
|
|
}
|
|
else{
|
|
var date_temp = p_str_date.split('.');
|
|
var nMonth=parseFloat(date_temp[1])-1;
|
|
var ma_date = new Date(date_temp[2], nMonth, date_temp[0]);
|
|
if(ma_date.getFullYear()==date_temp[2] && ma_date.getMonth()==nMonth && ma_date.getDate()==date_temp[0]){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|
|
/**
|
|
* @brief get the string in the id and check if the date is valid
|
|
* @parameter p_id_date is the id of the element to check
|
|
* @return true if the date is valid
|
|
* @see check_date
|
|
*/
|
|
function check_date_id(p_id_date)
|
|
{
|
|
var str_date=$(p_id_date).value;
|
|
return check_date(str_date);
|
|
}
|
|
/**
|
|
*
|
|
* @param ag_id to view
|
|
* @param dossier is the folder
|
|
* @param modify : show the modify button values : 0 for no 1 for yes
|
|
*/
|
|
function view_action(ag_id,dossier,modify)
|
|
{
|
|
waiting_box();
|
|
layer++;
|
|
id = 'action' + layer;
|
|
|
|
querystring = 'gDossier=' + dossier + '&op=vw_action&ag_id=' + ag_id + '&div=' + id+'&mod='+modify;
|
|
var action = new Ajax.Request(
|
|
"ajax_misc.php",
|
|
{
|
|
method: 'get',
|
|
parameters: querystring,
|
|
onFailure: error_box,
|
|
onSuccess: function(req) {
|
|
try {
|
|
remove_waiting_box();
|
|
var pos = fixed_position(0, 50) + ";width:90%;left:5%;";
|
|
add_div({
|
|
id: id,
|
|
drag: 1,
|
|
cssclass: "inner_box",
|
|
style: pos
|
|
});
|
|
$(id).innerHTML = req.responseText;
|
|
compute_all_ledger();
|
|
} catch (e) {
|
|
alert(e.message);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
} |