1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-02 17:07:01 +01:00

Miglioramenti stampa bilancio

This commit is contained in:
MatteoPistorello 2021-08-27 11:53:36 +02:00
parent 6d08407a71
commit 90cd2deeba
5 changed files with 100 additions and 29 deletions

View File

@ -36,10 +36,18 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- [2.2 (2016-11-10)](#22-2016-11-10)
- [2.1 (2015-04-02)](#21-2015-04-02)
## 2.4.26 (2021-00-00)
### Aggiunto (Added)
- Aggiunto modal in fase di **Stampa Bilancio** per visualizzare o meno l'elenco analitico dei clienti e fornitori
### Modificato (Changed)
### Fixed
## 2.4.25 (2021-08-25)
### Aggiunto (Added)
- Aggiunta percentuale di imponibilità nel modulo **Piano dei conti** sezione **Ricavi** per il calcolo del **Totale reddito**.
- Aggiunta percentuale di imponibilità nel modulo **Piano dei conti** sezione **Ricavi** per il calcolo del **Totale reddito**
- Conversione del plugin Componenti modulo Impianti nel nuovo formato
- Aggiunta colonna **Sede** nel modulo **Anagrafiche**
- Aggiunta colonna **Referenti** nel modulo **Anagrafiche**

View File

@ -32,7 +32,7 @@ if ($bilancio_gia_aperto) {
echo '
<div class="text-right">
'.Prints::getLink('Bilancio', null, 'btn btn-lg btn-info', tr('Stampa bilancio'), 'fa fa-print').'
<button type="button" class="btn btn-lg btn-info" data-toggle="modal" data-title="'.tr('Stampa Bilancio').'" data-href="'.base_path().'/modules/partitario/stampa_bilancio.php" ><i class="fa fa-print"></i> '.tr('Stampa Bilancio').'</button>
<button type="button" class="btn btn-lg '.$btn_class.'" data-op="apri-bilancio" data-title="'.tr('Apertura bilancio').'" data-backto="record-list" data-msg="'.$msg.'" data-button="'.tr('Riprendi saldi').'" data-class="btn btn-lg btn-warning" onclick="message( this );">
<i class="fa fa-folder-open"></i> '.tr('Apertura bilancio').'
</button>

View File

@ -0,0 +1,57 @@
<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
*/
include_once __DIR__.'/../../core.php';
// Trovo id_print della stampa
$link = Prints::getHref('Bilancio', null);
echo '
<form action="" method="post" onsubmit="if($(this).parsley().validate()) { return avvia_stampa(); }" >
<div class="row">
<div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Elenco analitico delle anagrafiche').'", "name": "elenco_analitico", "value": "0" ]}
</div>
</div>
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary">
<i class="fa fa-print"></i> '.tr('Stampa Bilancio').'
</button>
</div>
</div>
</form>
<script>$(document).ready(init)</script>';
echo '
<script>
function avvia_stampa (){
var elenco = 0;
if($("#elenco_analitico").is(":checked")){
elenco = 1;
}
window.open("'.$link.'&elenco_analitico="+elenco+"");
return false;
}
</script>';

View File

@ -51,7 +51,7 @@ echo '
foreach ($liv3_patrimoniale as $liv3_p) {
// Visualizzo solo i conti di livello 3 relativi al conto di livello 2
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2']) {
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale']!=0) {
echo '
<tr>
<td>'.$liv3_p['numero'].'</td>
@ -60,20 +60,23 @@ echo '
</tr>';
}
}
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
echo '
if(empty(get('elenco_analitico'))){
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat($crediti_clienti).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat($crediti_clienti).'</td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat($debiti_fornitori).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo '
<tr>
<td></td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat($debiti_fornitori).'</td>
</tr>';
}
}
}
}
@ -126,7 +129,7 @@ echo '
</tr>';
foreach ($liv3_patrimoniale as $liv3_p) {
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2']) {
if ($liv2_p['id'] == $liv3_p['idpianodeiconti2'] && $liv3_p['totale']!=0) {
echo '
<tr>
<td>'.$liv3_p['numero'].'</td>
@ -135,20 +138,23 @@ echo '
</tr>';
}
}
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
echo '
if(empty(get('elenco_analitico'))){
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti)).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti)).'</td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat(abs($debiti_fornitori)).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo '
<tr>
<td></td>
<td>Fornitori</td>
<td class="text-right">'.numberFormat(abs($debiti_fornitori)).'</td>
</tr>';
}
}
}
}
@ -210,7 +216,7 @@ echo '
</tr>';
foreach ($liv3_economico as $liv3_e) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2']) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale']!=0) {
echo '
<tr>
<td>'.$liv3_e['numero'].'</td>
@ -274,7 +280,7 @@ echo '
</tr>';
foreach ($liv3_economico as $liv3_e) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2']) {
if ($liv2_e['id'] == $liv3_e['idpianodeiconti2'] && $liv3_e['totale']!=0) {
echo '
<tr>
<td>'.$liv3_e['numero'].'</td>

View File

@ -31,7 +31,7 @@ $liv2_patrimoniale = $dbo->fetchArray('SELECT co_pianodeiconti2.numero AS numero
$liv2_economico = $dbo->fetchArray('SELECT co_pianodeiconti2.numero AS numero, co_pianodeiconti2.descrizione AS descrizione, SUM(totale) AS totale, SUM(totale_reddito) AS totale_reddito, co_pianodeiconti2.id AS id FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Economico"))) AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' GROUP BY idpianodeiconti2 ORDER BY co_pianodeiconti2.numero');
$liv3_patrimoniale = $dbo->fetchArray('SELECT co_pianodeiconti3.numero AS numero, co_pianodeiconti3.descrizione AS descrizione, SUM(totale) AS totale, co_pianodeiconti3.idpianodeiconti2 AS idpianodeiconti2 FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Patrimoniale"))) AND idpianodeiconti2!='.prepare($fornitori).' AND co_pianodeiconti3.id NOT IN (SELECT idconto_cliente FROM an_anagrafiche) AND co_pianodeiconti3.id NOT IN (SELECT idconto_fornitore FROM an_anagrafiche) AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' GROUP BY idconto ORDER BY co_pianodeiconti3.numero');
$liv3_patrimoniale = $dbo->fetchArray('SELECT co_pianodeiconti3.numero AS numero, co_pianodeiconti3.descrizione AS descrizione, SUM(totale) AS totale, co_pianodeiconti3.idpianodeiconti2 AS idpianodeiconti2 FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Patrimoniale"))) '.(empty(get('elenco_analitico')) ? 'AND co_pianodeiconti3.id NOT IN (SELECT idconto_cliente FROM an_anagrafiche) AND co_pianodeiconti3.id NOT IN (SELECT idconto_fornitore FROM an_anagrafiche)' : '').' AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' GROUP BY idconto ORDER BY co_pianodeiconti3.numero');
$liv3_economico = $dbo->fetchArray('SELECT co_pianodeiconti3.numero AS numero, co_pianodeiconti3.descrizione AS descrizione, SUM(totale) AS totale, SUM(totale_reddito) AS totale_reddito, co_pianodeiconti3.idpianodeiconti2 AS idpianodeiconti2 FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Economico"))) AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end).' GROUP BY idconto ORDER BY co_pianodeiconti3.numero');