altocompta/html/modify_op.php
Dany De Bontridder 8834d14ee5 Merged revisions 2258,2260-2262,2264-2268,2270-2283,2285-2297,2299-2322,2324-2340 via svnmerge from
svn+ssh://danydb@svn/svn/phpcompta/branches/rel430

........
  r2258 | danydb | 2008-12-18 23:21:00 +0100 (Thu, 18 Dec 2008) | 1 line
  
  Add debug
........
  r2262 | danydb | 2008-12-19 22:38:25 +0100 (Fri, 19 Dec 2008) | 1 line
  
  Add a local admin 
........
  r2270 | danydb | 2008-12-21 20:11:26 +0100 (Sun, 21 Dec 2008) | 1 line
  
  Doc. remove the useless todo list
........
  r2271 | danydb | 2008-12-22 21:18:46 +0100 (Mon, 22 Dec 2008) | 3 lines
  
  Remove obsolete functions insertRapt, deleteRapt and getconcerned
  Remove obsolete file user_update
........
  r2272 | danydb | 2008-12-22 21:21:46 +0100 (Mon, 22 Dec 2008) | 2 lines
  
  Remove obsolete function isFicheOfJrn
........
  r2273 | danydb | 2008-12-22 21:44:28 +0100 (Mon, 22 Dec 2008) | 1 line
  
  Improve Invoice : add the username 
........
  r2287 | danydb | 2009-01-13 21:37:07 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Code cleaning replace GetConcerned by Acc_Reconciliation
........
  r2288 | danydb | 2009-01-13 21:38:40 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Add a comment on jrn operation
........
  r2289 | danydb | 2009-01-13 21:40:13 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Code cleaning : add comments to the code
........
  r2290 | danydb | 2009-01-13 21:40:46 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Code cleaning replace GetConcerned by Acc_Reconciliation
........
  r2291 | danydb | 2009-01-13 21:41:35 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Code cleaning replace GetConcerned by Acc_Reconciliation
........
  r2292 | danydb | 2009-01-13 21:42:15 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Add documentation about new tags
........
  r2293 | danydb | 2009-01-13 21:43:22 +0100 (Tue, 13 Jan 2009) | 1 line
  
  Code cleaning start rewriting of the security part 
........
  r2294 | danydb | 2009-01-14 20:09:18 +0100 (Wed, 14 Jan 2009) | 1 line
  
  Improve : template of security + security code
........
  r2295 | danydb | 2009-01-14 20:21:51 +0100 (Wed, 14 Jan 2009) | 1 line
  
  Improve security : add new variable
........
  r2296 | danydb | 2009-01-14 20:39:58 +0100 (Wed, 14 Jan 2009) | 1 line
  
  Improve security : modify layout
........
  r2297 | danydb | 2009-01-15 19:21:47 +0100 (Thu, 15 Jan 2009) | 1 line
  
  Improve security : user setting
........
  r2299 | danydb | 2009-01-15 19:28:56 +0100 (Thu, 15 Jan 2009) | 2 lines
  
  Clean code : can_request doens't have a connx parameter
........
  r2300 | danydb | 2009-01-16 19:12:47 +0100 (Fri, 16 Jan 2009) | 1 line
  
  Improve Ecriture directe libelle : new widget js_search_card_control
........
  r2301 | danydb | 2009-01-16 22:29:39 +0100 (Fri, 16 Jan 2009) | 1 line
  
  Improve Quick Writing : remove span, and update the comment field
........
  r2302 | danydb | 2009-01-16 23:01:24 +0100 (Fri, 16 Jan 2009) | 1 line
  
  Improve cosmetic : GL + remove the select topmenu
........
  r2303 | danydb | 2009-01-19 08:41:09 +0100 (Mon, 19 Jan 2009) | 1 line
  
  Cosmetic : a inline
........
  r2304 | danydb | 2009-01-20 23:03:59 +0100 (Tue, 20 Jan 2009) | 6 lines
  
  Code Cleaning
  Security : remove obsolete files & function
  Class_user : add new functions for the security
  Only the menu in text mode with a break line
........
  r2305 | danydb | 2009-01-20 23:05:01 +0100 (Tue, 20 Jan 2009) | 1 line
  
  code cleaning rewriting of Security 
........
  r2306 | danydb | 2009-01-21 21:13:15 +0100 (Wed, 21 Jan 2009) | 1 line
  
  Security printing unicode and fix some bugs
........
  r2309 | danydb | 2009-01-26 19:56:28 +0100 (Mon, 26 Jan 2009) | 1 line
  
  ADD : company without VAT
........
  r2310 | danydb | 2009-01-26 23:33:14 +0100 (Mon, 26 Jan 2009) | 1 line
  
  Add : no vat for Purchase ledger 
........
  r2312 | danydb | 2009-01-28 19:57:30 +0100 (Wed, 28 Jan 2009) | 1 line
  
  Integration 
........
  r2313 | danydb | 2009-01-28 22:46:27 +0100 (Wed, 28 Jan 2009) | 1 line
  
  Work with or without VAT
........
  r2314 | danydb | 2009-01-29 22:18:57 +0100 (Thu, 29 Jan 2009) | 2 lines
  
  Remove debug info
........
  r2315 | danydb | 2009-01-29 23:23:14 +0100 (Thu, 29 Jan 2009) | 1 line
  
  ADD the possibility to enter a piece number
........
  r2316 | danydb | 2009-01-31 23:20:00 +0100 (Sat, 31 Jan 2009) | 1 line
  
  Documentation
........
  r2317 | danydb | 2009-02-04 20:14:54 +0100 (Wed, 04 Feb 2009) | 1 line
  
  Template for ledger
........
  r2318 | danydb | 2009-02-05 15:52:58 +0100 (Thu, 05 Feb 2009) | 1 line
  
  Add PJ setting + default in Ledger, fix bug in listJrn
........
  r2319 | danydb | 2009-02-05 17:09:56 +0100 (Thu, 05 Feb 2009) | 2 lines
  
  Search by PJ
........
  r2320 | danydb | 2009-02-05 17:23:24 +0100 (Thu, 05 Feb 2009) | 1 line
  
  Finished with pj
........
  r2321 | danydb | 2009-02-05 18:11:35 +0100 (Thu, 05 Feb 2009) | 1 line
  
  PJ is readonly
........
  r2322 | danydb | 2009-02-05 20:10:34 +0100 (Thu, 05 Feb 2009) | 1 line
  
  Saldo : write the first saldo (ajax)
........
  r2324 | danydb | 2009-02-06 00:07:50 +0100 (Fri, 06 Feb 2009) | 5 lines
  
  Add database script
  Cosmetic (menu)
  Fix Bug 
........
  r2325 | danydb | 2009-02-06 14:07:07 +0100 (Fri, 06 Feb 2009) | 1 line
  
  Improve Pj seq 
........
  r2326 | danydb | 2009-02-09 22:47:23 +0100 (Mon, 09 Feb 2009) | 6 lines
  
  Fix Bug privilege (compta_ven)
  Fix if the pj is empty do not increment the sequence (class_acc_operation)
  Fix remove PJ if pj is empty (modify_op.php)
  Cosmetic do not print PJ if pj is null or empty (listing)
........
  r2327 | danydb | 2009-02-10 21:04:48 +0100 (Tue, 10 Feb 2009) | 5 lines
  
  Fix bug in PJ seq
  Fix bug in export jrn csv
  Improve avoid the removal of vat rate
  Add security for card
........
  r2328 | danydb | 2009-02-12 20:26:36 +0100 (Thu, 12 Feb 2009) | 4 lines
  
  Cosmetic menu_tool
  Impression add tag PJ
  Cosmetic menu administration
........
  r2329 | danydb | 2009-02-12 21:43:19 +0100 (Thu, 12 Feb 2009) | 5 lines
  
  filter the folder the local admin can access
  add a function check_dossier which must be implemented everywhere
  Printing with PJ
  NoAccess default = javascript
........
  r2330 | danydb | 2009-02-14 18:11:49 +0100 (Sat, 14 Feb 2009) | 2 lines
  
  improve add libelle for balance csv
........
  r2331 | danydb | 2009-02-14 19:10:56 +0100 (Sat, 14 Feb 2009) | 7 lines
  
  Balance csv add label
  Bug Financial ledger list
  BUG period access 
  BUG stock access
  IMPROVE list ledger with PJ
