[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpcompta-dev] r4130 - in phpcompta/branches: . rel560/include
From: |
phpcompta-dev |
Subject: |
[Phpcompta-dev] r4130 - in phpcompta/branches: . rel560/include |
Date: |
Wed, 25 May 2011 22:16:38 +0200 (CEST) |
Author: danydb
Date: 2011-05-25 22:16:37 +0200 (Wed, 25 May 2011)
New Revision: 4130
Added:
phpcompta/branches/rel560/
phpcompta/branches/rel560/include/class_acc_account_ledger.php
phpcompta/branches/rel560/include/export_gl_csv.php
phpcompta/branches/rel560/include/export_gl_pdf.php
phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
Removed:
phpcompta/branches/rel560/include/class_acc_account_ledger.php
phpcompta/branches/rel560/include/export_gl_csv.php
phpcompta/branches/rel560/include/export_gl_pdf.php
phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
Log:
New Version 5.6
Copied: phpcompta/branches/rel560 (from rev 4127, phpcompta/trunk)
Deleted: phpcompta/branches/rel560/include/class_acc_account_ledger.php
===================================================================
--- phpcompta/trunk/include/class_acc_account_ledger.php 2011-05-24
20:24:49 UTC (rev 4127)
+++ phpcompta/branches/rel560/include/class_acc_account_ledger.php
2011-05-25 20:16:37 UTC (rev 4130)
@@ -1,581 +0,0 @@
-<?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
-*/
-/* $Revision$ */
-// Copyright Author Dany De Bontridder address@hidden
-/*! \file
- * \brief Manage the account
- */
-/*!
- * \brief Manage the account from the table jrn, jrnx or tmp_pcmn
- */
-require_once("class_ihidden.php");
-require_once ('class_database.php');
-require_once ('class_dossier.php');
-
-class Acc_Account_Ledger
-{
- var $db; /*!< $db database connection */
- var $id; /*!< $id poste_id (pcm_val)*/
- var $label; /*!< $label label of the poste */
- var $parent; /*!< $parent parent account */
- var $row; /*!< $row double array see get_row */
- var $tot_deb; /*!< value set by get_row */
- var $tot_cred; /*!< value by get_row */
- function __construct ($p_cn,$p_id)
- {
- $this->db=$p_cn;
- $this->id=$p_id;
- }
- /**
- address@hidden get the row thanks the resource
- address@hidden double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
- * (tot_deb,tot_credit)
- */
- private function get_row_sql($Res)
- {
- $array=array();
- $tot_cred=0.0;
- $tot_deb=0.0;
- $Max=Database::num_row($Res);
- if ( $Max == 0 ) return null;
- for ($i=0;$i<$Max;$i++)
- {
- $array[]=Database::fetch_array($Res,$i);
- if ($array[$i]['j_debit']=='t')
- {
- $tot_deb+=$array[$i]['deb_montant'] ;
- }
- else
- {
- $tot_cred+=$array[$i]['cred_montant'] ;
- }
- }
- $this->row=$array;
- $this->tot_deb=$tot_deb;
- $this->tot_cred=$tot_cred;
- return array($array,$tot_deb,$tot_cred);
-
- }
- /*!
- * \brief Get data for accounting entry between 2 periode
- *
- * \param $p_from periode from
- * \param $p_to end periode
- * \return double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
- * (tot_deb,tot_credit
- *
- */
- function get_row($p_from,$p_to)
- {
- $periode=sql_filter_per($this->db,$p_from,$p_to,'p_id','jr_tech_per');
-
- $Res=$this->db->exec_sql("select distinct
j_id,jr_id,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_date,".
- "case when j_debit='t' then j_montant else 0
end as deb_montant,".
- "case when j_debit='f' then j_montant else 0
end as cred_montant,".
- " jr_comment as description,jrn_def_name as
jrn_name,".
- "j_debit, jr_internal,jr_pj_number ".
- " from jrnx left join jrn_def on
jrn_def_id=j_jrn_def ".
- " left join jrn on jr_grpt_id=j_grpt".
- " where j_poste=".$this->id." and ".$periode.
- " order by j_date");
- return $this->get_row_sql($Res);
- }
- /*!
- * \brief Get data for accounting entry between 2 date
- *
- * \param $p_from date from
- * \param $p_to end date
- *\note the data are filtered by the access of the current user
- * \return double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
- * (tot_deb,tot_credit
- *
- */
- function get_row_date($p_from,$p_to,$let=0)
- {
- $user=new User($this->db);
- $filter_sql=$user->get_ledger_sql('ALL',3);
- $sql_let='';
- switch ($let)
- {
- case 0:
- break;
- case 1:
- $sql_let=' and j_id in (select j_id from letter_cred union select
j_id from letter_deb)';
- break;
- case '2':
- $sql_let=' and j_id not in (select j_id from letter_cred union
select j_id from letter_deb) ';
- break;
- }
- $Res=$this->db->exec_sql("select jr_id,to_char(j_date,'DD.MM.YYYY')
as j_date_fmt,j_date,".
- "case when j_debit='t' then j_montant else 0
end as deb_montant,".
- "case when j_debit='f' then j_montant else 0
end as cred_montant,".
- " jr_comment as description,jrn_def_name as
jrn_name,".
- "j_debit,
jr_internal,jr_pj_number,coalesce(comptaproc.get_letter_jnt(j_id),-1) as letter
".
- ",pcm_lib ".
- ",jr_tech_per,p_exercice ".
- " from jrnx left join jrn_def on
(jrn_def_id=j_jrn_def )".
- " left join jrn on (jr_grpt_id=j_grpt)".
- " left join tmp_pcmn on (j_poste=pcm_val)".
- " left join parm_periode on (p_id=jr_tech_per)
".
- " where j_poste=$1 and ".
- " ( to_date($2,'DD.MM.YYYY') <= j_date and ".
- " to_date($3,'DD.MM.YYYY') >= j_date )".
- " and $filter_sql $sql_let ".
- " order by
j_date,substring(jr_pj_number,'\\\\d+$') asc",array($this->id,$p_from,$p_to));
- return $this->get_row_sql($Res);
- }
-
-
- /*!\brief Return the name of a account
- * it doesn't change any data member
- * \return string with the pcm_lib
- */
- function get_name()
- {
- $ret=$this->db->exec_sql(
- "select pcm_lib from tmp_pcmn where
- pcm_val=$1",array($this->id));
- if ( Database::num_row($ret) != 0)
- {
- $r=Database::fetch_array($ret);
- $this->name=$r['pcm_lib'];
- }
- else
- {
- $this->name="Poste inconnu";
- }
- return $this->name;
- }
- /*!\brief check if the poste exist in the tmp_pcmn
- *\return the number of line (normally 1 or 0)
- */
- function do_exist()
- {
- $sql="select pcm_val from tmp_pcmn where pcm_val= $1";
- $ret=$this->db->exec_sql($sql,array($this->id));
- return Database::num_row($ret) ;
- }
- /*!\brief Get all the value for this object from the database
- * the data member are set
- * \return false if this account doesn't exist otherwise true
- */
- function load()
- {
- $ret=$this->db->exec_sql("select pcm_lib,pcm_val_parent from
- tmp_pcmn where pcm_val=$1",array($this->id));
- $r=Database::fetch_all($ret);
-
- if ( ! $r ) return false;
- $this->label=$r[0]['pcm_lib'];
- $this->parent=$r[0]['pcm_val_parent'];
- return true;
-
- }
- /*!\brief Get all the value for this object from the database
- * the data member are set
- * \return false if this account doesn't exist otherwise true
- */
- function get()
- {
- echo "OBSOLETE Acc_Account_Ledger->get(), a remplacer par
Acc_Account_Ledger->load()";
- return $this->load();
- }
-
- /*!
- * \brief give the balance of an account
- *
- * \return
- * balance of the account
- *
- */
- function get_solde($p_cond=" true ")
- {
- $Res=$this->db->exec_sql("select sum(deb) as sum_deb, sum(cred) as
sum_cred from
- ( select j_poste,
- case when j_debit='t' then j_montant else 0
end as deb,
- case when j_debit='f' then j_montant else 0
end as cred
- from jrnx join tmp_pcmn on j_poste=pcm_val
- where
- j_poste::text like ('$this->id'::text) and
- $p_cond
- ) as m ");
- $Max=Database::num_row($Res);
- if ($Max==0) return 0;
- $r=Database::fetch_array($Res,0);
-
- return abs($r['sum_deb']-$r['sum_cred']);
- }
- /*!
- * \brief give the balance of an account
- * \return
- * balance of the account
- *
- */
- function get_solde_detail($p_cond="")
- {
-
- if ( $p_cond != "") $p_cond=" and ".$p_cond;
- $sql="select sum(deb) as sum_deb, sum(cred) as sum_cred from
- ( select j_poste,
- case when j_debit='t' then j_montant else 0 end as deb,
- case when j_debit='f' then j_montant else 0 end as cred
- from jrnx
- where
- j_poste::text like ('$this->id'::text)
- $p_cond
- ) as m ";
-
- $Res=$this->db->exec_sql($sql);
- $Max=Database::num_row($Res);
-
- if ($Max==0)
- {
- return array('debit'=>0,
- 'credit'=>0,
- 'solde'=>0) ;
- }
- $r=Database::fetch_array($Res,0);
-// if p_start is < p_end the query returns null to avoid any problem
-// we set it to 0
- if ($r['sum_deb']=='')
- $r['sum_deb']=0.0;
- if ($r['sum_cred']=='')
- $r['sum_cred']=0.0;
-
- return array('debit'=>$r['sum_deb'],
- 'credit'=>$r['sum_cred'],
- 'solde'=>abs($r['sum_deb']-$r['sum_cred']));
- }
- /*!
- * \brief isTva tell is a poste is used for VAT
- * \param none
- *
- *
- * \return 1 is Yes otherwise 0
- */
- function isTVA()
- {
- // Load TVA array
- $a_TVA=$this->db->get_array('select tva_poste
- from tva_rate');
- foreach ( $a_TVA as $line_tva)
- {
- if ( $line_tva['tva_poste'] == '' )
- continue;
- list($tva_deb,$tva_cred)=explode(',',$line_tva['tva_poste']);
- if ( $this->id == $tva_deb ||
- $this->id == $tva_cred )
- {
- return 1;
- }
- }
- return 0;
-
- }
- /*!
- * \brief HtmlTable, display a HTML of a poste for the asked period
- * \param $p_array array for filter
- * \param $let lettering of operation 0
- * \return -1 if nothing is found otherwise 0
- */
- function HtmlTable($p_array=null,$let=0 )
- {
- if ( $p_array==null)$p_array=$_REQUEST;
- $this->get_name();
- list($array,$tot_deb,$tot_cred)=$this->get_row_date(
$p_array['from_periode'],
-
$p_array['to_periode'],$let
- );
-
- if ( count($this->row ) == 0 )
- return -1;
-
- $rep="";
-
- echo '<h2 class="info">'.$this->id." ".$this->name.'</h2>';
- echo "<TABLE class=\"resultfooter\"
style=\"border-collapse:separate;width:100%;border-spacing:5px\">";
- echo '<tbody>';
- echo "<TR>".
- "<TH> Date</TH>".
- "<TH> n° de pièce </TH>".
- "<TH> Code interne </TH>".
- "<TH> Description </TH>".
- "<TH style=\"text-align:right\"> Débit </TH>".
- "<TH style=\"text-align:right\"> Crédit </TH>".
- th('Prog.','style="text-align:right"').
- th('Let.','style="text-align:right"');
- "</TR>"
- ;
- $progress=0;$sum_deb=0;$sum_cred=0;
- bcscale(2);
- $old_exercice="";
- foreach ( $this->row as $op )
- {
- $vw_operation=sprintf('<A class="detail"
style="text-decoration:underline"
HREF="javascript:modifyOperation(\'%s\',\'%s\')" >%s</A>',
- $op['jr_id'], dossier::id(),
$op['jr_internal']);
- $let='';
- if ( $op['letter'] !=-1) $let=$op['letter'];
- $tmp_diff=bcsub($op['deb_montant'],$op['cred_montant']);
-
- /*
- * reset prog. balance to zero if we change of exercice
- */
- if ( $old_exercice != $op['p_exercice'])
- {
- if ( $old_exercice != '')
- {
- $progress=bcsub($sum_deb,$sum_cred);
-
- echo "<TR style=\"font-weight:bold\">".
- "<TD></TD>".
- td('').
- "<TD></TD>".
- "<TD>Totaux</TD>".
- "<TD style=\"text-align:right\">".nbm($sum_deb)."</TD>".
- "<TD style=\"text-align:right\">".nbm($sum_cred)."</TD>".
- td(nbm(abs($progress)),'style="text-align:right"').
- td('').
- "</TR>";
- $sum_cred=0;
- $sum_deb=0;
- $progress=0;
-
- }
- }
- $progress=bcadd($progress,$tmp_diff);
- $sum_cred=bcadd($sum_cred,$op['cred_montant']);
- $sum_deb=bcadd($sum_deb,$op['deb_montant']);
-
- echo "<TR>".
- "<TD>".format_date($op['j_date'])."</TD>".
- td(h($op['jr_pj_number'])).
- "<TD>".$vw_operation."</TD>".
- "<TD>".h($op['description'])."</TD>".
- "<TD style=\"text-align:right\">".nbm($op['deb_montant'])."</TD>".
- "<TD
style=\"text-align:right\">".nbm($op['cred_montant'])."</TD>".
- td(nbm(abs($progress)),'style="text-align:right"').
-
- td($let,' style="color:red;text-align:right"').
- "</TR>";
- $old_exercice=$op['p_exercice'];
- }
- echo '<tfoot>';
- $solde_type=($sum_deb>$sum_cred)?"solde débiteur":"solde créditeur";
- $diff=abs(bcsub($sum_deb,$sum_cred));
-
- echo "<TR style=\"font-weight:bold\">".
- "<TD >Totaux</TD><td></td>".
- "<TD ></TD>".
- "<TD></TD>".
- "<TD style=\"text-align:right\">".nbm($sum_deb)."</TD>".
- "<TD style=\"text-align:right\">".nbm($sum_cred)."</TD>".
- "<TD style=\"text-align:right\">".nbm($diff)."</TD>".
-
- "</TR>";
- echo "<tr><TD>$solde_type</TD><td></td>".
- "<TD style=\"text-align:right\">".nbm($diff)."</TD>".
- "</TR>";
- echo '</tfoot>';
- echo '</tbody>';
-
- echo "</table>";
-
- return;
- }
-
- /*!
- * \brief Display HTML Table Header (button)
- *
- * \return none
- */
- static function HtmlTableHeader($actiontarget="poste")
- {
- switch($actiontarget)
- {
- case 'poste':
- $action_csv='CSV/postedetail';
- $action_pdf='PDF/postedetail';
- break;
- case 'gl_comptes':
- $action_csv='CSV/glcompte';
- $action_pdf='PDF/glcompte';
- break;
- default:
- throw new Exception(" Fonction HtmlTableHeader argument actiontarget
invalid");
- exit;
- }
- $hid=new IHidden();
- echo '<div class="noprint">';
- echo "<table >";
- echo '<TR>';
-
$str_ople=(isset($_REQUEST['ople']))?HtmlInput::hidden('ople',$_REQUEST['ople']):'';
- if ($actiontarget=='poste')
- {
- echo '<TD><form method="GET" ACTION="">'.
- dossier::hidden().
- HtmlInput::submit('bt_other',"Autre poste").
-
$hid->input("type","poste").$hid->input('p_action','impress')."</form></TD>";
- }
-
- $letter=HtmlInput::default_value('letter',0,$_REQUEST);
-
- echo '<TD><form method="GET" ACTION="export.php">'.
- dossier::hidden().
- HtmlInput::submit('bt_pdf',"Export PDF").
- HtmlInput::hidden('act',$action_pdf).
- $hid->input("type","poste").$str_ople.
- $hid->input('p_action','impress').
- $hid->input("from_periode",$_REQUEST['from_periode']).
- $hid->input("to_periode",$_REQUEST['to_periode']).
- $hid->input('from_poste',$_REQUEST['from_poste']).
- $hid->input('to_poste',$_REQUEST['to_poste']).
- $hid->input('letter',$letter);
-
-
-
-
- if (isset($_REQUEST['poste_id'])) echo
$hid->input("poste_id",$_REQUEST['poste_id']);
-
- if (isset($_REQUEST['poste_fille']))
- echo $hid->input('poste_fille','on');
- if (isset($_REQUEST['oper_detail']))
- echo $hid->input('oper_detail','on');
-
- echo "</form></TD>";
-
- echo '<TD><form method="GET" ACTION="export.php">'.
- dossier::hidden().
- HtmlInput::submit('bt_csv',"Export CSV").
- HtmlInput::hidden('act',$action_csv).
- $hid->input("type","poste").$str_ople.
- $hid->input('p_action','impress').
- $hid->input("from_periode",$_REQUEST['from_periode']).
- $hid->input("to_periode",$_REQUEST['to_periode']).
- $hid->input('from_poste',$_REQUEST['from_poste']).
- $hid->input('to_poste',$_REQUEST['to_poste']).
- $hid->input('letter',$letter);
-
- if (isset($_REQUEST['poste_fille']))
- echo $hid->input('poste_fille','on');
- if (isset($_REQUEST['oper_detail']))
- echo $hid->input('oper_detail','on');
- if (isset($_REQUEST['poste_id'])) echo
$hid->input("poste_id",$_REQUEST['poste_id']);
-
- echo "</form></TD>";
- echo "</table>";
- echo '</div>';
-
- }
- /*!
- * \brief verify that the poste belong to a ledger
- *
- * \return 0 ok, -1 no
- */
- function belong_ledger($p_jrn)
- {
- $filter=$this->db->get_value("select jrn_def_class_cred from jrn_def
where jrn_def_id=$p_jrn");
- if ( trim ($filter) == '')
- return 0;
-
- $valid_cred=explode(" ",$filter);
- $sql="select count(*) as poste from tmp_pcmn where ";
- // Creation query
- $or="";
- $SqlFilter="";
- foreach ( $valid_cred as $item_cred)
- {
- if ( strlen (trim($item_cred)))
- {
- if ( strstr($item_cred,"*") == true )
- {
- $item_cred=strtr($item_cred,"*","%");
- $SqlItem="$or pcm_val::text like '$item_cred'";
- $or=" or ";
- }
- else
- {
- $SqlItem="$or pcm_val::text = '$item_cred' ";
- $or=" or ";
- }
- $SqlFilter=$SqlFilter.$SqlItem;
- }
- }//foreach
- $sql.=$SqlFilter.' and pcm_val='.$this->id;
- $max=$this->db->get_value($sql);
- if ($max > 0 )
- return 0;
- else
- return -1;
- }
- /*!\brief With the id of the ledger, get the col jrn_def_class_deb
- *\param $p_jrn jrn_id
- *\return array of value, or an empty array if nothing is found
- *\note
- *\see
- */
- function get_account_ledger($p_jrn)
- {
- $l=new Acc_Ledger($this->db,$p_jrn);
- $row=$l->get_propertie();
- if ( strlen(trim($row['jrn_def_class_deb'])) == 0 ) return array();
- $valid_account=explode(" ",$row['jrn_def_class_deb']);
- return $valid_account;
- }
- /*!\brief build a sql statement thanks a array found with
get_account_ledger
- *
- *\param $p_jrn jrn_id
- *\return an emty string if nothing is found or a valid SQL statement like
- \code
- pcm_val like ... or pcm_val like ...
- \endcode
- *\note
- *\see get_account_ledger
- */
- function build_sql_account($p_jrn)
- {
- $array=$this->get_account_ledger($p_jrn);
- if ( empty($array) ) return "";
- $sql="";
- foreach ( $array as $item_cred)
- {
- if ( strlen (trim($item_cred))>0 )
- {
- if ( strstr($item_cred,"*") == true )
- {
- $item_cred=strtr($item_cred,"*","%");
- $sql_tmp=" pcm_val::text like '$item_cred' or";
- }
- else
- {
- $sql_tmp=" pcm_val::text = '$item_cred' or";
- }
- $sql.=$sql_tmp;
- }
- }//foreach
- /* remove the last or */
- $sql=substr($sql,0,strlen($sql)-2);
- return $sql;
- }
- static function test_me()
- {
- $cn=new Database(dossier::id());
- $a=new Acc_Account_Ledger($cn,550);
- echo ' Journal 4 '.$a->belong_ledger(4);
-
- }
-}
Copied: phpcompta/branches/rel560/include/class_acc_account_ledger.php (from
rev 4129, phpcompta/trunk/include/class_acc_account_ledger.php)
===================================================================
--- phpcompta/branches/rel560/include/class_acc_account_ledger.php
(rev 0)
+++ phpcompta/branches/rel560/include/class_acc_account_ledger.php
2011-05-25 20:16:37 UTC (rev 4130)
@@ -0,0 +1,614 @@
+<?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
+*/
+/* $Revision$ */
+// Copyright Author Dany De Bontridder address@hidden
+/*! \file
+ * \brief Manage the account
+ */
+/*!
+ * \brief Manage the account from the table jrn, jrnx or tmp_pcmn
+ */
+require_once("class_ihidden.php");
+require_once ('class_database.php');
+require_once ('class_dossier.php');
+
+class Acc_Account_Ledger
+{
+ var $db; /*!< $db database connection */
+ var $id; /*!< $id poste_id (pcm_val)*/
+ var $label; /*!< $label label of the poste */
+ var $parent; /*!< $parent parent account */
+ var $row; /*!< $row double array see get_row */
+ var $tot_deb; /*!< value set by get_row */
+ var $tot_cred; /*!< value by get_row */
+ function __construct ($p_cn,$p_id)
+ {
+ $this->db=$p_cn;
+ $this->id=$p_id;
+ }
+ /**
+ address@hidden get the row thanks the resource
+ address@hidden double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
+ * (tot_deb,tot_credit)
+ */
+ private function get_row_sql($Res)
+ {
+ $array=array();
+ $tot_cred=0.0;
+ $tot_deb=0.0;
+ $Max=Database::num_row($Res);
+ if ( $Max == 0 ) return null;
+ for ($i=0;$i<$Max;$i++)
+ {
+ $array[]=Database::fetch_array($Res,$i);
+ if ($array[$i]['j_debit']=='t')
+ {
+ $tot_deb+=$array[$i]['deb_montant'] ;
+ }
+ else
+ {
+ $tot_cred+=$array[$i]['cred_montant'] ;
+ }
+ }
+ $this->row=$array;
+ $this->tot_deb=$tot_deb;
+ $this->tot_cred=$tot_cred;
+ return array($array,$tot_deb,$tot_cred);
+
+ }
+ /*!
+ * \brief Get data for accounting entry between 2 periode
+ *
+ * \param $p_from periode from
+ * \param $p_to end periode
+ * \return double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
+ * (tot_deb,tot_credit
+ *
+ */
+ function get_row($p_from,$p_to)
+ {
+ $periode=sql_filter_per($this->db,$p_from,$p_to,'p_id','jr_tech_per');
+
+ $Res=$this->db->exec_sql("select distinct
j_id,jr_id,to_char(j_date,'DD.MM.YYYY') as j_date_fmt,j_date,".
+ "case when j_debit='t' then j_montant else 0
end as deb_montant,".
+ "case when j_debit='f' then j_montant else 0
end as cred_montant,".
+ " jr_comment as description,jrn_def_name as
jrn_name,".
+ "j_debit, jr_internal,jr_pj_number ".
+ " from jrnx left join jrn_def on
jrn_def_id=j_jrn_def ".
+ " left join jrn on jr_grpt_id=j_grpt".
+ " where j_poste=".$this->id." and ".$periode.
+ " order by j_date");
+ return $this->get_row_sql($Res);
+ }
+ /*!
+ * \brief Get data for accounting entry between 2 date
+ *
+ * \param $p_from date from
+ * \param $p_to end date
+ *\param $let 0 means all rows, 1 only lettered, 2 only unlettered
+ * \param $solded 0 means all account, 1 means only accounts with a
saldo <> 0
+ *\note the data are filtered by the access of the current user
+ * \return double array
(j_date,deb_montant,cred_montant,description,jrn_name,j_debit,jr_internal)
+ * (tot_deb,tot_credit
+ *
+ */
+ function get_row_date($p_from,$p_to,$let=0,$solded=0)
+ {
+ $user=new User($this->db);
+ $filter_sql=$user->get_ledger_sql('ALL',3);
+ $sql_let='';
+ switch ($let)
+ {
+ case 0:
+ break;
+ case 1:
+ $sql_let=' and j_id in (select j_id from letter_cred union select
j_id from letter_deb)';
+ break;
+ case '2':
+ $sql_let=' and j_id not in (select j_id from letter_cred union
select j_id from letter_deb) ';
+ break;
+ }
+ if ( $solded == 1)
+ {
+ $filter=str_replace('jrn_def_id','jr_def_id',$filter_sql);
+ $bal_sql="with signed_amount as
+ (select case when j_debit='t'
then j_montant else 0 end as amount_deb,
+ case when
j_debit='f' then j_montant else 0 end as amount_cred,
+ j_poste
+ from jrnx join
jrn on (j_grpt = jr_grpt_id)
+ where
+ j_poste=$1 and
+ $filter and
+ (
to_date($2,'DD.MM.YYYY') <= j_date and
+ to_date($3,'DD.MM.YYYY') >= j_date ))
+ select sum(amount_deb) as
s_deb,sum(amount_cred) as s_cred, j_poste from signed_amount
+ group by j_poste
+ ";
+ $r=$this->db->get_array($bal_sql,array($this->id,$p_from,$p_to));
+ if ( $this->db->count() == 0 ) return array();
+ if ($r[0]['s_deb']==$r[0]['s_cred']) return array();
+ }
+ $Res=$this->db->exec_sql("select jr_id,to_char(j_date,'DD.MM.YYYY')
as j_date_fmt,j_date,".
+ "case when j_debit='t' then j_montant else 0
end as deb_montant,".
+ "case when j_debit='f' then j_montant else 0
end as cred_montant,".
+ " jr_comment as description,jrn_def_name as
jrn_name,".
+ "j_debit, jr_internal,jr_pj_number,
+
coalesce(comptaproc.get_letter_jnt(j_id),-1) as letter ".
+ ",pcm_lib ".
+ ",jr_tech_per,p_exercice ".
+ " from jrnx left join jrn_def on
(jrn_def_id=j_jrn_def )".
+ " left join jrn on (jr_grpt_id=j_grpt)".
+ " left join tmp_pcmn on (j_poste=pcm_val)".
+ " left join parm_periode on (p_id=jr_tech_per)
".
+ " where j_poste=$1 and ".
+ " ( to_date($2,'DD.MM.YYYY') <= j_date and ".
+ " to_date($3,'DD.MM.YYYY') >= j_date )".
+ " and $filter_sql $sql_let ".
+ " order by
j_date,substring(jr_pj_number,'\\\\d+$') asc",array($this->id,$p_from,$p_to));
+ return $this->get_row_sql($Res);
+ }
+
+
+ /*!\brief Return the name of a account
+ * it doesn't change any data member
+ * \return string with the pcm_lib
+ */
+ function get_name()
+ {
+ $ret=$this->db->exec_sql(
+ "select pcm_lib from tmp_pcmn where
+ pcm_val=$1",array($this->id));
+ if ( Database::num_row($ret) != 0)
+ {
+ $r=Database::fetch_array($ret);
+ $this->name=$r['pcm_lib'];
+ }
+ else
+ {
+ $this->name="Poste inconnu";
+ }
+ return $this->name;
+ }
+ /*!\brief check if the poste exist in the tmp_pcmn
+ *\return the number of line (normally 1 or 0)
+ */
+ function do_exist()
+ {
+ $sql="select pcm_val from tmp_pcmn where pcm_val= $1";
+ $ret=$this->db->exec_sql($sql,array($this->id));
+ return Database::num_row($ret) ;
+ }
+ /*!\brief Get all the value for this object from the database
+ * the data member are set
+ * \return false if this account doesn't exist otherwise true
+ */
+ function load()
+ {
+ $ret=$this->db->exec_sql("select pcm_lib,pcm_val_parent from
+ tmp_pcmn where pcm_val=$1",array($this->id));
+ $r=Database::fetch_all($ret);
+
+ if ( ! $r ) return false;
+ $this->label=$r[0]['pcm_lib'];
+ $this->parent=$r[0]['pcm_val_parent'];
+ return true;
+
+ }
+ /*!\brief Get all the value for this object from the database
+ * the data member are set
+ * \return false if this account doesn't exist otherwise true
+ */
+ function get()
+ {
+ echo "OBSOLETE Acc_Account_Ledger->get(), a remplacer par
Acc_Account_Ledger->load()";
+ return $this->load();
+ }
+
+ /*!
+ * \brief give the balance of an account
+ *
+ * \return
+ * balance of the account
+ *
+ */
+ function get_solde($p_cond=" true ")
+ {
+ $Res=$this->db->exec_sql("select sum(deb) as sum_deb, sum(cred) as
sum_cred from
+ ( select j_poste,
+ case when j_debit='t' then j_montant else 0
end as deb,
+ case when j_debit='f' then j_montant else 0
end as cred
+ from jrnx join tmp_pcmn on j_poste=pcm_val
+ where
+ j_poste::text like ('$this->id'::text) and
+ $p_cond
+ ) as m ");
+ $Max=Database::num_row($Res);
+ if ($Max==0) return 0;
+ $r=Database::fetch_array($Res,0);
+
+ return abs($r['sum_deb']-$r['sum_cred']);
+ }
+ /*!
+ * \brief give the balance of an account
+ * \return
+ * balance of the account
+ *
+ */
+ function get_solde_detail($p_cond="")
+ {
+
+ if ( $p_cond != "") $p_cond=" and ".$p_cond;
+ $sql="select sum(deb) as sum_deb, sum(cred) as sum_cred from
+ ( select j_poste,
+ case when j_debit='t' then j_montant else 0 end as deb,
+ case when j_debit='f' then j_montant else 0 end as cred
+ from jrnx
+ where
+ j_poste::text like ('$this->id'::text)
+ $p_cond
+ ) as m ";
+
+ $Res=$this->db->exec_sql($sql);
+ $Max=Database::num_row($Res);
+
+ if ($Max==0)
+ {
+ return array('debit'=>0,
+ 'credit'=>0,
+ 'solde'=>0) ;
+ }
+ $r=Database::fetch_array($Res,0);
+// if p_start is < p_end the query returns null to avoid any problem
+// we set it to 0
+ if ($r['sum_deb']=='')
+ $r['sum_deb']=0.0;
+ if ($r['sum_cred']=='')
+ $r['sum_cred']=0.0;
+
+ return array('debit'=>$r['sum_deb'],
+ 'credit'=>$r['sum_cred'],
+ 'solde'=>abs($r['sum_deb']-$r['sum_cred']));
+ }
+ /*!
+ * \brief isTva tell is a poste is used for VAT
+ * \param none
+ *
+ *
+ * \return 1 is Yes otherwise 0
+ */
+ function isTVA()
+ {
+ // Load TVA array
+ $a_TVA=$this->db->get_array('select tva_poste
+ from tva_rate');
+ foreach ( $a_TVA as $line_tva)
+ {
+ if ( $line_tva['tva_poste'] == '' )
+ continue;
+ list($tva_deb,$tva_cred)=explode(',',$line_tva['tva_poste']);
+ if ( $this->id == $tva_deb ||
+ $this->id == $tva_cred )
+ {
+ return 1;
+ }
+ }
+ return 0;
+
+ }
+ /*!
+ * \brief HtmlTable, display a HTML of a poste for the asked period
+ * \param $p_array array for filter
+ * \param $let lettering of operation 0
+ * \return -1 if nothing is found otherwise 0
+ */
+ function HtmlTable($p_array=null,$let=0 )
+ {
+ if ( $p_array==null)$p_array=$_REQUEST;
+ $this->get_name();
+ list($array,$tot_deb,$tot_cred)=$this->get_row_date(
$p_array['from_periode'],
+
$p_array['to_periode'],$let
+ );
+
+ if ( count($this->row ) == 0 )
+ return -1;
+
+ $rep="";
+
+ echo '<h2 class="info">'.$this->id." ".$this->name.'</h2>';
+ echo "<TABLE class=\"resultfooter\"
style=\"border-collapse:separate;width:100%;border-spacing:5px\">";
+ echo '<tbody>';
+ echo "<TR>".
+ "<TH> Date</TH>".
+ "<TH> n° de pièce </TH>".
+ "<TH> Code interne </TH>".
+ "<TH> Description </TH>".
+ "<TH style=\"text-align:right\"> Débit </TH>".
+ "<TH style=\"text-align:right\"> Crédit </TH>".
+ th('Prog.','style="text-align:right"').
+ th('Let.','style="text-align:right"');
+ "</TR>"
+ ;
+ $progress=0;$sum_deb=0;$sum_cred=0;
+ bcscale(2);
+ $old_exercice="";
+ foreach ( $this->row as $op )
+ {
+ $vw_operation=sprintf('<A class="detail"
style="text-decoration:underline"
HREF="javascript:modifyOperation(\'%s\',\'%s\')" >%s</A>',
+ $op['jr_id'], dossier::id(),
$op['jr_internal']);
+ $let='';
+ if ( $op['letter'] !=-1) $let=$op['letter'];
+ $tmp_diff=bcsub($op['deb_montant'],$op['cred_montant']);
+
+ /*
+ * reset prog. balance to zero if we change of exercice
+ */
+ if ( $old_exercice != $op['p_exercice'])
+ {
+ if ( $old_exercice != '')
+ {
+ $progress=bcsub($sum_deb,$sum_cred);
+
+ echo "<TR style=\"font-weight:bold\">".
+ "<TD></TD>".
+ td('').
+ "<TD></TD>".
+ "<TD>Totaux</TD>".
+ "<TD style=\"text-align:right\">".nbm($sum_deb)."</TD>".
+ "<TD style=\"text-align:right\">".nbm($sum_cred)."</TD>".
+ td(nbm(abs($progress)),'style="text-align:right"').
+ td('').
+ "</TR>";
+ $sum_cred=0;
+ $sum_deb=0;
+ $progress=0;
+
+ }
+ }
+ $progress=bcadd($progress,$tmp_diff);
+ $sum_cred=bcadd($sum_cred,$op['cred_montant']);
+ $sum_deb=bcadd($sum_deb,$op['deb_montant']);
+
+ echo "<TR>".
+ "<TD>".format_date($op['j_date'])."</TD>".
+ td(h($op['jr_pj_number'])).
+ "<TD>".$vw_operation."</TD>".
+ "<TD>".h($op['description'])."</TD>".
+ "<TD style=\"text-align:right\">".nbm($op['deb_montant'])."</TD>".
+ "<TD
style=\"text-align:right\">".nbm($op['cred_montant'])."</TD>".
+ td(nbm(abs($progress)),'style="text-align:right"').
+
+ td($let,' style="color:red;text-align:right"').
+ "</TR>";
+ $old_exercice=$op['p_exercice'];
+ }
+ echo '<tfoot>';
+ $solde_type=($sum_deb>$sum_cred)?"solde débiteur":"solde créditeur";
+ $diff=abs(bcsub($sum_deb,$sum_cred));
+
+ echo "<TR style=\"font-weight:bold\">".
+ "<TD >Totaux</TD><td></td>".
+ "<TD ></TD>".
+ "<TD></TD>".
+ "<TD style=\"text-align:right\">".nbm($sum_deb)."</TD>".
+ "<TD style=\"text-align:right\">".nbm($sum_cred)."</TD>".
+ "<TD style=\"text-align:right\">".nbm($diff)."</TD>".
+
+ "</TR>";
+ echo "<tr><TD>$solde_type</TD><td></td>".
+ "<TD style=\"text-align:right\">".nbm($diff)."</TD>".
+ "</TR>";
+ echo '</tfoot>';
+ echo '</tbody>';
+
+ echo "</table>";
+
+ return;
+ }
+
+ /*!
+ * \brief Display HTML Table Header (button)
+ *
+ * \return none
+ */
+ static function HtmlTableHeader($actiontarget="poste")
+ {
+ switch($actiontarget)
+ {
+ case 'poste':
+ $action_csv='CSV/postedetail';
+ $action_pdf='PDF/postedetail';
+ break;
+ case 'gl_comptes':
+ $action_csv='CSV/glcompte';
+ $action_pdf='PDF/glcompte';
+ break;
+ default:
+ throw new Exception(" Fonction HtmlTableHeader argument actiontarget
invalid");
+ exit;
+ }
+ $hid=new IHidden();
+ echo '<div class="noprint">';
+ echo "<table >";
+ echo '<TR>';
+
$str_ople=(isset($_REQUEST['ople']))?HtmlInput::hidden('ople',$_REQUEST['ople']):'';
+ if ($actiontarget=='poste')
+ {
+ echo '<TD><form method="GET" ACTION="">'.
+ dossier::hidden().
+ HtmlInput::submit('bt_other',"Autre poste").
+
$hid->input("type","poste").$hid->input('p_action','impress')."</form></TD>";
+ }
+
+
+ echo '<TD><form method="GET" ACTION="export.php">'.
+ dossier::hidden().
+ HtmlInput::submit('bt_pdf',"Export PDF").
+ HtmlInput::hidden('act',$action_pdf).
+ $hid->input("type","poste").$str_ople.
+ $hid->input('p_action','impress').
+ $hid->input("from_periode",$_REQUEST['from_periode']).
+ $hid->input("to_periode",$_REQUEST['to_periode'])
+ ;
+
+ if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
+ if ( isset($_REQUEST['solded'] )) echo HtmlInput::hidden('solded','1');
+
+ if (isset($_REQUEST['from_poste']))
+ echo $hid->input('from_poste',$_REQUEST['from_poste']);
+
+ if (isset($_REQUEST['to_poste']))
+ echo $hid->input('to_poste',$_REQUEST['to_poste']);
+
+ if (isset($_REQUEST['poste_id']))
+ echo $hid->input("poste_id",$_REQUEST['poste_id']);
+
+ if (isset($_REQUEST['poste_fille']))
+ echo $hid->input('poste_fille','on');
+ if (isset($_REQUEST['oper_detail']))
+ echo $hid->input('oper_detail','on');
+
+ echo "</form></TD>";
+
+ echo '<TD><form method="GET" ACTION="export.php">'.
+ dossier::hidden().
+ HtmlInput::submit('bt_csv',"Export CSV").
+ HtmlInput::hidden('act',$action_csv).
+ $hid->input("type","poste").$str_ople.
+ $hid->input('p_action','impress').
+ $hid->input("from_periode",$_REQUEST['from_periode']).
+ $hid->input("to_periode",$_REQUEST['to_periode']);
+
+ if (isset($_REQUEST['from_poste']))
+ echo $hid->input('from_poste',$_REQUEST['from_poste']);
+
+ if (isset($_REQUEST['to_poste']))
+ echo $hid->input('to_poste',$_REQUEST['to_poste']);
+
+ if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
+ if ( isset($_REQUEST['solded'] )) echo HtmlInput::hidden('solded','1');
+
+ if (isset($_REQUEST['poste_fille']))
+ echo $hid->input('poste_fille','on');
+ if (isset($_REQUEST['oper_detail']))
+ echo $hid->input('oper_detail','on');
+ if (isset($_REQUEST['poste_id'])) echo
$hid->input("poste_id",$_REQUEST['poste_id']);
+
+ echo "</form></TD>";
+ echo "</table>";
+ echo '</div>';
+
+ }
+ /*!
+ * \brief verify that the poste belong to a ledger
+ *
+ * \return 0 ok, -1 no
+ */
+ function belong_ledger($p_jrn)
+ {
+ $filter=$this->db->get_value("select jrn_def_class_cred from jrn_def
where jrn_def_id=$p_jrn");
+ if ( trim ($filter) == '')
+ return 0;
+
+ $valid_cred=explode(" ",$filter);
+ $sql="select count(*) as poste from tmp_pcmn where ";
+ // Creation query
+ $or="";
+ $SqlFilter="";
+ foreach ( $valid_cred as $item_cred)
+ {
+ if ( strlen (trim($item_cred)))
+ {
+ if ( strstr($item_cred,"*") == true )
+ {
+ $item_cred=strtr($item_cred,"*","%");
+ $SqlItem="$or pcm_val::text like '$item_cred'";
+ $or=" or ";
+ }
+ else
+ {
+ $SqlItem="$or pcm_val::text = '$item_cred' ";
+ $or=" or ";
+ }
+ $SqlFilter=$SqlFilter.$SqlItem;
+ }
+ }//foreach
+ $sql.=$SqlFilter.' and pcm_val='.$this->id;
+ $max=$this->db->get_value($sql);
+ if ($max > 0 )
+ return 0;
+ else
+ return -1;
+ }
+ /*!\brief With the id of the ledger, get the col jrn_def_class_deb
+ *\param $p_jrn jrn_id
+ *\return array of value, or an empty array if nothing is found
+ *\note
+ *\see
+ */
+ function get_account_ledger($p_jrn)
+ {
+ $l=new Acc_Ledger($this->db,$p_jrn);
+ $row=$l->get_propertie();
+ if ( strlen(trim($row['jrn_def_class_deb'])) == 0 ) return array();
+ $valid_account=explode(" ",$row['jrn_def_class_deb']);
+ return $valid_account;
+ }
+ /*!\brief build a sql statement thanks a array found with
get_account_ledger
+ *
+ *\param $p_jrn jrn_id
+ *\return an emty string if nothing is found or a valid SQL statement like
+ \code
+ pcm_val like ... or pcm_val like ...
+ \endcode
+ *\note
+ *\see get_account_ledger
+ */
+ function build_sql_account($p_jrn)
+ {
+ $array=$this->get_account_ledger($p_jrn);
+ if ( empty($array) ) return "";
+ $sql="";
+ foreach ( $array as $item_cred)
+ {
+ if ( strlen (trim($item_cred))>0 )
+ {
+ if ( strstr($item_cred,"*") == true )
+ {
+ $item_cred=strtr($item_cred,"*","%");
+ $sql_tmp=" pcm_val::text like '$item_cred' or";
+ }
+ else
+ {
+ $sql_tmp=" pcm_val::text = '$item_cred' or";
+ }
+ $sql.=$sql_tmp;
+ }
+ }//foreach
+ /* remove the last or */
+ $sql=substr($sql,0,strlen($sql)-2);
+ return $sql;
+ }
+ static function test_me()
+ {
+ $cn=new Database(dossier::id());
+ $a=new Acc_Account_Ledger($cn,550);
+ echo ' Journal 4 '.$a->belong_ledger(4);
+
+ }
+}
Deleted: phpcompta/branches/rel560/include/export_gl_csv.php
===================================================================
--- phpcompta/trunk/include/export_gl_csv.php 2011-05-24 20:24:49 UTC (rev
4127)
+++ phpcompta/branches/rel560/include/export_gl_csv.php 2011-05-25 20:16:37 UTC
(rev 4130)
@@ -1,171 +0,0 @@
-<?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 address@hidden
-// $Revision$
-
-/*! \file
- * \brief create GL comptes as PDF
- */
-
-include_once('class_acc_account_ledger.php');
-include_once('ac_common.php');
-require_once('class_database.php');
-include_once('impress_inc.php');
-require_once('class_own.php');
-require_once('class_dossier.php');
-require_once('class_user.php');
-
-header('Content-type: application/csv');
-header('Content-Disposition: attachment;filename="gl_comptes.csv"',FALSE);
-header('Pragma: public');
-
-
-$gDossier=dossier::id();
-
-/* Security */
-$cn=new Database($gDossier);
-
-
-extract($_GET);
-
-if ( isset($poste_id) && strlen(trim($poste_id)) != 0 && isNumber($poste_id) )
-{
- if ( isset ($poste_fille) )
- {
- $parent=$poste_id;
- $a_poste=$cn->get_array("select pcm_val from tmp_pcmn where
pcm_val::text like '$parent%' order by pcm_val::text");
- }
- elseif ( $cn->count_sql('select * from tmp_pcmn where
pcm_val='.FormatString($poste_id)) != 0 )
- {
- $a_poste=array('pcm_val' => $poste_id);
- }
-}
-else
-{
- if ($from_poste != '')
- {
- $cond_poste = ' where ';
- $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste).'\')';
- }
-
- if ( $to_poste != '')
- {
- if ( $cond_poste == '')
- {
- $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($from_poste).'\')';
- }
- else
- {
- $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($from_poste).'\')';
- }
- }
-
- $sql=$sql.$cond_poste.' order by pcm_val::text';
- $a_poste=$cn->get_array($sql);
-
-}
-
-if ( count($a_poste) == 0 )
-{
- echo 'Rien à rapporter.';
- printf("\n");
- exit;
-}
-
-// Header
-$header = array( "Date", "Référence", "Libellé", "Pièce", "Débit", "Crédit",
"Solde" );
-
-foreach ($a_poste as $poste)
-{
-
- $Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
-
list($array,$tot_deb,$tot_cred)=$Poste->get_row_date($from_periode,$to_periode);
-
- // don't print empty account
- if ( count($array) == 0 )
- {
- continue;
- }
-
- echo sprintf("%s - %s ",$Poste->id,$Poste->get_name());
- printf("\n");
-
- for($i=0;$i<count($header);$i++)
- echo $header[$i].";";
- printf("\n");
-
- $solde = 0.0;
- $solde_d = 0.0;
- $solde_c = 0.0;
-
- foreach ($Poste->row as $detail)
- {
-
- /*
- [0] => 1 [jr_id] => 1
- [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
- [2] => 2009-02-01 [j_date] => 2009-02-01
- [3] => 0 [deb_montant] => 0
- [4] => 12211.9100 [cred_montant] => 12211.9100
- [5] => Ecriture douverture [description] => Ecriture douverture
- [6] => Opération Diverses [jrn_name] => Opération Diverses
- [7] => f [j_debit] => f
- [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
- [9] => ODS1 [jr_pj_number] => ODS1 ) 1
- */
-
- if ($detail['cred_montant'] > 0)
- {
- $solde += $detail['cred_montant'];
- $solde_c += $detail['cred_montant'];
- }
- if ($detail['deb_montant'] > 0)
- {
- $solde -= $detail['deb_montant'];
- $solde_d += $detail['deb_montant'];
- }
-
- echo $detail['j_date_fmt'].";";
- echo $detail['jr_internal'].";";
- echo $detail['description'].";";
- echo $detail['jr_pj_number'].";";
- echo ($detail['deb_montant'] > 0 ? sprintf("%.2f",
$detail['deb_montant']) : '').";";
- echo ($detail['cred_montant'] > 0 ? sprintf("%.2f",
$detail['cred_montant']) : '').";";
- echo sprintf("%.2f", $solde).";";
- printf("\n");
-
- }
-
-
- echo ";";
- echo ";";
- echo ";";
- echo 'Total du compte '.$Poste->id.";";
- echo ($solde_d > 0 ? sprintf("%.2f", $solde_d) : '').";";
- echo ($solde_c > 0 ? sprintf("%.2f", $solde_c) : '').";";
- echo sprintf("%.2f", abs($solde_c-$solde_d)).";";
- echo ($solde_c > $solde_d ? 'C' : 'D').";";
- printf("\n");
- printf("\n");
-}
-
-exit;
-
-?>
Copied: phpcompta/branches/rel560/include/export_gl_csv.php (from rev 4129,
phpcompta/trunk/include/export_gl_csv.php)
===================================================================
--- phpcompta/branches/rel560/include/export_gl_csv.php
(rev 0)
+++ phpcompta/branches/rel560/include/export_gl_csv.php 2011-05-25 20:16:37 UTC
(rev 4130)
@@ -0,0 +1,185 @@
+<?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 address@hidden
+// $Revision$
+
+/*! \file
+ * \brief create GL comptes as PDF
+ */
+
+include_once('class_acc_account_ledger.php');
+include_once('ac_common.php');
+require_once('class_database.php');
+include_once('impress_inc.php');
+require_once('class_own.php');
+require_once('class_dossier.php');
+require_once('class_user.php');
+
+header('Content-type: application/csv');
+header('Content-Disposition: attachment;filename="gl_comptes.csv"',FALSE);
+header('Pragma: public');
+
+
+$gDossier=dossier::id();
+
+/* Security */
+$cn=new Database($gDossier);
+
+
+extract($_GET);
+
+if ( isset($poste_id) && strlen(trim($poste_id)) != 0 && isNumber($poste_id) )
+{
+ if ( isset ($poste_fille) )
+ {
+ $parent=$poste_id;
+ $a_poste=$cn->get_array("select pcm_val from tmp_pcmn where
pcm_val::text like '$parent%' order by pcm_val::text");
+ }
+ elseif ( $cn->count_sql('select * from tmp_pcmn where
pcm_val='.FormatString($poste_id)) != 0 )
+ {
+ $a_poste=array('pcm_val' => $poste_id);
+ }
+}
+else
+{
+ $sql="select pcm_val from tmp_pcmn ";
+ if ($from_poste != '')
+ {
+ $cond_poste = ' where ';
+ $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste).'\')';
+ }
+
+ if ( $to_poste != '')
+ {
+ if ( $cond_poste == '')
+ {
+ $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($to_poste).'\')';
+ }
+ else
+ {
+ $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($to_poste).'\')';
+ }
+ }
+
+ $sql=$sql.$cond_poste.' order by pcm_val::text';
+ $a_poste=$cn->get_array($sql);
+
+}
+
+if ( count($a_poste) == 0 )
+{
+ echo 'Rien à rapporter.';
+ printf("\n");
+ exit;
+}
+
+// Header
+$header = array( "Date", "Référence", "Libellé", "Pièce", "Débit", "Crédit",
"Solde" );
+
+$l=(isset($_GET['letter']))?2:0;
+$s=(isset($_REQUEST['solded']))?1:0;
+
+foreach ($a_poste as $poste)
+{
+
+
+ $Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
+
+ $array1=$Poste->get_row_date($from_periode,$to_periode,$l,$s);
+ // don't print empty account
+ if ( count($array1) == 0 )
+ {
+ continue;
+ }
+ $array=$array1[0];
+ $tot_deb=$array1[1];
+ $tot_cred=$array1[2];
+
+ // don't print empty account
+ if ( count($array) == 0 )
+ {
+ continue;
+ }
+
+ echo sprintf("%s - %s ",$Poste->id,$Poste->get_name());
+ printf("\n");
+
+ for($i=0;$i<count($header);$i++)
+ echo $header[$i].";";
+ printf("\n");
+
+ $solde = 0.0;
+ $solde_d = 0.0;
+ $solde_c = 0.0;
+
+ foreach ($Poste->row as $detail)
+ {
+
+ /*
+ [0] => 1 [jr_id] => 1
+ [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
+ [2] => 2009-02-01 [j_date] => 2009-02-01
+ [3] => 0 [deb_montant] => 0
+ [4] => 12211.9100 [cred_montant] => 12211.9100
+ [5] => Ecriture douverture [description] => Ecriture douverture
+ [6] => Opération Diverses [jrn_name] => Opération Diverses
+ [7] => f [j_debit] => f
+ [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
+ [9] => ODS1 [jr_pj_number] => ODS1 ) 1
+ */
+
+ if ($detail['cred_montant'] > 0)
+ {
+ $solde += $detail['cred_montant'];
+ $solde_c += $detail['cred_montant'];
+ }
+ if ($detail['deb_montant'] > 0)
+ {
+ $solde -= $detail['deb_montant'];
+ $solde_d += $detail['deb_montant'];
+ }
+
+ echo $detail['j_date_fmt'].";";
+ echo $detail['jr_internal'].";";
+ echo $detail['description'].";";
+ echo $detail['jr_pj_number'].";";
+ echo ($detail['deb_montant'] > 0 ? nb($detail['deb_montant']) :
'').";";
+ echo ($detail['cred_montant'] > 0 ? nb($detail['cred_montant']) :
'').";";
+ echo nb($solde).";";
+ printf("\n");
+
+ }
+
+
+ echo ";";
+ echo ";";
+ echo ";";
+ echo 'Total du compte '.$Poste->id.";";
+ echo ($solde_d > 0 ? nb($solde_d) : '').";";
+ echo ($solde_c > 0 ? nb( $solde_c) : '').";";
+ echo nb(abs($solde_c-$solde_d)).";";
+ echo ($solde_c > $solde_d ? 'C' : 'D').";";
+ printf("\n");
+ printf("\n");
+}
+
+exit;
+
+?>
Deleted: phpcompta/branches/rel560/include/export_gl_pdf.php
===================================================================
--- phpcompta/trunk/include/export_gl_pdf.php 2011-05-24 20:24:49 UTC (rev
4127)
+++ phpcompta/branches/rel560/include/export_gl_pdf.php 2011-05-25 20:16:37 UTC
(rev 4130)
@@ -1,196 +0,0 @@
-<?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 address@hidden
-// $Revision$
-
-/*! \file
- * \brief create GL comptes as PDF
- */
-
-include_once('class_acc_account_ledger.php');
-include_once('ac_common.php');
-require_once('class_database.php');
-include_once('impress_inc.php');
-require_once('class_own.php');
-require_once('class_dossier.php');
-require_once('class_user.php');
-require_once('class_pdf.php');
-
-
-$gDossier=dossier::id();
-
-/* Security */
-$cn=new Database($gDossier);
-$User=new User($cn);
-$User->Check();
-$User->check_dossier($gDossier);
-$User->can_request(IMPBIL,0);
-
-extract($_GET);
-if ($from_poste != '')
- {
- $cond_poste = ' where ';
- $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste).'\')';
- }
-
-if ( $to_poste->value != '')
- {
- if ( $cond_poste == '')
- {
- $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($from_poste).'\')';
- }
- else
- {
- $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($from_poste).'\')';
- }
- }
-
-$sql=$sql.$cond_poste.' order by pcm_val::text';
-$a_poste=$cn->get_array($sql);
-
-$pdf = new PDF($cn);
-$pdf->setDossierInfo(" Periode : ".$from_periode." - ".$to_periode);
-$pdf->AliasNbPages();
-$pdf->AddPage();
-
-
-if ( count($a_poste) == 0 )
-{
- $pdf->Output();
- return;
-}
-
-// Header
-$header = array( "Date", "Référence", "Libellé", "Pièce","Let", "Débit",
"Crédit", "Solde" );
-// Left or Right aligned
-$lor = array( "L" , "L" , "L" , "L" , "R", "R" , "R"
, "R" );
-// Column widths (in mm)
-$width = array( 13 , 20 , 60 , 15 , 12 , 20 ,
20 , 20 );
-$l=(isset($_REQUEST['letter']))?1:0;
-
-foreach ($a_poste as $poste)
-{
-
- $Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
-
-
list($array,$tot_deb,$tot_cred)=$Poste->get_row_date($from_periode,$to_periode,$l);
-
- // don't print empty account
- if ( count($array) == 0 )
- {
- continue;
- }
-
- $pdf->SetFont('DejaVuCond','',10);
- $Libelle=sprintf("%s - %s ",$Poste->id,$Poste->get_name());
- $pdf->Cell(0, 7, $Libelle, 1, 1, 'C');
-
- $pdf->SetFont('DejaVuCond','',6);
- for($i=0;$i<count($header);$i++)
- $pdf->Cell($width[$i], 4, $header[$i], 0, 0, $lor[$i]);
- $pdf->Ln();
-
- $pdf->SetFont('DejaVuCond','',7);
-
-
- $solde = 0.0;
- $solde_d = 0.0;
- $solde_c = 0.0;
-
- foreach ($Poste->row as $detail)
- {
-
- /*
- [0] => 1 [jr_id] => 1
- [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
- [2] => 2009-02-01 [j_date] => 2009-02-01
- [3] => 0 [deb_montant] => 0
- [4] => 12211.9100 [cred_montant] => 12211.9100
- [5] => Ecriture douverture [description] => Ecriture douverture
- [6] => Opération Diverses [jrn_name] => Opération Diverses
- [7] => f [j_debit] => f
- [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
- [9] => ODS1 [jr_pj_number] => ODS1 ) 1
- */
-
- if ($detail['cred_montant'] > 0)
- {
- $solde += $detail['cred_montant'];
- $solde_c += $detail['cred_montant'];
- }
- if ($detail['deb_montant'] > 0)
- {
- $solde -= $detail['deb_montant'];
- $solde_d += $detail['deb_montant'];
- }
-
- $i = 0;
-
- $pdf->Cell($width[$i], 6, shrink_date($detail['j_date_fmt']), 0, 0,
$lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, $detail['jr_internal'], 0, 0, $lor[$i]);
- $i++;
- /* limit set to 20 for the substring */
- $pdf->Cell($width[$i], 6, substr($detail['description'],0,42), 0, 0,
$lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, $detail['jr_pj_number'], 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6,
($detail['letter']!=-1)?$detail['letter']:'', 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, ($detail['deb_montant'] > 0 ? nbm(
$detail['deb_montant']) : ''), 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, ($detail['cred_montant'] > 0 ? nbm(
$detail['cred_montant']) : ''), 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, nbm( $solde), 0, 0, $lor[$i]);
- $i++;
- $pdf->Ln();
-
- }
-
-
- $pdf->SetFont('DejaVuCond','B',8);
-
- $i = 0;
- $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, 'Total du compte '.$Poste->id, 0, 0, 'R');
- $i++;
- $pdf->Cell($width[$i], 6, ($solde_d > 0 ? nbm($solde_d) : ''), 0, 0,
$lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, ($solde_c > 0 ? nbm( $solde_c) : ''), 0, 0,
$lor[$i]);
- $i++;
- $pdf->Cell($width[$i], 6, nbm(abs($solde_c-$solde_d)), 0, 0, $lor[$i]);
- $i++;
- $pdf->Cell(5, 6, ($solde_c > $solde_d ? 'C' : 'D'), 0, 0, 'L');
-
- $pdf->Ln();
- $pdf->Ln();
-
-}
-//Save PDF to file
-$pdf->Output("gl_comptes.pdf", 'I');
-exit;
-?>
Copied: phpcompta/branches/rel560/include/export_gl_pdf.php (from rev 4129,
phpcompta/trunk/include/export_gl_pdf.php)
===================================================================
--- phpcompta/branches/rel560/include/export_gl_pdf.php
(rev 0)
+++ phpcompta/branches/rel560/include/export_gl_pdf.php 2011-05-25 20:16:37 UTC
(rev 4130)
@@ -0,0 +1,202 @@
+<?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 address@hidden
+// $Revision$
+
+/*! \file
+ * \brief create GL comptes as PDF
+ */
+
+include_once('class_acc_account_ledger.php');
+include_once('ac_common.php');
+require_once('class_database.php');
+include_once('impress_inc.php');
+require_once('class_own.php');
+require_once('class_dossier.php');
+require_once('class_user.php');
+require_once('class_pdf.php');
+
+
+$gDossier=dossier::id();
+
+/* Security */
+$cn=new Database($gDossier);
+$User=new User($cn);
+$User->Check();
+$User->check_dossier($gDossier);
+$User->can_request(IMPBIL,0);
+
+$sql="select pcm_val from tmp_pcmn ";
+
+extract($_GET);
+if ($from_poste != '')
+ {
+ $cond_poste = ' where ';
+ $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste).'\')';
+ }
+
+if ( $to_poste != '')
+ {
+ if ( $cond_poste == '')
+ {
+ $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($to_poste).'\')';
+ }
+ else
+ {
+ $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($to_poste).'\')';
+ }
+ }
+
+$sql=$sql.$cond_poste.' order by pcm_val::text';
+$a_poste=$cn->get_array($sql);
+
+$pdf = new PDF($cn);
+$pdf->setDossierInfo(" Periode : ".$from_periode." - ".$to_periode);
+$pdf->AliasNbPages();
+$pdf->AddPage();
+
+
+if ( count($a_poste) == 0 )
+{
+ $pdf->Output();
+ return;
+}
+
+// Header
+$header = array( "Date", "Référence", "Libellé", "Pièce","Let", "Débit",
"Crédit", "Solde" );
+// Left or Right aligned
+$lor = array( "L" , "L" , "L" , "L" , "R", "R" , "R"
, "R" );
+// Column widths (in mm)
+$width = array( 13 , 20 , 60 , 15 , 12 , 20 ,
20 , 20 );
+$l=(isset($_REQUEST['letter']))?2:0;
+$s=(isset($_REQUEST['solded']))?1:0;
+
+foreach ($a_poste as $poste)
+{
+
+ $Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
+
+
+ $array1=$Poste->get_row_date($from_periode,$to_periode,$l,$s);
+ // don't print empty account
+ if ( count($array1) == 0 )
+ {
+ continue;
+ }
+ $array=$array1[0];
+ $tot_deb=$array1[1];
+ $tot_cred=$array1[2];
+
+ $pdf->SetFont('DejaVuCond','',10);
+ $Libelle=sprintf("%s - %s ",$Poste->id,$Poste->get_name());
+ $pdf->Cell(0, 7, $Libelle, 1, 1, 'C');
+
+ $pdf->SetFont('DejaVuCond','',6);
+ for($i=0;$i<count($header);$i++)
+ $pdf->Cell($width[$i], 4, $header[$i], 0, 0, $lor[$i]);
+ $pdf->Ln();
+
+ $pdf->SetFont('DejaVuCond','',7);
+
+
+ $solde = 0.0;
+ $solde_d = 0.0;
+ $solde_c = 0.0;
+
+ foreach ($Poste->row as $detail)
+ {
+
+ /*
+ [0] => 1 [jr_id] => 1
+ [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
+ [2] => 2009-02-01 [j_date] => 2009-02-01
+ [3] => 0 [deb_montant] => 0
+ [4] => 12211.9100 [cred_montant] => 12211.9100
+ [5] => Ecriture douverture [description] => Ecriture douverture
+ [6] => Opération Diverses [jrn_name] => Opération Diverses
+ [7] => f [j_debit] => f
+ [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
+ [9] => ODS1 [jr_pj_number] => ODS1 ) 1
+ */
+
+ if ($detail['cred_montant'] > 0)
+ {
+ $solde += $detail['cred_montant'];
+ $solde_c += $detail['cred_montant'];
+ }
+ if ($detail['deb_montant'] > 0)
+ {
+ $solde -= $detail['deb_montant'];
+ $solde_d += $detail['deb_montant'];
+ }
+
+ $i = 0;
+
+ $pdf->Cell($width[$i], 6, shrink_date($detail['j_date_fmt']), 0, 0,
$lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, $detail['jr_internal'], 0, 0, $lor[$i]);
+ $i++;
+ /* limit set to 20 for the substring */
+ $pdf->Cell($width[$i], 6, substr($detail['description'],0,42), 0, 0,
$lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, $detail['jr_pj_number'], 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6,
($detail['letter']!=-1)?$detail['letter']:'', 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, ($detail['deb_montant'] > 0 ? nbm(
$detail['deb_montant']) : ''), 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, ($detail['cred_montant'] > 0 ? nbm(
$detail['cred_montant']) : ''), 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, nbm( $solde), 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Ln();
+
+ }
+
+
+ $pdf->SetFont('DejaVuCond','B',8);
+
+ $i = 0;
+ $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, '', 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, 'Total du compte '.$Poste->id, 0, 0, 'R');
+ $i++;
+ $pdf->Cell($width[$i], 6, ($solde_d > 0 ? nbm($solde_d) : ''), 0, 0,
$lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, ($solde_c > 0 ? nbm( $solde_c) : ''), 0, 0,
$lor[$i]);
+ $i++;
+ $pdf->Cell($width[$i], 6, nbm(abs($solde_c-$solde_d)), 0, 0, $lor[$i]);
+ $i++;
+ $pdf->Cell(5, 6, ($solde_c > $solde_d ? 'C' : 'D'), 0, 0, 'L');
+
+ $pdf->Ln();
+ $pdf->Ln();
+
+}
+//Save PDF to file
+$pdf->Output("gl_comptes.pdf", 'I');
+exit;
+?>
Deleted: phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
===================================================================
--- phpcompta/trunk/include/impress_gl_comptes.inc.php 2011-05-24 20:24:49 UTC
(rev 4127)
+++ phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
2011-05-25 20:16:37 UTC (rev 4130)
@@ -1,233 +0,0 @@
-<?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
-*/
-/* $Revision$ */
-// Copyright Author Dany De Bontridder address@hidden
-require_once("class_ispan.php");
-require_once("class_icard.php");
-require_once("class_iselect.php");
-require_once("class_icheckbox.php");
-require_once('class_acc_operation.php');
-/*! \file
- * \brief Print account (html or pdf)
- * file included from user_impress
- *
- * some variable are already defined $cn, $User ...
- *
- */
-//-----------------------------------------------------
-// Show the jrn and date
-//-----------------------------------------------------
-require_once('class_database.php');
-
-//-----------------------------------------------------
-// Form
-//-----------------------------------------------------
-echo '<div class="content">';
-
-echo '<FORM action="?" METHOD="GET">';
-echo HtmlInput::hidden('p_action','impress');
-echo HtmlInput::hidden('type','gl_comptes');
-echo dossier::hidden();
-echo '<TABLE><TR>';
-
-$cn=new Database(dossier::id());
-$periode=new Periode($cn);
-$a=$periode->get_limit($User->get_exercice());
-// $a is an array
-$first_day=$a[0]->first_day();
-$last_day=$a[1]->last_day();
-
-// filter on period
-$date_from=new IDate('from_periode');
-$date_to=new IDate('to_periode');
-$year=$User->get_exercice();
-$date_from->value=(isset($_REQUEST['from_periode']))?$_REQUEST['from_periode']:$first_day;
-$date_to->value=(isset($_REQUEST['to_periode']))?$_REQUEST['to_periode']:$last_day;
-echo td(_('Depuis').$date_from->input());
-echo td(_('Jusque ').$date_to->input());
-
-$letter=new ICheck('letter');
-$letter->selected=(isset($_REQUEST['letter']))?true:false;
-
-$from_poste=new IPoste('from_poste');
-$from_poste->value=HtmlInput::default_value('from_poste','',$_REQUEST);
-
-$to_poste=new IPoste('to_poste');
-$to_poste->value=HtmlInput::default_value('to_poste','',$_REQUEST);
-
-echo '<tr>';
-echo td.(_('Depuis le
poste')).td($from_poste->input()).td($from_poste->dsp_button());
-echo '</tr>';
-
-echo '<tr>';
-echo td.(_("Jusqu'au
poste")).td($to_poste->input()).td($to_poste->dsp_button());
-echo '</tr>';
-
-echo '<tr>';
-echo td('Uniquement les comptes non lettrés');
-echo td($letter->input());
-echo '</tr>';
-//
-echo '</TABLE>';
-print HtmlInput::submit('bt_html','Visualisation');
-
-echo '</FORM>';
-echo '<hr>';
-echo '</div>';
-
-//-----------------------------------------------------
-// If print is asked
-// First time in html
-// after in pdf or cvs
-//-----------------------------------------------------
-if ( isset( $_REQUEST['bt_html'] ) )
-{
- require_once("class_acc_account_ledger.php");
- echo Acc_Account_Ledger::HtmlTableHeader("gl_comptes");
- $sql='select pcm_val from tmp_pcmn ';
- $cond_poste='';
-
- if ($from_poste->value != '')
- {
- $cond_poste = ' where ';
- $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste->value).'\')';
- }
-
- if ( $to_poste->value != '')
- {
- if ( $cond_poste == '')
- {
- $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($from_poste->value).'\')';
- }
- else
- {
- $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($from_poste->value).'\')';
- }
- }
-
- $sql=$sql.$cond_poste.' order by pcm_val::text';
- $a_poste=$cn->get_array($sql);
-
- if ( sizeof($a_poste) == 0 )
- {
- die("Nothing here. Strange.");
- exit;
- }
- if ( isDate($_REQUEST['from_periode'])==null ||
isDate($_REQUEST['to_periode'])==null)
- {
- echo alert('Date malformée, désolée');
- exit();
- }
- echo '<div class="content">';
-
-
- echo '<table class="result">';
-
- foreach ($a_poste as $poste_id )
- {
- $Poste=new Acc_Account_Ledger ($cn, $poste_id['pcm_val']);
- $Poste->load();
- $l=(isset($_REQUEST['letter']))?1:0;
- $Poste->get_row_date( $_GET['from_periode'], $_GET['to_periode'],$l);
- if ( empty($Poste->row))
- {
- continue;
- }
-
- echo '<tr>
- <td colspan="8">
- <h2 class="info">'. $poste_id['pcm_val'].' '.h($Poste->label).'</h2>
- </td>
- </tr>';
-
- echo '<tr>
- <td>Date</td>
- <td>Référence</td>
- <td>Libellé</td>
- <td>Pièce</td>
- <td align="right">Débit</td>
- <td align="right">Crédit</td>
- <td align="right">Solde</td>
- <td align="right">Let.</td>
- </tr>';
-
- $solde = 0.0;
- $solde_d = 0.0;
- $solde_c = 0.0;
- bcscale(2);
- foreach ($Poste->row as $detail)
- {
- if ($a==0) {var_dump($detail);$a=1;}
- /*
- [0] => 1 [jr_id] => 1
- [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
- [2] => 2009-02-01 [j_date] => 2009-02-01
- [3] => 0 [deb_montant] => 0
- [4] => 12211.9100 [cred_montant] => 12211.9100
- [5] => Ecriture douverture [description] => Ecriture
douverture
- [6] => Opération Diverses [jrn_name] => Opération Diverses
- [7] => f [j_debit] => f
- [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
- [9] => ODS1 [jr_pj_number] => ODS1 ) 1
- */
-
- if ($detail['cred_montant'] > 0)
- {
- $solde=bcadd($solde, $detail['cred_montant']);
- $solde_c=bcadd($solde_c,$detail['cred_montant']);
- }
- if ($detail['deb_montant'] > 0)
- {
- $solde = bcsub($solde,$detail['deb_montant']);
- $solde_d = bcadd($solde_d,$detail['deb_montant']);
- }
- $letter=($detail['letter']!=-1)?hi($detail['letter']):'';
- echo '<tr>
- <td>'.$detail['j_date_fmt'].'</td>
-
<td>'.HtmlInput::detail_op($detail['jr_id'],$detail['jr_internal']).'</td>
- <td>'.$detail['description'].'</td>
- <td>'.$detail['jr_pj_number'].'</td>
- <td align="right">'.($detail['deb_montant'] > 0 ?
nbm($detail['deb_montant']) : '').'</td>
- <td align="right">'.($detail['cred_montant'] > 0 ?
nbm($detail['cred_montant']) : '').'</td>
- <td align="right">'.nbm($solde).'</td>
- <td style="text-align:right;color:red">'.$letter.'</td>
- </tr>';
- }
- echo '<tr>
- <td>'.''.'</td>
- <td>'.''.'</td>
- <td>'.'<b>'.'Total du compte '.$poste_id['pcm_val'].'</b>'.'</td>
- <td>'.''.'</td>
- <td align="right">'.'<b>'.($solde_d > 0 ? nbm( $solde_d) :
'').'</b>'.'</td>
- <td align="right">'.'<b>'.($solde_c > 0 ? nbm( $solde_c) :
'').'</b>'.'</td>
- <td align="right">'.'<b>'.nbm( abs($solde_c-$solde_d)).'</b>'.'</td>
- <td>';
- if ($solde_c > $solde_d ) echo "Crédit";
- if ($solde_c < $solde_d ) echo "Débit";
- if ($solde_c == $solde_d ) echo "=";
-
- echo '</td>'.
- '</tr>';
- }
- echo '</table>';
- echo Acc_Account_Ledger::HtmlTableHeader("gl_comptes");
- echo "</div>";
- exit;
-}
-?>
Copied: phpcompta/branches/rel560/include/impress_gl_comptes.inc.php (from rev
4129, phpcompta/trunk/include/impress_gl_comptes.inc.php)
===================================================================
--- phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
(rev 0)
+++ phpcompta/branches/rel560/include/impress_gl_comptes.inc.php
2011-05-25 20:16:37 UTC (rev 4130)
@@ -0,0 +1,249 @@
+<?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
+*/
+/* $Revision$ */
+// Copyright Author Dany De Bontridder address@hidden
+require_once("class_ispan.php");
+require_once("class_icard.php");
+require_once("class_iselect.php");
+require_once("class_icheckbox.php");
+require_once('class_acc_operation.php');
+/*! \file
+ * \brief Print account (html or pdf)
+ * file included from user_impress
+ *
+ * some variable are already defined $cn, $User ...
+ *
+ */
+//-----------------------------------------------------
+// Show the jrn and date
+//-----------------------------------------------------
+require_once('class_database.php');
+
+//-----------------------------------------------------
+// Form
+//-----------------------------------------------------
+echo '<div class="content">';
+
+echo '<FORM action="?" METHOD="GET">';
+echo HtmlInput::hidden('p_action','impress');
+echo HtmlInput::hidden('type','gl_comptes');
+echo dossier::hidden();
+echo '<TABLE><TR>';
+
+$cn=new Database(dossier::id());
+$periode=new Periode($cn);
+$a=$periode->get_limit($User->get_exercice());
+// $a is an array
+$first_day=$a[0]->first_day();
+$last_day=$a[1]->last_day();
+
+// filter on period
+$date_from=new IDate('from_periode');
+$date_to=new IDate('to_periode');
+$year=$User->get_exercice();
+$date_from->value=(isset($_REQUEST['from_periode'])&&
isDate($_REQUEST['from_periode'])!=0)?$_REQUEST['from_periode']:$first_day;
+$date_to->value=(isset($_REQUEST['to_periode']) &&
isDate($_REQUEST['to_periode']) !=0 )?$_REQUEST['to_periode']:$last_day;
+echo td(_('Depuis').$date_from->input());
+echo td(_('Jusque ').$date_to->input());
+
+$letter=new ICheckbox('letter');
+$letter->selected=(isset($_REQUEST['letter']))?true:false;
+
+$from_poste=new IPoste('from_poste');
+$from_poste->value=HtmlInput::default_value('from_poste','',$_REQUEST);
+$from_poste->set_attribute('account','from_poste');
+
+$to_poste=new IPoste('to_poste');
+$to_poste->value=HtmlInput::default_value('to_poste','',$_REQUEST);
+$to_poste->set_attribute('account','to_poste');
+
+$solded=new ICheckbox('solded');
+$solded->selected=(isset($_REQUEST['solded']))?true:false;
+
+echo '<tr>';
+echo td(_('Depuis le poste')).td($from_poste->input());
+echo '</tr>';
+
+echo '<tr>';
+echo td(_("Jusqu'au poste")).td($to_poste->input());
+echo '</tr>';
+
+echo '<tr>';
+echo td('Uniquement les opérations non lettrées');
+echo td($letter->input());
+echo '</tr>';
+
+echo '<tr>';
+echo td('Uniquement les comptes non soldés');
+echo td($solded->input());
+echo '</tr>';
+
+
+//
+echo '</TABLE>';
+print HtmlInput::submit('bt_html','Visualisation');
+
+echo '</FORM>';
+echo '<hr>';
+echo '</div>';
+
+//-----------------------------------------------------
+// If print is asked
+// First time in html
+// after in pdf or cvs
+//-----------------------------------------------------
+if ( isset( $_REQUEST['bt_html'] ) )
+{
+ require_once("class_acc_account_ledger.php");
+ echo Acc_Account_Ledger::HtmlTableHeader("gl_comptes");
+ $sql='select pcm_val from tmp_pcmn ';
+ $cond_poste='';
+
+ if ($from_poste->value != '')
+ {
+ $cond_poste = ' where ';
+ $cond_poste .=' pcm_val >= upper
(\''.Database::escape_string($from_poste->value).'\')';
+ }
+
+ if ( $to_poste->value != '')
+ {
+ if ( $cond_poste == '')
+ {
+ $cond_poste = ' where pcm_val <= upper
(\''.Database::escape_string($to_poste->value).'\')';
+ }
+ else
+ {
+ $cond_poste.=' and pcm_val <= upper
(\''.Database::escape_string($to_poste->value).'\')';
+ }
+ }
+
+ $sql=$sql.$cond_poste.' order by pcm_val::text';
+
+ $a_poste=$cn->get_array($sql);
+
+ if ( sizeof($a_poste) == 0 )
+ {
+ die("Nothing here. Strange.");
+ exit;
+ }
+ if ( isDate($_REQUEST['from_periode'])==null ||
isDate($_REQUEST['to_periode'])==null)
+ {
+ echo alert('Date malformée, désolée');
+ exit();
+ }
+ echo '<div class="content">';
+
+
+ echo '<table class="result">';
+ $l=(isset($_REQUEST['letter']))?2:0;
+ $s=(isset($_REQUEST['solded']))?1:0;
+
+ foreach ($a_poste as $poste_id )
+ {
+ $Poste=new Acc_Account_Ledger ($cn, $poste_id['pcm_val']);
+ $Poste->load();
+
+
+ $Poste->get_row_date( $_GET['from_periode'],
$_GET['to_periode'],$l,$s);
+ if ( empty($Poste->row))
+ {
+ continue;
+ }
+
+ echo '<tr>
+ <td colspan="8">
+ <h2 class="info">'. $poste_id['pcm_val'].' '.h($Poste->label).'</h2>
+ </td>
+ </tr>';
+
+ echo '<tr>
+ <td>Date</td>
+ <td>Référence</td>
+ <td>Libellé</td>
+ <td>Pièce</td>
+ <td align="right">Débit</td>
+ <td align="right">Crédit</td>
+ <td align="right">Solde</td>
+ <td align="right">Let.</td>
+ </tr>';
+
+ $solde = 0.0;
+ $solde_d = 0.0;
+ $solde_c = 0.0;
+ bcscale(2);
+ foreach ($Poste->row as $detail)
+ {
+ if ($a==0) {var_dump($detail);$a=1;}
+ /*
+ [0] => 1 [jr_id] => 1
+ [1] => 01.02.2009 [j_date_fmt] => 01.02.2009
+ [2] => 2009-02-01 [j_date] => 2009-02-01
+ [3] => 0 [deb_montant] => 0
+ [4] => 12211.9100 [cred_montant] => 12211.9100
+ [5] => Ecriture douverture [description] => Ecriture
douverture
+ [6] => Opération Diverses [jrn_name] => Opération Diverses
+ [7] => f [j_debit] => f
+ [8] => 17OD-01-1 [jr_internal] => 17OD-01-1
+ [9] => ODS1 [jr_pj_number] => ODS1 ) 1
+ */
+
+ if ($detail['cred_montant'] > 0)
+ {
+ $solde=bcadd($solde, $detail['cred_montant']);
+ $solde_c=bcadd($solde_c,$detail['cred_montant']);
+ }
+ if ($detail['deb_montant'] > 0)
+ {
+ $solde = bcsub($solde,$detail['deb_montant']);
+ $solde_d = bcadd($solde_d,$detail['deb_montant']);
+ }
+ $letter=($detail['letter']!=-1)?hi($detail['letter']):'';
+ echo '<tr>
+ <td>'.$detail['j_date_fmt'].'</td>
+
<td>'.HtmlInput::detail_op($detail['jr_id'],$detail['jr_internal']).'</td>
+ <td>'.$detail['description'].'</td>
+ <td>'.$detail['jr_pj_number'].'</td>
+ <td align="right">'.($detail['deb_montant'] > 0 ?
nbm($detail['deb_montant']) : '').'</td>
+ <td align="right">'.($detail['cred_montant'] > 0 ?
nbm($detail['cred_montant']) : '').'</td>
+ <td align="right">'.nbm($solde).'</td>
+ <td style="text-align:right;color:red">'.$letter.'</td>
+ </tr>';
+ }
+ echo '<tr>
+ <td>'.''.'</td>
+ <td>'.''.'</td>
+ <td>'.'<b>'.'Total du compte '.$poste_id['pcm_val'].'</b>'.'</td>
+ <td>'.''.'</td>
+ <td align="right">'.'<b>'.($solde_d > 0 ? nbm( $solde_d) :
'').'</b>'.'</td>
+ <td align="right">'.'<b>'.($solde_c > 0 ? nbm( $solde_c) :
'').'</b>'.'</td>
+ <td align="right">'.'<b>'.nbm( abs($solde_c-$solde_d)).'</b>'.'</td>
+ <td>';
+ if ($solde_c > $solde_d ) echo "Crédit";
+ if ($solde_c < $solde_d ) echo "Débit";
+ if ($solde_c == $solde_d ) echo "=";
+
+ echo '</td>'.
+ '</tr>';
+ }
+ echo '</table>';
+ echo Acc_Account_Ledger::HtmlTableHeader("gl_comptes");
+ echo "</div>";
+ exit;
+}
+?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpcompta-dev] r4130 - in phpcompta/branches: . rel560/include,
phpcompta-dev <=