check(); if ( $User->check_dossier(dossier::id(),true)=='X' ) { ob_start(); require_once ('template/ledger_detail_forbidden.php'); $html=ob_get_contents(); ob_clean(); $html=escape_xml($html); header('Content-type: text/xml; charset=UTF-8'); echo << $div $html EOF; exit(); } // check if the user can access the ledger where the operation is (view) and // if he can modify it $op=new Acc_Operation($cn); $op->jr_id=$_REQUEST['jr_id']; $ledger=$op->get_ledger(); $access=$User->get_ledger_access($ledger); if ( $access == 'X' ) { ob_start(); require_once ('template/ledger_detail_forbidden.php'); $html=ob_get_contents(); ob_clean(); $html=escape_xml($html); header('Content-type: text/xml; charset=UTF-8'); echo << $div $html EOF; exit(); } $html=var_export($_REQUEST,true); switch ($action) { /////////////////////////////////////////////////////////////////////////// // remove op /////////////////////////////////////////////////////////////////////////// case 'rmop': if ( $access=='W') { ob_start(); /* get the ledger */ try { $cn->start(); $oLedger=new Acc_Ledger($cn,$ledger); $oLedger->jr_id=$_REQUEST['jr_id']; $oLedger->delete(); $cn->commit(); echo _("Opération Effacée"); } catch (Exception $e) { $e->getMessage(); $cn->rollback; } $html=ob_get_contents(); ob_clean(); } break; ////////////////////////////////////////////////////////////////////// // DE Detail ////////////////////////////////////////////////////////////////////// case 'de': ob_start(); try { $op->get(); /* get detail op (D/C) */ $obj=$op->get_quant(); /* return an obj. ACH / FIN or VEN or null if nothing is found*/ $oLedger=new Acc_Ledger($cn,$ledger); if ( $obj==null || $obj->signature == 'ODS' ) { /* only the details */ require_once('template/ledger_detail_misc.php'); } elseif ( $obj->signature=='ACH') { require_once('template/ledger_detail_ach.php'); } elseif ($obj->signature=='FIN') { require_once('template/ledger_detail_fin.php'); } elseif ( $obj->signature=='VEN') { require_once('template/ledger_detail_ven.php'); } } catch (Exception $e) { echo HtmlInput::anchor_close($div); echo '

Désolé il y a une erreur

