diff --git a/include/opening.inc.php b/include/opening.inc.php index f4ecf69a8..bc8fc104f 100644 --- a/include/opening.inc.php +++ b/include/opening.inc.php @@ -1,4 +1,5 @@ Check(); require_once("class_iselect.php"); require_once('class_acc_ledger.php'); + +$sa = (isset($_REQUEST['sa'])) ? $_REQUEST['sa'] : ''; +$User = new User(new Database(dossier::id())); +$User->Check(); + +require_once 'user_menu.php'; + +// Correct (last step) +if (isset($_POST['correct'])) +{ + $ledger = new Acc_Ledger($cn, $_REQUEST['p_jrn']); + require_once 'operation_ods_new.inc.php'; + exit(); +} + +// confirm before saving +if ( isset($_POST['summary'])) +{ + try { + $ledger = new Acc_Ledger($cn, $_REQUEST['p_jrn']); + $ledger->with_concerned=false; + $ledger->verify($_POST); + require_once 'operation_ods_confirm.inc.php'; + } catch (Exception $e) + { + echo alert($e->getMessage()); + require('operation_ods_new.inc.php'); + + } + exit(); +} + +// record +if (isset($_POST['save'])) +{ + $array = $_POST; + $ledger = new Acc_Ledger($cn, $_REQUEST['p_jrn']); + $ledger->with_concerned=false; + try + { + $ledger->save($array); + $jr_id = $cn->get_value('select jr_id from jrn where jr_internal=$1', array($ledger->internal)); + + echo '

Opération enregistrée Piece ' . h($ledger->pj) . '

'; + if (strcmp($ledger->pj, $_POST['e_pj']) != 0) + { + echo '

' . _('Attention numéro pièce existante, elle a du être adaptée') . '

'; + } + printf('%s
', $jr_id, dossier::id(), $ledger->internal); + + // show feedback + echo '
'; echo '

' . $ledger->get_name() . '

'; echo '
'; + echo $ledger->confirm($_POST, true); + } + catch (Exception $e) + { + require('operation_ods_new.inc.php'); + alert($e->getMessage()); + } + exit(); +} + + /* -------------------------------------------------- * step 1 if nothing is asked we show the available folders -*/ + */ if ($sa == '') { - echo '
'; - echo '
Etape 1 '; + echo '
'; + echo '
Etape 1 '; - echo 'Choississez le dossier où sont les soldes à importer'; - $avail=$User->get_available_folder(); + echo 'Choississez le dossier où sont les soldes à importer'; + $avail = $User->get_available_folder(); - if ( empty( $avail) ) - { - echo '*** Aucun dossier ***'; - exit(); - } - echo '
'; - echo HtmlInput::hidden('ac',$_REQUEST['ac']); - echo HtmlInput::hidden('sa','step2'); - echo dossier::hidden(); - $wAvail=new ISelect(); - /* compute select list */ - $array=array(); - $i=0; - foreach ($avail as $r) - { - $array[$i]['value']=$r['dos_id']; - $array[$i]['label']=$r['dos_name']; - $i++; - } + if (empty($avail)) + { + echo '*** Aucun dossier ***'; + exit(); + } + echo ''; + echo HtmlInput::hidden('ac', $_REQUEST['ac']); + echo HtmlInput::hidden('sa', 'step2'); + echo dossier::hidden(); + $wAvail = new ISelect(); + /* compute select list */ + $array = array(); + $i = 0; + foreach ($avail as $r) + { + $array[$i]['value'] = $r['dos_id']; + $array[$i]['label'] = $r['dos_name']; + $i++; + } - $wAvail->value=$array; - echo 'Choix du dossier :'.$wAvail->input('f'); - echo HtmlInput::submit('ok','Continuer'); + $wAvail->value = $array; + echo 'Choix du dossier :' . $wAvail->input('f'); + echo HtmlInput::submit('ok', 'Continuer'); - echo '
'; - echo '
'; - echo '
'; - exit(); + echo ''; + echo '
'; + echo '
'; + exit(); } /* -------------------------------------------------- * Step 2 choose now the exercice of this folder */ -$back='do.php?ac='.$_REQUEST['ac'].'&'.dossier::get(); -if ( $sa=='step2') +$back = 'do.php?ac=' . $_REQUEST['ac'] . '&' . dossier::get(); +if ($sa == 'step2') { - echo '
'. - '
Etape 2'. - '

'.dossier::name($_REQUEST['f']).'

