0000416: Ouverture d'année : écriture anouveau enregistrement
This commit is contained in:
parent
822993adf5
commit
ad4fb2e923
2 changed files with 206 additions and 137 deletions
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of PhpCompta.
|
||||
*
|
||||
|
|
@ -15,183 +16,250 @@
|
|||
* 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
|
||||
require_once 'user_menu.php';
|
||||
/*!\file
|
||||
/* !\file
|
||||
* \brief The opening of the exercices. it takes the saldo of the
|
||||
* choosen foolder / exercice and import it as a misc operation in the
|
||||
* current folder
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
$sa=(isset($_REQUEST['sa']))?$_REQUEST['sa']:'';
|
||||
$User=new User(new Database(dossier::id()));
|
||||
$User->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 '<h2> Opération enregistrée Piece ' . h($ledger->pj) . '</h2>';
|
||||
if (strcmp($ledger->pj, $_POST['e_pj']) != 0)
|
||||
{
|
||||
echo '<h3 class="notice">' . _('Attention numéro pièce existante, elle a du être adaptée') . '</h3>';
|
||||
}
|
||||
printf('<a class="detail" style="display:inline" href="javascript:modifyOperation(%d,%d)">%s</a><hr>', $jr_id, dossier::id(), $ledger->internal);
|
||||
|
||||
// show feedback
|
||||
echo '<div id="jrn_name_div">'; echo '<h2 id="jrn_name" style="display:inline">' . $ledger->get_name() . '</h2>'; echo '</div>';
|
||||
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 '<div class="content">';
|
||||
echo '<fieldset><legend> Etape 1 </legend>';
|
||||
echo '<div class="content">';
|
||||
echo '<fieldset><legend> Etape 1 </legend>';
|
||||
|
||||
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 '<form class="print" method="post">';
|
||||
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 '<form class="print" method="post">';
|
||||
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 '</form>';
|
||||
echo '</fieldset>';
|
||||
echo '</div>';
|
||||
exit();
|
||||
echo '</form>';
|
||||
echo '</fieldset>';
|
||||
echo '</div>';
|
||||
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 '<div class="content">'.
|
||||
'<fieldset><legend>Etape 2</legend>'.
|
||||
'<h2 class="info">'.dossier::name($_REQUEST['f']).'</h2>'.
|
||||
'<form class="print" method="post">'.
|
||||
' 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 "</form>";
|
||||
echo HtmlInput::button_anchor('Retour',$back);
|
||||
exit(0);
|
||||
echo '<div class="content">' .
|
||||
'<fieldset><legend>Etape 2</legend>' .
|
||||
'<h2 class="info">' . dossier::name($_REQUEST['f']) . '</h2>' .
|
||||
'<form class="print" method="post">' .
|
||||
' 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 "</form>";
|
||||
echo HtmlInput::button_anchor('Retour', $back);
|
||||
exit(0);
|
||||
}
|
||||
/* --------------------------------------------------
|
||||
* select the ledger where we will import the data
|
||||
*/
|
||||
if ( $sa == 'step3')
|
||||
if ($sa == 'step3')
|
||||
{
|
||||
echo '<div class="content">'.
|
||||
'<fieldset><legend>Etape 3</legend>'.
|
||||
'<h2 class="info">'.dossier::name($_REQUEST['f']).'</h2>'.
|
||||
'<form class="print" method="post">'.
|
||||
' 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 "</form>";
|
||||
echo HtmlInput::button_anchor('Retour',$back.'&sa=step2&f='.$_REQUEST['f']);
|
||||
exit(0);
|
||||
|
||||
echo '<div class="content">' .
|
||||
'<fieldset><legend>Etape 3</legend>' .
|
||||
'<h2 class="info">' . dossier::name($_REQUEST['f']) . '</h2>' .
|
||||
'<form class="print" method="post">' .
|
||||
' 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 "</form>";
|
||||
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 '<div class="content">';
|
||||
echo '<fieldset><legend> Dernière étape</legend>';
|
||||
$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 '<div class="content">';
|
||||
echo '<fieldset><legend> Dernière étape</legend>';
|
||||
$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 '<form class="print" method="post" action="do.php">';
|
||||
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 '<hr>';
|
||||
echo '<h2 class="notice">Ne corrigez pas encore, cliquez continuer pour passer à l\'étape suivante</h2>';
|
||||
echo HtmlInput::submit('correct_it','Continuer');
|
||||
echo '</form>';
|
||||
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 '</div>';
|
||||
echo '<form class="print" method="post">';
|
||||
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 '<hr>';
|
||||
echo '<h2 class="notice">Ne corrigez pas encore, cliquez continuer pour passer à l\'étape suivante</h2>';
|
||||
echo HtmlInput::submit('correct_it', 'Continuer');
|
||||
echo '</form>';
|
||||
echo HtmlInput::button_anchor('Retour', $back);
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
// if sa=step4 then record it
|
||||
//
|
||||
/*
|
||||
* @todo finir les ouvertures d'année
|
||||
*/
|
||||
if ( $_REQUEST['sa']=='step5')
|
||||
if ($_REQUEST['sa'] == 'step5')
|
||||
{
|
||||
echo "<h2> A ENREGISTRER</H2>";
|
||||
|
||||
$ledger = new Acc_Ledger($cn, $_REQUEST['p_jrn']);
|
||||
require_once 'operation_ods_new.inc.php';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ echo '<h2 id="jrn_name" style="display:inline">' . $ledger->get_name() . '</h2>'
|
|||
echo '</div>';
|
||||
|
||||
echo '<FORM METHOD="POST">';
|
||||
echo HtmlInput::request_to_hidden(array('ac'));
|
||||
echo $ledger->confirm($_POST,false);
|
||||
|
||||
echo '<hr>';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue