|
noalyss
Version-6.7.2
|
manage the simple balance for CA, inherit from balance_ca More...
Public Member Functions | |
| display_csv () | |
| Compute the csv export. | |
| display_form ($p_string="") | |
| Compute the form to display. | |
| display_html () | |
| compute the html display | |
| display_pdf () | |
| Display the result in pdf. | |
| load () | |
| load the data from the database | |
| set_sql_filter () | |
| Set the filter (account_date) | |
| show_button ($p_string="") | |
| Show the button to export in PDF or CSV. | |
Static Public Member Functions | |
| static | test_me () |
| for testing and debuggind the class it must never be called from production system, it is intended only for developpers | |
manage the simple balance for CA, inherit from balance_ca
Definition at line 36 of file class_anc_balance_simple.php.
Compute the csv export.
Definition at line 211 of file class_anc_balance_simple.php.
References $array, $r, $row, $solde, load(), and nb().
{
$array=$this->load();
if ( is_array($array) == false )
{
return $array;
}
$r="";
foreach ( $array as $row)
{
// the name and po_id
$solde=($row['sum_cred']>$row['sum_deb'])?'C':'D';
$solde=($row['sum_cred']==$row['sum_deb'])?'':$solde;
$r.=sprintf("'%s';",$row['po_id']);
$r.=sprintf("'%s';",$row['po_name']);
$r.=sprintf("%s;",nb($row['sum_deb']));
$r.=sprintf("%s;",nb($row['sum_cred']));
$r.=sprintf("%s;",nb($row['solde']));
$r.=sprintf("'%s'",$row['debit']);
$r.="\r\n";
}
return $r;
}
| Anc_Balance_Simple::display_form | ( | $ | p_string = "" | ) |
Compute the form to display.
| $p_hidden | hidden tag to be included (gDossier,...) |
Reimplemented from Anc_Print.
Definition at line 168 of file class_anc_balance_simple.php.
References $r, and HtmlInput\submit().
{
$r=parent::display_form($p_string);
$r.= HtmlInput::submit('Affiche', _('Rechercher'));
return $r;
}
compute the html display
Definition at line 124 of file class_anc_balance_simple.php.
References $array, $deb, $r, $row, h(), load(), nbm(), and td().
{
$r="<table class=\"result\">";
$r.="<tr>";
$r.="<th>Poste comptable Analytique</th>";
$r.="<th>Débit</th>";
$r.="<th>Crédit</th>";
$r.="<th>Solde</th>";
$r.="<th>D/C</th>";
$r.="</tr>";
$array=$this->load();
$odd=0;
if ( is_array($array) == false )
{
return $array;
}
foreach ( $array as $row)
{
$odd++;
$r.=($odd%2==0)?'<tr class="odd">':'<tr class="even">';
// the name and po_id
// $r.=sprintf("<td>%s</td>",$row['po_id']);
$r.=sprintf("<td align=\"left\">%s</td>",h($row['po_name']));
$r.=td(nbm($row['sum_deb']),' class="num"');
$r.=td(nbm($row['sum_cred']),' class="num"');
$r.=td(nbm($row['solde']),' class="num"');
$deb=($row['sum_deb'] > $row['sum_cred'])?"D":"C";
$deb=($row['solde'] == 0 )?'':$deb;
$r.=sprintf("<td>%s</td>",$deb);
$r.="</tr>";
}
$r.="</table>";
return $r;
}
Display the result in pdf.
Definition at line 182 of file class_anc_balance_simple.php.
References $array, $fDate, $pdf, $row, db, from, from_poste, load(), nbm(), to, and to_poste.
{
$array=$this->load();
$pdf=new PDFBalance_Simple($this->db);
$pdf->set_info($this->from_poste,$this->to_poste,$this->from,$this->to);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->setTitle("Balance analytique",true);
$pdf->SetFont('DejaVu','',6);
for ($i=0;$i<count($array);$i++)
{
$row=$array[$i];
$pdf->Cell(20,6,$row['po_id'],0,0,'L');
$pdf->Cell(90,6,$row['po_name'],0,0,'L');
$pdf->Cell(20,6,sprintf('%s',nbm($row['sum_deb'])),0,0,'R');
$pdf->Cell(20,6,sprintf('%s',nbm($row['sum_cred'])),0,0,'R');
$pdf->Cell(20,6,sprintf('%s',nbm($row['solde'])),0,0,'R');
$pdf->Cell(20,6,$row['debit'],0,0,'R');
$pdf->Ln();
}
$fDate=date('dmy-Hi');
$pdf->output('simple-balance-'.$fDate.'.pdf','D');
}
load the data from the database
Definition at line 44 of file class_anc_balance_simple.php.
References $a, $array, $count, $res, $row, $sql, db, Database\fetch_all(), Database\num_row(), and set_sql_filter().
Referenced by display_csv(), display_html(), and display_pdf().
{
$filter=$this->set_sql_filter();
// sum debit
$sql="select m.po_id,sum(deb) as sum_deb,sum(cred) as sum_cred,";
$sql.=" po_name||' '||coalesce(po_description,'') as po_name";
$sql.=" from ";
$sql.=" (select po_id,case when oa_debit='t' then oa_amount else 0 end as deb,";
$sql.="case when oa_debit='f' then oa_amount else 0 end as cred ";
$sql.=" from operation_analytique join poste_analytique using(po_id)";
$sql.=(empty($filter) == false)?" where ".$filter:"";
$sql.=" ) as m join poste_analytique using (po_id)";
$sql.=" where pa_id=".$this->pa_id;
$sql.=" group by po_id,po_name,po_description";
$sql.=" order by po_id";
$res=$this->db->exec_sql($sql);
if ( Database::num_row($res) == 0 ) {
$this->has_data=0;
return null;
}
$a=array();
$count=0;
$array=Database::fetch_all($res);
foreach ($array as $row)
{
$a[$count]['po_id']=$row['po_id'];
$a[$count]['sum_deb']=$row['sum_deb'];
$a[$count]['sum_cred']=$row['sum_cred'];
$a[$count]['po_name']=$row['po_name'];
$a[$count]['solde']=abs($row['sum_deb']-$row['sum_cred']);
$a[$count]['debit']=($row['sum_deb']>$row['sum_cred'])?"debit":"credit";
$count++;
}
$this->has_data=$count;
return $a;
}
Set the filter (account_date)
Reimplemented from Anc_Print.
Definition at line 91 of file class_anc_balance_simple.php.
References $sql, from, from_poste, to, and to_poste.
Referenced by load().
{
$sql="";
$and="";
if ( $this->from != "" )
{
$sql.=" oa_date >= to_date('".$this->from."','DD.MM.YYYY')";
$and=" and ";
}
if ( $this->to != "" )
{
$sql.=" $and oa_date <= to_date('".$this->to."','DD.MM.YYYY')";
$and=" and ";
}
if ( $this->from_poste != "" )
{
$sql.=" $and upper(po_name)>= upper('".$this->from_poste."')";
$and=" and ";
}
if ( $this->to_poste != "" )
{
$sql.=" $and upper(po_name)<= upper('".$this->to_poste."')";
$and=" and ";
}
return $sql;
}
| Anc_Balance_Simple::show_button | ( | $ | p_string = "" | ) |
Show the button to export in PDF or CSV.
| $url_csv | url of the csv |
| $url_pdf | url of the pdf |
| $p_string | hidden data to include in the form |
Definition at line 245 of file class_anc_balance_simple.php.
References $r, from, from_poste, HtmlInput\hidden(), HtmlInput\submit(), to, and to_poste.
{
$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:AncBalSimple");
$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:AncBalSimple");
$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;
}
| static Anc_Balance_Simple::test_me | ( | ) | [static] |
for testing and debuggind the class it must never be called from production system, it is intended only for developpers
| \param | |
Definition at line 286 of file class_anc_balance_simple.php.
References $_GET, $a, $bal, echo, and id.
{
// call the page with ?gDossier=14
$a=new Database(dossier::id());
$bal=new Anc_Balance_Simple($a);
$bal->get_request();
echo '<form method="GET">';
echo $bal->display_form();
echo '</form>';
if ( isset($_GET['result']))
{
echo $bal->show_button("","");
echo "<h1>HTML</h1>";
echo $bal->display_html();
echo "<h1>CSV</h1>";
echo $bal->display_csv();
/* echo "<h1>pdf</h1>"; */
/* echo $bal->display_pdf(); */
}
}