'. - '
'. - ' Choississez l\'exercice du dossier '; - echo dossier::hidden(); - echo HtmlInput::hidden('ac',$_REQUEST['ac']); - echo HtmlInput::hidden('sa','step3'); - echo HtmlInput::hidden('f',$_REQUEST['f']); - $cn=new Database($_REQUEST['f']); - $periode=$cn->make_array("select distinct p_exercice,p_exercice from parm_periode order by p_exercice"); - $w=new ISelect(); - $w->table=0; - $w->label='Periode'; - $w->readonly=false; - $w->value=$periode; - $w->name="p_periode"; - echo 'Période : '.$w->input(); - echo HtmlInput::submit('ok','Continuer'); - echo dossier::hidden(); - echo "
"; - echo HtmlInput::button_anchor('Retour',$back); - exit(0); + echo '
' . + '
Etape 2' . + '

' . dossier::name($_REQUEST['f']) . '

' . + '
' . + ' Choississez l\'exercice du dossier '; + echo dossier::hidden(); + echo HtmlInput::hidden('ac', $_REQUEST['ac']); + echo HtmlInput::hidden('sa', 'step3'); + echo HtmlInput::hidden('f', $_REQUEST['f']); + $cn = new Database($_REQUEST['f']); + $periode = $cn->make_array("select distinct p_exercice,p_exercice from parm_periode order by p_exercice"); + $w = new ISelect(); + $w->table = 0; + $w->label = 'Periode'; + $w->readonly = false; + $w->value = $periode; + $w->name = "p_periode"; + echo 'Période : ' . $w->input(); + echo HtmlInput::submit('ok', 'Continuer'); + echo dossier::hidden(); + echo "
"; + echo HtmlInput::button_anchor('Retour', $back); + exit(0); } /* -------------------------------------------------- * select the ledger where we will import the data */ -if ( $sa == 'step3') +if ($sa == 'step3') { - echo '
'. - '
Etape 3'. - '

'.dossier::name($_REQUEST['f']).'

'. - '
'. - ' Choississez le journal qui contiendra l\'opération d\'ouverture '; - echo dossier::hidden(); - echo HtmlInput::hidden('p_action','ouv'); - echo HtmlInput::hidden('sa','step4'); - echo HtmlInput::hidden('f',$_REQUEST['f']); - echo HtmlInput::hidden('p_periode',$_REQUEST['p_periode']); - $wLedger=new ISelect(); - $User=new User(new Database(dossier::id())); - $avail=$User->get_ledger('ODS'); - /* compute select list */ - $array=array(); - $i=0; - foreach ($avail as $r) - { - $array[$i]['value']=$r['jrn_def_id']; - $array[$i]['label']=$r['jrn_def_name']; - $i++; - } - $wLedger->value=$array; - echo $wLedger->input('p_jrn'); - echo HtmlInput::submit('ok','Continuer'); - echo HtmlInput::hidden('ac',$_REQUEST['ac']); - echo dossier::hidden(); - echo "
"; - echo HtmlInput::button_anchor('Retour',$back.'&sa=step2&f='.$_REQUEST['f']); - exit(0); - + echo '
' . + '
Etape 3' . + '

' . dossier::name($_REQUEST['f']) . '

' . + '
' . + ' Choississez le journal qui contiendra l\'opération d\'ouverture '; + echo dossier::hidden(); + echo HtmlInput::hidden('p_action', 'ouv'); + echo HtmlInput::hidden('sa', 'step4'); + echo HtmlInput::hidden('f', $_REQUEST['f']); + echo HtmlInput::hidden('p_periode', $_REQUEST['p_periode']); + $wLedger = new ISelect(); + $User = new User(new Database(dossier::id())); + $avail = $User->get_ledger('ODS'); + /* compute select list */ + $array = array(); + $i = 0; + foreach ($avail as $r) + { + $array[$i]['value'] = $r['jrn_def_id']; + $array[$i]['label'] = $r['jrn_def_name']; + $i++; + } + $wLedger->value = $array; + echo $wLedger->input('p_jrn'); + echo HtmlInput::submit('ok', 'Continuer'); + echo HtmlInput::hidden('ac', $_REQUEST['ac']); + echo dossier::hidden(); + echo "
"; + echo HtmlInput::button_anchor('Retour', $back . '&sa=step2&f=' . $_REQUEST['f']); + exit(0); } /* -------------------------------------------------- * Step 4 we import data from the selected folder and year and * transform it into a misc operation */ -if ( $sa=='step4') +if ($sa == 'step4') { - echo '
'; - echo '
Dernière étape'; - $cn_target=new Database($_REQUEST['f']); - $saldo=new Acc_Ledger($cn_target,0); - $array=$saldo->get_saldo_exercice($_REQUEST['p_periode']); - /* we need to transform the array into a Acc_Ledger array */ - $result=array(); - $result['desc']='Ecriture d\'ouverture'; - $result['nb_item']=sizeof($array); - $result['p_jrn']=$_REQUEST['p_jrn']; - $idx=0; + echo '
'; + echo '
Dernière étape'; + $cn_target = new Database($_REQUEST['f']); + $saldo = new Acc_Ledger($cn_target, 0); + $array = $saldo->get_saldo_exercice($_REQUEST['p_periode']); + /* we need to transform the array into a Acc_Ledger array */ + $result = array(); + $result['desc'] = 'Ecriture d\'ouverture'; + $result['nb_item'] = sizeof($array); + $result['p_jrn'] = $_REQUEST['p_jrn']; + $idx = 0; - foreach ($array as $row ) - { - $qcode='qc_'.$idx; - $poste='poste'.$idx; - $amount='amount'.$idx; - $ck='ck'.$idx; - $result[$qcode] = $row['j_qcode']; - if ( trim($row['j_qcode'])=='') - $result[$poste] = $row['j_poste']; - $result[$amount] = abs($row['solde']); - if ( $row['solde'] > 0 ) $result[$ck]='on'; - $idx++; - } - $cn=new Database(dossier::id()); - $User=new User($cn); - $jrn=new Acc_Ledger($cn,$_REQUEST['p_jrn']); - echo '
'; - echo HtmlInput::hidden('ac',$_REQUEST['ac']); - echo HtmlInput::hidden('sa','step5'); - echo dossier::hidden(); - echo HtmlInput::hidden('p_jrn',$_REQUEST['p_jrn']); - echo $jrn->show_form($result,0); - echo '
'; - echo '

Ne corrigez pas encore, cliquez continuer pour passer à l\'étape suivante

'; - echo HtmlInput::submit('correct_it','Continuer'); - echo '
'; - echo HtmlInput::button_anchor('Retour',$back); + foreach ($array as $row) + { + $qcode = 'qc_' . $idx; + $poste = 'poste' . $idx; + $amount = 'amount' . $idx; + $ck = 'ck' . $idx; + $result[$qcode] = $row['j_qcode']; + if (trim($row['j_qcode']) == '') + $result[$poste] = $row['j_poste']; + $result[$amount] = abs($row['solde']); + if ($row['solde'] > 0) + $result[$ck] = 'on'; + $idx++; + } + $cn = new Database(dossier::id()); + $User = new User($cn); + $jrn = new Acc_Ledger($cn, $_REQUEST['p_jrn']); - echo '
'; + echo '
'; + echo HtmlInput::hidden('ac', $_REQUEST['ac']); + echo HtmlInput::hidden('sa', 'step5'); + echo HtmlInput::hidden('f', $_REQUEST['f']); + echo HtmlInput::hidden('p_periode',$_REQUEST['p_periode']); + echo dossier::hidden(); + echo HtmlInput::hidden('p_jrn', $_REQUEST['p_jrn']); + echo $jrn->input($result, 0); + echo '
'; + echo '

Ne corrigez pas encore, cliquez continuer pour passer à l\'étape suivante

'; + echo HtmlInput::submit('correct_it', 'Continuer'); + echo '
'; + echo HtmlInput::button_anchor('Retour', $back); + + echo '
'; } // if sa=step4 then record it // /* * @todo finir les ouvertures d'année */ -if ( $_REQUEST['sa']=='step5') +if ($_REQUEST['sa'] == 'step5') { - echo "

A ENREGISTRER

"; - + $ledger = new Acc_Ledger($cn, $_REQUEST['p_jrn']); + require_once 'operation_ods_new.inc.php'; } + diff --git a/include/operation_ods_confirm.inc.php b/include/operation_ods_confirm.inc.php index 6001bc1a8..da94edb7d 100644 --- a/include/operation_ods_confirm.inc.php +++ b/include/operation_ods_confirm.inc.php @@ -35,6 +35,7 @@ echo '

' . $ledger->get_name() . '

' echo '
'; echo '
'; +echo HtmlInput::request_to_hidden(array('ac')); echo $ledger->confirm($_POST,false); echo '
';