From bff16accf5df8bb096caafc3e561f2d42df2fd53 Mon Sep 17 00:00:00 2001 From: Dany De Bontridder Date: Sat, 3 Jul 2010 22:03:04 +0000 Subject: [PATCH] Balance ======== You can select multi ledger, it is now adapted for great organisation with more than 600 ledgers --- html/bal_csv.php | 2 +- html/js/scripts.js | 12 +++++ html/print_balance.php | 2 +- html/style-color.css | 11 ++++ include/balance.inc.php | 96 ++++++++++++++++++++++------------- include/class_acc_balance.php | 24 ++++++--- release-note | 7 ++- 7 files changed, 105 insertions(+), 49 deletions(-) diff --git a/html/bal_csv.php b/html/bal_csv.php index 6adaaae97..c73805e01 100644 --- a/html/bal_csv.php +++ b/html/bal_csv.php @@ -44,7 +44,7 @@ if ( $User->check_action(IMPBAL) == 0) echo 'poste;libelle;deb;cred;solde deb;solde cred'; printf("\n"); $bal=new Acc_Balance($cn); -$bal->jrn=$_GET['p_jrn']; +$bal->jrn=(isset($_GET['r_jrn']))?$_GET['r_jrn']:null; $bal->from_poste=$_GET['from_poste']; $bal->to_poste=$_GET['to_poste']; diff --git a/html/js/scripts.js b/html/js/scripts.js index 0c4fec44f..05a8ad190 100644 --- a/html/js/scripts.js +++ b/html/js/scripts.js @@ -514,3 +514,15 @@ function success_box(req,json) function error_box () { alert('IBOX : error_box ajax not implemented'); } +/** +* show the ledger choice +*/ +function show_ledger_choice() { + g('div_jrn').style.visibility='visible'; +} +/** +* hide the ledger choice +*/ +function hide_ledger_choice() { + g('div_jrn').style.visibility='hidden'; +} \ No newline at end of file diff --git a/html/print_balance.php b/html/print_balance.php index 625cae233..b8d47535a 100644 --- a/html/print_balance.php +++ b/html/print_balance.php @@ -50,7 +50,7 @@ $User->can_request(IMPBAL,1); extract ($_GET); -$bal->jrn=$_GET['p_jrn']; +$bal->jrn=(isset($_GET['p_jrn']))?$_GET['p_jrn']:null; $bal->from_poste=$_GET['from_poste']; $bal->to_poste=$_GET['to_poste']; diff --git a/html/style-color.css b/html/style-color.css index 43236f088..ee6c374a9 100644 --- a/html/style-color.css +++ b/html/style-color.css @@ -861,3 +861,14 @@ div.op_detail_title { } +div#div_jrn{ + position:absolute; + border:1px solid black; + top:15%;left:100; + visibility:hidden; + z-index:2; + width:50em; + background-color:#EDF3FF; + +} + \ No newline at end of file diff --git a/include/balance.inc.php b/include/balance.inc.php index a2eaa6a17..6df2a988a 100644 --- a/include/balance.inc.php +++ b/include/balance.inc.php @@ -48,14 +48,16 @@ echo js_include('dragdrop.js'); echo js_include('card.js'); echo js_include('acc_ledger.js'); echo IPoste::ipopup('ipop_account'); - echo '
'; // Show the form for period -echo '
'; +echo ''; +echo HtmlInput::hidden('p_action','impress'); +echo HtmlInput::hidden('type','bal'); + echo dossier::hidden(); // filter on the current year -$from=(isset($_POST["from_periode"]))?$_POST['from_periode']:""; +$from=(isset($_GET["from_periode"]))?$_GET['from_periode']:""; $input_from=new IPeriod("from_periode",$from); $input_from->show_end_date=false; $input_from->type=ALL; @@ -64,7 +66,7 @@ $input_from->filter_year; $input_from->user=$User; echo 'Depuis :'.$input_from->input(); // filter on the current year -$to=(isset($_POST["to_periode"]))?$_POST['to_periode']:""; +$to=(isset($_GET["to_periode"]))?$_GET['to_periode']:""; $input_to=new IPeriod("to_periode",$to); $input_to->show_start_date=false; $input_to->filter_year; @@ -74,29 +76,43 @@ $input_to->user=$User; echo ' jusque :'.$input_to->input(); //------------------------------------------------- -$l=new Acc_Ledger($cn,0); -$journal=$l->select_ledger('ALL',3); + /* add a all ledger choice */ -$blank=array('value'=>-1,'label'=>'Tous les journaux '); -$array=$journal->value; -$array[]=$blank; -$journal->value=$array; +$ledger=new IButton('l'); +$ledger->label="Journaux"; +$ledger->javascript=" show_ledger_choice()"; +echo $ledger->input(); -$journal->name="p_jrn"; +/* create a hidden div for the ledger */ +echo '
'; +echo '