........
  r2332 | danydb | 2009-02-15 18:21:59 +0100 (Sun, 15 Feb 2009) | 1 line
  
  Bug order was not saved for report
........
  r2333 | danydb | 2009-02-15 18:22:17 +0100 (Sun, 15 Feb 2009) | 1 line
  
  Add security for normal user
........
  r2334 | danydb | 2009-02-15 18:23:24 +0100 (Sun, 15 Feb 2009) | 3 lines
  
  Bug forget to import class
........
  r2335 | danydb | 2009-02-17 21:33:17 +0100 (Tue, 17 Feb 2009) | 5 lines
  
  Fix quick writing let write
  Fix card priv
  Remove button if no priv to add card or cancel an op
........
  r2336 | danydb | 2009-02-19 21:01:36 +0100 (Thu, 19 Feb 2009) | 4 lines
  
  Check for CA
  common Bug with the repository
........
  r2337 | danydb | 2009-02-19 21:50:35 +0100 (Thu, 19 Feb 2009) | 2 lines
  
  Test the parameter security part
........
2009-02-19 21:11:08 +00:00

360 lines
10 KiB
PHP

<?php
/*
* 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
*/
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
/* $Revision*/
/*! \file
* \brief show a detailled operation in a popup window
* Update : add a document , change the comment, the concerned op....
*
*/
include_once ("ac_common.php");
include_once ("poste.php");
include_once("preference.php");
include_once("central_inc.php");
include_once("check_priv.php");
include_once("user_common.php");
include_once ("postgres.php");
include_once("jrn.php");
include_once("class_widget.php");
require_once ("constant.php");
require_once('class_acc_reconciliation.php');
require_once('class_acc_operation.php');
/* Admin. Dossier */
$gDossier=dossier::id();
$cn=DbConnect($gDossier);
include_once ("class_user.php");
$User=new User($cn);
$User->Check();
$User->check_dossier(dossier::id());
html_page_start($User->theme,"onLoad='window.focus();'");
require_once('class_dossier.php');
// $p_jrn=(isset($_REQUEST['p_jrn']))?$_REQUEST['p_jrn']:0;
$acc=new Acc_Operation($cn);
if (isset($_REQUEST['line']))
$acc->jr_id=$_REQUEST ['line'];
else
$acc->jr_id=$_REQUEST ['jr_ir'];
$p_jrn=$acc->get_ledger();
if ( isset ( $_GET['action'] ) ) {
$action=$_GET['action'];
}
//$_SESSION["p_jrn"]=$p_jrn;
$p_view=(isset($_REQUEST['p_view']))?$_REQUEST['p_view']:"error";
if ( isset ( $_REQUEST['action'] ) ) {
$action=$_REQUEST['action'];
}
if ( ! isset ( $action )) {
echo_error("modify_op.php No action asked ");
exit();
}
// Javascript
echo JS_VIEW_JRN_MODIFY;
?>
<script language="javascript">
function show_div (p_div) {
// show the div
// hide the div
if ( document.getElementById(p_div) ) {
var a=document.getElementById(p_div);
a.style.display="block";
}
}
function hide_div (p_div) {
// hide the div
if ( document.getElementById(p_div) ) {
var a=document.getElementById(p_div);
a.style.display="none";
}
}
</script>
<?php
echo_debug(__FILE__,__LINE__,"action is $action");
//-----------------------------------------------------
if ( $action == 'update' ) {
if ( $User->check_jrn($p_jrn) =='X' ) {
echo ' <script> window.close();</script>';
NoAccess();
exit -1;
}
// p_id is jrn.jr_id
$p_id=$_GET["line"];
echo_debug('modify_op.php',__LINE__," action = update p_id = $p_id");
echo JS_CONCERNED_OP;
$view='<h2 class="error">Erreur vue inconnue</h2>';
// show the detailled operation
if ( $p_view == 'S' )
$view='<div id="simple">';
else
$view='<div id="simple" style="display:none">';
$view.='<h2 class="info">Vue simple</h2>';
$view.='<FORM METHOD="POST" enctype="multipart/form-data" ACTION="modify_op.php">';
$view.=dossier::hidden();
$readonly=($p_view=='E')?0:1;
$view.=ShowOperationUser($cn,$p_id,$readonly);
$view.='<hr>';
$view.='<input type="button" onclick="hide_div(\'simple\');show_div(\'expert\');" value="Vue expert">';
$view.='<INPUT TYPE="Hidden" name="action" value="update_record">';
$view.="<br>";
$view.="<br>";
$view.="<br>";
if ( $User->check_jrn($p_jrn) == 'W')
$view.=($p_view == 'S')?'<input type="SUBMIT" name="update_record" value="Enregistre">':"";
$view.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$view.='<input type="button" value="Fermer" onClick="window.close(); self.opener.RefreshMe();">';
$view.='</FORM>';
$view.='</div>';
if ( $p_view == 'S' )
$view.='<div id="expert" style="display:none">';
else
$view.='<div id="expert" style="display:block">';
$view.='<h2 class="info">Vue expert</h2>';
$view.='<FORM METHOD="POST" enctype="multipart/form-data" ACTION="modify_op.php">';
$view.=dossier::hidden();
$readonly=($p_view=='S')?0:1;
$view.=ShowOperationExpert($cn,$p_id,$readonly);
$view.='<hr>';
$view.='<input type="button" onclick="hide_div(\'expert\');show_div(\'simple\')" value="Vue simple">';
$view.='<INPUT TYPE="Hidden" name="action" value="update_record">';
$view.="<br>";
$view.="<br>";
$view.="<br>";
if ( $User->check_jrn($p_jrn) == 'W')
$view.=($p_view == 'E') ?'<input type="SUBMIT" name="update_record" value="Enregistre">':"";
$view.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$view.='<input type="button" value="Fermer" onClick="window.close(); self.opener.RefreshMe();">';
$view.='</div>';
echo $view;
}
//---------------------------------------------------------------------
// action = vue ca
//---------------------------------------------------------------------
if ( $action=="view_ca") {
/*!\todo add security here */
$p_id=$_GET["line"];
$view='<div id="simple">';
$view.='<h2 class="info">Vue simple</h2>';
$view.=ShowOperationUser($cn,$p_id,0);
$view.='<hr>';
$view.='<input type="button" onclick="hide_div(\'simple\');show_div(\'expert\');" value="Vue Expert">';
$view.='<input type="button" value="Fermer" onClick="window.close(); ">';
$view.='</div>';
$view.='<div id="expert" style="display:none">';
$view.='<h2 class="info">Vue expert</h2>';
$view.=ShowOperationExpert($cn,$p_id,0);
$view.='<hr>';
$view.='<input type="button" onclick="hide_div(\'expert\');show_div(\'simple\')" value="Vue Simple">';
$view.='<input type="button" value="Fermer" onClick="window.close(); ">';
$view.='</div>';
echo $view;
exit();
}
//----------------------------------------------------------------------
// update the record and upload files
//----------------------------------------------------------------------
if ( isset($_POST['update_record']) ) {
/* in what ledger are we working */
$acc=new Acc_Operation($cn);
$acc->jr_id=$_POST['jr_id'];
$l=$acc->get_ledger();
if ( $User->check_jrn($l) != 'W' ) {
echo ' <script> window.close();</script>';
NoAccess();
exit -1;
}
try {
// NO UPDATE except rapt & comment && upload pj && PJ Number
StartSql($cn);
$acc=new Acc_Operation($cn);
$acc->jr_id=$_POST['jr_id'];
/* set the pj */
$acc->pj=$_POST['pj']; $acc->set_pj();
$acc->operation_update_comment($_POST['comment']);
/* insert now the grouping */
if ( trim($_POST['rapt']) != "" ) {
if ( strpos($_POST['rapt'],',') !== 0 )
{
$aRapt=split(',',$_POST['rapt']);
/* reconcialition */
$rec=new Acc_Reconciliation ($cn);
$rec->set_jr_id($_POST['jr_id']);
foreach ($aRapt as $rRapt) {
if ( isNumber($rRapt) == 1 )
{
// Add a "concerned operation to bound these op.together
//
$rec->insert($rRapt);
}
}
} else
if ( isNumber($_POST['rapt']) == 1 )
{
$rec->insert($_POST['rapt']);
}
}
if ( isset ($_FILES)) {
echo_debug("modify_op.php",__LINE__, "start upload doc.");
save_upload_document($cn,$_POST['jr_grpt_id']);
}
if ( isset ($_POST['is_paid'] ))
$Res=ExecSqlParam($cn,"update jrn set jr_rapt='paid' where jr_id=$1",array($_POST['jr_id']));
if ( isset ($_POST['to_remove'] )) {
/*! \note we don't remove the document file if another
* operation needs it.
*/
$ret=ExecSqlParam($cn,"select jr_pj from jrn where jr_id=$1",array($_POST['jr_id']));
if (pg_num_rows($ret) != 0) {
$r=pg_fetch_array($ret,0);
$old_oid=$r['jr_pj'];
if (strlen($old_oid) != 0)
{
// check if this pj is used somewhere else
$c=CountSql($cn,"select * from jrn where jr_pj=".$old_oid);
if ( $c == 1 )
pg_lo_unlink($cn,$old_oid);
}
ExecSqlParam($cn,"update jrn set jr_pj=null, jr_pj_name=null, ".
"jr_pj_type=null where jr_id=$1",array($_POST['jr_id']));
}
}
//-------------------------------------
// CA
//------------------------------------
$own = new Own($cn);
if ( $own->MY_ANALYTIC != "nu" )
{
// Check the total only for mandatory
//
// if ( $own->MY_ANALYTIC == "ob") {
$tab=0; $row=1;
while (1) {
if ( !isset ($_POST['nb_t'.$tab]))
break;
$tot_tab=0;
for ($i_row=0;$i_row <= MAX_COMPTE;$i_row++) {
if ( ! isset($_POST['val'.$tab.'l'.$i_row]))
continue;
$tot_tab+=$_POST['val'.$tab.'l'.$i_row];
}
if ( $tot_tab != $_POST['amount_t'.$tab]) {
echo '<script>alert ("Erreur montant CA Operation annulee")</script>';
get_redirect($_SERVER['HTTP_REFERER']);
return;
}
$tot_tab=0;
$tab++;
}
// }
// we need first old the j_id and j_poste
// so we fetch them all from the db
$sql="select j_id,j_poste,to_char(j_date,'DD.MM.YYYY') as j_date,j_debit ".
"from jrn join jrnx on (j_grpt=jr_grpt_id) ".
"where jr_id=$1";
$res=ExecSqlParam($cn,$sql,array($_POST['jr_id']));
$array_jid=pg_fetch_all($res);
// if j_poste match 6 or 7 we insert them
$count=0;
$group=NextSequence($cn,"s_oa_group");
foreach( $array_jid as $row_ca) {
echo_debug(__FILE__.':'.__LINE__,"array is ",$row_ca);
if ( ereg("^[6,7]+",$row_ca['j_poste'])) {
echo_debug(__FILE__.':'.__LINE__,"count is ",$count);
$op=new Anc_Operation($cn);
$op->delete_by_jid($row_ca['j_id']);
$op->j_id=$row_ca['j_id'];
$op->oa_debit=$row_ca['j_debit'];
$op->oa_date=$row_ca['j_date'];
$op->oa_group=$group;
$op->oa_description=$_POST['comment'];
$op->save_form_plan($_POST,$count);
$count++;
} //if ereg
}//foreach
}// if ( $own->MY_ANALYTIC != "nu" )
} catch (Exception $e) {
echo '<span class="error">'.
'Erreur dans l\'enregistrement '.
__FILE__.':'.__LINE__.' '.
$e->getMessage();
echo_debug(__FILE__,__LINE__,$e->getMessage());
Rollback($cn);
exit();
}
Commit($cn);
echo ' <script>
window.close();
self.opener.RefreshMe();
</script>';
} // if update_record
//-----------------------------------------------------
if ( $action == 'delete' ) {
$rec=new Acc_Reconciliation ($cn);
$rec->set_jr_id($_GET ['line']);
$rec->remove($_GET['line2']);
echo ' <script>
window.close();
self.opener.RefreshMe();
</script>';
}
html_page_stop();
?>