'; } $html=ob_get_contents(); ob_clean(); break; ///////////////////////////////////////////////////////////////////////////// // form for the file ///////////////////////////////////////////////////////////////////////////// case 'file': $op->get(); $obj=$op->get_quant(); /* return an obj. ACH / FIN or VEN or null if nothing is found*/ if ( $obj->det->jr_pj_name=='') { echo ""; $repo=new Database(); $theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme'])); echo " "; echo ""; echo '
'; if ( $access=='W') { echo '
'; $sp=new ISpan('file'.$div); $sp->style="display:none;width:155;height:15;background-color:red;color:white;font-size:10"; $sp->value="Chargement"; echo $sp->input(); echo HtmlInput::hidden('act','loadfile'); echo dossier::hidden(); echo HtmlInput::hidden('jr_id',$jr_id); echo HtmlInput::hidden('div',$div); echo ''; echo '
'; } else { echo ""; $repo=new Database(); $theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme'])); echo " "; echo ""; echo '
'; echo _('Aucun fichier'); } echo '
'; echo ''; exit(); } else { echo ""; $repo=new Database(); $theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme'])); echo " "; echo ""; echo '
'; $x=''; if ($access=='W') $x=sprintf('enlever', $gDossier,$div,$jr_id); echo $x; $filename= $obj->det->jr_pj_name; if ( strlen($obj->det->jr_pj_name) > 20 ) { $filename=substr($obj->det->jr_pj_name,0,23); } $h=sprintf('%s', $gDossier,$ledger,$obj->det->jr_grpt_id,h( $filename)); echo $h; echo '
'; echo ''; exit(); } ///////////////////////////////////////////////////////////////////////////// // load a file ///////////////////////////////////////////////////////////////////////////// case 'loadfile': if ( $access == 'W' && isset ($_FILES)) { $cn->start(); // remove the file $grpt=$cn->get_value('select jr_grpt_id from jrn where jr_id=$1',array($jr_id)); $cn->save_upload_document($grpt); $cn->commit(); // Show a link to the new file $op->get(); $obj=$op->get_quant(); /* return an obj. ACH / FIN or VEN or null if nothing is found*/ echo ""; $repo=new Database(); $theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme'])); echo " "; echo ""; echo '
'; $x=sprintf('enlever', $gDossier,$div,$jr_id); echo $x; $filename= $obj->det->jr_pj_name; if ( strlen($obj->det->jr_pj_name) > 20 ) { $filename=substr($obj->det->jr_pj_name,1,20); } $h=sprintf('%s', $gDossier,$ledger,$obj->det->jr_grpt_id,h($filename)); echo $h; echo '
'; } exit(); ///////////////////////////////////////////////////////////////////////////// // remove a file ///////////////////////////////////////////////////////////////////////////// case 'rmf': if ( $access == 'W' ) { echo ""; $repo=new Database(); $theme=$repo->get_value("select the_filestyle from theme where the_name=$1",array($_SESSION['g_theme'])); echo " "; echo ""; echo '
'; echo '
'; $sp=new ISpan('file'.$div); $sp->style="display:none;width:155;height:15;background-color:red;color:white;font-size:10"; $sp->value="Chargement"; echo $sp->input(); echo HtmlInput::hidden('act','loadfile'); echo dossier::hidden(); echo HtmlInput::hidden('jr_id',$jr_id); echo HtmlInput::hidden('div',$div); echo ''; echo '
'; $ret=$cn->exec_sql("select jr_pj from jrn where jr_id=$1",array($jr_id)); if (Database::num_row($ret) != 0) { $r=Database::fetch_array($ret,0); $old_oid=$r['jr_pj']; if (strlen($old_oid) != 0) { // check if this pj is used somewhere else $c=$cn->count_sql("select * from jrn where jr_pj=".$old_oid); if ( $c == 1 ) $cn->lo_unlink($old_oid); } $cn->exec_sql("update jrn set jr_pj=null, jr_pj_name=null, ". "jr_pj_type=null where jr_id=$1",array($jr_id)); } } echo '
'; exit(); ///////////////////////////////////////////////////////////////////////////// // Save operation detail ///////////////////////////////////////////////////////////////////////////// case 'save': ob_start(); try { $cn->start(); if ( $access=="W") { if (isset($_POST['p_ech']) ) { $ech=$_POST['p_ech']; if ( trim($ech) != '' && isDate($ech) != null) { $cn->exec_sql("update jrn set jr_ech=to_date($1,'DD.MM.YYYY') where jr_id=$2", array($ech,$jr_id)); } else { $cn->exec_sql("update jrn set jr_ech=null where jr_id=$1", array($jr_id)); } } $cn->exec_sql("update jrn set jr_comment=$1,jr_pj_number=$2,jr_date=to_date($4,'DD.MM.YYYY') where jr_id=$3", array($_POST['lib'],$_POST['npj'],$jr_id,$_POST['p_date'])); $cn->exec_sql("update jrnx set j_date=to_date($1,'DD.MM.YYYY') where j_grpt in (select jr_grpt_id from jrn where jr_id=$2)", array($_POST['p_date'],$jr_id)); $cn->exec_sql('update operation_analytique set oa_date=j_date from jrnx where operation_analytique.j_id=jrnx.j_id and operation_analytique.j_id in (select j_id from jrnx join jrn on (j_grpt=jr_grpt_id) where jr_id=$1) ',array($jr_id)); $cn->exec_sql("select comptaproc.jrn_add_note($1,$2)", array($jr_id,$_POST['jrn_note'])); $rapt=$_POST['rapt']; if ( $g_parameter->MYUPDLAB=='Y') { $a_rowid=$_POST["j_id"]; for ($e=0;$eexec_sql('update jrnx set j_text=$1 where j_id=$2', array(strip_tags($_POST[$id]),$a_rowid[$e])); } } if (trim($rapt) != '') { $rec=new Acc_Reconciliation ($cn); $rec->set_jr_id($jr_id); if (strpos($rapt,",") != 0 ) { $aRapt=explode(',',$rapt); /* reconcialition */ foreach ($aRapt as $rRapt) { if ( isNumber($rRapt) == 1 ) { // Add a "concerned operation to bound these op.together $rec->insert($rRapt); } } } else if ( isNumber($rapt) == 1 ) { $rec->insert($rapt); } } if ( isset($_POST['ipaid'])) { $cn->exec_sql("update jrn set jr_rapt='paid' where jr_id=$1",array($jr_id)); } else { $cn->exec_sql("update jrn set jr_rapt=null where jr_id=$1",array($jr_id)); } //////////////////////////////////////////////////// // CA ////////////////////////////////////////////////// $owner = new Own($cn); if ( $owner->MY_ANALYTIC != "nu" && isset ($_POST['op']) ) { // for each item, insert into operation_analytique */ $op=new Anc_Operation($cn); $op->save_update_form($_POST); } } echo _('Opération sauvée'); $cn->commit(); } catch (Exception $e) { if ( DEBUG ) echo $e->getMessage(); alert( "Changement impossible: on ne peut pas changer la date dans une période fermée"); } $html=ob_get_contents(); ob_clean(); break; ///////////////////////////////////////////////////////////////////////////// // remove a reconciliation ///////////////////////////////////////////////////////////////////////////// case 'rmr': if ( $access=='W') { $rec=new Acc_Reconciliation($cn); $rec->set_jr_id($jr_id); $rec->remove($_GET['jr_id2']); } break; //////////////////////////////////////////////////////////////////////////////// // ask for a date for reversing the operation case 'ask_extdate': $date=new IDate('p_date'); $html.="
"; $html.=HtmlInput::hidden('jr_id',$_REQUEST['jr_id']).HtmlInput::hidden('div',$div).dossier::hidden().HtmlInput::hidden('act','reverseop'); $html.='

entrez une date

'.$date->input(); $html.=HtmlInput::submit('x','accepter'); $html=HtmlInput::button_close($div); $html.='
'; break; //////////////////////////////////////////////////////////////////////////////// // Reverse an operation //////////////////////////////////////////////////////////////////////////////// case 'reverseop': if ( $access=='W') { ob_start(); try { $cn->start(); $oLedger=new Acc_Ledger($cn,$ledger); $oLedger->jr_id=$_REQUEST['jr_id']; $oLedger->reverse($_REQUEST['ext_date']); $cn->commit(); echo _("Opération extournée"); } catch (Exception $e) { $e->getMessage(); $cn->rollback(); } } $html=ob_get_contents(); ob_clean(); break; } $html=escape_xml($html); header('Content-type: text/xml; charset=UTF-8'); echo << $div $html EOF;