Choix des journaux

'; +$selected=(isset($_GET['r_jrn']))?$_GET['r_jrn']:null; +$array_ledger=$User->get_ledger('ALL',3); +echo '
    '; +for ($e=0;$eselected=true;} + echo '
  • '.$r->input().$row['jrn_def_name'].'('.$row['jrn_def_type'].')
  • '; + +} +echo '
'; +$hide=new IButton('l'); +$hide->label="Cacher"; +$hide->javascript=" hide_ledger_choice() "; +echo $hide->input(); + +echo '
'; -if ( isset($_POST['p_jrn'])) $journal->selected=$_POST['p_jrn']; - else - $journal->selected=-1; -echo "Journal = ".$journal->input(); $from_poste=new IPoste(); $from_poste->name="from_poste"; $from_poste->set_attribute('ipopup','ipop_account'); $from_poste->set_attribute('label','from_poste_label'); $from_poste->set_attribute('account','from_poste'); -$from_poste->value=(isset($_POST['from_poste']))?$_POST['from_poste']:""; +$from_poste->value=(isset($_GET['from_poste']))?$_GET['from_poste']:""; $from_span=new ISpan("from_poste_label",""); $to_poste=new IPoste(); @@ -105,7 +121,7 @@ $to_poste->set_attribute('ipopup','ipop_account'); $to_poste->set_attribute('label','to_poste_label'); $to_poste->set_attribute('account','to_poste'); -$to_poste->value=(isset($_POST['to_poste']))?$_POST['to_poste']:""; +$to_poste->value=(isset($_GET['to_poste']))?$_GET['to_poste']:""; $to_span=new ISpan("to_poste_label",""); echo "
"; @@ -122,7 +138,7 @@ echo '
'; // Form //----------------------------------------------------- // Show the export button -if ( isset ($_POST['view'] ) ) { +if ( isset ($_GET['view'] ) ) { $hid=new IHidden(); @@ -132,21 +148,26 @@ if ( isset ($_POST['view'] ) ) { dossier::hidden(). HtmlInput::submit('bt_pdf',"Export PDF"). HtmlInput::hidden("p_action","impress"). - HtmlInput::hidden("from_periode",$_POST['from_periode']). - HtmlInput::hidden("to_periode",$_POST['to_periode']). - HtmlInput::hidden("p_jrn",$_POST['p_jrn']). - HtmlInput::hidden("from_poste",$_POST['from_poste']). - HtmlInput::hidden("to_poste",$_POST['to_poste']); + HtmlInput::hidden("from_periode",$_GET['from_periode']). + HtmlInput::hidden("to_periode",$_GET['to_periode']); + for ($e=0;$e"; + echo ''. HtmlInput::submit('bt_csv',"Export CSV"). dossier::hidden(). HtmlInput::hidden("p_action","impress"). - HtmlInput::hidden("from_periode",$_POST['from_periode']). - HtmlInput::hidden("to_periode",$_POST['to_periode']). - HtmlInput::hidden("p_jrn",$_POST['p_jrn']). - HtmlInput::hidden("from_poste",$_POST['from_poste']). - HtmlInput::hidden("to_poste",$_POST['to_poste']); + HtmlInput::hidden("from_periode",$_GET['from_periode']). + HtmlInput::hidden("to_periode",$_GET['to_periode']); + for ($e=0;$e"; @@ -159,17 +180,20 @@ if ( isset ($_POST['view'] ) ) { //----------------------------------------------------- // Display result //----------------------------------------------------- -if ( isset($_POST['view'] ) ) { +if ( isset($_GET['view'] ) ) { $bal=new Acc_Balance($cn); - $bal->jrn=$_POST['p_jrn']; - $bal->from_poste=$_POST['from_poste']; - $bal->to_poste=$_POST['to_poste']; + for ($e=0;$ejrn[]=$e; - $row=$bal->get_row($_POST['from_periode'], - $_POST['to_periode']); + $bal->from_poste=$_GET['from_poste']; + $bal->to_poste=$_GET['to_poste']; + + $row=$bal->get_row($_GET['from_periode'], + $_GET['to_periode']); $periode=new Periode($cn); - $a=$periode->get_date_limit($_POST['from_periode']); - $b=$periode->get_date_limit($_POST['to_periode']); + $a=$periode->get_date_limit($_GET['from_periode']); + $b=$periode->get_date_limit($_GET['to_periode']); echo "

