Aggiunta flessibilità conti per movimenti

This commit is contained in:
Thomas Zilio 2019-12-27 10:28:53 +01:00
parent 25c399989c
commit 97706124f5
6 changed files with 98 additions and 79 deletions

View File

@ -20,6 +20,13 @@ $config = PhpCsFixer\Config::create()
'no_alternative_syntax' => true, 'no_alternative_syntax' => true,
'ordered_class_elements' => true, 'ordered_class_elements' => true,
'phpdoc_order' => true, 'phpdoc_order' => true,
//'no_superfluous_phpdoc_tags' => [
// 'allow_mixed' => true,
// 'allow_unused_params' => true,
//],
//'phpdoc_add_missing_param_annotation' => [
// 'only_untyped' => false,
//],
]) ])
->setFinder($finder); ->setFinder($finder);

View File

@ -190,9 +190,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
$idconto_controparte = $rs[0]['idconto_fornitore']; $idconto_controparte = $rs[0]['idconto_fornitore'];
if ($idconto_controparte == '') { if ($idconto_controparte == '') {
$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo fornitori'"; $idconto_controparte = setting('Conto per Riepilogativo fornitori');
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['idconto_fornitore'];
} }
} else { } else {
$segno_mov1_cliente = 1; $segno_mov1_cliente = 1;
@ -208,9 +206,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
$idconto_controparte = $rs[0]['idconto_cliente']; $idconto_controparte = $rs[0]['idconto_cliente'];
if ($idconto_controparte == '') { if ($idconto_controparte == '') {
$query = "SELECT id FROM co_pianodeiconti3 WHERE descrizione='Riepilogativo clienti'"; $idconto_controparte = setting('Conto per Riepilogativo clienti');
$rs = $dbo->fetchArray($query);
$idconto_controparte = $rs[0]['idconto_cliente'];
} }
} }
@ -280,10 +276,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// Lettura id conto iva // Lettura id conto iva
if ($iva_fattura != 0 && !$split_payment) { if ($iva_fattura != 0 && !$split_payment) {
$descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti'; $descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti';
$query = 'SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione='.prepare($descrizione_conto_iva); $idconto_iva = setting('Conto per '.$descrizione_conto_iva);
$rs = $dbo->fetchArray($query);
$idconto_iva = $rs[0]['id'];
$descrizione_conto_iva = $rs[0]['descrizione'];
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
@ -291,11 +284,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// Lettura id conto iva indetraibile // Lettura id conto iva indetraibile
if ($iva_indetraibile_fattura != 0 && !$split_payment) { if ($iva_indetraibile_fattura != 0 && !$split_payment) {
$descrizione_conto_iva2 = 'Iva indetraibile'; $idconto_iva2 = setting('Conto per Iva indetraibile');
$query = 'SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione='.prepare($descrizione_conto_iva2);
$rs = $dbo->fetchArray($query);
$idconto_iva2 = $rs[0]['id'];
$descrizione_conto_iva2 = $rs[0]['descrizione'];
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
@ -304,10 +293,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// 4) Aggiungo la rivalsa INPS se c'è // 4) Aggiungo la rivalsa INPS se c'è
// Lettura id conto inps // Lettura id conto inps
if ($totale_rivalsainps != 0) { if ($totale_rivalsainps != 0) {
$query = "SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione='Erario c/INPS'"; $idconto_inps = setting('Conto per Erario c/INPS');
$rs = $dbo->fetchArray($query);
$idconto_inps = $rs[0]['id'];
$descrizione_conto_inps = $rs[0]['descrizione'];
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
@ -316,10 +302,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// 5) Aggiungo la ritenuta d'acconto se c'è // 5) Aggiungo la ritenuta d'acconto se c'è
// Lettura id conto ritenuta e la storno subito // Lettura id conto ritenuta e la storno subito
if ($totale_ritenutaacconto != 0) { if ($totale_ritenutaacconto != 0) {
$query = "SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione=\"Erario c/ritenute d'acconto\""; $idconto_ritenutaacconto = setting("Conto per Erario c/ritenute d'acconto");
$rs = $dbo->fetchArray($query);
$idconto_ritenutaacconto = $rs[0]['id'];
$descrizione_conto_ritenutaacconto = $rs[0]['descrizione'];
// DARE nel conto ritenuta // DARE nel conto ritenuta
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')';
@ -333,10 +316,7 @@ function aggiungi_movimento($iddocumento, $dir, $primanota = 0)
// 6) Aggiungo la ritenuta enasarco se c'è // 6) Aggiungo la ritenuta enasarco se c'è
// Lettura id conto ritenuta e la storno subito // Lettura id conto ritenuta e la storno subito
if ($totale_ritenutacontributi != 0) { if ($totale_ritenutacontributi != 0) {
$query = 'SELECT id, descrizione FROM co_pianodeiconti3 WHERE descrizione="Erario c/enasarco"'; $idconto_ritenutaenasarco = setting("Conto per Erario c/enasarco");
$rs = $dbo->fetchArray($query);
$idconto_ritenutaenasarco = $rs[0]['id'];
$descrizione_conto_ritenutaenasarco = $rs[0]['descrizione'];
// DARE nel conto ritenuta // DARE nel conto ritenuta
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, data_documento, iddocumento, idanagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($data_documento).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')';

View File

@ -30,26 +30,31 @@ switch (post('op')) {
break; break;
// Modifica conto nel partitario // Modifica conto di livello 2 e 3 nel partitario
case 'edit': case 'edit':
$idconto = post('idconto'); $idconto = post('idconto');
$idpianodeiconti2 = post('idpianodeiconti2'); $idpianodeiconti = post('idpianodeiconti');
$numero = post('numero'); $numero = post('numero');
$descrizione = post('descrizione'); $descrizione = post('descrizione');
if ($idconto != '') { $lvl = post('lvl');
// Controllo che non sia stato usato un numero non valido del conto if ($lvl == 2){
$query = 'SELECT idpianodeiconti2, numero FROM co_pianodeiconti3 WHERE numero='.prepare($numero).' AND NOT id='.prepare($idconto).' AND idpianodeiconti2='.prepare($idpianodeiconti2); $duplicate_query = 'SELECT numero FROM co_pianodeiconti2 WHERE numero='.prepare($numero).' AND NOT id='.prepare($idconto).' AND idpianodeiconti1='.prepare($idpianodeiconti);
if ($dbo->fetchNum($query) == 0) { $update_query = 'UPDATE co_pianodeiconti2 SET numero='.prepare($numero).', descrizione='.prepare($descrizione).' WHERE id='.prepare($idconto);
$query = 'UPDATE co_pianodeiconti3 SET numero='.prepare($numero).', descrizione='.prepare($descrizione).' WHERE id='.prepare($idconto); } else {
$duplicate_query = 'SELECT idpianodeiconti2, numero FROM co_pianodeiconti3 WHERE numero='.prepare($numero).' AND NOT id='.prepare($idconto).' AND idpianodeiconti2='.prepare($idpianodeiconti);
if ($dbo->query($query)) { $update_query = 'UPDATE co_pianodeiconti3 SET numero='.prepare($numero).', descrizione='.prepare($descrizione).' WHERE id='.prepare($idconto);
flash()->info(tr('Descrizione conto modificata!')); }
}
} else { // Controllo che non sia stato usato un numero non valido del conto
flash()->error(tr('Il numero scelto è già esistente!')); if ($dbo->fetchNum($duplicate_query) == 0) {
if ($dbo->query($update_query)) {
flash()->info(tr('Descrizione conto modificata!'));
} }
} else {
flash()->error(tr('Il numero scelto è già esistente!'));
} }
break; break;
@ -72,10 +77,11 @@ switch (post('op')) {
// Eliminazione eventuali movimenti di apertura fatti finora // Eliminazione eventuali movimenti di apertura fatti finora
$dbo->query('DELETE FROM co_movimenti WHERE is_apertura=1 AND data='.prepare($_SESSION['period_start'])); $dbo->query('DELETE FROM co_movimenti WHERE is_apertura=1 AND data='.prepare($_SESSION['period_start']));
$idconto_apertura = $dbo->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE descrizione="Apertura conti patrimoniali"')['id']; $idconto_apertura = setting('Conto per Apertura conti patrimoniali');
$idconto_chiusura = setting('Conto per Chiusura conti patrimoniali');
// Lettura di tutti i conti dello stato patrimoniale con saldo != 0 // Lettura di tutti i conti dello stato patrimoniale con saldo != 0
$conti = $dbo->fetchArray('SELECT co_pianodeiconti3.id, SUM(co_movimenti.totale) AS totale FROM ((co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id) INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) INNER JOIN co_movimenti ON co_pianodeiconti3.id=co_movimenti.idconto WHERE co_pianodeiconti1.descrizione="Patrimoniale" AND data < '.prepare($_SESSION['period_start']).' AND co_pianodeiconti3.descrizione NOT IN("Apertura conti patrimoniali", "Chiusura conti patrimoniali") AND is_apertura=0 AND is_chiusura=0 GROUP BY co_pianodeiconti3.id HAVING totale != 0'); $conti = $dbo->fetchArray('SELECT co_pianodeiconti3.id, SUM(co_movimenti.totale) AS totale FROM ((co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id) INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) INNER JOIN co_movimenti ON co_pianodeiconti3.id=co_movimenti.idconto WHERE co_pianodeiconti1.descrizione="Patrimoniale" AND data < '.prepare($_SESSION['period_start']).' AND co_pianodeiconti3.id NOT IN('.prepare($idconto_apertura).', '.prepare($idconto_chiusura).') AND is_apertura=0 AND is_chiusura=0 GROUP BY co_pianodeiconti3.id HAVING totale != 0');
$mastrino = Mastrino::build(tr('Apertura conto'), $_SESSION['period_start'], 0, true); $mastrino = Mastrino::build(tr('Apertura conto'), $_SESSION['period_start'], 0, true);
@ -123,10 +129,11 @@ switch (post('op')) {
// Eliminazione eventuali movimenti di chiusura fatti finora // Eliminazione eventuali movimenti di chiusura fatti finora
$dbo->query('DELETE FROM co_movimenti WHERE is_chiusura=1 AND data='.prepare($_SESSION['period_end'])); $dbo->query('DELETE FROM co_movimenti WHERE is_chiusura=1 AND data='.prepare($_SESSION['period_end']));
$idconto_chiusura = $dbo->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE descrizione="Chiusura conti patrimoniali"')['id']; $idconto_apertura = setting('Conto per Apertura conti patrimoniali');
$idconto_chiusura = setting('Conto per Chiusura conti patrimoniali');
// Lettura di tutti i conti dello stato patrimoniale con saldo != 0 // Lettura di tutti i conti dello stato patrimoniale con saldo != 0
$conti = $dbo->fetchArray('SELECT co_pianodeiconti3.id, SUM(co_movimenti.totale) AS totale FROM ((co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id) INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) INNER JOIN co_movimenti ON co_pianodeiconti3.id=co_movimenti.idconto WHERE co_pianodeiconti1.descrizione="Patrimoniale" AND data <= '.prepare($_SESSION['period_end']).' AND co_pianodeiconti3.descrizione NOT IN("Apertura conti patrimoniali", "Chiusura conti patrimoniali") AND is_apertura=0 AND is_chiusura=0 GROUP BY co_pianodeiconti3.id HAVING totale != 0'); $conti = $dbo->fetchArray('SELECT co_pianodeiconti3.id, SUM(co_movimenti.totale) AS totale FROM ((co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id) INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) INNER JOIN co_movimenti ON co_pianodeiconti3.id=co_movimenti.idconto WHERE co_pianodeiconti1.descrizione="Patrimoniale" AND data <= '.prepare($_SESSION['period_end']).' AND AND co_pianodeiconti3.id NOT IN('.prepare($idconto_apertura).', '.prepare($idconto_chiusura).') AND is_apertura=0 AND is_chiusura=0 GROUP BY co_pianodeiconti3.id HAVING totale != 0');
$mastrino = Mastrino::build(tr('Chiusura conto'), $_SESSION['period_end'], 0, true); $mastrino = Mastrino::build(tr('Chiusura conto'), $_SESSION['period_end'], 0, true);

View File

@ -39,7 +39,7 @@ foreach ($primo_livello as $conto_primo) {
<br>'.Prints::getLink('Mastrino', $conto_primo['id'], null, tr('Stampa'), null, 'lev=1').' <br>'.Prints::getLink('Mastrino', $conto_primo['id'], null, tr('Stampa'), null, 'lev=1').'
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
<div style="padding-left:10px;">'; <div style="padding-left:10px;">';
// Livello 2 // Livello 2
@ -49,11 +49,16 @@ foreach ($primo_livello as $conto_primo) {
foreach ($secondo_livello as $conto_secondo) { foreach ($secondo_livello as $conto_secondo) {
// Livello 2 // Livello 2
echo ' echo '
<div> <div class="pull-right">
'.Prints::getLink('Mastrino', $conto_secondo['id'], 'btn-info btn-xs', '', null, 'lev=2').' '.Prints::getLink('Mastrino', $conto_secondo['id'], 'btn-info btn-xs', '', null, 'lev=2').'
<b>'.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].'</b><br>
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" title="Modifica questo conto..." onclick="launch_modal(\'Modifica conto\', \''.$structure->fileurl('edit_conto.php').'?id='.$conto_secondo['id'].'&lvl=2\');">
<i class="fa fa-edit"></i>
</button>
</div> </div>
<h5><b>'.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].'</b></h5>
<div style="padding-left:10px;"> <div style="padding-left:10px;">
<table class="table table-striped table-hover table-condensed" style="margin-bottom:0;">'; <table class="table table-striped table-hover table-condensed" style="margin-bottom:0;">';
@ -66,7 +71,7 @@ foreach ($primo_livello as $conto_primo) {
$numero_movimenti = $dbo->fetchNum('SELECT id FROM co_movimenti WHERE idconto = '.prepare($conto_terzo['id'])); $numero_movimenti = $dbo->fetchNum('SELECT id FROM co_movimenti WHERE idconto = '.prepare($conto_terzo['id']));
// Calcolo totale conto da elenco movimenti di questo conto // Calcolo totale conto da elenco movimenti di questo conto
$query = 'SELECT co_movimenti.*, dir FROM co_movimenti $query = 'SELECT co_movimenti.* FROM co_movimenti
LEFT OUTER JOIN co_documenti ON co_movimenti.iddocumento = co_documenti.id LEFT OUTER JOIN co_documenti ON co_movimenti.iddocumento = co_documenti.id
LEFT OUTER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id LEFT OUTER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id
WHERE co_movimenti.idconto='.prepare($conto_terzo['id']).' AND co_movimenti.data >= '.prepare($_SESSION['period_start']).' AND co_movimenti.data <= '.prepare($_SESSION['period_end']).' ORDER BY co_movimenti.data DESC'; WHERE co_movimenti.idconto='.prepare($conto_terzo['id']).' AND co_movimenti.data >= '.prepare($_SESSION['period_start']).' AND co_movimenti.data <= '.prepare($_SESSION['period_end']).' ORDER BY co_movimenti.data DESC';
@ -102,7 +107,7 @@ foreach ($primo_livello as $conto_primo) {
$id_anagrafica = $conto_terzo['id_cliente'] ?: $conto_terzo['id_fornitore']; $id_anagrafica = $conto_terzo['id_cliente'] ?: $conto_terzo['id_fornitore'];
echo ' echo '
<span class="hide tools">'; <span class="hide tools pull-right">';
// Stampa mastrino // Stampa mastrino
if (!empty($movimenti)) { if (!empty($movimenti)) {
@ -110,7 +115,7 @@ foreach ($primo_livello as $conto_primo) {
'.Prints::getLink('Mastrino', $conto_terzo['id'], 'btn-info btn-xs', '', null, 'lev=3'); '.Prints::getLink('Mastrino', $conto_terzo['id'], 'btn-info btn-xs', '', null, 'lev=3');
} }
if ($numero_movimenti <= 0 && !empty($conto_terzo['can_delete'])) { if ($numero_movimenti <= 0) {
echo ' echo '
<a class="btn btn-danger btn-xs ask" data-toggle="tooltip" title="'.tr('Elimina').'" data-backto="record-list" data-op="del" data-idconto="'.$conto_terzo['id'].'"> <a class="btn btn-danger btn-xs ask" data-toggle="tooltip" title="'.tr('Elimina').'" data-backto="record-list" data-op="del" data-idconto="'.$conto_terzo['id'].'">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
@ -118,21 +123,19 @@ foreach ($primo_livello as $conto_primo) {
} }
// Possibilità di modificare il nome del conto livello3 // Possibilità di modificare il nome del conto livello3
if (!empty($conto_terzo['can_edit'])) { echo '
echo '
<button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" title="Modifica questo conto..." onclick="launch_modal(\'Modifica conto\', \''.$structure->fileurl('edit_conto.php').'?id='.$conto_terzo['id'].'\');"> <button type="button" class="btn btn-warning btn-xs" data-toggle="tooltip" title="Modifica questo conto..." onclick="launch_modal(\'Modifica conto\', \''.$structure->fileurl('edit_conto.php').'?id='.$conto_terzo['id'].'\');">
<i class="fa fa-edit"></i> <i class="fa fa-edit"></i>
</button>'; </button>';
}
echo ' echo '
</span> </span>
&nbsp;'.$conto_secondo['numero'].'.'.$conto_terzo['numero'].' '.$conto_terzo['descrizione'].' '.(isset($id_anagrafica) ? Modules::link('Anagrafiche', $id_anagrafica, 'Anagrafica', null) : '').' &nbsp;'.$conto_secondo['numero'].'.'.$conto_terzo['numero'].' '.$conto_terzo['descrizione'].' '.(isset($id_anagrafica) ? Modules::link('Anagrafiche', $id_anagrafica, 'Anagrafica', null) : '').'
</span> </span>
<div id="conto_'.$conto_terzo['id'].'" style="display:none;"></div> <div id="conto_'.$conto_terzo['id'].'" style="display:none;"></div>
</td> </td>
<td width="100" align="right" valign="top"> <td width="100" align="right" valign="top">
'.moneyFormat(sum($totale_conto), 2).' '.moneyFormat(sum($totale_conto), 2).'
</td> </td>
@ -147,14 +150,14 @@ foreach ($primo_livello as $conto_primo) {
<button type="button" class="btn btn-xs btn-primary" data-toggle="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="add_conto('.$conto_secondo['id'].')"> <button type="button" class="btn btn-xs btn-primary" data-toggle="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="add_conto('.$conto_secondo['id'].')">
<i class="fa fa-plus-circle"></i> <i class="fa fa-plus-circle"></i>
</button> </button>
<br><br> <br><br>
</div>'; </div>';
} }
echo ' echo '
</div> </div>
<table class="table table-condensed table-hover">' <table class="table table-condensed table-hover">'
; ;
// Riepiloghi // Riepiloghi
@ -230,7 +233,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($pareggio1), 2).'</big> <big>'.moneyFormat(sum($pareggio1), 2).'</big>
</td> </td>
<td width="50"></td> <td width="50"></td>
<th class="text-right"> <th class="text-right">
<big>'.tr('Totale a pareggio').':</big> <big>'.tr('Totale a pareggio').':</big>
</th> </th>
@ -248,7 +251,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($totale_ricavi), 2).'</big> <big>'.moneyFormat(sum($totale_ricavi), 2).'</big>
</td> </td>
</tr> </tr>
<tr> <tr>
<th class="text-right"> <th class="text-right">
<big>'.tr('Costi').':</big> <big>'.tr('Costi').':</big>
@ -257,7 +260,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($totale_costi), 2).'</big> <big>'.moneyFormat(sum($totale_costi), 2).'</big>
</td> </td>
</tr> </tr>
<tr> <tr>
<th class="text-right"> <th class="text-right">
<big>'.tr('Utile/perdita').':</big> <big>'.tr('Utile/perdita').':</big>
@ -290,17 +293,17 @@ if ($bilancio_gia_chiuso) {
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
$("span[id^=movimenti-]").each(function() { $("tr").each(function() {
$(this).on("mouseover", function() { $(this).on("mouseover", function() {
$(this).find(".tools").removeClass("hide"); $(this).find(".tools").removeClass("hide");
}); });
$(this).on("mouseleave", function() { $(this).on("mouseleave", function() {
$(this).find(".tools").addClass("hide"); $(this).find(".tools").addClass("hide");
}); });
$(this).on("click", function() { $(this).on("click", function() {
var movimenti = $(this).parent().find("div[id^=conto_]"); var movimenti = $(this).parent().find("div[id^=conto_]");
if(!movimenti.html()) { if(!movimenti.html()) {
var id_conto = movimenti.attr("id").split("_").pop(); var id_conto = movimenti.attr("id").split("_").pop();
@ -309,7 +312,7 @@ $(document).ready(function(){
} else { } else {
movimenti.slideToggle(); movimenti.slideToggle();
} }
$(this).find(".plus-btn i").toggleClass("fa-plus").toggleClass("fa-minus"); $(this).find(".plus-btn i").toggleClass("fa-plus").toggleClass("fa-minus");
}); });
}) })
@ -321,7 +324,7 @@ function add_conto(id) {
function load_movimenti(selector, id_conto) { function load_movimenti(selector, id_conto) {
$("#main_loading").show(); $("#main_loading").show();
$.ajax({ $.ajax({
url: "<?php echo $structure->fileurl('dettagli_conto.php'); ?>", url: "<?php echo $structure->fileurl('dettagli_conto.php'); ?>",
type: "get", type: "get",
@ -332,7 +335,7 @@ function load_movimenti(selector, id_conto) {
success: function(data){ success: function(data){
$("#" + selector).html(data); $("#" + selector).html(data);
$("#" + selector).slideToggle(); $("#" + selector).slideToggle();
$("#main_loading").fadeOut(); $("#main_loading").fadeOut();
} }
}); });

View File

@ -1,34 +1,42 @@
<?php <?php
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
$idconto = get('id'); $idconto = get('id');
$lvl = get('lvl');
//Info conto // Info conto
$q = 'SELECT * FROM co_pianodeiconti3 WHERE id='.prepare($idconto); if ($lvl == 2){
$rs = $dbo->fetchArray($q); $query = 'SELECT *, idpianodeiconti1 AS idpianodeiconti FROM co_pianodeiconti2 WHERE id='.prepare($idconto);
$numero = $rs[0]['numero']; } else {
$descrizione = $rs[0]['descrizione']; $query = 'SELECT *, idpianodeiconti2 AS idpianodeiconti FROM co_pianodeiconti3 WHERE id='.prepare($idconto);
$idpianodeiconti2 = $rs[0]['idpianodeiconti2']; }
$info = $dbo->fetchOne($query);
?><form action="<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get('Piano dei conti')['id']; ?>" method="post"> ?><form action="<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get('Piano dei conti')['id']; ?>" method="post">
<input type="hidden" name="op" value="edit"> <input type="hidden" name="op" value="edit">
<input type="hidden" name="backto" value="record-list"> <input type="hidden" name="backto" value="record-list">
<input type="hidden" name="idpianodeiconti2" value="<?php echo $idpianodeiconti2; ?>"> <input type="hidden" name="lvl" value="<?php echo $lvl; ?>">
<input type="hidden" name="idconto" value="<?php echo $idconto; ?>">
<input type="hidden" name="idpianodeiconti" value="<?php echo $info['idpianodeiconti']; ?>">
<input type="hidden" name="idconto" value="<?php echo $info['id']; ?>">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "<?php echo $numero; ?>", "extra": "maxlength=\"6\"" ]} {[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "<?php echo $info['numero']; ?>", "extra": "maxlength=\"6\"" ]}
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "<?php echo $descrizione; ?>" ]} {[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "<?php echo $info['descrizione']; ?>" ]}
</div> </div>
</div> </div>
<br> <br>
<div class="pull-right"> <div class="pull-right">
<button type="submit" class="btn btn-primary"><i class="fa fa-edit"></i> Modifica</button> <button type="submit" class="btn btn-primary">
<i class="fa fa-edit"></i> <?php echo tr('Modifica'); ?>
</button>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</form> </form>

View File

@ -32,4 +32,18 @@ UPDATE `zz_prints` SET `title` = 'Ddt di vendita (senza prezzi)' WHERE `name` =
ALTER TABLE `mg_articoli` ADD `ubicazione` VARCHAR(255) NOT NULL AFTER `threshold_qta`; ALTER TABLE `mg_articoli` ADD `ubicazione` VARCHAR(255) NOT NULL AFTER `threshold_qta`;
-- Aggiunta flag per apertura e chiusura bilancio automatici -- Aggiunta flag per apertura e chiusura bilancio automatici
ALTER TABLE `co_movimenti` ADD `is_apertura` BOOLEAN NOT NULL DEFAULT FALSE AFTER `is_insoluto`, ADD `is_chiusura` BOOLEAN NOT NULL DEFAULT FALSE AFTER `is_apertura`; ALTER TABLE `co_movimenti` ADD `is_apertura` BOOLEAN NOT NULL DEFAULT FALSE AFTER `is_insoluto`, ADD `is_chiusura` BOOLEAN NOT NULL DEFAULT FALSE AFTER `is_apertura`;
ALTER TABLE `co_pianodeiconti3` DROP `can_delete`, DROP `can_edit`;
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES
(NULL, 'Conto per Riepilogativo fornitori', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Riepilogativo fornitori'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Riepilogativo clienti', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Riepilogativo clienti'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Iva indetraibile', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Iva indetraibile'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Iva su vendite', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Iva su vendite'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Iva su acquisti', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Iva su acquisti'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Erario c/ritenute d''acconto', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Erario c/ritenute d''acconto'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Erario c/INPS', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Erario c/INPS'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Erario c/enasarco', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Erario c/enasarco'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Apertura conti patrimoniali', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Apertura conti patrimoniali'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1),
(NULL, 'Conto per Chiusura conti patrimoniali', (SELECT id FROM co_pianodeiconti3 WHERE descrizione = 'Chiusura conti patrimoniali'), 'query=SELECT `id`, CONCAT_WS('' - '', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', 1, 'Piano dei Conti', 1);