svn+ssh://ns352270.ovh.net/svn/phpcompta/tags/rel600 ........ r4743 | danydb | 2012-02-04 16:18:09 +0100 (Sat, 04 Feb 2012) | 1 line update DBVersion ........ r4744 | danydb | 2012-02-04 16:22:52 +0100 (Sat, 04 Feb 2012) | 1 line remove space ........ r4745 | danydb | 2012-02-04 16:44:10 +0100 (Sat, 04 Feb 2012) | 3 lines Bug : clause from in report didn't work properly ........ r4746 | danydb | 2012-02-04 18:39:58 +0100 (Sat, 04 Feb 2012) | 1 line sql improve : do not use comptaproc. function in select concerning lettering ........ r4747 | danydb | 2012-02-04 18:45:55 +0100 (Sat, 04 Feb 2012) | 1 line put correct DBVERSION ........ r4748 | danydb | 2012-02-04 18:47:00 +0100 (Sat, 04 Feb 2012) | 1 line remove useless patch ........ r4759 | danydb | 2012-02-04 23:19:55 +0100 (Sat, 04 Feb 2012) | 2 lines Bug : remove double input in letter_deb, letter_cred ........ r4760 | danydb | 2012-02-04 23:35:13 +0100 (Sat, 04 Feb 2012) | 2 lines Upgrade script ........ r4761 | danydb | 2012-02-07 16:50:24 +0100 (Tue, 07 Feb 2012) | 1 line FIN : cosmetic show name of the card + align col. ........ r4762 | danydb | 2012-02-07 18:50:55 +0100 (Tue, 07 Feb 2012) | 1 line FIN : add item , new column card name, change func for adding row ........ r4763 | danydb | 2012-02-08 17:49:44 +0100 (Wed, 08 Feb 2012) | 1 line Improve : generate document : default argument is an array ........ r4764 | danydb | 2012-02-08 19:15:50 +0100 (Wed, 08 Feb 2012) | 2 lines Correct probleme with date in calc ........ r4765 | danydb | 2012-02-08 19:47:08 +0100 (Wed, 08 Feb 2012) | 3 lines Correct probleme with date in other document than CALC New tag : DATE_CALC ........ r4766 | danydb | 2012-02-08 20:00:18 +0100 (Wed, 08 Feb 2012) | 2 lines Double click on accounting gives the history of the accounting ........ r4767 | danydb | 2012-02-09 10:20:29 +0100 (Thu, 09 Feb 2012) | 1 line Improve : generate document :add DATE_LIMIT_CALC to allow date formatting in calc ........ r4768 | danydb | 2012-02-09 13:47:45 +0100 (Thu, 09 Feb 2012) | 2 lines cosmetic : place of "Document generated ........ r4769 | danydb | 2012-02-09 14:02:13 +0100 (Thu, 09 Feb 2012) | 2 lines cosmetic : ACH generated document use style instead of class ........ r4770 | danydb | 2012-02-09 14:09:58 +0100 (Thu, 09 Feb 2012) | 1 line code indent ........ r4771 | danydb | 2012-02-17 01:13:36 +0100 (Fri, 17 Feb 2012) | 1 line bug cannot update ANC (cause j_id and value from POST conflict) ........ r4772 | danydb | 2012-02-17 01:16:34 +0100 (Fri, 17 Feb 2012) | 1 line do not clause popup if we save ........ r4773 | danydb | 2012-02-17 01:26:16 +0100 (Fri, 17 Feb 2012) | 1 line ANC : great ledger oa_date problem (order by clause) ........ r4774 | danydb | 2012-02-20 09:24:08 +0100 (Mon, 20 Feb 2012) | 2 lines 0000525: Le contrôle des montants analytiques d'une écriture à plusieurs ligne (ex: salaires) en modification met tout en rouge ........ r4775 | danydb | 2012-02-25 14:47:13 +0100 (Sat, 25 Feb 2012) | 1 line 0000528: VEN_TVAC n'est pas correctement calculé ........ r4776 | danydb | 2012-02-25 14:59:43 +0100 (Sat, 25 Feb 2012) | 1 line VEN_ART_PRICE = 0 alors return "" ........ r4777 | danydb | 2012-02-25 15:14:55 +0100 (Sat, 25 Feb 2012) | 2 lines Order by document.dt_value ........ r4778 | danydb | 2012-02-25 15:15:13 +0100 (Sat, 25 Feb 2012) | 2 lines Order by document.dt_value ........ r4779 | danydb | 2012-02-25 15:18:12 +0100 (Sat, 25 Feb 2012) | 1 line constant.php for prod ........ r4780 | danydb | 2012-02-25 15:42:00 +0100 (Sat, 25 Feb 2012) | 1 line Bug with calendar ........ r4781 | danydb | 2012-02-25 15:48:43 +0100 (Sat, 25 Feb 2012) | 1 line 0000531: Tableau de bord : pense-bête ........ r4782 | danydb | 2012-03-14 17:16:38 +0100 (Wed, 14 Mar 2012) | 1 line 548 banquaire -> bancaire ........ r4783 | danydb | 2012-03-20 21:05:01 +0100 (Tue, 20 Mar 2012) | 1 line Warning if account used instead of a card in ACC_LEDGER ........ r4784 | danydb | 2012-03-21 11:41:25 +0100 (Wed, 21 Mar 2012) | 1 line 0000552: Pourcentage dans une fiche 4 décimales ........ r4786 | danydb | 2012-03-22 20:17:37 +0100 (Thu, 22 Mar 2012) | 1 line 0000557: Faire apparaître dans titre HTML le module courant ........ r4787 | danydb | 2012-03-22 20:35:42 +0100 (Thu, 22 Mar 2012) | 1 line 558 Agrandir zone document ........ r4788 | danydb | 2012-03-22 20:40:22 +0100 (Thu, 22 Mar 2012) | 1 line 558 Agrandir zone document : cosmetic background ........ r4789 | danydb | 2012-03-22 20:51:52 +0100 (Thu, 22 Mar 2012) | 1 line 558 Agrandir zone document : cosmetic background ........ r4790 | danydb | 2012-03-22 20:54:18 +0100 (Thu, 22 Mar 2012) | 1 line Cosmetic ajout lien sous qcode client ........ r4791 | danydb | 2012-03-22 21:12:17 +0100 (Thu, 22 Mar 2012) | 1 line Cosmetic : alignement et taille détail opérations ........
267 lines
No EOL
8.3 KiB
PHP
267 lines
No EOL
8.3 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
|
|
*/
|
|
/* $Revision$ */
|
|
|
|
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
|
|
|
|
/*!\file
|
|
* \brief show the Grand Livre for analytic
|
|
*/
|
|
require_once('class_anc_print.php');
|
|
require_once 'class_impress.php';
|
|
|
|
class Anc_GrandLivre extends Anc_Print
|
|
{
|
|
function set_sql_filter()
|
|
{
|
|
$sql="";
|
|
$and=" and ";
|
|
if ( $this->from != "" )
|
|
{
|
|
$sql.="$and oa_date >= to_date('".$this->from."','DD.MM.YYYY')";
|
|
}
|
|
if ( $this->to != "" )
|
|
{
|
|
$sql.=" $and oa_date <= to_date('".$this->to."','DD.MM.YYYY')";
|
|
}
|
|
|
|
return $sql;
|
|
|
|
}
|
|
/*!
|
|
* \brief load the data from the database
|
|
*
|
|
* \return array
|
|
*/
|
|
function load()
|
|
{
|
|
$filter_date=$this->set_sql_filter();
|
|
$cond_poste='';
|
|
if ($this->from_poste != "" )
|
|
$cond_poste=" and upper(po_name) >= upper('".$this->from_poste."')";
|
|
if ($this->to_poste != "" )
|
|
$cond_poste.=" and upper(po_name) <= upper('".$this->to_poste."')";
|
|
$pa_id_cond="";
|
|
if ( isset ( $this->pa_id) && $this->pa_id !='')
|
|
$pa_id_cond= "pa_id=".$this->pa_id." and";
|
|
$array=$this->db->get_array(" select oa_id,
|
|
po_name,
|
|
oa_description,
|
|
po_description,
|
|
oa_debit,
|
|
to_char(oa_date,'DD.MM.YYYY') as oa_date,
|
|
oa_amount,
|
|
oa_group,
|
|
j_id ,
|
|
jr_internal,
|
|
jr_id,
|
|
jr_comment,
|
|
j_poste,
|
|
jrnx.f_id,
|
|
( select ad_value from fiche_Detail where f_id=jrnx.f_id and ad_id=23) as qcode
|
|
from operation_analytique as B join poste_analytique using(po_id)
|
|
left join jrnx using (j_id)
|
|
left join jrn on (j_grpt=jr_grpt_id)
|
|
where $pa_id_cond oa_amount <> 0.0 $cond_poste $filter_date
|
|
order by po_name,oa_date::date,qcode,j_poste");
|
|
|
|
return $array;
|
|
}
|
|
|
|
function load_csv()
|
|
{
|
|
$filter_date=$this->set_sql_filter();
|
|
$cond_poste='';
|
|
if ($this->from_poste != "" )
|
|
$cond_poste=" and upper(po_name) >= upper('".$this->from_poste."')";
|
|
if ($this->to_poste != "" )
|
|
$cond_poste.=" and upper(po_name) <= upper('".$this->to_poste."')";
|
|
$pa_id_cond="";
|
|
if ( isset ( $this->pa_id) && $this->pa_id !='')
|
|
$pa_id_cond= "pa_id=".$this->pa_id." and";
|
|
$array=$this->db->get_array(" select
|
|
po_name,
|
|
to_char(oa_date,'DD.MM.YYYY') as oa_date,
|
|
j_poste,
|
|
( select ad_value from fiche_Detail where f_id=jrnx.f_id and ad_id=23) as qcode,
|
|
jr_comment,
|
|
jr_internal,
|
|
case when oa_debit='t' then 'D' else 'C' end,
|
|
oa_amount
|
|
from operation_analytique as B join poste_analytique using(po_id)
|
|
left join jrnx using (j_id)
|
|
left join jrn on (j_grpt=jr_grpt_id)
|
|
where $pa_id_cond oa_amount <> 0.0 $cond_poste $filter_date
|
|
order by po_name,oa_date::date,qcode,j_poste");
|
|
|
|
|
|
return $array;
|
|
}
|
|
|
|
/*!
|
|
* \brief compute the html display
|
|
*
|
|
*
|
|
* \return string
|
|
*/
|
|
|
|
function display_html()
|
|
{
|
|
$r="";
|
|
//---Html
|
|
$array=$this->load();
|
|
if ( is_array($array) == false )
|
|
{
|
|
return $array;
|
|
|
|
}
|
|
|
|
if ( empty($array) )
|
|
{
|
|
$r.= _("aucune donnée");
|
|
return $r;
|
|
}
|
|
$r.= '<table class="result" style="width=100%">';
|
|
$ix=0;$prev='xx';
|
|
$tot_deb=$tot_cred=0;
|
|
foreach ( $array as $row )
|
|
{
|
|
if ($prev != $row['po_name'])
|
|
{
|
|
if ( $ix>0)
|
|
{
|
|
$r.='<tr>';
|
|
$tot_solde=bcsub($tot_cred,$tot_deb);
|
|
$sign=($tot_solde>0)?'C':'D';
|
|
$r.=td('').td('').td('').td('').td('').td(nbm($tot_deb),' class="num"').td(nbm($tot_cred),' class="num"').td(nbm($tot_solde).$sign,' class="num"');
|
|
}
|
|
$r.='<tr>'.'<td colspan="7" style="width:auto">'.'<h2>'.h($row['po_name'].' '.$row['po_description']).'</td></tr>';
|
|
$r.= '<tr>'.
|
|
'<th>'._('Date').'</th>'.
|
|
'<th>'._('Poste').'</th>'.
|
|
'<th>'._('Quick_code').'</th>'.
|
|
'<th>'._('libelle').'</th>'.
|
|
'<th>'._('Num.interne').'</th>'.
|
|
'<th style="text-align:right">'._('Debit').'</th>'.
|
|
'<th style="text-align:right">'._('Credit').'</th>'.
|
|
'</tr>';
|
|
|
|
$tot_deb=$tot_cred=0;
|
|
$prev=$row['po_name'];
|
|
$ix++;
|
|
}
|
|
|
|
$r.= '<tr>';
|
|
$detail=($row['jr_id'] != null)?HtmlInput::detail_op($row['jr_id'],$row['jr_internal']):'';
|
|
$post_detail=($row['j_poste'] != null)?HtmlInput::history_account($row['j_poste'],$row['j_poste']):'';
|
|
$card_detail=($row['f_id'] != null)?HtmlInput::history_card($row['f_id'],$row['qcode']):'';
|
|
$amount_deb=($row['oa_debit']=='t')?$row['oa_amount']:0;
|
|
$amount_cred=($row['oa_debit']=='f')?$row['oa_amount']:0;
|
|
$tot_deb=bcadd($tot_deb,$amount_deb);
|
|
$tot_cred=bcadd($tot_cred,$amount_cred);
|
|
|
|
$r.=
|
|
'<td>'.$row['oa_date'].'</td>'.
|
|
td($post_detail).
|
|
td($card_detail).
|
|
// '<td>'.h($row['oa_description']).'</td>'.
|
|
td($row['jr_comment']).
|
|
'<td>'.$detail.'</td>'.
|
|
'<td class="num">'.nbm($amount_deb).'</td>'.
|
|
'<td class="num">'.nbm($amount_cred)
|
|
.'</td>';
|
|
$r.= '</tr>';
|
|
}
|
|
$r.='<tr>';
|
|
$tot_solde=bcsub($tot_cred,$tot_deb);
|
|
$sign=($tot_solde>0)?'C':'D';
|
|
$r.=td('').td('').td('').td('').td('').td(nbm($tot_deb),' class="num"').td(nbm($tot_cred),' class="num"').td(nbm($tot_solde).$sign,' class="num"');
|
|
|
|
$r.= '</table>';
|
|
return $r;
|
|
}
|
|
/*!
|
|
* \brief Show the button to export in PDF or CSV
|
|
* \param $url_csv url of the csv
|
|
* \param $url_pdf url of the pdf
|
|
* \param $p_string hidden data to include in the form
|
|
*
|
|
*
|
|
* \return string with the button
|
|
*/
|
|
function show_button($p_string="")
|
|
{
|
|
$r="";
|
|
/* $r.= '<form method="GET" action="export.php" style="display:inline">';
|
|
$r.= $p_string;
|
|
$r.= dossier::hidden();
|
|
$r.= HtmlInput::hidden("to",$this->to);
|
|
$r.= HtmlInput::hidden("act","PDF:AncGrandLivre");
|
|
|
|
$r.= HtmlInput::hidden("from",$this->from);
|
|
$r.= HtmlInput::hidden("pa_id",$this->pa_id);
|
|
$r.= HtmlInput::hidden("from_poste",$this->from_poste);
|
|
$r.= HtmlInput::hidden("to_poste",$this->to_poste);
|
|
$r.=HtmlInput::submit('bt_pdf',"Export en PDF");
|
|
$r.= '</form>';
|
|
*/
|
|
$r.= '<form method="GET" action="export.php" style="display:inline">';
|
|
$r.= HtmlInput::hidden("act","CSV:AncGrandLivre");
|
|
$r.= HtmlInput::hidden("to",$this->to);
|
|
$r.= HtmlInput::hidden("from",$this->from);
|
|
$r.= HtmlInput::hidden("pa_id",$this->pa_id);
|
|
$r.= HtmlInput::hidden("from_poste",$this->from_poste);
|
|
$r.= HtmlInput::hidden("to_poste",$this->to_poste);
|
|
$r.= $p_string;
|
|
$r.= dossier::hidden();
|
|
$r.=HtmlInput::submit('bt_csv',"Export en CSV");
|
|
$r.= '</form>';
|
|
return $r;
|
|
}
|
|
function display_csv()
|
|
{
|
|
$r="";
|
|
//---Html
|
|
$array=$this->load_csv();
|
|
if ( is_array($array) == false )
|
|
{
|
|
return $array;
|
|
|
|
}
|
|
|
|
if ( empty($array) )
|
|
{
|
|
$r.= _("aucune donnée");
|
|
return $r;
|
|
}
|
|
|
|
$ix=0;$prev='xx';
|
|
$tot_deb=$tot_cred=0;
|
|
$aheader=array();
|
|
$aheader[]=array("title"=>'Imp. Analytique','type'=>'string');
|
|
$aheader[]=array("title"=>'Date','type'=>'string');
|
|
$aheader[]=array("title"=>'Poste','type'=>'string');
|
|
$aheader[]=array("title"=>'Quick_Code','type'=>'string');
|
|
$aheader[]=array("title"=>'libelle','type'=>'string');
|
|
$aheader[]=array("title"=>'Num.interne','type'=>'string');
|
|
$aheader[]=array("title"=>'Debit','type'=>'string');
|
|
$aheader[]=array("title"=>'Credit','type'=>'num');
|
|
Impress::array_to_csv($array, $aheader);
|
|
}
|
|
} |