0000271: Filter pour grand livre : poste et lettrage

This commit is contained in:
Dany De Bontridder 2011-05-24 21:12:54 +00:00
parent ac23d7efd9
commit 6e98da9ea6
4 changed files with 38 additions and 25 deletions

View file

@ -101,6 +101,7 @@ class Acc_Account_Ledger
*
* \param $p_from date from
* \param $p_to end date
*\param $let 0 means all rows, 1 only lettered, 2 only unlettered
*\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
@ -432,7 +433,6 @@ class Acc_Account_Ledger
$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().
@ -443,9 +443,10 @@ class Acc_Account_Ledger
$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);
$hid->input('to_poste',$_REQUEST['to_poste'])
;
if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
@ -467,8 +468,10 @@ class Acc_Account_Ledger
$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);
$hid->input('to_poste',$_REQUEST['to_poste']);
if ( isset($_REQUEST['letter'] )) echo HtmlInput::hidden('letter','2');
if (isset($_REQUEST['poste_fille']))
echo $hid->input('poste_fille','on');

View file

@ -59,6 +59,7 @@ if ( isset($poste_id) && strlen(trim($poste_id)) != 0 && isNumber($poste_id) )
}
else
{
$sql="select pcm_val from tmp_pcmn ";
if ($from_poste != '')
{
$cond_poste = ' where ';
@ -69,11 +70,11 @@ else
{
if ( $cond_poste == '')
{
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($from_poste).'\')';
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($to_poste).'\')';
}
else
{
$cond_poste.=' and pcm_val <= upper (\''.Database::escape_string($from_poste).'\')';
$cond_poste.=' and pcm_val <= upper (\''.Database::escape_string($to_poste).'\')';
}
}
@ -92,11 +93,14 @@ if ( count($a_poste) == 0 )
// Header
$header = array( "Date", "Référence", "Libellé", "Pièce", "Débit", "Crédit", "Solde" );
$let=(isset($_GET['letter']))?2: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);
list($array,$tot_deb,$tot_cred)=$Poste->get_row_date($from_periode,$to_periode,$let);
// don't print empty account
if ( count($array) == 0 )
@ -146,9 +150,9 @@ foreach ($a_poste as $poste)
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).";";
echo ($detail['deb_montant'] > 0 ? nb($detail['deb_montant']) : '').";";
echo ($detail['cred_montant'] > 0 ? nb($detail['cred_montant']) : '').";";
echo nb($solde).";";
printf("\n");
}
@ -158,9 +162,9 @@ foreach ($a_poste as $poste)
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_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");

View file

@ -43,6 +43,8 @@ $User->Check();
$User->check_dossier($gDossier);
$User->can_request(IMPBIL,0);
$sql="select pcm_val from tmp_pcmn ";
extract($_GET);
if ($from_poste != '')
{
@ -50,15 +52,15 @@ if ($from_poste != '')
$cond_poste .=' pcm_val >= upper (\''.Database::escape_string($from_poste).'\')';
}
if ( $to_poste->value != '')
if ( $to_poste != '')
{
if ( $cond_poste == '')
{
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($from_poste).'\')';
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($to_poste).'\')';
}
else
{
$cond_poste.=' and pcm_val <= upper (\''.Database::escape_string($from_poste).'\')';
$cond_poste.=' and pcm_val <= upper (\''.Database::escape_string($to_poste).'\')';
}
}
@ -83,12 +85,12 @@ $header = array( "Date", "Référence", "Libellé", "Pièce","Let", "Débit", "C
$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;
$l=(isset($_REQUEST['letter']))?2:0;
foreach ($a_poste as $poste)
{
$Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
$Poste=new Acc_Account_Ledger($cn,$poste['pcm_val']);
list($array,$tot_deb,$tot_cred)=$Poste->get_row_date($from_periode,$to_periode,$l);

View file

@ -62,21 +62,23 @@ $date_to->value=(isset($_REQUEST['to_periode']))?$_REQUEST['to_periode']:$last_d
echo td(_('Depuis').$date_from->input());
echo td(_('Jusque ').$date_to->input());
$letter=new ICheck('letter');
$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');
echo '<tr>';
echo td.(_('Depuis le poste')).td($from_poste->input()).td($from_poste->dsp_button());
echo td(_('Depuis le poste')).td($from_poste->input());
echo '</tr>';
echo '<tr>';
echo td.(_("Jusqu'au poste")).td($to_poste->input()).td($to_poste->dsp_button());
echo td(_("Jusqu'au poste")).td($to_poste->input());
echo '</tr>';
echo '<tr>';
@ -113,15 +115,16 @@ if ( isset( $_REQUEST['bt_html'] ) )
{
if ( $cond_poste == '')
{
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($from_poste->value).'\')';
$cond_poste = ' where pcm_val <= upper (\''.Database::escape_string($to_poste->value).'\')';
}
else
{
$cond_poste.=' and pcm_val <= upper (\''.Database::escape_string($from_poste->value).'\')';
$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 )
@ -143,7 +146,8 @@ if ( isset( $_REQUEST['bt_html'] ) )
{
$Poste=new Acc_Account_Ledger ($cn, $poste_id['pcm_val']);
$Poste->load();
$l=(isset($_REQUEST['letter']))?1:0;
$l=(isset($_REQUEST['letter']))?2:0;
$Poste->get_row_date( $_GET['from_periode'], $_GET['to_periode'],$l);
if ( empty($Poste->row))
{