diff --git a/html/js/acc_ledger.js b/html/js/acc_ledger.js index 8e45bdb26..aa8f417ee 100644 --- a/html/js/acc_ledger.js +++ b/html/js/acc_ledger.js @@ -28,21 +28,39 @@ var layer=1; /** * @brief update the list of available predefined operation when we change the ledger. */ -function update_predef(p_type,p_direct) +function update_predef(p_type,p_direct,p_ac) { var jrn=g("p_jrn").value; var dossier=g("gDossier").value; - var querystring='gDossier='+dossier+'&l='+jrn+'&t='+p_type+'&d='+p_direct+"&op=up_predef"; + var querystring='gDossier='+dossier+'&l='+jrn+'&t='+p_type+'&d='+p_direct+"&op=up_predef&ac="+p_ac; g("p_jrn_predef").value=jrn; - var action=new Ajax.Request( - "ajax_misc.php", - { - method:'get', - parameters:querystring, - onFailure:error_get_predef, - onSuccess:success_get_predef - } - ); + var action = new Ajax.Request( + "ajax_misc.php", + { + method: 'get', + parameters: querystring, + onFailure: error_get_predef, + onSuccess: function(req) { + try { + $('info_div').innerHTML = "ok"; + var answer = req.responseXML; + var a = answer.getElementsByTagName('code'); + var html = answer.getElementsByTagName('value'); + if (a.length == 0) + { + var rec = req.responseText; + alert('erreur :' + rec); + } + var code_html = getNodeText(html[0]); + code_html = unescape_xml(code_html); + // document.getElementsByName(name_ctl)[0].value = code_html; + $('modele_op_div').innerHTML=code_html; + } catch (e) { + $('info_div').innerHTML = e.getMessage; + } + } + } + ); } /** @@ -76,25 +94,6 @@ function update_name() { $('jrn_name').innerHTML=$('p_jrn').options[$('p_jrn').selectedIndex].innerHTML; } -/** - * @brief update the field predef - */ -function success_get_predef(request,json) -{ - var i=0; - var answer=request.responseText.evalJSON(true); - obj=g("pre_def"); - obj.innerHTML=''; - if ( answer.count == 0 ) return; - - for ( i = 0 ; i < answer.count;i++) - { - value=answer['value'+i]; - label=answer['label'+i]; - obj.options[obj.options.length]=new Option(label,value); - } - -} /** * @brief update the field predef */ diff --git a/html/style.css b/html/style.css index 92c5f9ea5..fa240477b 100644 --- a/html/style.css +++ b/html/style.css @@ -1252,4 +1252,17 @@ textarea.itextarea{ border:solid blue 1px; width:90%; margin-left:5%; +} +div#modele_op_div{ + display: none; + background-color:#e4e7ed; + font-family:arial,verdana,sans-serif,helvetica; + padding:0; + margin:0; + overflow:hidden; + z-index:3; + position:absolute; + left:10%; + width:60%; + border:1px solid darkblue; } \ No newline at end of file diff --git a/include/ajax_update_predef.php b/include/ajax_update_predef.php index 7388e6fe3..85872b850 100644 --- a/include/ajax_update_predef.php +++ b/include/ajax_update_predef.php @@ -48,21 +48,21 @@ $op=new Pre_operation_detail($cn); $op->set('ledger',$l); $op->set('ledger_type',$t); $op->set('direct',$d); -$array=$op->get_operation(); -$string='{"count":"'.count($array).'"'; -$idx=0; -if (! empty($array)) - foreach ($array as $a) -{ - $string.=',"value'.$idx.'":"'.$a['value'].'",'; - $string.='"label'.$idx.'":"'.$a['label'].'"'; - $idx++; -} -$string.="}"; +$url=http_build_query(array('action'=>'use_opd','p_jrn_predef'=>$l,'ac'=>$_GET['ac'],'gDossier'=>dossier::id())); +$html=""; -header("Content-type: text/json; charset: utf8",true); -echo $string; +$html.=HtmlInput::title_box("Modèle d'opérations ", 'modele_op_div', 'hide'); +$html.=$op->show_button('do.php?'.$url); +$html=escape_xml($html); +header('Content-type: text/xml; charset=UTF-8'); +echo << + + +$html + +EOF; ?> diff --git a/include/class_acc_ledger.php b/include/class_acc_ledger.php index e950344d9..d93498c25 100644 --- a/include/class_acc_ledger.php +++ b/include/class_acc_ledger.php @@ -1586,7 +1586,7 @@ class Acc_Ledger extends jrn_def_sql $wLedger = $this->select_ledger('ODS', 2); if ($wLedger == null) exit(_('Pas de journal disponible')); - $wLedger->javascript = "onChange='update_name();update_predef(\"ods\",\"t\");$add_js'"; + $wLedger->javascript = "onChange='update_name();update_predef(\"ods\",\"t\",\"".$_REQUEST['ac']."\");$add_js'"; $label = " Journal " . HtmlInput::infobulle(2); $ret.=$label . $wLedger->input(); diff --git a/include/class_acc_ledger_purchase.php b/include/class_acc_ledger_purchase.php index f9050f0d7..ec7826e13 100644 --- a/include/class_acc_ledger_purchase.php +++ b/include/class_acc_ledger_purchase.php @@ -985,7 +985,7 @@ class Acc_Ledger_Purchase extends Acc_Ledger $wLedger=$this->select_ledger('ACH',2); if ($wLedger == null) exit (_('Pas de journal disponible')); - $wLedger->javascript="onChange='update_predef(\"ach\",\"f\");$add_js'"; + $wLedger->javascript="onChange='update_predef(\"ach\",\"f\",\"".$_REQUEST['ac']."\");$add_js'"; $wLedger->table=1; $f_jrn=$wLedger->input(); diff --git a/include/class_acc_ledger_sold.php b/include/class_acc_ledger_sold.php index 1ee3e79cb..e540e4df9 100644 --- a/include/class_acc_ledger_sold.php +++ b/include/class_acc_ledger_sold.php @@ -1051,7 +1051,7 @@ class Acc_Ledger_Sold extends Acc_Ledger { if ($wLedger == null) exit(_('Pas de journal disponible')); $wLedger->table = 1; - $wLedger->javascript = "onChange='update_predef(\"ven\",\"f\");$add_js'"; + $wLedger->javascript = "onChange='update_predef(\"ven\",\"f\",\"".$_REQUEST['ac']."\");$add_js'"; $wLedger->label = " Journal " . HtmlInput::infobulle(2); $f_jrn = $wLedger->input(); diff --git a/include/class_pre_operation.php b/include/class_pre_operation.php index 00634a0ac..403a1a13c 100644 --- a/include/class_pre_operation.php +++ b/include/class_pre_operation.php @@ -221,14 +221,16 @@ class Pre_operation_detail /*!\brief show a form to use pre_op */ - function form_get () + function form_get ($p_url) { - + $r=HtmlInput::button_action("Modèle d'opérations", ' $(\'modele_op_div\').style.display=\'block\';$(\'lk_modele_op_tab\').focus();'); + $r.='
'; + $r.=HtmlInput::title_box("Modèle d'opérations ", 'modele_op_div', 'hide'); $hid=new IHidden(); - $r=$hid->input("action","use_opd"); + $r.=$hid->input("action","use_opd"); $r.=$hid->input("jrn_type",$this->get("ledger_type")); - $r.= HtmlInput::submit('use_opd','Utilisez une opération prédéfinie','','smallbutton'); - $r.= $this->show_button(); + $r.= $this->show_button($p_url); + $r.='
'; return $r; } @@ -242,15 +244,21 @@ class Pre_operation_detail return $a; } /*!\brief show the button for selecting a predefined operation */ - function show_button() + function show_button($p_url) { - - $select=new ISelect(); - $value=$this->get_operation(); - // if ( empty($value)==true) return ""; - $select->value=$value; - $r=$select->input("pre_def"); + $r=""; + $r.='

Choississez un modèle

'; + $r.='Filtrer '.HtmlInput::filter_table('modele_op_tab', '0', '0'); + $r.=''; + for ($i=0;$i'; + $r.=''; + $r.=''; + } + $r.='
'; + $r.=sprintf('%s',$p_url,$value[$i]['value'],$value[$i]['label']); + $r.='
'; return $r; } public function get_operation() diff --git a/include/compta_ach.inc.php b/include/compta_ach.inc.php index 657220397..5b612309c 100644 --- a/include/compta_ach.inc.php +++ b/include/compta_ach.inc.php @@ -179,23 +179,20 @@ if (isset ($_REQUEST['p_jrn_predef'])){ // pre defined operation // echo '
'; -echo '
'; -echo dossier::hidden(); echo HtmlInput::hidden('p_jrn_predef', $Ledger->id); -echo HtmlInput::hidden('ac', $_REQUEST['ac']); $op = new Pre_op_ach($cn); $op->set('ledger', $Ledger->id); $op->set('ledger_type', "ACH"); $op->set('direct', 'f'); -echo $op->form_get(); -echo '
'; +$url=http_build_query(array('p_jrn_predef'=>$Ledger->id,'ac'=>$_REQUEST['ac'],'gDossier'=>dossier::id())); +echo $op->form_get('do.php?'.$url); echo '
'; echo ''; echo '
'; echo "
"; /* request for a predefined operation */ -if (isset($_GET['use_opd']) && isset($_REQUEST['pre_def']) && !isset($_POST['correct'])) +if ( isset($_REQUEST['pre_def']) && !isset($_POST['correct'])) { // used a predefined operation // diff --git a/include/compta_ven.inc.php b/include/compta_ven.inc.php index 4e8d37a5a..f1f78e23c 100644 --- a/include/compta_ven.inc.php +++ b/include/compta_ven.inc.php @@ -165,7 +165,7 @@ global $g_parameter; // // pre defined operation // - +echo '
'; if ( !isset($_REQUEST ['p_jrn']) ) { $def_ledger=$Ledger->get_first('ven',2); @@ -181,17 +181,14 @@ global $g_parameter; $Ledger->id=$_REQUEST['p_jrn_predef']; } - echo '
'; - echo ''; - echo HtmlInput::hidden('ac',$_REQUEST['ac']); - echo dossier::hidden(); - echo HtmlInput::hidden('p_jrn_predef',$Ledger->id); + echo '
'; + echo HtmlInput::hidden('p_jrn_predef', $Ledger->id); $op=new Pre_op_ven($cn); $op->set('ledger',$Ledger->id); $op->set('ledger_type',"VEN"); $op->set('direct','f'); - echo $op->form_get(); - echo ''; + $url=http_build_query(array('p_jrn_predef'=>$Ledger->id,'ac'=>$_REQUEST['ac'],'gDossier'=>dossier::id())); + echo $op->form_get('do.php?'.$url); echo '
'; echo '
'; diff --git a/include/operation_ods_new.inc.php b/include/operation_ods_new.inc.php index 5d4378123..d116456d5 100644 --- a/include/operation_ods_new.inc.php +++ b/include/operation_ods_new.inc.php @@ -45,18 +45,14 @@ if ( $g_user->check_jrn($ledger->id)=='X') } echo '
'; echo '
'; -echo '
'; -echo HtmlInput::hidden("action", "use_opd"); -echo HtmlInput::hidden("ac",$_REQUEST['ac']); -echo dossier::hidden(); echo HtmlInput::hidden('p_jrn_predef', $ledger->id); $op = new Pre_op_ods($cn); $op->set('ledger', $ledger->id); $op->set('ledger_type', "ODS"); $op->set('direct', 't'); -echo $op->form_get(); +$url=http_build_query(array('action'=>'use_opd','p_jrn_predef'=>$ledger->id,'ac'=>$_REQUEST['ac'],'gDossier'=>dossier::id())); +echo $op->form_get('do.php?'.$url); -echo '
'; echo '
'; echo '
'; echo '

' . $ledger->get_name() . '

';