période du ".$a['p_start']." au ".$b['p_end']."

"; echo ''; diff --git a/include/class_acc_balance.php b/include/class_acc_balance.php index 6de69f084..b14f9e835 100644 --- a/include/class_acc_balance.php +++ b/include/class_acc_balance.php @@ -29,13 +29,12 @@ require_once('class_acc_account.php'); class Acc_Balance { var $db; /*! < database connection */ var $row; /*! < row for ledger*/ - var $jrn; /*!< jrn_def.jr_id or -1 for all of - them */ + var $jrn; /*!< idx of a table of ledger create by user->get_ledger */ var $from_poste; /*!< from_poste filter on the post */ var $to_poste; /*!< to_poste filter on the post*/ function Acc_Balance($p_cn) { $this->db=$p_cn; - $this->jrn=-1; + $this->jrn=null; $from_poste=""; $to_poste=""; } @@ -63,8 +62,19 @@ class Acc_Balance { $and=""; $jrn=""; $from_poste="";$to_poste=""; + if ($this->jrn!= null){ + $user=new User($this->db); + $ajrn=$user->get_ledger('ALL',3); + $jrn=" j_jrn_def in (";$comma=''; + for ($e=0;$ejrn);$e++) { + $idx=$this->jrn[$e]; + $jrn.=$comma.$ajrn[$idx]['jrn_def_id']; + $comma=','; + } + $jrn.=')'; + $and=" and "; + } - if ($this->jrn!= -1){ $jrn=" $and j_jrn_def=".$this->jrn;$and=" and ";} if ( strlen(trim($this->from_poste)) != 0 && $this->from_poste!=-1 ) { $from_poste=" $and j_poste::text >= '".$this->from_poste."'"; $and=" and "; } @@ -79,9 +89,9 @@ class Acc_Balance { ( select j_poste, case when j_debit='t' then j_montant else 0 end as deb, case when j_debit='f' then j_montant else 0 end as cred - from jrnx join tmp_pcmn on j_poste=pcm_val - left join parm_periode on j_tech_per = p_id -join jrn_def on (j_jrn_def=jrn_def_id) + from jrnx join tmp_pcmn on (j_poste=pcm_val) + left join parm_periode on (j_tech_per = p_id) + join jrn_def on (j_jrn_def=jrn_def_id) where $jrn $from_poste $to_poste $and $filter_sql diff --git a/release-note b/release-note index b2e69da78..83ff93edf 100644 --- a/release-note +++ b/release-note @@ -12,6 +12,9 @@ Conséquence : réécriture de code, correction modop, ... 10. TODO2 Object pour extourner proprement une operation, le fichier annulation.php devient inutile (deprecated) depend de TODO1 TODO10 11. TODO17 extourne depuis DIV HTML dépend de TODO16 12. TODO10 Enlever le bouton enlever dans les listes d'opération et le mettre dans le DIV HTML qui présente les détails de l'op +13. Pour les balances, on peut choisir les journaux : adapté à ceux en ayant vraiment beaucoup +14. Depuis les lettrages, on peut aussi accèder aux détails d'une opération +15. TODO9 - dépend de TODO4 TODO2 - dans impressions, on peut avoir les détails de toutes les opérations IDEE6, categorie de fiche, changer la présentation @@ -21,9 +24,6 @@ TODO8 ajout bouton "ajoutez ligne" pour les prévisions IDEE1 Catégorie de fiche : changer la présentation ? -TODO9 - dépend de TODO4 TODO2 - dans impressions, on peut avoir les détails de toutes les opérations - - TODO11 Ajoutez aux classes Ledger_* une fonction pour obtenir un tableau vide qui répresente le tableau utilisé par confirm, insert et veriffy TODO12 Pour les anouveaux, les mêmes comptes se retrouvent au crédit ET au débit, il faudrait en avoir la soustraction !! @@ -32,7 +32,6 @@ TODO13 Bouton validate CA ne fonctionne plus TODO14 confirmation quand effacement d'un PA (comptabilité analytique -> Plan Analytique) - REFLEXION1 Pièce attachée uniquement depuis détail opération ? TODO19 Le menu Grand Livre devient recherche