altocompta/html/js/scripts.js
Dany De Bontridder 31f5ddc9ca Merged revisions 5056,5058-5206,5209-5215 via svnmerge from
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
........
2013-05-03 22:31:33 +00:00

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(/\&lt;/,'<');
code_html=code_html.replace(/\&gt;/,'>');
code_html=code_html.replace(/\&quot;/,'"');
code_html=code_html.replace(/\&apos;/,"'");
code_html=code_html.replace(/\&amp;/,'&');
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);
}
}
}
);
}